From 4895288d9ccd3c04372198d4caef3b4ce7aaedd5 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 7 Oct 2016 13:38:36 -0700 Subject: [PATCH 001/233] added 3 files --- windows/deploy/windows-10-poc-mdt.md | 548 ++++++++++++++ .../deploy/windows-10-poc-sc-config-mgr.md | 645 +++++++++++++++++ windows/deploy/windows-10-poc.md | 683 ++++++++++++++++++ 3 files changed, 1876 insertions(+) create mode 100644 windows/deploy/windows-10-poc-mdt.md create mode 100644 windows/deploy/windows-10-poc-sc-config-mgr.md create mode 100644 windows/deploy/windows-10-poc.md diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md new file mode 100644 index 0000000000..05589e281d --- /dev/null +++ b/windows/deploy/windows-10-poc-mdt.md @@ -0,0 +1,548 @@ +--- +title: Placeholder (Windows 10) +description: Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: deploy +author: greg-lindsay +--- + +# Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit + +**Applies to** + +- Windows 10 + +**Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md). Please complete all steps in the prerequisite guide before attempting the procedures in this guide. + +The PoC environment is a virtual network running on Hyper-V with three virtual machines: +- **DC1**: A contoso.com domain controller, DNS server, and DHCP server. +- **SRV1**: A dual-homed contoso.com domain member server, DNS server, and default gateway providing NAT service for the PoC network. +- **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been cloned from a physical computer on your corporate network for testing purposes. + +This guide leverages the Hyper-V server role to perform procedures. If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. + +## In this guide + +Description here. + +## Install the Microsoft Deployment Toolkit (MDT) + +1. On SRV1, temporarily disable IE Enhanced Security Configuration for Administrators by typing the following commands at an elevated Windows PowerShell prompt: + + ``` + $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" + Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 0 + Stop-Process -Name Explorer + ``` +2. Download and install the 64-bit version of [Microsoft Deployment Toolkit (MDT) 2013 Update 2](https://www.microsoft.com/en-us/download/details.aspx?id=50407) on SRV1 using the default options. + +3. Download and install the latest [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit) on SRV1 using the default installation settings. The current version is the ADK for Windows 10, version 1607. Installation might require several minutes to acquire all components. + +3. If desired, re-enable IE Enhanced Security Configuration: + + ``` + Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 1 + Stop-Process -Name Explorer + ``` + +## Create a deployment share and reference image + +1. In [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md) the Windows 10 Enterprise .iso file was saved to the c:\VHD directory as **c:\VHD\w10-enterprise.iso**. The first step in creating a deployment share is to mount this file on SRV1. To mount the Windows 10 Enterprise DVD on SRV1, open an elevated Windows PowerShell prompt on the Hyper-V host computer and type the following command: + + ``` + Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\w10-enterprise.iso + ``` +2. Connect to SRV1 and verify that the Windows Enterprise installation DVD is mounted as drive letter D. + +3. The Windows 10 Enterprise installation files will be used to create a deployment share on SRV1 using the MDT deployment workbench. To open the deployment workbench, click **Start**, type **deployment**, and then click **Deployment Workbench**. + +4. In the Deployment Workbench console, right-click **Deployment Shares** and select **New Deployment Share**. + +5. Use the following settings for the New Deployment Share Wizard: + - Deployment share path: **C:\MDTBuildLab**
+ - Share name: **MDTBuildLab$**
+ - Deployment share description: **MDT build lab**
+ - Options: click **Next** to accept the default
+ - Summary: click **Next**
+ - Progress: settings will be applied
+ - Confirmation: click **Finish** + +6. Expand the Deployment Shares node, and then expand MDT build lab. + +7. Right-click the Operating Systems node, and then click New Folder. Name the new folder **Windows 10**. Complete the wizard using default values and click **Finish**. + +7. Right-click the Windows 10 folder created in the previous step, and then click **Import Operating System**. + +8. Use the following settings for the Import Operating System Wizard: + - OS Type: **Full set of source files**
+ - Source: **D:\\**
+ - Destination: **W10Ent_x64**
+ - Summary: click **Next** + - Confirmation: click **Finish** + +9. For purposes of this test lab, we will not add applications (such as Microsoft Office) to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. + +10. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: + - Task sequence ID: **REFW10X64-001**
+ - Task sequence name: **Windows 10 Enterprise x64 Default Image**
+ - Task sequence comments: **Reference Build**
+ - Template: **Standard Client Task Sequence** + - Select OS: click **Windows 10 Enterprise Evaluation in W10Ent_x64 install.wim** + - Specify Product Key: **Do not specify a product key at this time** + - Full Name: **Contoso** + - Organization: **Contoso** + - Internet Explorer home page: **http://www.contoso.com** + - Admin Password: **Do not specify an Administrator password at this time** + - Summary: click **Next** + - Confirmation: click **Finish** + +11. Edit the task sequence to add the Microsoft NET Framework 3.5, which is required by many applications. To edit the task sequence, double-click **Windows 10 Enterprise x64 Default Image** that was created in the previous step. + +12. Click the **Task Sequence** tab. Under **State Restore** click **Tatto** to highlight it, then click **Add** and choose **New Group**. + +13. On the Properties tab of the group that was created in the previous step, change the Name from New Group to **Custom Tasks (Pre-Windows Update)** and then click **Apply**. + +14. Click the **Custom Tasks (Pre-Windows Update)** group again, click **Add**, point to **Roles**, and then click **Install Roles and Features**. + +15. Under **Select the roles and features that should be installed**, select **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** and then click **Apply**. + +16. Enable Windows Update in the task sequence by clicking the **Windows Update (Post-Application Installation)** step, clicking the **Options** tab, and clearing the **Disable this step** checkbox. + >Note: Since we are not installing applications in this test lab, there is no need to enable the Windows Update Pre-Application Installation step. However, you should enable this step if you are also installing applications. + +17. Click **OK** to complete editing the task sequence. + +18. The next step is to configure the MDT deployment share rules. To configure rules in the Deployment Workbench, right-click MDT build lab (C:\MDTBuildLab) and click **Properties**, and then click the **Rules** tab. + +19. Replace the default rules with the following text: + + ``` + [Settings] + Priority=Default + + [Default] + _SMSTSORGNAME=Contoso + UserDataLocation=NONE + DoCapture=YES + OSInstall=Y + AdminPassword=pass@word1 + TimeZoneName=Pacific Standard Time + JoinWorkgroup=WORKGROUP + HideShell=YES + FinishAction=SHUTDOWN + DoNotCreateExtraPartition=YES + ApplyGPOPack=NO + SkipAdminPassword=YES + SkipProductKey=YES + SkipComputerName=YES + SkipDomainMembership=YES + SkipUserData=YES + SkipLocaleSelection=YES + SkipTaskSequence=NO + SkipTimeZone=YES + SkipApplications=YES + SkipBitLocker=YES + SkipSummary=YES + SkipRoles=YES + SkipCapture=NO + SkipFinalSummary=YES + ``` + +20. Click **Apply** and then click **Edit Bootstrap.ini**. Replace the contents of the Bootstrap.ini file with the following text, and save the file: + + ``` + [Settings] + Priority=Default + + [Default] + DeployRoot=\\SRV1\MDTBuildLab$ + UserDomain=CONTOSO + UserID=administrator + UserPassword=pass@word1 + SkipBDDWelcome=YES + ``` + +21. Click **OK** to complete the configuration of the deployment share. + +22. Right-click **MDT build lab (C:\MDTBuildLab)** and then click **Update Deployment Share**. + +23. Accept all default values in the Update Deployment Share Wizard by clicking **Next**. The update process will take 5 to 10 minutes. When it has completed, click **Finish**. + +24. Copy **c:\MDTBuildLab\Boot\LiteTouchPE_x86.iso** on SRV1 to the **c:\VHD** directory on the Hyper-V host computer. Note that in MDT, the x86 boot image can deploy both x86 and x64 operating systems, except on computers based on Unified Extensible Firmware Interface (UEFI). + +>Hint: Top copy the file, right-click the **LiteTouchPE_x86.iso** file and click **Copy** on SRV1, then open the **c:\VHD** folder on the Hyper-V host, right-click inside the folder and click **Paste**. + +25. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: + + ``` + New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB + Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20 + Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso + Start-VM REFW10X64-001 + vmconnect localhost REFW10X64-001 + ``` +26. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. + +27. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. + + Additional system restarts will occur to complete updating and preparing the operating system. Setup will complete the following procedures: + + - Install the Windows 10 Enterprise operating system. + - Install added applications, roles, and features. + - Update the operating system using Windows Update (or WSUS if optionally specified). + - Stage Windows PE on the local disk. + - Run System Preparation (Sysprep) and reboot into Windows PE. + - Capture the installation to a Windows Imaging (WIM) file. + - Turn off the virtual machine. + + This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server. The file name is **REFW10X64-001.wim**. + + ## Deploy a Windows 10 image using MDT + +This procedure will demonstrate how to deploy the reference image to the PoC environment using MDT. + +1. On SRV1, open the MDT Deployment Workbench console, right-click **Deployment Shares**, and then click **New Deployment Share**. Use the following values in the New Deployment Share Wizard: + - **Deployment share path**: C:\MDTProd + - **Share name**: MDTProd$ + - **Deployment share description**: MDT Production + - **Options**: accept the default + +2. Click **Finish** and verify the new deployment share was added successfully. + +3. In the Deployment Workbench console, expand the MDT Production deployment share, right-click **Operating Systems**, and then click **New Folder**. Name the new folder **Windows 10** and complete the wizard using default values. + +4. Right-click the Windows 10 folder created in the previous step, and then click **Import Operating System**. + +5. On the **OS Type** page, choose **Custom image file** and then click **Next**. + +6. On the Image page, browse to the C:\MDTBuildLab\Captures\REFW10X64-001.wim file created in the previous procedure, click **Open**, and then click **Next**. + +7. On the Setup page, select **Copy Windows 7, Windows Server 2008 R2, or later setup files from the specified path**. + +8. Under **Setup source directory**, browse to **C:\MDTBuildLab\Operating Systems\W10Ent_x64** click **OK** and then click **Next**. + +9. On the Destination page, accept the default Destination directory name of **REFW10X64-001**, click **Next** twice, and then click **Finish**. + +10. In the Operating Systems > Windows 10 node, double-click the operating system that was added to view its Properties. Change the Operating system name to **Windows 10 Enterprise x64 Custom Image** and then click **OK**. + +### Create the deployment task sequence + +1. Using the Deployment Workbench, select Task Sequences in the MDT Production node, and create a folder named **Windows 10**. + +2. Right-click the Windows 10 folder created in the previous step, and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: + - Task sequence ID: W10-X64-001 + - Task sequence name: Windows 10 Enterprise x64 Custom Image + - Task sequence comments: Production Image + - Select Template: Standard Client Task Sequence + - Select OS: Windows 10 Enterprise x64 Custom Image + - Specify Product Key: Do not specify a product key at this time + - Full Name: Contoso + - Organization: Contoso + - Internet Explorer home page: http://www.contoso.com + - Admin Password: pass@word1 + +### Configure the MDT production deployment share + +1. On SRV1, open an elevated Windows PowerShell prompt and type the following commands: + + ``` + copy-item "C:\Program Files\Microsoft Deployment Toolkit\Templates\Bootstrap.ini" C:\MDTProd\Control\Bootstrap.ini -Force + copy-item "C:\Program Files\Microsoft Deployment Toolkit\Templates\CustomSettings.ini" C:\MDTProd\Control\CustomSettings.ini -Force + ``` +2. In the Deployment Workbench console on SRV1, right-click the **MDT Production** deployment share and then click Properties. + +3. Click the **Rules** tab and replace the rules with the following text: + + ``` + [Settings] + Priority=Default + + [Default] + _SMSTSORGNAME=Contoso + OSInstall=YES + UserDataLocation=AUTO + TimeZoneName=Pacific Standard Time + OSDComputername=#Left("PC-%SerialNumber%",7)# + AdminPassword=pass@word1 + JoinDomain=contoso.com + DomainAdmin=administrator + DomainAdminDomain=CONTOSO + DomainAdminPassword=pass@word1 + ScanStateArgs=/ue:*\* /ui:CONTOSO\* + USMTMigFiles001=MigApp.xml + USMTMigFiles002=MigUser.xml + HideShell=YES + ApplyGPOPack=NO + SkipAppsOnUpgrade=NO + SkipAdminPassword=YES + SkipProductKey=YES + SkipComputerName=YES + SkipDomainMembership=YES + SkipUserData=YES + SkipLocaleSelection=YES + SkipTaskSequence=NO + SkipTimeZone=YES + SkipApplications=NO + SkipBitLocker=YES + SkipSummary=YES + SkipCapture=YES + SkipFinalSummary=NO + EventService=http://SRV1:9800 + ``` + **Note**: The contents of the Rules tab are added to c:\MDTProd\Control\CustomSettings.ini. + + >In this example a **MachineObjectOU** entry is not provided. Normally this entry describes the specific OU where new client computer objects are created in Active Directory. However, for the purposes of this test lab clients are added to the default computers OU, which requires that this parameter be unspecified. + +4. Click **Edit Bootstap.ini** and replace text in the file with the following text: + + ``` + [Settings] + Priority=Default + + [Default] + DeployRoot=\\SRV1\MDTProd$ + UserDomain=CONTOSO + UserID=administrator + UserPassword=pass@word1 + SkipBDDWelcome=YES + ``` +5. Click **OK** when finished. + +### Update the deployment share + +1. Right-click the **MDT Production** deployment share and then click **Update Deployment Share**. + +2. Use the default options for the Update Deployment Share Wizard. The update process requires 5 to 10 minutes to complete. + +3. Click **Finish** when the update is complete. + +### Enable deployment monitoring + +1. In the Deployment Workbench console, right-click **MDT Production** and then click **Properties**. + +2. On the **Monitoring** tab, select the **Enable monitoring for this deployment share** checkbox, and then click **OK**. + +3. Verify the monitoring service is working as expected by opening the following link on SRV1 in Internet Explorer: [http://localhost:9800/MDTMonitorEvent/](http://localhost:9800/MDTMonitorEvent/). If you do not see "**You have created a service**" at the top of the page, see [Troubleshooting MDT 2012 Monitoring](https://blogs.technet.microsoft.com/mniehaus/2012/05/10/troubleshooting-mdt-2012-monitoring/). + +4. Close Internet Explorer. + +### Configure Windows Deployment Services + +1. Initialize Windows Deployment Services (WDS) by typing the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + WDSUTIL /Verbose /Progress /Initialize-Server /Server:SRV1 /RemInst:"C:\RemoteInstall" + WDSUTIL /Set-Server /AnswerClients:All + ``` + +2. Click **Start**, type **Windows Deployment**, and then click **Windows Deployment Services**. + +3. In the Windows Deployment Services console, expand Servers, expand SRV1.contoso.com, right-click **Boot Images**, and then click **Add Boot Image**. + +4. Browse to the **C:\MDTProd\Boot\LiteTouchPE_x64.wim** file, click **Open**, click **Next**, and accept the defaults in the Add Image Wizard. Click **Finish** to complete adding a boot image. + +### Deploy the client image + +1. Before using WDS to deploy a client image, you must temporarily disable the external network adapter on SRV1. This is just an artifact of the lab environment. In a typical deployment environment WDS would not be installed on the default gateway. **Note**: Do not disable the *internal* network interface. To disable the *external* interface on SRV1, open a Windows PowerShell prompt on SRV1 and type the following command: + + ``` + Disable-NetAdapter "Ethernet 2" -Confirm:$false + ``` + +2. Next, switch to the Hyper-V host and open an elevated Windows PowerShell prompt. Create a generation 2 VM on the Hyper-V host that will load its OS using PXE. To create this VM, type the following commands at an elevated Windows PowerShell prompt: + + ``` + New-VM –Name "PC2" –NewVHDPath "c:\vhd\pc2.vhdx" -NewVHDSizeBytes 60GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 + Set-VMMemory -VMName "PC2" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 + ``` + >Dynamic memory is configured on the VM to conserve resources. However, this can cause memory allocation to be reduced past what is required to install an operating system. If this happens, reset the VM and begin the OS installation task sequence immediately. This ensures the VM memory allocation is not decreased too much while it is idle. + +3. Start the new VM and connect to it: + + ``` + Start-VM PC2 + vmconnect localhost PC2 + ``` +4. When prompted, hit ENTER to start the network boot process. + +5. Choose the **Windows 10 Enterprise x64 Custom Image** and then click **Next**. + +6. After MDT lite touch installation has started, be sure to re-enable the external network adapter on SRV1. This is needed so the client can use Windows Update after operating system installation is complete.To re-enable the external network interface, open an elevated Windows PowerShell prompt on SRV1 and type the following command: + + ``` + Enable-NetAdapter "Ethernet 2" + ``` +7. On SRV1, in the Deployment Workbench console, click on **Monitoring** and view the status of installation. +8. When OS installation is complete, the system will reboot automatically and begin configuring devices. When the new client computer is finished updating, click **Finish**. You will be automatically signed in to the local computer as administrator. + +9. Turn off the PC2 VM before starting the next section. To turn off the VM, right-click **Start**, point to **Shut down or sign out**, and then click **Shut down**. + +### Refresh a computer with Windows 10 + +This topic will demonstrate how to export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings. The scenario will use PC1, a computer that was cloned from a physical device to a VM, as described in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md). + +1. Create a checkpoint for the PC1 VM so that it can easily be reverted to its current state for troubleshooting purposes and to perform additional scenarios. Checkpoints are also known as snapshots. To create a checkpoint for the PC1 VM, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Checkpoint-VM -Name PC1 -SnapshotName BeginState + ``` + +2. Sign on to PC1 using the CONTOSO\Administrator account. + + >Specify **contoso\administrator** as the user name to ensure you do not sign on using the local administrator account. You must sign in with this account so that you have access to the deployment share. + +3. Open an elevated command prompt on PC1 and type the following: + + ``` + cscript \\SRV1\MDTProd$\Scripts\Litetouch.vbs + ``` + **Note**: Litetouch.vbs must be able to create the C:\MININT directory on the local computer. + +4. Choose the **Windows 10 Enterprise x64 Custom Image** and then click **Next**. + +5. Choose **Do not back up the existing computer** and click **Next**. + + **Note**: The USMT will still back up the computer. + +6. Lite Touch Installation will perform the following actions: + - Back up user settings and data using USMT. + - Install the Windows 10 Enterprise X64 operating system. + - Update the operating system via Windows Update. + - Restore user settings and data using USMT. + + You can review the progress of installation on SRV1 by clicking on the **Monitoring** node in the deployment workbench. When OS installation is complete, the computer will restart, set up devices, and configure settings. + +7. Sign in with the CONTOSO\Administrator account and verify that all CONTOSO domain user accounts and data have been migrated to the new operating system. + +8. Create another checkpoint for the PC1 VM so that you can review results of the computer refresh later. To create a checkpoint, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Checkpoint-VM -Name PC1 -SnapshotName RefreshState + ``` +9. Restore the PC1 VM to it's previous state in preparation for the replace procedure. To restore a checkpoint, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Restore-VMSnapshot -VMName PC1 -Name BeginState -Confirm:$false + Start-VM PC1 + vmconnect localhost PC1 + ``` +10. Sign in to PC1 using the contoso\administrator account. + +### Replace a computer with Windows 10 + +At a high level, the computer replace process consists of:
+- A special replace task sequence that runs the USMT backup and an optional full Window Imaging (WIM) backup.
+- A standard OS deployment on a new computer. At the end of the deployment, the USMT backup from the old computer is restored. + +#### Create a backup-only task sequence + +1. On SRV1, in the deployment workbench console, right-click the MDT Production deployment share, click **Properties**, click the **Rules** tab, and change the line **SkipUserData=YES** to **SkipUserData=NO**. +2. Click **OK**, right-click **MDT Production**, click **Update Deployment Share** and accept the default options in the wizard to update the share. +3. Type the following commands at an elevated Windows PowerShell prompt on SRV1: + + ``` + New-Item -Path C:\MigData -ItemType directory + New-SmbShare -Name MigData$ -Path C:\MigData -ChangeAccess EVERYONE + icacls C:\MigData /grant '"contoso\administrator":(OI)(CI)(M)' + ``` +4. On SRV1 in the deployment workbench, under **MDT Production**, right-click the **Task Sequences** node, and click **New Folder**. +5. Name the new folder **Other**, and complete the wizard using default options. +6. Right-click the **Other** folder and then click **New Task Sequence**. Use the following values in the wizard: + - **Task sequence ID**: REPLACE-001 + - **Task sequence name**: Backup Only Task Sequence + - **Task sequence comments**: Run USMT to backup user data and settings + - **Template**: Standard Client Replace Task Sequence +7. Accept defaults for the rest of the wizard and then click **Finish**. The replace task sequence will skip OS selection and settings. +8. Open the new task sequence that was created and review it. Note the type of capture and backup tasks that are present. Click **OK** when you are finished reviewing the task sequence. + +#### Run the backup-only task sequence + +1. If you are not already signed on to PC1 as **contoso\administrator**, sign in using this account. To verify the currently signed in account, type the following command at an elevated command prompt: + + ``` + whoami + ``` +2. To ensure a clean environment before running the backup task sequence, type the following at an elevated Windows PowerShell prompt: + + ``` + Remove-Item c:\minint -recurse + Remove-Item c:\_SMSTaskSequence -recurse + Restart-Computer + ``` +2. Sign in to PC1 using the contoso\administrator account, and then type the following at an elevated command prompt: + + ``` + cscript \\SRV1\MDTProd$\Scripts\Litetouch.vbs + ``` +3. Complete the deployment wizard using the following: + - **Task Sequence**: Backup Only Task Sequence + - **User Data**: Specify a location: **\\SRV1\MigData$\PC1** + - **Computer Backup**: Do not back up the existing computer. +4. While the task sequence is running on PC1, open the deployment workbench console on SRV1 and click the **Monitoring* node. Press F5 to refresh the console, and view the status of current tasks. +5. Verify that **The user state capture was completed successfully** is displayed, and click **Finish** when the capture is complete. +6. On SRV1, verify that the file **USMT.MIG** was created in the **C:\MigData\PC1\USMT** directory. See the following example: + + ``` + PS C:\> dir C:\MigData\PC1\USMT + + Directory: C:\MigData\PC1\USMT + + Mode LastWriteTime Length Name + ---- ------------- ------ ---- + -a--- 9/6/2016 11:34 AM 14248685 USMT.MIG + ``` +#### Deploy PC3 + +1. On the Hyper-V host, type the following commands at an elevated Windows PowerShell prompt: + + ``` + New-VM –Name "PC3" –NewVHDPath "c:\vhd\pc3.vhdx" -NewVHDSizeBytes 60GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 + Set-VMMemory -VMName "PC3" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 + ``` +2. Temporarily disable the external network adapter on SRV1 again, so that we can successfully boot PC3 from WDS. To disable the adapter, type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + Disable-NetAdapter "Ethernet 2" -Confirm:$false + ``` +3. Start and connect to PC3 by typing the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Start-VM PC3 + vmconnect localhost PC3 + ``` +4. When prompted, press ENTER for network boot. + +6. On PC3, ue the following settings for the Windows Deployment Wizard: + - **Task Sequence**: Windows 10 Enterprise x64 Custom Image + - **Move Data and Settings**: Do not move user data and settings + - **User Data (Restore)**: Specify a location: **\\SRV1\MigData$\PC1** +5. When OS installation has started on PC1, re-enable the external network adapter on SRV1 by typing the following command on SRV1: + + ``` + Enable-NetAdapter "Ethernet 2" + ``` +7. Setup will install the Windows 10 Enterprise operating system, update via Windows Update, and restore the user settings and data from PC1. + +#### Troubleshooting logs, events, and utilities + +Deployment logs are available on the client computer in the following locations: +- Before the image is applied: X:\MININT\SMSOSD\OSDLOGS +- After the system drive has been formatted: C:\MININT\SMSOSD\OSDLOGS +- After deployment: %WINDIR%\TEMP\DeploymentLogs + +You can review WDS events in Event Viewer at: **Applications and Services Logs > Microsoft > Windows > Deployment-Services-Diagnostics**. By default, only the **Admin** and **Operational** logs are enabled. To enable other logs, right-click the log and then click **Enable Log**. + +Tools for viewing log files, and to assist with troubleshooting are available in the [System Center 2012 R2 Configuration Manager Toolkit](https://www.microsoft.com/en-us/download/details.aspx?id=50012) + +## Related Topics + +[Microsoft Deployment Toolkit](https://technet.microsoft.com/en-US/windows/dn475741)
+[Prepare for deployment with MDT 2013](prepare-for-windows-deployment-with-mdt-2013.md) + +  + + + + + diff --git a/windows/deploy/windows-10-poc-sc-config-mgr.md b/windows/deploy/windows-10-poc-sc-config-mgr.md new file mode 100644 index 0000000000..9f6e7605fb --- /dev/null +++ b/windows/deploy/windows-10-poc-sc-config-mgr.md @@ -0,0 +1,645 @@ +--- +title: Placeholder (Windows 10) +description: Deploy Windows 10 in a test lab using System Center Configuration Manager +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: deploy +author: greg-lindsay +--- + +# Deploy Windows 10 in a test lab using System Center Configuration Manager + +**Applies to** + +- Windows 10 + +**Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md). Please complete all steps in the prerequisite guide before attempting the procedures in this guide. + +If you have already completed [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md), you can skip some steps of this guide, such as installation of MDT. + +The PoC environment is a virtual network running on Hyper-V with three virtual machines (VMs): +- **DC1**: A contoso.com domain controller, DNS server, and DHCP server. +- **SRV1**: A dual-homed contoso.com domain member server, DNS server, and default gateway providing NAT service for the PoC network. +- **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been cloned from a physical computer on your corporate network for testing purposes. + +This guide leverages the Hyper-V server role to perform procedures. If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. + +>Multiple features and services are installed on SRV1 in this guide. If less than 4 GB of RAM is allocated to SRV1, some procedures will require more time to complete. If resources are limited on the Hyper-V host, consider reducing RAM allocation on DC1 and PC1 to 2 GB and 1 GB respectively, and then increasing the RAM allocation on SRV1. You can adjust RAM allocation for a VM by right-clicking the VM in the Hyper-V Manager console, clicking **Settings**, clicking **Memory**, and modifying the value next to **Maximum RAM**. + +## In this guide + +Description here. + +## Install prerequisites + +1. Before installing System Center Configuration Manager, we must install prerequisite services and features. Type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + Install-WindowsFeature Web-Windows-Auth,Web-ISAPI-Ext,Web-Metabase,Web-WMI,BITS,RDC,NET-Framework-Features,Web-Asp-Net,Web-Asp-Net45,NET-HTTP-Activation,NET-Non-HTTP-Activ + ``` + + >If the request to add features fails, retry the installation by typing the command again. + +2. Download [SQL Server 2012 SP2](https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2014-sp2) from the Microsoft Evaluation Center as an .ISO file on the Hyper-V host computer. Save the file to the **C:\VHD** directory. +3. When you have downloaded the file **SQLServer2014SP2-FullSlipstream-x64-ENU.iso** and placed it in the C:\VHD directory, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\SQLServer2014SP2-FullSlipstream-x64-ENU.iso + ``` + + This command mounts the .ISO file to drive D on SRV1. + +4. Type the following command at an elevated Windows PowerShell prompt on SRV1 to install SQL Server 2012 SP2: + + ``` + D:\setup.exe /q /ACTION=Install /ERRORREPORTING="False" /FEATURES=SQLENGINE,RS,IS,SSMS,TOOLS,ADV_SSMS,CONN /INSTANCENAME=MSSQLSERVER /INSTANCEDIR="C:\Program Files\Microsoft SQL Server" /SQLSVCACCOUNT="NT AUTHORITY\System" /SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS" /SQLSVCSTARTUPTYPE=Automatic /AGTSVCACCOUNT="NT AUTHORITY\SYSTEM" /AGTSVCSTARTUPTYPE=Automatic /RSSVCACCOUNT="NT AUTHORITY\System" /RSSVCSTARTUPTYPE=Automatic /ISSVCACCOUNT="NT AUTHORITY\System" /ISSVCSTARTUPTYPE=Disabled /ASCOLLATION="Latin1_General_CI_AS" /SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS" /TCPENABLED="1" /NPENABLED="1" /IAcceptSQLServerLicenseTerms + ``` + Installation might take several minutes. When installation is complete, the following output will be displayed: + + ``` + Microsoft (R) SQL Server 2014 12.00.5000.00 + Copyright (c) Microsoft Corporation. All rights reserved. + + Microsoft (R) .NET Framework CasPol 2.0.50727.7905 + Copyright (c) Microsoft Corporation. All rights reserved. + + Success + Microsoft (R) .NET Framework CasPol 2.0.50727.7905 + Copyright (c) Microsoft Corporation. All rights reserved. + + Success + ``` +5. Type the following commands at an elevated Windows PowerShell prompt on SRV1: + + ``` + New-NetFirewallRule -DisplayName “SQL Server” -Direction Inbound –Protocol TCP –LocalPort 1433 -Action allow + New-NetFirewallRule -DisplayName “SQL Admin Connection” -Direction Inbound –Protocol TCP –LocalPort 1434 -Action allow + New-NetFirewallRule -DisplayName “SQL Database Management” -Direction Inbound –Protocol UDP –LocalPort 1434 -Action allow + New-NetFirewallRule -DisplayName “SQL Service Broker” -Direction Inbound –Protocol TCP –LocalPort 4022 -Action allow + New-NetFirewallRule -DisplayName “SQL Debugger/RPC” -Direction Inbound –Protocol TCP –LocalPort 135 -Action allow + ``` +6. On SRV1, temporarily disable IE Enhanced Security Configuration for Administrators by typing the following commands at an elevated Windows PowerShell prompt: + + ``` + $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" + Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 0 + Stop-Process -Name Explorer + ``` +7. Download and install the latest [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit) on SRV1 using the default installation settings. The current version is the ADK for Windows 10, version 1607. Installation might require several minutes to acquire all components. + +## Install System Center Configuration Manager + +1. Download [System Center Configuration Manager and Endpoint Protection](https://www.microsoft.com/en-us/evalcenter/evaluate-system-center-configuration-manager-and-endpoint-protection) on SRV1, double-click the file, enter **C:\configmgr** for **Unzip to folder**, and click **Unzip**. The C:\configmgr directory will be automatically created. Click **OK** and then close the **WinZip Self-Extractor** dialog box when finished. + +2. Before starting the installation, verify that WMI is working on SRV1. See the following examples. Verify that **Running** is displayed under **Status** and **True** is displayed next to **TcpTestSucceeded**: + + ``` + Get-Service Winmgmt + + Status Name DisplayName + ------ ---- ----------- + Running Winmgmt Windows Management Instrumentation + + Test-NetConnection -ComputerName 192.168.0.2 -Port 135 -InformationLevel Detailed + + ComputerName : 192.168.0.2 + RemoteAddress : 192.168.0.2 + RemotePort : 135 + AllNameResolutionResults : + MatchingIPsecRules : + NetworkIsolationContext : Internet + InterfaceAlias : Ethernet + SourceAddress : 192.168.0.2 + NetRoute (NextHop) : 0.0.0.0 + PingSucceeded : True + PingReplyDetails (RTT) : 0 ms + TcpTestSucceeded : True + ``` + You can also verify WMI using the WMI console by typing **wmimgmt.msc**, right-clicking **WMI Control (Local)** in the console tree, and then clicking **Properties**. + + If the WMI service is not started, attempt to start it or reboot the computer. If WMI is running but errors are present, see [WMIDiag](https://blogs.technet.microsoft.com/askperf/2015/05/12/wmidiag-2-2-is-here/) for troubleshooting information. + +2. To start Configuration Manager installation, type the following command at an elevated Windows PowerShell prompt: + + ``` + cmd /c C:\configmgr\SMSSETUP\BIN\X64\Setup.exe + ``` +3. Provide the following in the System Center Configuration Manager Setup Wizard: + - **Before You Begin**: Read the text and click *Next*. + - **Getting Started**: Choose **Install a Configuration Manager primary site** and select the **Use typical installation options for a stand-alone primary site** checkbox. + - Click **Yes** in response to the popup window. + - **Product Key**: Choose **Install the evaluation edition of this Product**. + - **Microsoft Software License Terms**: Read the terms and then select the **I accept these license terms** checkbox. + - **Prerequisite Licenses**: Review license terms and select all three checkboxes on the page. + - **Prerequisite Downloads**: Choose **Download required files** and enter **c:\windows\temp** next to **Path**. + - **Site and Installation Settings**: Site code: **PS1**, Site name: **Contoso**. + - use default settings for all other options + - **Usage Data**: Read the text and click **Next**. + - **Service Connection Point Setup**: Accept the default settings (SRV1.contoso.com is automatically added under Select a server to use). + - **Settings Summary**: Review settings and click **Next**. + - **Prerequisite Check**: No failures should be listed. Ignore any warnings and click **Begin Install**. + + Depending on the speed of the Hyper-V host and resources allocated to SRV1, installation can require approximately one hour. Click **Close** when installation is complete. + +## Download and install MDT + +1. Download and install the 64-bit version of [Microsoft Deployment Toolkit (MDT) 2013 Update 2](https://www.microsoft.com/en-us/download/details.aspx?id=50407) on SRV1 using the default options. + +2. If desired, re-enable IE Enhanced Security Configuration at this time on SRV1: + + ``` + Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 1 + Stop-Process -Name Explorer + ``` + +## Download MDOP and install DaRT + +1. Download the [Microsoft Desktop Optimization Pack 2015](https://msdn.microsoft.com/en-us/subscriptions/downloads/#ProductFamilyId=597) to the Hyper-V host using an MSDN subscription. Download the .ISO file (mu_microsoft_desktop_optimization_pack_2015_x86_x64_dvd_5975282.iso) to the C:\VHD directory on the Hyper-V host. + +2. Type the following command at an elevated Windows PowerShell prompt on the Hyper-V host to mount the MDOP file on SRV1: + + ``` + Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\mu_microsoft_desktop_optimization_pack_2015_x86_x64_dvd_5975282.iso + ``` +3. Type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + cmd /c "D:\DaRT\DaRT 10\Installers\en-us\x64\MSDaRT100.msi" + ``` +4. Install DaRT 10 using default settings. +5. Type the following commands at an elevated Windows PowerShell prompt on SRV1: + + ``` + Copy-Item "C:\Program Files\Microsoft DaRT\v10\Toolsx64.cab" -Destination "C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x64" + Copy-Item "C:\Program Files\Microsoft DaRT\v10\Toolsx86.cab" -Destination "C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x86" + ``` + +## Create a folder structure + +1. Type the following commands at a Windows PowerShell prompt on SRV1: + + ``` + New-Item -ItemType Directory -Path "C:Sources\OSD\Boot" + New-Item -ItemType Directory -Path "C:Sources\OSD\OS" + New-Item -ItemType Directory -Path "C:\Sources\OSD\Settings" + New-Item -ItemType Directory -Path "C:\Sources\OSD\Branding" + New-Item -ItemType Directory -Path "C:\Sources\OSD\MDT" + New-Item -ItemType Directory -Path "C:\Logs" + New-SmbShare -Name Sources$ -Path C:\Sources -ChangeAccess EVERYONE + New-SmbShare -Name Logs$ -Path C:\Logs -ChangeAccess EVERYONE + ``` + +## Enable MDT ConfigMgr integration + +1. Click **Start**, type **configmgr**, and then click **Configure ConfigMgr Integration**. +2. Type **PS1** next to **Site code**, and then click **Next**. +3. Verify **The process completed successfully** is displayed, and then click **Finish**. + +## Configure client settings + +1. Click **Start**, type **configuration manager**, right-click **Configuration Manager Console**, and then click **Pin to Taskbar**. +2. Click **Desktop**, and then launch the Configuration Manager console from the taskbar. +3. If the console notifies you that an update is available, click **OK**. It is not necessary to install updates to complete this lab. +4. In the console tree, open the **Administration** workspace and click **Client Settings**. +5. In the display pane, double-click **Default Client Settings**. +6. Click **Computer Agent**, next to **Organization name displayed in Software Center** type **Contoso**, and then click **OK**. + +## Enable PXE on the distribution point + +1. Deterime the MAC address of the internal network adapter on SRV1. To determine this, type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + (Get-NetAdapter "Ethernet").MacAddress + ``` + >If the internal network adapter, assigned an IP address of 192.168.0.2, is not named "Ethernet" then replace the name "Ethernet" in the previous command with the name of this network adapter. + +2. In the System Center Configuration Manager console, in the **Administration** workspace, click **Distribution Points**. +3. In the display pane, right-click **SRV1.CONTOSO.COM** and then click **Properties**. +4. On the PXE tab, select the following settings: + - Enable PXE support for clients. Click **Yes** in the popup that appears. + - Allow this distribution point to respond to incoming PXE requests + - Enable unknown computer support. Click **OK** in the popup that appears. + - Require a password when computers use PXE + - Password and Confirm password: pass@word1 + - Respond to PXE requests on specific network interfaces: Enter the MAC address determined in the first step of this procedure. +5. Click **OK**. +6. Type the following command at an elevated Windows PowerShell prompt on SRV1, and verify that the files displayed are present: + + ``` + cmd /c dir /b C:\RemoteInstall\SMSBoot\x64 + + abortpxe.com + bootmgfw.efi + bootmgr.exe + pxeboot.com + pxeboot.n12 + wdsmgfw.efi + wdsnbp.com + ``` + >If these files are not present, type the following command at an elevated Windows PowerShell prompt to open the Configuration Manager Trace Log Tool. In the tool, click **File**, click **Open**, and then open the **distmgr.log** file. If errors are present, they will be highlighted in red: + + ``` + Invoke-Item 'C:\Program Files\Microsoft Configuration Manager\tools\cmtrace.exe' + ``` + +## Create a branding image file + +1. If you have a bitmap (.BMP) image for suitable use as a branding image, copy it to the C:\Sources\OSD\Branding folder on SRV1. Otherwise, use the following step to copy a simple branding image. +2. Type the following command at an elevated Windows PowerShell prompt: + + ``` + copy "C:\ProgramData\Microsoft\User Account Pictures\user.bmp" "C:\Sources\OSD\Branding\contoso.bmp" + ``` + >You can open C:\Sources\OSD\Branding\contoso.bmp in MSPaint.exe if desired to customize this image. + +## Create a boot image for Configuration Manager + +1. In the Configuration Manager console, in the Software Library workspace, expand **Operating Systems**, right-click **Boot Images**, and then click **Create Boot Image using MDT**. +2. On the Package Source page, under **Package source folder to be created (UNC Path):**, type **\\SRV1\Sources$\OSD\Boot\Zero Touch WinPE x64**, and then click **Next**. + - The Zero Touch WinPE x64 folder does not yet exist. The folder will be created later. +3. On the General Settings page, type **Zero Touch WinPE x64** next to **Name**, and click **Next**. +4. On the Options page, under **Platform** choose **x64**, and click **Next**. +5. On the Components page, in addition to the default selection of **Microsoft Data Access Components (MDAC/ADO) support**, select the **Microsoft Diagnostics and Recovery Toolkit (DaRT)** checkbox, and click **Next**. +6. On the Customization page, select the **Use a custom background bitmap file** checkbox, and under **UNC path**, type or browse to **\\SRV1\Sources$\OSD\Branding\contoso.bmp**, and then click **Next** twice. It will take a few minutes to generate the boot image. +7. Click **Finish**. +8. Right-click the **Zero Touch WinPE x64** boot image, and then click **Distribute Content**. +9. In the Distribute Content Wizard, click **Next**, click **Add** and select **Distribution Point**, select the **SRV1.CONTOSO.COM** checkbox, click **OK**, click **Next** twice, and then click **Close**. +10. Use the CMTrace application to view the **distmgr.log** file and verify that the boot image has been distributed. To open CMTrace, type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + Invoke-Item 'C:\Program Files\Microsoft Configuration Manager\tools\cmtrace.exe' + ``` + >In the trace tool, click **Tools** on the menu and choose **Find**. Search for "**STATMSG: ID=2301**". For example: + + ``` + STATMSG: ID=2301 SEV=I LEV=M SOURCE="SMS Server" COMP="SMS_DISTRIBUTION_MANAGER" SYS=SRV1.CONTOSO.COM SITE=PS1 PID=2476 TID=4636 GMTDATE=Wed Sep 14 22:11:09.363 2016 ISTR0="Configuration Manager Client Upgrade Package" ISTR1="PS100003" ISTR2="" ISTR3="" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=1 AID0=400 AVAL0="PS100003" SMS_DISTRIBUTION_MANAGER 9/14/2016 3:11:09 PM 4636 (0x121C) + ``` +11. You can also review status by clicking the **Zero Touch WinPE x64** image, and then clicking **Content Status** under **Related Objects**, or by entering **\Monitoring\Overview\Distribution Status\Content Status** on the location bar in the console. Click **Zero Touch WinPE x64** under **Content Status** in the console tree and verify that a status of **Successfully distributed content** is displayed on the **Success** tab. +12. In the **Software Library** workspace, double-click **Zero Touch WinPE x64** and then click the **Data Source** tab. +13. Select the **Deploy this boot image from the PXE-enabled distribution point** checkbox, and click **OK**. +14. Review the distmgr.log file again for "**STATMSG: ID=2301**" and verify that there are three folders under **C:\RemoteInstall\SMSImages** with boot images. See the following example: + + ``` + cmd /c dir /s /b C:\RemoteInstall\SMSImages + + C:\RemoteInstall\SMSImages\PS100004 + C:\RemoteInstall\SMSImages\PS100005 + C:\RemoteInstall\SMSImages\PS100006 + C:\RemoteInstall\SMSImages\PS100004\boot.PS100004.wim + C:\RemoteInstall\SMSImages\PS100005\boot.PS100005.wim + C:\RemoteInstall\SMSImages\PS100006\WinPE.PS100006.wim + ``` + + >The first two images (*.wim files) are default boot images. The third is the new boot image with DaRT. + +## Create a Windows 10 reference image + +If you have already completed steps in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) then you have already created a Windows 10 reference image. Copy the reference image file (REFW10-X64-001.wim) from C:\MDTBuildLab\Captures\REFW10X64-001.wim to C:\Sources\OSD\OS\Windows 10 Enterprise x64\REFW10X64-001.wim. + +If you have not yet created a Windows 10 reference image, complete the following steps. + +1. In [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md) the Windows 10 Enterprise .iso file was saved to the c:\VHD directory as **c:\VHD\w10-enterprise.iso**. The first step in creating a deployment share is to mount this file on SRV1. To mount the Windows 10 Enterprise DVD on SRV1, open an elevated Windows PowerShell prompt on the Hyper-V host computer and type the following command: + + ``` + Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\w10-enterprise.iso + ``` +2. Verify that the Windows Enterprise installation DVD is mounted on SRV1 as drive letter D. + +3. The Windows 10 Enterprise installation files will be used to create a deployment share on SRV1 using the MDT deployment workbench. To open the deployment workbench, click **Start**, type **deployment**, and then click **Deployment Workbench**. + +4. In the Deployment Workbench console, right-click **Deployment Shares** and select **New Deployment Share**. + +5. Use the following settings for the New Deployment Share Wizard: + - Deployment share path: **C:\MDTBuildLab**
+ - Share name: **MDTBuildLab$**
+ - Deployment share description: **MDT build lab**
+ - Options: click **Next** to accept the default
+ - Summary: click **Next**
+ - Progress: settings will be applied
+ - Confirmation: click **Finish** + +6. Expand the **Deployment Shares** node, and then expand **MDT build lab**. + +7. Right-click the **Operating Systems** node, and then click **New Folder**. Name the new folder **Windows 10**. Complete the wizard using default values and click **Finish**. + +7. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. + +8. Use the following settings for the Import Operating System Wizard: + - OS Type: **Full set of source files**
+ - Source: **D:\\**
+ - Destination: **W10Ent_x64**
+ - Summary: click **Next** + - Confirmation: click **Finish** + +9. For purposes of this test lab, we will not add applications, such as Microsoft Office, to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. + +10. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node under **MDT Build Lab** and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: + - Task sequence ID: **REFW10X64-001**
+ - Task sequence name: **Windows 10 Enterprise x64 Default Image**
+ - Task sequence comments: **Reference Build**
+ - Template: **Standard Client Task Sequence** + - Select OS: click **Windows 10 Enterprise Evaluation in W10Ent_x64 install.wim** + - Specify Product Key: **Do not specify a product key at this time** + - Full Name: **Contoso** + - Organization: **Contoso** + - Internet Explorer home page: **http://www.contoso.com** + - Admin Password: **Do not specify an Administrator password at this time** + - Summary: click **Next** + - Confirmation: click **Finish** + +11. Edit the task sequence to add the Microsoft NET Framework 3.5, which is required by many applications. To edit the task sequence, double-click **Windows 10 Enterprise x64 Default Image** that was created in the previous step. + +12. Click the **Task Sequence** tab. Under **State Restore** click **Tatto** to highlight it, then click **Add** and choose **New Group**. A new group will be added under Tattoo. + +13. On the Properties tab of the group that was created in the previous step, change the Name from New Group to **Custom Tasks (Pre-Windows Update)** and then click **Apply**. To see the name change, click **Tattoo**, then click the new group again. + +14. Click the **Custom Tasks (Pre-Windows Update)** group again, click **Add**, point to **Roles**, and then click **Install Roles and Features**. + +15. Under **Select the roles and features that should be installed**, select **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** and then click **Apply**. + +16. Enable Windows Update in the task sequence by clicking the **Windows Update (Post-Application Installation)** step, clicking the **Options** tab, and clearing the **Disable this step** checkbox. + >Note: Since we are not installing applications in this test lab, there is no need to enable the Windows Update Pre-Application Installation step. However, you should enable this step if you are also installing applications. + +17. Click **OK** to complete editing the task sequence. + +18. The next step is to configure the MDT deployment share rules. To configure rules in the Deployment Workbench, right-click MDT build lab (C:\MDTBuildLab) and click **Properties**, and then click the **Rules** tab. + +19. Replace the default rules with the following text: + + ``` + [Settings] + Priority=Default + + [Default] + _SMSTSORGNAME=Contoso + UserDataLocation=NONE + DoCapture=YES + OSInstall=Y + AdminPassword=pass@word1 + TimeZoneName=Pacific Standard Time + JoinWorkgroup=WORKGROUP + HideShell=YES + FinishAction=SHUTDOWN + DoNotCreateExtraPartition=YES + ApplyGPOPack=NO + SkipAdminPassword=YES + SkipProductKey=YES + SkipComputerName=YES + SkipDomainMembership=YES + SkipUserData=YES + SkipLocaleSelection=YES + SkipTaskSequence=NO + SkipTimeZone=YES + SkipApplications=YES + SkipBitLocker=YES + SkipSummary=YES + SkipRoles=YES + SkipCapture=NO + SkipFinalSummary=YES + ``` + +20. Click **Apply** and then click **Edit Bootstrap.ini**. Replace the contents of the Bootstrap.ini file with the following text, and save the file: + + ``` + [Settings] + Priority=Default + + [Default] + DeployRoot=\\SRV1\MDTBuildLab$ + UserDomain=CONTOSO + UserID=administrator + UserPassword=pass@word1 + SkipBDDWelcome=YES + ``` + +21. Click **OK** to complete the configuration of the deployment share. + +22. Right-click **MDT build lab (C:\MDTBuildLab)** and then click **Update Deployment Share**. + +23. Accept all default values in the Update Deployment Share Wizard by clicking **Next**. The update process will take 5 to 10 minutes. When it has completed, click **Finish**. + +24. Copy **c:\MDTBuildLab\Boot\LiteTouchPE_x86.iso** on SRV1 to the **c:\VHD** directory on the Hyper-V host computer. Note that in MDT, the x86 boot image can deploy both x86 and x64 operating systems, except on computers based on Unified Extensible Firmware Interface (UEFI). + + >Hint: Top copy the file, right-click the **LiteTouchPE_x86.iso** file and click **Copy** on SRV1, then open the **c:\VHD** folder on the Hyper-V host, right-click inside the folder and click **Paste**. + +25. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: + + ``` + New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB + Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20 + Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso + Start-VM REFW10X64-001 + vmconnect localhost REFW10X64-001 + ``` +26. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. + +27. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. + + Additional system restarts will occur to complete updating and preparing the operating system. Setup will complete the following procedures: + + - Install the Windows 10 Enterprise operating system. + - Install added applications, roles, and features. + - Update the operating system using Windows Update (or WSUS if optionally specified). + - Stage Windows PE on the local disk. + - Run System Preparation (Sysprep) and reboot into Windows PE. + - Capture the installation to a Windows Imaging (WIM) file. + - Turn off the virtual machine. + + This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host and your network's download speed. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on SRV1. The file name is **REFW10X64-001.wim**. + +## Add a Windows 10 operating system image + +1. Type the following commands at an elevated Windows PowerShell prompt on SRV1: + + ``` + New-Item -ItemType Directory -Path "C:Sources\OSD\OS\Windows 10 Enterprise x64" + cmd /c copy /z "C:\MDTBuildLab\Captures\REFW10X64-001.wim" "C:\Sources\OSD\OS\Windows 10 Enterprise x64" + ``` + +2. In the Configuration Manager console, in the **Software Library** workspace, expand **Operating Systems**, right-click **Operating System Images**, and then click **Add Operating System Image**. + +3. On the Data Source page, under **Path:**, type **\\SRV1\Sources$\OSD\OS\Windows 10 Enterprise x64\REFW10X64-001.wim**, and click **Next**. + +4. On the General page, next to **Name:**, type **Windows 10 Enterprise x64**, click **Next** twice, and then click **Close**. + +5. Distribute the operating system image to the SRV1 distribution point by right-clicking the **Windows 10 Enterprise x64** operating system image and then clicking **Distribute Content**. + +6. In the Distribute Content Wizard, click **Next**, click **Add**, click **Distribution Point**, add the **SRV1.CONTOSO.COM** distribution point, click **OK**, click **Next** twice and then click **Close**. + +7. Enter **\Monitoring\Overview\Distribution Status\Content Status** on the location bar, click **Windows 10 Enterprise x64**, and monitor the status of content distribution until it is successful and no longer in progress. Refresh the view with the F5 key or by right-clicking **Windows 10 Enterprise x64** and clicking **Refresh**. + +## Create a task sequence + +1. In the Configuration Manager console, in the **Software Library** workspace expand **Operating Systems**, right-click **Task Sequences**, and then click **Create MDT Task Sequence**. + +2. On the Choose Template page, select the **Client Task Sequence** template and click **Next**. + +3. On the General page, type **Windows 10 Enterprise x64** under **Task sequence name:** and then click **Next**. + +4. On the Details page, enter the following settings:
+ - Join a domain: contoso.com
+ - Account: click **Set**
+ - User name: contoso\administrator
+ - Password: pass@word1
+ - Confirm password: pass@word1
+ - Click **OK**
+ - Windows Settings
+ - User name: Contoso
+ - Organization name: Contoso
+ - Product key: \
+ - Administrator Account: Enable the account and specify the local administrator password
+ - Password: pass@word1
+ - Confirm password: pass@word1
+ - Click Next
+ +5. On the Capture Settings page, accept the default settings and click **Next**. + +6. On the Boot Image page, browse and select the **Zero Touch WinPE x64** boot image package and then click **Next**. + +7. On the MDT Package page, select **Create a new Microsoft Deployment Toolkit Files package**, under **Package source folder to be created (UNC Path):**, type **\\SRV1\Sources$\OSD\MDT\MDT 2013**, and then click **Next**. + +8. On the MDT Details page, next to **Name:** type **MDT 2013** and then click **Next**. + +9. On the OS Image page, browse and select the **Windows 10 Enterprise x64** package, and then click **Next**. + +10. On the Deployment Method page, accept the default settings and click **Next**. + +11. On the Client Package page, browse and select the **Microsoft Corporation Configuration Manager Client package** and then click **Next**. + +12. On the USMT Package page, browse and select the **Microsoft Corporation User State Migration Tool for Windows 8 10.0.14393.0** package, and then click **Next**. + +13. On the Settings Package page, select **Create a new settings package**, and under **Package source folder to be created (UNC Path):**, type \\SRV1\Sources$\OSD\Settings\Windows 10 x64 Settings, and then click **Next**. + +14. On the Settings Details page, next to **Name:**, type **Windows 10 x64 Settings**, and click **Next**. + +15. On the Sysprep Package page, click **Next** twice. + +16. On the Confirmation page, click **Finish**. + +## Edit the task sequence + +1. In the Configuration Manager console, in the Software Library workspace, click Task Sequences, right-click Windows 10 Enterprise x64, and then click Edit. + +2. Scroll down to the Install group and click Set Variable for Drive Letter. + +3. Change the Value under OSDPreserveDriveLetter from False to True, and click Apply. + +4. In the **State Restore** group, click **Set Status 5**, click **Add**, point to **User State**, and click **Request State Store**. This adds a new action immediately after **Set Status 5**. + +5. Configure the **Request State Store** action that was just added with the following settings:
+ - Request state storage location to: **Restore state from another computer**
+ - Select the **If computer account fails to connect to state store, use the Network Access account** checkbox.
+ - Options tab: Select the **Continue on error** checkbox.
+ - Add Condition: **Task Sequence Variable**:
+ - Variable: **USMTLOCAL**
+ - Condition: **not equals**
+ - Value: **True**
+ - Click **OK**.
+ - Click **Apply**
. + +6. In the **State Restore** group, click **Restore User State**, click **Add**, point to **User State**, and click **Release State Store**. + +7. Configure the **Release State Store** action that was just added with the following settings:
+ - Options tab: Select the **Continue on error** checkbox.
+ - Add Condition: **Task Sequence Variable**:
+ - Variable: **USMTLOCAL**
+ - Condition: **not equals**
+ - Value: **True**
+ - Click **OK**.
+ - Click **OK**
. + + +## Finalize the operating system configuration + +1. In the MDT deployment workbench on SRV1, right-click **Deployment Shares** and then click **New Deployment Share**. + +2. Use the following settings for the New Deployment Share Wizard: + - Deployment share path: **C:\MDTProduction**
+ - Share name: **MDTProduction$**
+ - Deployment share description: **MDT Production**
+ - Options: click **Next** to accept the default
+ - Summary: click **Next**
+ - Progress: settings will be applied
+ - Confirmation: click **Finish** + +3. Right-click the **MDT Production** deployment share, and click **Properties**. + +4. Click the **Monitoring** tab, select the **Enable monitoring for this deployment share** checkbox, and then click **OK**. + +5. Type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + notepad "C:\Sources\OSD\Settings\Windows 10 x64 Settings\CustomSettings.ini" + ``` +6. Replace the contents of the file with the following text: + + ``` + [Settings] + Priority=Default + Properties=OSDMigrateConfigFiles,OSDMigrateMode + + [Default] + DoCapture=NO + ComputerBackupLocation=NONE + MachineObjectOU=ou=Workstations,ou=Computers,ou=Contoso,dc=contoso,dc=com + OSDMigrateMode=Advanced + OSDMigrateAdditionalCaptureOptions=/ue:*\* /ui:CONTOSO\* + OSDMigrateConfigFiles=Miguser.xml,Migapp.xml + SLSHARE=\\SRV1\Logs$ + EventService=http://SRV1:9800 + ApplyGPOPack=NO + ``` +7. In the Software Library workspace, expand **Application Management**, click **Packages**, right-click **Windows 10 x64 Settings**, and then click **Update Distribution Points**. Click **OK** in the popup that appears. + +8. In the Software Library workspace, expand **Operating Systems**, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Distribute Content**. + +9. In the Distribute Content Wizard, click **Next**, click **Add**, click **Distribution Point**, add the **SRV1.CONTOSO.COM** distribution point, click **OK**, click **Next** twice and then click **Close**. + +10. Enter **\Monitoring\Overview\Distribution Status\Content Status** on the location bar, click **Windows 10 Enterprise x64**, and monitor the status of content distribution until it is successful and no longer in progress. Refresh the view with the F5 key or by right-clicking **Windows 10 Enterprise x64** and clicking **Refresh**. + +## Create a deployment for the task sequence + +1. In the Software Library workspace, expand **Operating Systems**, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Deploy**. + +2. On the General page, next to **Collection**, click **Browse** and select the **All Unknown Computers** collection, then click **Next**. + +3. On the Deployment Settings page, use the following settings:
+ - Purpose: Available
+ - Make available to the following: Only media and PXE
+ - Click Next.
+4. Click **Next** five times to accept defaults on the Scheduling, User Experience, Alerts, and Distribution Points pages. + +5. Click **Close**. + +## Deploy Windows 10 using PXE and Configuration Manager + +1. Type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + New-VM –Name "PC3" –NewVHDPath "c:\vhd\pc3.vhdx" -NewVHDSizeBytes 40GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 + Set-VMMemory -VMName "PC3" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 + Start-VM PC3 + vmconnect localhost PC3 + ``` +2. Press ENTER when prompted to start the network boot service. + +3. In the Task Sequence Wizard, provide the password: pass@word1, and then click Next. + +4. The Windows 10 Enterprise x64 task sequence is selected, click Next. + +- ok I have an error that PS100001 cannot be located on a distribution point. +- I tried going to content status and this seems to bhe the USMT and it says it is successfully distributed +- I tried software library, boot images, and distribute these - this didn't help +- I tried software library, application management, packages, distribute content but the distributon point isn't showing up. This is likely the problem. + +## Related Topics + +  + +  + + + + + diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md new file mode 100644 index 0000000000..b0ae64f27e --- /dev/null +++ b/windows/deploy/windows-10-poc.md @@ -0,0 +1,683 @@ +--- +title: Deploy Windows 10 in a test lab (Windows 10) +description: Concepts and procedures for deploying Windows 10 in a proof of concept lab environment. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: deploy +author: greg-lindsay +--- + +# Step by step guide: Deploy Windows 10 in a test lab + +**Applies to** + +- Windows 10 + +If you are interested in upgrading to Windows 10 and want to know more about the upgrade process, then keep reading... + +Do you have a computer running Windows 8 or later with 16GB of RAM? If so, then you have everything you need to set up a Windows 10 test lab. You can even clone computers from your network and see exactly what happens when they are upgraded to Windows 10. + +## In this guide + +This guide provides step-by-step instructions for configuring a proof of concept (PoC) environment where you can deploy Windows 10. The PoC enviroment is configured using Hyper-V and a minimum amount of resources. Simple to use Windows PowerShell commands are provided for setting up the test lab. + +The following topics and procedures are provided in this guide: + +- [Hardware and software requirements](#hardware-and-software-requirements): Prerequisites to complete this guide.
+- [Lab setup](#lab-setup): A description and diagram of the PoC environment that is configured.
+- [Configure the PoC environment](#configure-the-poc-environment): Step by step guidance for the following procedures: + - [Verify support and install Hyper-V](#verify-support-and-install-hyper-v): Verify that installation of Hyper-V is supported, and install the Hyper-V server role. + - [Download VHD and ISO files](#download-vhd-and-iso-files): Download evaluation versions of Windows Server 2012 R2 and Windows 10 and prepare these files to be used on the Hyper-V host. + - [Convert PC to VHD](#convert-pc-to-vhd): Convert a physical computer on your network to a VHDX file and prepare it to be used on the Hyper-V host. + - [Resize VHD](#resize-vhd): Increase the storage capacity for one of the Windows Server VMs. + - [Configure Hyper-V](#configure-hyper-v): Create virtual switches, determine available RAM for virtual machines, and add virtual machines. + - [Configure VHDs](#configure-vhds): Start virtual machines and configure all services and settings. + +The following optional topics are also available: +- [Appendix A: Configuring Hyper-V on Windows Server 2008 R2](#appendix-a-configuring-hyper-v-on-windows-server-2008-r2): Information about using this guide with a Hyper-V host running Windows Server 2008 R2. +- [Appendix B: Verify the configuration](#appendix-b-verify-the-configuration): Verify and troubleshoot network connectivity and services in the PoC environment. + +When you have completed the steps in this guide, see the following topics for step by step instructions to deploy Windows 10 using the PoC environment under common scenarios with current deployment tools: + +- [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md) +- [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) + +## Hardware and software requirements + +One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. + +The second computer is used to clone and mirror a client computer (computer 2) from your corporate network to the POC environment. Alternatively, you can use an arbitrary VM to represent this computer, therefore this computer is not required to complete the lab. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
**Computer 1** (required)**Computer 2** (recommended)
RoleHyper-V hostClient computer
DescriptionThis computer will run Hyper-V, the Hyper-V management tools, and the Hyper-V Windows PowerShell module.This computer is a Windows 7 or Windows 8/8.1 client on your corporate network that will be converted to a VHD for upgrade demonstration purposes.
OSWindows 8/8.1/10 or Windows Server 2012/2012 R2/2016*Windows 7 or a later
EditionEnterprise, Professional, or EducationAny
Architecture64-bitAny
RAM8 GB RAM (16 GB recommended)Any
Disk50 GB available hard disk space (100 GB recommended)Any
CPUSLAT-Capable CPUAny
NetworkInternet connectionAny
+ +>Retaining applications and settings during the upgrade process requires that architecture (32 or 64-bit) is the same before and after the upgrade. + +*The Hyper-V server role can also be installed on a computer running Windows Server 2008 R2. However, the Windows PowerShell module for Hyper-V is not available on Windows Server 2008 R2, therefore you cannot use many of the steps provided in this guide to configure Hyper-V. The performance and features of the Hyper-V role are also much improved on later operating systems. If your host must be running Windows Server 2008 R2, see [Appendix A: Configuring Hyper-V settings on 2008 R2](#appendix-a-configuring-hyper-v-on-windows-server-2008-r2). + +The Hyper-V role cannot be installed on Windows 7 or earlier versions of Windows. + +## Lab setup + +- The Hyper-V host computer (computer 1) is configured to host four VMs on a private, proof of concept network. + - Two VMs are running Windows Server 2012 R2 with required network services and tools installed. + - Two VMs are client systems: One VM is intended to mirror a host on your corporate network (computer 2) and one VM is running Windows 10 Enterprise to demonstrate the hardware replacement scenario. +- Links are provided to download trial versions of Windows Server 2012, Windows 10 Enterprise, and all deployment tools necessary to complete the lab. + +The lab architecture is summarized in the following diagram: + +![PoC](images/poc.png) + +**Note**: +>If you have an existing Hyper-V host, you can use this host if desired and skip the Hyper-V installation section in this guide. + +>The two Windows Server VMs can be combined into a single VM to conserve RAM and disk space if required. However, instructions in this guide assume two server systems are used. Using two servers enables Active Directory Domain Services and DHCP to be installed on a server that is not directly connected to the corporate network. This mitigates the risk of clients on the corporate network receiving DHCP leases from the PoC network (i.e. "rogue" DHCP), and limits NETBIOS service broadcasts. + +## Configure the PoC environment + +### Procedures in this section + +[Verify support and install Hyper-V](#verify-support-and-install-hyper-v)
+[Download VHD and ISO files](#download-vhd-and-iso-files)
+[Convert PC to VHD](#convert-pc-to-vhd)
+[Resize VHD](#resize-vhd)
+[Configure Hyper-V](#configure-hyper-v)
+[Convert PC to VHD](#convert-pc-to-vhd)
+[Configure VHDs](#configure-vhds)
+ +### Verify support and install Hyper-V + +1. Verify that the computer supports Hyper-V. + + Starting with Windows 8, the host computer’s microprocessor must support second level address translation (SLAT) to install Hyper-V. See [Hyper-V: List of SLAT-Capable CPUs for Hosts](http://social.technet.microsoft.com/wiki/contents/articles/1401.hyper-v-list-of-slat-capable-cpus-for-hosts.aspx) for more information. To verify your computer supports SLAT, open an administrator command prompt, type systeminfo, press ENTER, and review the section displayed at the bottom of the output, next to Hyper-V Requirements. + + See the following example: + + ``` + C:\>systeminfo + ... + Hyper-V Requirements: VM Monitor Mode Extensions: Yes + Virtualization Enabled In Firmware: Yes + Second Level Address Translation: Yes + Data Execution Prevention Available: Yes + ``` + In this example, the computer supports SLAT and Hyper-V. + + If one or more requirements are evaluated as "No" then the computer does not support installing Hyper-V. However, if only the virtualization setting is incompatible, you might be able to enable virtualization in the BIOS and change the "Virtualization Enabled In Firmware" setting from "No" to "Yes." The location of this setting will depend on the manufacturer and BIOS version, but is typically found associated with the BIOS security settings. + + You can also identify Hyper-V support using [tools](https://blogs.msdn.microsoft.com/taylorb/2008/06/19/hyper-v-will-my-computer-run-hyper-v-detecting-intel-vt-and-amd-v/) provided by the processor manufacturer, the [msinfo32](https://technet.microsoft.com/en-us/library/cc731397.aspx) tool, or you can download the [coreinfo](http://technet.microsoft.com/en-us/sysinternals/cc835722) utility and run it, as shown in the following example: + + ``` + C:\>coreinfo -v + + Coreinfo v3.31 - Dump information on system CPU and memory topology + Copyright (C) 2008-2014 Mark Russinovich + Sysinternals - www.sysinternals.com + + Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz + Intel64 Family 6 Model 42 Stepping 7, GenuineIntel + Microcode signature: 0000001B + HYPERVISOR - Hypervisor is present + VMX * Supports Intel hardware-assisted virtualization + EPT * Supports Intel extended page tables (SLAT) + ``` + + Note: A 64-bit operating system is requried to run Hyper-V. + +2. Enable Hyper-V. + + The Hyper-V feature is not installed by default. To install it, open an elevated Windows PowerShell window and type the following command: + + ``` + Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All + ``` + When you are prompted to restart the computer, choose Yes. The computer might restart more than once. + + You can also install Hyper-V using the Control Panel in Windows under **Turn Windows features on or off** (client OS), or using Server Manager's **Add Roles and Features Wizard** (server OS), as shown below: + + ![hyper-v feature](images/hyper-v-feature.png) + + ![hyper-v](images/svr_mgr2.png) + +### Download VHD and ISO files + +1. Create a directory on your Hyper-V host named C:\VHD and download a single [Windows Server 2012 R2 VHD](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2012-r2) from the TechNet Evaluation Center to the C:\VHD directory. + + **Important**: This guide assumes that VHDs are stored in the **C:\VHD** directory on the Hyper-V host. If you use a different directory to store VHDs, you must adjust steps in this guide appropriately. + + After completing registration you will be able to download the 7.47 GB Windows Server 2012 R2 evaluation VHD. + + ![VHD](images/download_vhd.png) + +2. Rename the VHD file that you downloaded to **2012R2-poc-1.vhd**. This is not required, but is done to make the filename simpler to recognize. +3. Copy the VHD to a second file also in the C:\VHD directory and name this VHD **2012R2-poc-2.vhd**. +4. Download the [Windows 10 Enterprise ISO](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise) from the TechNet Evaluation Center to the C:\VHD directory on your Hyper-V host. During registration, you must specify the type, version, and language of installation media to download. In this example, a Windows 10 Enterprise, 64 bit, English VHD is chosen. You can choose a different version if desired. Note that Windows 10 in-place upgrade is only possible if the source operating system and installation media are both 32-bit or both 64-bit, so you should download the file version that corresponds to the version of your source computer for upgrade testing. +5. Rename the ISO file that you downloaded to **w10-enterprise.iso**. Again, this is done so that the filename is simpler to type and recognize. After completing registration you will be able to download the 3.63 GB Windows 10 Enterprise evaluation ISO. + + The following commands and output display the procedures described in this section: + + ``` + C:\>mkdir VHD + + C:\>cd VHD + + C:\VHD>ren 9600*.vhd 2012R2-poc-1.vhd + + C:\VHD>copy 2012R2-poc-1.vhd 2012R2-poc-2.vhd + 1 file(s) copied. + + C:\VHD ren *.iso w10-enterprise.iso + C:\VHD>dir /B + 2012R2-poc-1.vhd + 2012R2-poc-2.vhd + w10-enterprise.iso + ``` + +### Convert PC to VHD + +**Important**:Before you convert a PC to VHD, verify that you have access to a local administrator account on the computer. Alternatively you can use a domain account with administrative rights if these credentials are cached on the computer and your domain policy allows the use of cached credentials for login. + +>For purposes of the test lab, you must use a PC with a single hard drive that is assigned a drive letter of C:. Systems with multiple hard drives or non-standard configurations can also be upgraded using PC refresh and replace scenarios, but these systems require more advanced deployment task sequences than those used in this lab. + +1. Download the [Disk2vhd utility](https://technet.microsoft.com/en-us/library/ee656415.aspx), extract the .zip file and copy disk2vhd.exe to a flash drive or other location that is accessible from the computer you wish to convert. + >Note: You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media. +2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. +3. Select checkboxes next to the volumes you wish to copy and specify a location to save the resulting VHD or VHDX file. If your Hyper-V host is running Windows Server 2008 R2 you must choose VHD, otherwise choose VHDX. +4. Click **Create** to start creating a VHDX file. + + >Disk2vhd can save VHDs to local hard drives, even if they are the same as the volumes being converted. Performance is better however when the VHD is saved on a disk different than those being converted, such as a flash drive. + +5. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHDX file (w7.vhdx) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory: + + ``` + C:\vhd>dir /B + 2012R2-poc-1.vhd + 2012R2-poc-2.vhd + w10-enterprise.iso + w7.VHDX + ``` +### Resize VHD + +The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to 80GB to support installing imaging tools and storing OS images. + +1. To add available space for the partition, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Resize-VHD –Path c:\VHD\2012R2-poc-2.vhd –SizeBytes 80GB + $x = (Mount-VHD –Path c:\VHD\2012R2-poc-2.vhd -passthru | Get-Disk | Get-Partition | Get-Volume).DriveLetter + Resize-Partition -DriveLetter $x -Size (Get-PartitionSupportedSize -DriveLetter $x).SizeMax + ``` + +2. Verify that the mounted VHD drive is resized to 80 GB, and then dismount the drive: + + ``` + Get-Volume -DriveLetter $x + Dismount-VHD –Path c:\VHD\2012R2-poc-2.vhd + ``` + +### Configure Hyper-V + +Note: The Hyper-V Windows PowerShell module is not available on Windows Server 2008 R2. For more information, see [Appendix A: Configuring Hyper-V settings on 2008 R2](#appendix-a-configuring-hyper-v-on-windows-server-2008-r2). + +**Important**:You should take advantage of [enhanced session mode](https://technet.microsoft.com/windows-server-docs/compute/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect) when completing instructions in this guide. Enhanced session mode enables you to copy and paste the commands. After copying some text, you can paste into a Windows PowerShell window by simply right-clicking. Before right-clicking, do not left click other locations as this can empty the clipboard. You can also copy and paste files directly from one computer to another by right-clicking and selecting copy, then right-clicking and selecting paste. + +Instructions to "type" commands provided in this guide can be typed, but in most cases the preferred method is to copy and paste these commands. + +1. Open an elevated Windows PowerShell window and type the following command to create two virtual switches named "poc-internal" and "poc-external": + >If the Hyper-V host already has an external virtual switch bound to a physical NIC, do not attempt to add a second external virtual switch. Attempting to add a second external switch will result in an error indicating that the NIC is "**already bound to the Microsoft Virtual Switch protocol.**" In this case, choose one of the following options:
+    a) Remove the existing external virtual switch, then add the poc-external switch
+    b) Rename the existing external switch to "poc-external"
+    c) Replace each instance of "poc-external" used in this guide with the name of your existing external virtual switch
+ If you choose b) or c), then do not run the second command below. + + ``` + New-VMSwitch -Name poc-internal -SwitchType Internal -Notes "PoC Network" + New-VMSwitch -Name poc-external -NetAdapterName (Get-NetAdapter |?{$_.Status -eq "Up" -and $_.NdisPhysicalMedium -eq 14}).Name -Notes "PoC External" + ``` + >Also, since an external virtual switch is associated to a physical network adapter on the Hyper-V host, this adapter must be specified when adding the virtual switch. This is automated in the example here by filtering for active ethernet adapters using the Get-NetAdapter cmdlet. If your Hyper-V host has multiple active ethernet adapters, this automation will not work, and the second command above will fail. In this case, you must edit the command used to add the "poc-external" virtual switch by inserting the specific value needed for the -NetAdapterName option. This value corresponds to the name of the network interface you wish to use. + +2. At the elevated Windows PowerShell prompt, type the following command to determine the megabytes of RAM that are currently available on the Hyper-V host: + + ``` + (Get-Counter -Counter @("\Memory\Available MBytes")).countersamples.cookedvalue + ``` + >This command will display the megabytes of RAM available. On a Hyper-V host computer with 16 GB of physical RAM installed, 12,000 MB of RAM or greater should be available if the computer is not also running other applications. If the computer has less than 12,000 MB of available RAM, try closing applications to free up more memory. + +3. Determine the available memory for VMs by dividing the available RAM by 4. For example: + + ``` + (Get-Counter -Counter @("\Memory\Available MBytes")).countersamples.cookedvalue/4 + 2775.5 + ``` + In this example, VMs can use a maximum of 2700 MB of RAM each, to run four VMs simultaneously. + +4. At the elevated Windows PowerShell prompt, type the following command to create three new VMs. The fourth VM will be added later. + >**Important**: Replace the value of 2700MB in the first command below with the RAM value that you calculated in the previous step: + + ``` + $maxRAM = 2700MB + New-VM –Name "DC1" –VHDPath c:\vhd\2012R2-poc-1.vhd -SwitchName poc-internal + Set-VMMemory -VMName "DC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20 + Enable-VMIntegrationService –Name "Guest Service Interface" -VMName DC1 + New-VM –Name "SRV1" –VHDPath c:\vhd\2012R2-poc-2.vhd -SwitchName poc-internal + Add-VMNetworkAdapter -VMName "SRV1" -SwitchName "poc-external" + Set-VMMemory -VMName "SRV1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 80 + Enable-VMIntegrationService –Name "Guest Service Interface" -VMName SRV1 + New-VM –Name "PC1" –VHDPath c:\vhd\w7.vhdx -SwitchName poc-internal + Set-VMMemory -VMName "PC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20 + Enable-VMIntegrationService –Name "Guest Service Interface" -VMName PC1 + ``` + +### Configure VHDs + +1. At an elevated Windows PowerShell prompt on the Hyper-V host, start the first VM by typing the following command: + + ``` + Start-VM DC1 + ``` +2. Wait for the VM to complete starting up, and then connect to it either using the Hyper-V Manager console (virtmgmt.msc) or using an elevated command prompt on the Hyper-V host: + + ``` + vmconnect localhost DC1 + ``` +3. Click **Next** to accept the default settings, read the license terms and click **I accept**, provide an administrator password of **pass@word1**, and click **Finish**. +4. Sign in to DC1 using the local administrator account. Right-click **Start**, point to **Shut down or sign out**, and click **Sign out**. The VM connection will reset and a new connection dialog box will appear enabling you to choose a custom display configuration. Select a desktop size, click **Connect** and sign in with the local Administrator account. Note: Signing in this way ensures that [enhanced session mode](https://technet.microsoft.com/windows-server-docs/compute/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect) is enabled. It is only necessary to do this the first time you sign in to a new VM. +5. If DC1 is configured as described in this guide, it will currently be assigned an APIPA address, have a randomly generated hostname, and a single network adapter named "Ethernet." Open an elevated Windows PowerShell prompt on DC1 and type or paste the following commands to provide a new hostname and configure a static IP address and gateway: + + ``` + Rename-Computer DC1 + New-NetIPAddress –InterfaceAlias Ethernet –IPAddress 192.168.0.1 –PrefixLength 24 -DefaultGateway 192.168.0.2 + Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses 192.168.0.1,192.168.0.2 + ``` + >The default gateway at 192.168.0.2 will be configured later in this guide. +6. Install the Active Directory Domain Services role by typing the following command at an elevated Windows PowerShell prompt: + + ``` + Install-WindowsFeature -Name AD-Domain-Services -IncludeAllSubFeature -IncludeManagementTools + ``` + +7. Before promoting DC1 to a Domain Controller, you must reboot so that the name change in step 3 above takes effect. To restart the computer, type the following command at an elevated Windows PowerShell prompt: + + ``` + Restart-Computer + ``` + +8. When DC1 has rebooted, sign in again and open an elevated Windows PowerShell prompt. Now you can promote the server to be a domain controller. The directory services restore mode password must be entered as a secure string: + + ``` + $pass = "pass@word1" | ConvertTo-SecureString -AsPlainText -Force + Install-ADDSForest -DomainName contoso.com -InstallDns -SafeModeAdministratorPassword $pass -Force + ``` + Ignore any warnings that are displayed. The computer will automatically reboot upon completion. +9. When the reboot has completed, reconnect to DC1, sign in using the CONTOSO\Administrator account, open an elevated Windows PowerShell prompt, and use the following commands to add a reverse lookup zone for the PoC network, add the DHCP Server role, authorize DHCP in Active Directory, and supress the post-DHCP-install alert: + + ``` + Add-DnsServerPrimaryZone -NetworkID "192.168.0.0/24" -ReplicationScope Forest + Add-WindowsFeature -Name DHCP -IncludeManagementTools + netsh dhcp add securitygroups + Restart-Service DHCPServer + Add-DhcpServerInDC dc1.contoso.com 192.168.0.1 + Set-ItemProperty –Path registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\Roles\12 –Name ConfigurationState –Value 2 + ``` +10. Next, add a DHCP scope and set option values: + + ``` + Add-DhcpServerv4Scope -Name "PoC Scope" -StartRange 192.168.0.100 -EndRange 192.168.0.199 -SubnetMask 255.255.255.0 -Description "Windows 10 PoC" -State Active + Set-DhcpServerv4OptionValue -ScopeId 192.168.0.0 -DnsDomain contoso.com -Router 192.168.0.2 -DnsServer 192.168.0.1,192.168.0.2 -Force + ``` + >The -Force option is necessary when adding scope options to skip validation of 192.168.0.2 as a DNS server because we have not configured it yet. The scope should immediately begin issuing leases on the PoC network. The first DHCP lease that will be issued is to vEthernet interface on the Hyper-V host, which is a member of the internal network. +11. Add a user account to the contoso.com domain that can be used with client computers: + + ``` + New-ADUser -Name "User1" -UserPrincipalName user1 -AccountPassword (ConvertTo-SecureString "pass@word1" -AsPlainText -Force) -ChangePasswordAtLogon $false -Enabled $true + ``` +12. The DNS server role will also be installed on the member server, SRV1, at 192.168.0.2 so that we can forward DNS queries from DC1 to SRV1 to resolve Internet names without having to configure a forwarder outside the PoC network. Since the IP address of SRV1 already existed on DC1's network adapter, it will be automatically added during the DCPROMO process. To verify this server-level DNS forwarder on DC1, type the following command at an elevated Windows PowerShell prompt on DC1: + + ``` + Get-DnsServerForwarder + ``` + The following output should be displayed: + ``` + UseRootHint : True + Timeout(s) : 3 + EnableReordering : True + IPAddress : 192.168.0.2 + ReorderedIPAddress : 192.168.0.2 + ``` + If this output is not displayed, you can use the following command to add SRV1 as a forwarder: + ``` + Add-DnsServerForwarder -IPAddress 192.168.0.2 + ``` +13. Minimize the DC1 VM window but **do not stop** the VM. + + Next, the client VM will be started and joined to the contoso.com domain. This is done before adding a gateway to the PoC network so that there is no danger of duplicate DNS registrations for the physical client and its cloned VM in the corporate domain. + +14. Using an elevated Windows PowerShell prompt on the Hyper-V host, start the client VM (PC1), and connect to it: + ``` + Start-VM PC1 + vmconnect localhost PC1 + ``` +15. Sign on to PC1 using an account that has local administrator rights. + + >PC1 will be disconnected from its current domain, so you cannot use a domain account to sign on unless these credentials are cached and the use of cached credentials is permitted by Group Policy. If cached credentials are available and permitted, you can use these credentials to sign in. Otherwise, use an existing local administrator account. +16. After signing in, the operating system detects that it is running in a new environment. New drivers will be automatically installed, including the network adapter driver. The network adapter driver must be updated before you can proceed, so that you will be able to join the contoso.com domain. Depending on the resources allocated to PC1, installing the network adapter driver might take a few minutes. + + ![PoC](images/installing-drivers.png) + + >If the client was configured with a static address, you must change this to a dynamic one so that it can obtain a DHCP lease. + +17. When the new network adapter driver has completed installation, you will receive an alert to set a network location for the contoso.com network. Select **Work network** and then click **Close**. When you receive an alert that a restart is required, click **Restart Later**. +18. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. + + To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." + + ``` + ipconfig + + Windows IP Configuration + + Ethernet adapter Local Area Connection 3: + Connection-specific DNS Suffix . : contoso.com + Link-local IPv6 Address . . . . . : fe80::64c2:4d2a:7403:6e02%18 + Ipv4 Address. . . . . . . . . . . : 192.168.0.101 + Subnet Mask . . . . . . . . . . . : 255.255.255.0 + Default Gateway . . . . . . . . . : 192.168.0.2 + + ping dc1.contoso.com + + Pinging dc1.contoso.com [192.168.0.1] with 32 bytes of data: + Reply from 192.168.0.1: bytes=32 time<1ms TTL=128 + Reply from 192.168.0.1: bytes=32 time<1ms TTL=128 + Reply from 192.168.0.1: bytes=32 time<1ms TTL=128 + Reply from 192.168.0.1: bytes=32 time<1ms TTL=128 + + nltest /dsgetdc:contoso.com + DC: \\DC1 + Address: \\192.168.0.1 + Dom Guid: fdbd0643-d664-411b-aea0-fe343d7670a8 + Dom Name: CONTOSO + Forest Name: contoso.com + Dc Site Name: Default-First-Site-Name + Our Site Name: Default-First-Site-Name + Flags: PDC GC DS LDAP KDC TIMESERV WRITABLE DNS_FOREST CLOSE_SITE FULL_SECRET WS 0xC000 + ``` +>If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. + +19. Open an elevated Windows PowerShell ISE window on the Hyper-V host and type the following commands in the (upper) script editor pane: + + ``` + (Get-WmiObject Win32_ComputerSystem).UnjoinDomainOrWorkgroup($null,$null,0) + $pass = "pass@word1" | ConvertTo-SecureString -AsPlainText -Force + $user = "contoso\administrator" + $cred = New-Object System.Management.Automation.PSCredential($user,$pass) + Add-Computer -DomainName contoso.com -Credential $cred + Restart-Computer + ``` +20. Click **File**, click **Save As**, and save the commands as **c:\VHD\ps1.ps1** on the Hyper-V host. +21. In the (lower) terminal input window, type the following command to copy the script to PC1 using integration services: + + ``` + Copy-VMFile "PC1" –SourcePath "C:\VHD\pc1.ps1" –DestinationPath "C:\pc1.ps1" –CreateFullPath –FileSource Host + ``` + >In order for this command to work properly, PC1 must be running the vmicguestinterface (Hyper-V Guest Service Interface) service. +22. On PC1, type the following commands at an elevated Windows PowerShell prompt: + + ``` + Get-Content c:\pc1.ps1 | powershell.exe -noprofile - + ``` + + >PC1 is removed from its domain in this step while not connected to the corporate network so as to ensure the computer object in the corporate domain is unaffected. We have not also renamed PC1 to "PC1" in system properties so that it maintains some of its mirrored identity. However, if desired you can also rename the computer. + +23. After PC1 restarts, sign in to the contoso.com domain with the (user1) account you created in step 11 of this section. + >The settings that will be used to migrate user data specifically select only accounts that belong to the CONTOSO domain. If you wish to test migration of user data and settings with an account other than the user1 account, you must copy this account's profile to the user1 profile. +24. Minimize the PC1 window but do not turn it off while the second Windows Server 2012 R2 VM (SRV1) is configured. This verifies that the Hyper-V host has enough resources to run all VMs simultaneously. Next, SRV1 will be started, joined to the contoso.com domain, and configured with RRAS and DNS services. +25. On the Hyper-V host computer, at an elevated Windows PowerShell prompt, type the following commands: + + ``` + Start-VM SRV1 + vmconnect localhost SRV1 + ``` +26. Accept the default settings, read license terms and accept them, provide an administrator password of **pass@word1**, and click **Finish**. When you are prompted about finding PCs, devices, and content on the network, click **Yes**. +27. Sign in to SRV1 using the local administrator account. In the same way that was done on DC1, sign out of SRV1 and then sign in again to enable enhanced session mode. This will enable you to copy and paste Windows PowerShell commands from the Hyper-V host to the VM. +28. Open an elevated Windows PowerShell prompt on SRV1 and type the following commands: + + ``` + Rename-Computer SRV1 + New-NetIPAddress –InterfaceAlias Ethernet –IPAddress 192.168.0.2 –PrefixLength 24 + Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses 192.168.0.1,192.168.0.2 + Restart-Computer + ``` +29. Wait for the computer to restart, then type or paste the following commands at an elevated Windows PowerShell prompt: + + ``` + $pass = "pass@word1" | ConvertTo-SecureString -AsPlainText -Force + $user = "contoso\administrator" + $cred = New-Object System.Management.Automation.PSCredential($user,$pass) + Add-Computer -DomainName contoso.com -Credential $cred + Restart-Computer + ``` +30. Sign in to the contoso.com domain on SRV1 using the domain administrator account (enter contoso\administrator as the user), open an elevated Windows PowerShell prompt, and type the following commands: + + ``` + Install-WindowsFeature -Name DNS -IncludeManagementTools + Install-WindowsFeature -Name WDS -IncludeManagementTools + Install-WindowsFeature -Name Routing -IncludeManagementTools + ``` +31. Before configuring the routing service that was just installed, verify that network interfaces were added to SRV1 in the right order, resulting in an interface alias of "Ethernet" for the private interface, and an interface alias of "Ethernet 2" for the public interface. Also verify that the external interface has a valid external DHCP IP address lease. + + To view a list of interfaces, associated interface aliases, and IP addresses on SRV1, type the following Windows PowerShell command. Example output of the command is also shown below: + + ``` + Get-NetAdapter | ? status -eq ‘up’ | Get-NetIPAddress -AddressFamily IPv4 | ft IPAddress, InterfaceAlias + + IPAddress InterfaceAlias + --------- -------------- + 10.137.130.118 Ethernet 2 + 192.168.0.2 Ethernet + ``` + In this example, the poc-internal network interface at 192.168.0.2 is associated with the "Ethernet" interface and the Internet-facing poc-external interface is associated with the "Ethernet 2" interface. If your interfaces are different, you must adjust the commands provided in the next step appropriately to configure routing services. + +32. To configure SRV1 with routing capability for the PoC network, type or paste the following commands at an elevated Windows PowerShell prompt on SRV1: + + ``` + Install-RemoteAccess -VpnType Vpn + cmd /c netsh routing ip nat install + cmd /c netsh routing ip nat add interface name="Ethernet 2" mode=FULL + cmd /c netsh routing ip nat add interface name="Ethernet" mode=PRIVATE + cmd /c netsh routing ip nat add interface name="Internal" mode=PRIVATE + ``` +33. The DNS service on SRV1 also needs to resolve hosts in the contoso.com domain. This can be accomplished with a conditional forwarder. Open an elevated Windows PowerShell prompt on SRV1 and type the following command: + + ``` + Add-DnsServerConditionalForwarderZone -Name contoso.com -MasterServers 192.168.0.1 + ``` +34. In most cases, this completes configuration of the PoC network. However, if your corporate network has a firewall that filters queries from local DNS servers, you will also need to configure a server-level DNS forwarder on SRV1 to resolve Internet names. To test whether or not DNS is working without this forwarder, try to reach a name on the Internet from DC1 or PC1, which are only using DNS services on the PoC network. You can test DNS with the ping command, for example: + + ``` + ping www.microsoft.com + ``` + If you see "Ping request could not find host www.microsoft.com" on PC1 and DC1, but not on SRV1, then you will need to configure a server-level DNS forwarder on SRV1. To do this, open an elevated Windows PowerShell prompt on SRV1 and type the following command. + + **Note**: This command also assumes that "Ethernet 2" is the external-facing network adapter on SRV1. If the external adapter has a different name, replace "Ethernet 2" in the command below with that name: + + ``` + Add-DnsServerForwarder -IPAddress (Get-DnsClientServerAddress -InterfaceAlias "Ethernet 2").ServerAddresses + ``` +35. If DNS and routing are both working correctly, you will see the following on DC1 and PC1: + + ``` + PS C:\> ping www.microsoft.com + + Pinging e2847.dspb.akamaiedge.net [23.222.146.170] with 32 bytes of data: + Reply from 23.222.146.170: bytes=32 time=3ms TTL=51 + Reply from 23.222.146.170: bytes=32 time=2ms TTL=51 + Reply from 23.222.146.170: bytes=32 time=2ms TTL=51 + Reply from 23.222.146.170: bytes=32 time=1ms TTL=51 + + Ping statistics for 23.222.146.170: + Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), + Approximate round trip times in milli-seconds: + Minimum = 1ms, Maximum = 3ms, Average = 2ms + ``` +36. Verify that all three VMs can reach each other, and the Internet. See [Appendix B: Verify the configuration](#appendix-b-verify-the-configuration) for more information. +37. Lastly, because the client computer has different hardware after copying it to a VM, its Windows activation will be invalidated and you might receive a message that you must activate Windows in 3 days. To extend this period to 30 days, type the following commands at an elevated Windows PowerShell prompt on PC1: + + ``` + slmgr -rearm + Restart-Computer + ``` + +## Appendix A: Configuring Hyper-V on Windows Server 2008 R2 + +If your Hyper-V host is running Windows Server 2008 R2, several of the steps in this guide will not work because they use the Hyper-V Module for Windows PowerShell, which is not available on Windows Server 2008 R2. + +To manage Hyper-V on Windows Server 2008 R2, you can use Hyper-V WMI, or you can use the Hyper-V Manager console. + +An example that uses Hyper-V WMI to create a virtual switch on Windows Server 2008 R2 is provided below. Converting all Hyper-V module commands used in this guide to Hyper-V WMI is beyond the scope of the guide. If you must use a Hyper-V host running Windows Server 2008 R2, the steps in the guide can be accomplished by using the Hyper-V Manager console. + +``` +$SwitchFriendlyName = "poc-internal" +$InternalEthernetPortFriendlyName = $SwitchFriendlyName +$InternalSwitchPortFriendlyName = "poc" +$SwitchName = [guid]::NewGuid().ToString() +$InternalSwitchPortName = [guid]::NewGuid().ToString() +$InternalEthernetPortName = [guid]::NewGuid().ToString() +$NumLearnableAddresses = 1024 +$ScopeOfResidence = "" +$VirtualSwitchManagementService = gwmi Msvm_VirtualSwitchManagementService -namespace "root\virtualization" +$Result = $VirtualSwitchManagementService.CreateSwitch($SwitchName, $SwitchFriendlyName, $NumLearnableAddresses, $ScopeOfResidence) +$Switch = [WMI]$Result.CreatedVirtualSwitch +$Result = $VirtualSwitchManagementService.CreateSwitchPort($Switch, $InternalSwitchPortName, $InternalSwitchPortFriendlyName, $ScopeOfResidence) +$InternalSwitchPort = [WMI]$Result.CreatedSwitchPort +$Result = $VirtualSwitchManagementService.CreateInternalEthernetPortDynamicMac($InternalEthernetPortName, $InternalEthernetPortFriendlyName) +$InternalEthernetPort = [WMI]$Result.CreatedInternalEthernetPort +$query = "Associators of {$InternalEthernetPort} Where ResultClass=CIM_LanEndpoint" +$InternalLanEndPoint = gwmi -namespace root\virtualization -query $query +$Result = $VirtualSwitchManagementService.ConnectSwitchPort($InternalSwitchPort, $InternalLanEndPoint) +$filter = "SettingID='" + $InternalEthernetPort.DeviceID +"'" +$NetworkAdapterConfiguration = gwmi Win32_NetworkAdapterConfiguration -filter $filter +``` +To install Hyper-V on Windows Server 2008 R2, you can use the Add-WindowsFeature cmdlet: + +``` +Add-WindowsFeature -Name Hyper-V +``` +For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library. + +## Appendix B: Verify the configuration + +Use the following procedures to verify that the PoC environment is configured properly and working as expected. + +1. On DC1, open an elevated Windows PowerShell prompt and type the following commands: + + ``` + Get-Service NTDS,DNS,DHCP + DCDiag -a + Get-DnsServerResourceRecord -ZoneName contoso.com -RRType A + Get-DnsServerForwarder + Resolve-DnsName -Server dc1.contoso.com -Name www.microsoft.com + Get-DhcpServerInDC + Get-DhcpServerv4Statistics + ipconfig /all + ``` + **Get-Service** displays a status of "Running" for all three services.
+ **DCDiag** displays "passed test" for all tests.
+ **Get-DnsServerResourceRecord** displays the correct DNS address records for DC1, SRV1, and the computername of PC1. Additional address records for the zone apex (@), DomainDnsZones, and ForestDnsZones will also be registered.
+ **Get-DnsServerForwarder** displays a single forwarder of 192.168.0.2.
+ **Resolve-DnsName** displays public IP address results for www.microsoft.com.
+ **Get-DhcpServerInDC** displays 192.168.0.1, dc1.contoso.com.
+ **Get-DhcpServerv4Statistics** displays 1 scope with 2 addresses in use (these belong to PC1 and the Hyper-V host).
+ **ipconfig** displays a primary DNS suffix and suffix search list of contoso.com, IP address of 192.168.0.1, subnet mask of 255.255.255.0, default gateway of 192.168.0.2, and DNS server addresses of 192.168.0.1 and 192.168.0.2. + +2. On SRV1, open an elevated Windows PowerShell prompt and type the following commands: + + ``` + Get-Service DNS,RemoteAccess + Get-DnsServerForwarder + Resolve-DnsName -Server dc1.contoso.com -Name www.microsoft.com + ipconfig /all + netsh int ipv4 show address + ``` + **Get-Service** displays a status of "Running" for both services.
+ **Get-DnsServerForwarder** either displays no forwarders, or displays a list of forwarders you are required to use so that SRV1 can resolve Internet names.
+ **Resolve-DnsName** displays public IP address results for www.microsoft.com.
+ **ipconfig** displays a primary DNS suffix of contoso.com. The suffix search list contains contoso.com and your corporate domain. Two ethernet adapters are shown: Ethernet adapter "Ethernet" has an IP addresses of 192.168.0.2, subnet mask of 255.255.255.0, no default gateway, and DNS server addresses of 192.168.0.1 and 192.168.0.2. Ethernet adapter "Ethernet 2" has an IP address, subnet mask, and default gateway configured by DHCP on your corporate network.
+ **netsh** displays three interfaces on the computer: interface "Ethernet 2" with DHCP enabled = Yes and IP address assigned by your corporate network, interface "Ethernet" with DHCP enabled = No and IP address of 192.168.0.2, and interface "Loopback Pseudo-Interface 1" with IP address of 127.0.0.1. + +3. On PC1, open an elevated Windows PowerShell prompt and type the following commands: + + ``` + whoami + hostname + nslookup www.microsoft.com + ping -n 1 dc1.contoso.com + tracert www.microsoft.com + ``` + **whoami** displays the current user context, for example in an elevated Windows PowerShell prompt, contoso\administrator is displayed.
+ **hostname** displays the name of the local computer, for example W7PC-001.
+ **nslookup** displays the DNS server used for the query, and the results of the query. For example, server dc1.contoso.com, address 192.168.0.1, Name e2847.dspb.akamaiedge.net.
+ **ping** displays if the source can resolve the target name, and whether or not the target responds to ICMP. If it cannot be resolved, "..could not find host" will be diplayed and if the target is found and also responds to ICMP, you will see "Reply from" and the IP address of the target.
+ **tracert** displays the path to reach the destination, for example srv1.contoso.com [192.168.0.2] followed by a list of hosts and IP addresses corresponding to subsequent routing nodes between the source and the destination. + +## Related Topics + +[Windows 10 deployment scenarios](windows-10-deployment-scenarios.md) +  + +  + + + + + From 8f6a93a0d4cae8fd47bb8ae7f752c82d885afad5 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 7 Oct 2016 14:31:35 -0700 Subject: [PATCH 002/233] 111 --- windows/deploy/windows-10-poc.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index b0ae64f27e..ac6fab68da 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -209,14 +209,10 @@ The lab architecture is summarized in the following diagram: ``` C:\>mkdir VHD - C:\>cd VHD - C:\VHD>ren 9600*.vhd 2012R2-poc-1.vhd - C:\VHD>copy 2012R2-poc-1.vhd 2012R2-poc-2.vhd 1 file(s) copied. - C:\VHD ren *.iso w10-enterprise.iso C:\VHD>dir /B 2012R2-poc-1.vhd From 6252c64f440055a4d160c3ddcbcf49e7ad99145a Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 7 Oct 2016 14:46:24 -0700 Subject: [PATCH 003/233] 2222 --- windows/deploy/windows-10-poc.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index ac6fab68da..7719a3566d 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -224,10 +224,12 @@ The lab architecture is summarized in the following diagram: **Important**:Before you convert a PC to VHD, verify that you have access to a local administrator account on the computer. Alternatively you can use a domain account with administrative rights if these credentials are cached on the computer and your domain policy allows the use of cached credentials for login. ->For purposes of the test lab, you must use a PC with a single hard drive that is assigned a drive letter of C:. Systems with multiple hard drives or non-standard configurations can also be upgraded using PC refresh and replace scenarios, but these systems require more advanced deployment task sequences than those used in this lab. +>For purposes of the test lab, you must use a PC with a single hard drive that is assigned a drive letter of C. Systems with multiple hard drives or non-standard configurations can also be upgraded using PC refresh and replace scenarios, but these systems require more advanced deployment task sequences than those used in this lab. 1. Download the [Disk2vhd utility](https://technet.microsoft.com/en-us/library/ee656415.aspx), extract the .zip file and copy disk2vhd.exe to a flash drive or other location that is accessible from the computer you wish to convert. + >Note: You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media. + 2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. 3. Select checkboxes next to the volumes you wish to copy and specify a location to save the resulting VHD or VHDX file. If your Hyper-V host is running Windows Server 2008 R2 you must choose VHD, otherwise choose VHDX. 4. Click **Create** to start creating a VHDX file. From cd39c1b168ec8a6cf6d20bea9ea82849f5174093 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 12 Oct 2016 12:02:42 -0700 Subject: [PATCH 004/233] switched appendix --- windows/deploy/windows-10-poc.md | 90 +++++++++++++++----------------- 1 file changed, 43 insertions(+), 47 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 7719a3566d..ebee9eaef5 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -14,14 +14,10 @@ author: greg-lindsay - Windows 10 -If you are interested in upgrading to Windows 10 and want to know more about the upgrade process, then keep reading... - -Do you have a computer running Windows 8 or later with 16GB of RAM? If so, then you have everything you need to set up a Windows 10 test lab. You can even clone computers from your network and see exactly what happens when they are upgraded to Windows 10. +If you have a computer running Windows 8.1 or later with 16GB of RAM, then you have everything you need to set up a Windows 10 test lab. This guide provides step-by-step instructions for configuring a proof of concept (PoC) environment where you can deploy Windows 10. The PoC enviroment is configured using Hyper-V and a minimum amount of resources. Simple to use Windows PowerShell commands are provided for setting up the test lab. ## In this guide -This guide provides step-by-step instructions for configuring a proof of concept (PoC) environment where you can deploy Windows 10. The PoC enviroment is configured using Hyper-V and a minimum amount of resources. Simple to use Windows PowerShell commands are provided for setting up the test lab. - The following topics and procedures are provided in this guide: - [Hardware and software requirements](#hardware-and-software-requirements): Prerequisites to complete this guide.
@@ -33,10 +29,8 @@ The following topics and procedures are provided in this guide: - [Resize VHD](#resize-vhd): Increase the storage capacity for one of the Windows Server VMs. - [Configure Hyper-V](#configure-hyper-v): Create virtual switches, determine available RAM for virtual machines, and add virtual machines. - [Configure VHDs](#configure-vhds): Start virtual machines and configure all services and settings. - -The following optional topics are also available: -- [Appendix A: Configuring Hyper-V on Windows Server 2008 R2](#appendix-a-configuring-hyper-v-on-windows-server-2008-r2): Information about using this guide with a Hyper-V host running Windows Server 2008 R2. -- [Appendix B: Verify the configuration](#appendix-b-verify-the-configuration): Verify and troubleshoot network connectivity and services in the PoC environment. +- [Appendix A: Verify the configuration](#appendix-a-verify-the-configuration): Verify and troubleshoot network connectivity and services in the PoC environment. +- [Appendix B: Configuring Hyper-V on Windows Server 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2): Information about using this guide with a Hyper-V host running Windows Server 2008 R2. When you have completed the steps in this guide, see the following topics for step by step instructions to deploy Windows 10 using the PoC environment under common scenarios with current deployment tools: @@ -576,44 +570,7 @@ Instructions to "type" commands provided in this guide can be typed, but in most Restart-Computer ``` -## Appendix A: Configuring Hyper-V on Windows Server 2008 R2 - -If your Hyper-V host is running Windows Server 2008 R2, several of the steps in this guide will not work because they use the Hyper-V Module for Windows PowerShell, which is not available on Windows Server 2008 R2. - -To manage Hyper-V on Windows Server 2008 R2, you can use Hyper-V WMI, or you can use the Hyper-V Manager console. - -An example that uses Hyper-V WMI to create a virtual switch on Windows Server 2008 R2 is provided below. Converting all Hyper-V module commands used in this guide to Hyper-V WMI is beyond the scope of the guide. If you must use a Hyper-V host running Windows Server 2008 R2, the steps in the guide can be accomplished by using the Hyper-V Manager console. - -``` -$SwitchFriendlyName = "poc-internal" -$InternalEthernetPortFriendlyName = $SwitchFriendlyName -$InternalSwitchPortFriendlyName = "poc" -$SwitchName = [guid]::NewGuid().ToString() -$InternalSwitchPortName = [guid]::NewGuid().ToString() -$InternalEthernetPortName = [guid]::NewGuid().ToString() -$NumLearnableAddresses = 1024 -$ScopeOfResidence = "" -$VirtualSwitchManagementService = gwmi Msvm_VirtualSwitchManagementService -namespace "root\virtualization" -$Result = $VirtualSwitchManagementService.CreateSwitch($SwitchName, $SwitchFriendlyName, $NumLearnableAddresses, $ScopeOfResidence) -$Switch = [WMI]$Result.CreatedVirtualSwitch -$Result = $VirtualSwitchManagementService.CreateSwitchPort($Switch, $InternalSwitchPortName, $InternalSwitchPortFriendlyName, $ScopeOfResidence) -$InternalSwitchPort = [WMI]$Result.CreatedSwitchPort -$Result = $VirtualSwitchManagementService.CreateInternalEthernetPortDynamicMac($InternalEthernetPortName, $InternalEthernetPortFriendlyName) -$InternalEthernetPort = [WMI]$Result.CreatedInternalEthernetPort -$query = "Associators of {$InternalEthernetPort} Where ResultClass=CIM_LanEndpoint" -$InternalLanEndPoint = gwmi -namespace root\virtualization -query $query -$Result = $VirtualSwitchManagementService.ConnectSwitchPort($InternalSwitchPort, $InternalLanEndPoint) -$filter = "SettingID='" + $InternalEthernetPort.DeviceID +"'" -$NetworkAdapterConfiguration = gwmi Win32_NetworkAdapterConfiguration -filter $filter -``` -To install Hyper-V on Windows Server 2008 R2, you can use the Add-WindowsFeature cmdlet: - -``` -Add-WindowsFeature -Name Hyper-V -``` -For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library. - -## Appendix B: Verify the configuration +## Appendix A: Verify the configuration Use the following procedures to verify that the PoC environment is configured properly and working as expected. @@ -668,6 +625,45 @@ Use the following procedures to verify that the PoC environment is configured pr **ping** displays if the source can resolve the target name, and whether or not the target responds to ICMP. If it cannot be resolved, "..could not find host" will be diplayed and if the target is found and also responds to ICMP, you will see "Reply from" and the IP address of the target.
**tracert** displays the path to reach the destination, for example srv1.contoso.com [192.168.0.2] followed by a list of hosts and IP addresses corresponding to subsequent routing nodes between the source and the destination. +## Appendix B: Configuring Hyper-V on Windows Server 2008 R2 + +If your Hyper-V host is running Windows Server 2008 R2, several of the steps in this guide will not work because they use the Hyper-V Module for Windows PowerShell, which is not available on Windows Server 2008 R2. + +To manage Hyper-V on Windows Server 2008 R2, you can use Hyper-V WMI, or you can use the Hyper-V Manager console. + +An example that uses Hyper-V WMI to create a virtual switch on Windows Server 2008 R2 is provided below. Converting all Hyper-V module commands used in this guide to Hyper-V WMI is beyond the scope of the guide. If you must use a Hyper-V host running Windows Server 2008 R2, the steps in the guide can be accomplished by using the Hyper-V Manager console. + +``` +$SwitchFriendlyName = "poc-internal" +$InternalEthernetPortFriendlyName = $SwitchFriendlyName +$InternalSwitchPortFriendlyName = "poc" +$SwitchName = [guid]::NewGuid().ToString() +$InternalSwitchPortName = [guid]::NewGuid().ToString() +$InternalEthernetPortName = [guid]::NewGuid().ToString() +$NumLearnableAddresses = 1024 +$ScopeOfResidence = "" +$VirtualSwitchManagementService = gwmi Msvm_VirtualSwitchManagementService -namespace "root\virtualization" +$Result = $VirtualSwitchManagementService.CreateSwitch($SwitchName, $SwitchFriendlyName, $NumLearnableAddresses, $ScopeOfResidence) +$Switch = [WMI]$Result.CreatedVirtualSwitch +$Result = $VirtualSwitchManagementService.CreateSwitchPort($Switch, $InternalSwitchPortName, $InternalSwitchPortFriendlyName, $ScopeOfResidence) +$InternalSwitchPort = [WMI]$Result.CreatedSwitchPort +$Result = $VirtualSwitchManagementService.CreateInternalEthernetPortDynamicMac($InternalEthernetPortName, $InternalEthernetPortFriendlyName) +$InternalEthernetPort = [WMI]$Result.CreatedInternalEthernetPort +$query = "Associators of {$InternalEthernetPort} Where ResultClass=CIM_LanEndpoint" +$InternalLanEndPoint = gwmi -namespace root\virtualization -query $query +$Result = $VirtualSwitchManagementService.ConnectSwitchPort($InternalSwitchPort, $InternalLanEndPoint) +$filter = "SettingID='" + $InternalEthernetPort.DeviceID +"'" +$NetworkAdapterConfiguration = gwmi Win32_NetworkAdapterConfiguration -filter $filter +``` +To install Hyper-V on Windows Server 2008 R2, you can use the Add-WindowsFeature cmdlet: + +``` +Add-WindowsFeature -Name Hyper-V +``` +For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library. + + + ## Related Topics [Windows 10 deployment scenarios](windows-10-deployment-scenarios.md) From d262f205169b0d411dd2739458d108598820f43f Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 12 Oct 2016 14:04:17 -0700 Subject: [PATCH 005/233] rewrite --- windows/deploy/images/PoC-big.png | Bin 0 -> 97482 bytes windows/deploy/images/PoC.png | Bin 97482 -> 139787 bytes windows/deploy/windows-10-poc.md | 50 +++++++++++++++++------------- 3 files changed, 28 insertions(+), 22 deletions(-) create mode 100644 windows/deploy/images/PoC-big.png diff --git a/windows/deploy/images/PoC-big.png b/windows/deploy/images/PoC-big.png new file mode 100644 index 0000000000000000000000000000000000000000..de735060713214af014b38b0b9fd530ff38203d8 GIT binary patch literal 97482 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%0A{co3N_^dbY)h)$$tN*pT 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%0A{co3N_^dbY)h)$$tN*pT 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 q)SuDcJ=PuZtx7> -- [Lab setup](#lab-setup): A description and diagram of the PoC environment that is configured.
-- [Configure the PoC environment](#configure-the-poc-environment): Step by step guidance for the following procedures: - - [Verify support and install Hyper-V](#verify-support-and-install-hyper-v): Verify that installation of Hyper-V is supported, and install the Hyper-V server role. - - [Download VHD and ISO files](#download-vhd-and-iso-files): Download evaluation versions of Windows Server 2012 R2 and Windows 10 and prepare these files to be used on the Hyper-V host. - - [Convert PC to VHD](#convert-pc-to-vhd): Convert a physical computer on your network to a VHDX file and prepare it to be used on the Hyper-V host. - - [Resize VHD](#resize-vhd): Increase the storage capacity for one of the Windows Server VMs. - - [Configure Hyper-V](#configure-hyper-v): Create virtual switches, determine available RAM for virtual machines, and add virtual machines. - - [Configure VHDs](#configure-vhds): Start virtual machines and configure all services and settings. -- [Appendix A: Verify the configuration](#appendix-a-verify-the-configuration): Verify and troubleshoot network connectivity and services in the PoC environment. -- [Appendix B: Configuring Hyper-V on Windows Server 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2): Information about using this guide with a Hyper-V host running Windows Server 2008 R2. - -When you have completed the steps in this guide, see the following topics for step by step instructions to deploy Windows 10 using the PoC environment under common scenarios with current deployment tools: +When you have completed the steps in this guide, the following topics provide step by step instructions to deploy Windows 10 using the PoC environment and current deployment tools: - [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md) - [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) +The PoC enviroment is configured using Hyper-V and a minimum amount of resources. Simple to use Windows PowerShell commands are provided for setting up the test lab. + +## In this guide + +The following topics and procedures are provided in this guide. An estimate of the time required to complete each procedure is also provided. The amount of time required to complete these procedures will vary greatly depending on the resources available to the Hyper-V host, and subsequently to the hosted VMs, such as processor speed, disk speed, and network speed. + + +
TopicDescriptionTime required +
[Hardware and software requirements](#hardware-and-software-requirements)Prerequisites to complete this guide.10 minutes +
[Lab setup](#lab-setup)A description and diagram of the PoC environment that is configured.5 minutes +
[Configure the PoC environment](#configure-the-poc-environment)Parent topic for procedures. +
[Verify support and install Hyper-V](#verify-support-and-install-hyper-v)Verify that installation of Hyper-V is supported, and install the Hyper-V server role.10 minutes +
[Download VHD and ISO files](#download-vhd-and-iso-files)Download evaluation versions of Windows Server 2012 R2 and Windows 10 and prepare these files to be used on the Hyper-V host.30 minutes +
[Convert PC to VHD](#convert-pc-to-vhd)Convert a physical computer on your network to a VHDX file and prepare it to be used on the Hyper-V host.30 minutes +
[Resize VHD](#resize-vhd)Increase the storage capacity for one of the Windows Server VMs.5 minutes +
[Configure Hyper-V](#configure-hyper-v)Create virtual switches, determine available RAM for virtual machines, and add virtual machines.15 minutes +
[Configure VHDs](#configure-vhds)Start virtual machines and configure all services and settings.60 minutes +
[Appendix A: Verify the configuration](#appendix-a-verify-the-configuration)Verify and troubleshoot network connectivity and services in the PoC environment.30 minutes +
[Appendix B: Configuring Hyper-V on Windows Server 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2)Information about using this guide with a Hyper-V host running Windows Server 2008 R2. +
+ ## Hardware and software requirements One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. @@ -45,7 +50,7 @@ The second computer is used to clone and mirror a client computer (computer 2) f - + @@ -61,7 +66,7 @@ The second computer is used to clone and mirror a client computer (computer 2) f - + @@ -76,7 +81,8 @@ The second computer is used to clone and mirror a client computer (computer 2) f - + @@ -98,7 +104,7 @@ The second computer is used to clone and mirror a client computer (computer 2) f >Retaining applications and settings during the upgrade process requires that architecture (32 or 64-bit) is the same before and after the upgrade. -*The Hyper-V server role can also be installed on a computer running Windows Server 2008 R2. However, the Windows PowerShell module for Hyper-V is not available on Windows Server 2008 R2, therefore you cannot use many of the steps provided in this guide to configure Hyper-V. The performance and features of the Hyper-V role are also much improved on later operating systems. If your host must be running Windows Server 2008 R2, see [Appendix A: Configuring Hyper-V settings on 2008 R2](#appendix-a-configuring-hyper-v-on-windows-server-2008-r2). +*The Hyper-V server role can also be installed on a computer running Windows Server 2008 R2. However, the Windows PowerShell module for Hyper-V is not available on Windows Server 2008 R2, therefore you cannot use many of the steps provided in this guide to configure Hyper-V. The performance and features of the Hyper-V role are also much improved on later operating systems. If your host must be running Windows Server 2008 R2, see [Appendix B: Configuring Hyper-V settings on 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2). The Hyper-V role cannot be installed on Windows 7 or earlier versions of Windows. From 02a486c7ad5276e493c80aec2cc7008e35cb73ea Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 12 Oct 2016 14:36:46 -0700 Subject: [PATCH 006/233] terms table added --- windows/deploy/windows-10-poc.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 9fd6e2483c..a897d1e356 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -29,6 +29,7 @@ The following topics and procedures are provided in this guide. An estimate of t
**Computer 1** (required) **Computer 2** (recommended)
OSWindows 8/8.1/10 or Windows Server 2012/2012 R2/2016*Windows 8.1/10 or Windows Server 2012/2012 R2/2016* Windows 7 or a later
RAM8 GB RAM (16 GB recommended)8 GB RAM (16 GB recommended) to test Windows 10 deployment with MDT. +
16 GB RAM to test Windows 10 deployment with System Center Configuration Manager.
Any
TopicDescriptionTime required +
[Terminology](#terminology)Definition terms used in this guide.
[Hardware and software requirements](#hardware-and-software-requirements)Prerequisites to complete this guide.10 minutes
[Lab setup](#lab-setup)A description and diagram of the PoC environment that is configured.5 minutes
[Configure the PoC environment](#configure-the-poc-environment)Parent topic for procedures. @@ -42,6 +43,19 @@ The following topics and procedures are provided in this guide. An estimate of t
[Appendix B: Configuring Hyper-V on Windows Server 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2)Information about using this guide with a Hyper-V host running Windows Server 2008 R2.
+## Terminology + + +
TermDefinition +
Hyper-VHyper-V is a server role introduced with Windows Server 2008 that lets you create a virtualized computing environment. Hyper-V can also be installed as a Windows feature on Windows client operating systems, starting with Windows 8. +
Hyper-V hostThe computer where Hyper-V is installed. +
Hyper-V ManagerThe user-interface console used to view and configure Hyper-V. +
Proof of concept (PoC)Verification of a proposal. +
Virtual machine (VM)A VM is a virtual computer with its own operating system, running on the Hyper-V host. +
Virtual switchA virtual network connection used to connect VMs to each other and to physical network adapters on the Hyper-V host. +
VM snapshotA point in time image of a VM that includes its disk, memory and device state. It can be used to return a virtual machine to a former state corresponding to the time the snapshot was taken. +
+ ## Hardware and software requirements One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. From bf61400f0c2b3becf9ef0411c52bbc7ed22893a2 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 12 Oct 2016 14:52:41 -0700 Subject: [PATCH 007/233] t --- windows/deploy/windows-10-poc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index a897d1e356..86f4e6798b 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -64,7 +64,7 @@ The second computer is used to clone and mirror a client computer (computer 2) f - + From 2aa329b1d3a36e9d681c5fc985f087af0eb9dd3e Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 13 Oct 2016 11:44:31 -0700 Subject: [PATCH 008/233] rewrite --- windows/deploy/windows-10-poc.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 86f4e6798b..399664841c 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -14,19 +14,16 @@ author: greg-lindsay - Windows 10 -If you have a computer running Windows 8.1 or later with 16GB of RAM, then you have everything you need to set up a Windows 10 test lab. This guide provides step-by-step instructions for configuring a proof of concept (PoC) environment where you can deploy Windows 10. +This guide provides step-by-step instructions for configuring a proof of concept (PoC) environment where you can deploy Windows 10. The PoC enviroment is configured using Hyper-V and a minimum amount of resources. Simple to use Windows PowerShell commands are provided for setting up the test lab. -When you have completed the steps in this guide, the following topics provide step by step instructions to deploy Windows 10 using the PoC environment and current deployment tools: +To complete this guide, you will need a Hyper-V-capable computer running Windows 8.1 or later with 16GB of RAM. A full list of requirements is provided below. When you have completed configuring the PoC environment, additional topics are provided that use the PoC environment to deploy Windows 10 with current deployment tools. -- [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md) -- [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) - -The PoC enviroment is configured using Hyper-V and a minimum amount of resources. Simple to use Windows PowerShell commands are provided for setting up the test lab. ## In this guide -The following topics and procedures are provided in this guide. An estimate of the time required to complete each procedure is also provided. The amount of time required to complete these procedures will vary greatly depending on the resources available to the Hyper-V host, and subsequently to the hosted VMs, such as processor speed, disk speed, and network speed. +The following topics and procedures are provided in this guide. An estimate of the time required to complete each procedure is also provided. The amount of time required to complete these procedures will vary depending on the resources available to the Hyper-V host, and subsequently to the hosted VMs, such as processor speed, disk speed, and network speed. +
**Computer 1** (required) **Computer 2** (recommended)
TopicDescriptionTime required
[Terminology](#terminology)Definition terms used in this guide. @@ -42,9 +39,11 @@ The following topics and procedures are provided in this guide. An estimate of t
[Appendix A: Verify the configuration](#appendix-a-verify-the-configuration)Verify and troubleshoot network connectivity and services in the PoC environment.30 minutes
[Appendix B: Configuring Hyper-V on Windows Server 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2)Information about using this guide with a Hyper-V host running Windows Server 2008 R2.
+ ## Terminology +
TermDefinition
Hyper-VHyper-V is a server role introduced with Windows Server 2008 that lets you create a virtualized computing environment. Hyper-V can also be installed as a Windows feature on Windows client operating systems, starting with Windows 8. @@ -55,6 +54,7 @@ The following topics and procedures are provided in this guide. An estimate of t
Virtual switchA virtual network connection used to connect VMs to each other and to physical network adapters on the Hyper-V host.
VM snapshotA point in time image of a VM that includes its disk, memory and device state. It can be used to return a virtual machine to a former state corresponding to the time the snapshot was taken.
+
## Hardware and software requirements @@ -62,9 +62,10 @@ One computer that meets the hardware and software specifications below is requir The second computer is used to clone and mirror a client computer (computer 2) from your corporate network to the POC environment. Alternatively, you can use an arbitrary VM to represent this computer, therefore this computer is not required to complete the lab. + - + @@ -115,6 +116,7 @@ The second computer is used to clone and mirror a client computer (computer 2) f
**Computer 1** (required) **Computer 2** (recommended)
Any
+
>Retaining applications and settings during the upgrade process requires that architecture (32 or 64-bit) is the same before and after the upgrade. @@ -686,6 +688,8 @@ For more information about the Hyper-V Manager interface in Windows Server 2008 ## Related Topics +[Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md)
+[Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md)
[Windows 10 deployment scenarios](windows-10-deployment-scenarios.md)   From 79a520152e18df27149397591740c77996167225 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 13 Oct 2016 11:58:55 -0700 Subject: [PATCH 009/233] t --- windows/deploy/windows-10-poc.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 399664841c..2e0620a483 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -58,11 +58,13 @@ The following topics and procedures are provided in this guide. An estimate of t ## Hardware and software requirements + + One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. The second computer is used to clone and mirror a client computer (computer 2) from your corporate network to the POC environment. Alternatively, you can use an arbitrary VM to represent this computer, therefore this computer is not required to complete the lab. - + From 5aff628069d819c6031c22f469037cfa2a341fb6 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 13 Oct 2016 12:17:40 -0700 Subject: [PATCH 010/233] trying div style --- windows/deploy/windows-10-poc.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 2e0620a483..8b42e4b0be 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -18,15 +18,16 @@ This guide provides step-by-step instructions for configuring a proof of concept To complete this guide, you will need a Hyper-V-capable computer running Windows 8.1 or later with 16GB of RAM. A full list of requirements is provided below. When you have completed configuring the PoC environment, additional topics are provided that use the PoC environment to deploy Windows 10 with current deployment tools. - ## In this guide +
+ The following topics and procedures are provided in this guide. An estimate of the time required to complete each procedure is also provided. The amount of time required to complete these procedures will vary depending on the resources available to the Hyper-V host, and subsequently to the hosted VMs, such as processor speed, disk speed, and network speed. - +
TopicDescriptionTime required -
[Terminology](#terminology)Definition terms used in this guide. +
[Terminology used in this guide](#terminology-used-in-this-guide)Terms used in this guide.
[Hardware and software requirements](#hardware-and-software-requirements)Prerequisites to complete this guide.10 minutes
[Lab setup](#lab-setup)A description and diagram of the PoC environment that is configured.5 minutes
[Configure the PoC environment](#configure-the-poc-environment)Parent topic for procedures. @@ -39,11 +40,11 @@ The following topics and procedures are provided in this guide. An estimate of t
[Appendix A: Verify the configuration](#appendix-a-verify-the-configuration)Verify and troubleshoot network connectivity and services in the PoC environment.30 minutes
[Appendix B: Configuring Hyper-V on Windows Server 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2)Information about using this guide with a Hyper-V host running Windows Server 2008 R2.
-
-## Terminology + + +### Terminology used in this guide -
TermDefinition
Hyper-VHyper-V is a server role introduced with Windows Server 2008 that lets you create a virtualized computing environment. Hyper-V can also be installed as a Windows feature on Windows client operating systems, starting with Windows 8. @@ -54,12 +55,9 @@ The following topics and procedures are provided in this guide. An estimate of t
Virtual switchA virtual network connection used to connect VMs to each other and to physical network adapters on the Hyper-V host.
VM snapshotA point in time image of a VM that includes its disk, memory and device state. It can be used to return a virtual machine to a former state corresponding to the time the snapshot was taken.
-
## Hardware and software requirements - - One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. The second computer is used to clone and mirror a client computer (computer 2) from your corporate network to the POC environment. Alternatively, you can use an arbitrary VM to represent this computer, therefore this computer is not required to complete the lab. @@ -118,7 +116,6 @@ The second computer is used to clone and mirror a client computer (computer 2) f Any - >Retaining applications and settings during the upgrade process requires that architecture (32 or 64-bit) is the same before and after the upgrade. From d3039a75f7de613a957d74113433896a41cd6f1d Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 13 Oct 2016 12:31:18 -0700 Subject: [PATCH 011/233] decrease table padding --- windows/deploy/windows-10-poc.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 8b42e4b0be..ae1098014c 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -14,18 +14,17 @@ author: greg-lindsay - Windows 10 -This guide provides step-by-step instructions for configuring a proof of concept (PoC) environment where you can deploy Windows 10. The PoC enviroment is configured using Hyper-V and a minimum amount of resources. Simple to use Windows PowerShell commands are provided for setting up the test lab. +This guide provides step-by-step instructions for setting up a proof of concept (PoC) environment where you can deploy Windows 10. The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Simple to use Windows PowerShell commands are provided for setting up the test lab. -To complete this guide, you will need a Hyper-V-capable computer running Windows 8.1 or later with 16GB of RAM. A full list of requirements is provided below. When you have completed configuring the PoC environment, additional topics are provided that use the PoC environment to deploy Windows 10 with current deployment tools. +To complete this guide, you will need a Hyper-V capable computer running Windows 8.1 or later with 16GB of RAM. Detailed requirements are provided [below](#hardware-and-software-requirements). When you have completed configuring the PoC environment, additional topics are provided that use the PoC environment to deploy Windows 10 with current deployment tools. ## In this guide -

- The following topics and procedures are provided in this guide. An estimate of the time required to complete each procedure is also provided. The amount of time required to complete these procedures will vary depending on the resources available to the Hyper-V host, and subsequently to the hosted VMs, such as processor speed, disk speed, and network speed. +
- +
TopicDescriptionTime required
[Terminology used in this guide](#terminology-used-in-this-guide)Terms used in this guide.
[Hardware and software requirements](#hardware-and-software-requirements)Prerequisites to complete this guide.10 minutes From 57eba381e01f7ce1be7cffc717326905352732a2 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 13 Oct 2016 12:32:50 -0700 Subject: [PATCH 012/233] fix third table --- windows/deploy/windows-10-poc.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index ae1098014c..af758a3200 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -62,9 +62,9 @@ One computer that meets the hardware and software specifications below is requir The second computer is used to clone and mirror a client computer (computer 2) from your corporate network to the POC environment. Alternatively, you can use an arbitrary VM to represent this computer, therefore this computer is not required to complete the lab. - +
- + From d992bf7c45e223102afea5a375bac691689fe781 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 13 Oct 2016 12:46:11 -0700 Subject: [PATCH 013/233] format all three tables using div --- windows/deploy/windows-10-poc.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index af758a3200..0be49e1fbb 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -20,14 +20,14 @@ To complete this guide, you will need a Hyper-V capable computer running Windows ## In this guide -The following topics and procedures are provided in this guide. An estimate of the time required to complete each procedure is also provided. The amount of time required to complete these procedures will vary depending on the resources available to the Hyper-V host, and subsequently to the hosted VMs, such as processor speed, disk speed, and network speed. +The following topics and procedures are provided in this guide. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed.
**Computer 1** (required) **Computer 2** (recommended)
-
TopicDescriptionTime required -
[Terminology used in this guide](#terminology-used-in-this-guide)Terms used in this guide. -
[Hardware and software requirements](#hardware-and-software-requirements)Prerequisites to complete this guide.10 minutes +
TopicDescriptionTime +
[Terminology in this guide](#terminology-in-this-guide)Terms used in this guide. +
[Hardware and software requirements](#hardware-and-software-requirements)Prerequisites to complete this guide.
[Lab setup](#lab-setup)A description and diagram of the PoC environment that is configured.5 minutes
[Configure the PoC environment](#configure-the-poc-environment)Parent topic for procedures.
[Verify support and install Hyper-V](#verify-support-and-install-hyper-v)Verify that installation of Hyper-V is supported, and install the Hyper-V server role.10 minutes @@ -42,9 +42,11 @@ The following topics and procedures are provided in this guide. An estimate of t -### Terminology used in this guide +### Terminology in this guide - +
+ +
TermDefinition
Hyper-VHyper-V is a server role introduced with Windows Server 2008 that lets you create a virtualized computing environment. Hyper-V can also be installed as a Windows feature on Windows client operating systems, starting with Windows 8.
Hyper-V hostThe computer where Hyper-V is installed. @@ -55,14 +57,17 @@ The following topics and procedures are provided in this guide. An estimate of t
VM snapshotA point in time image of a VM that includes its disk, memory and device state. It can be used to return a virtual machine to a former state corresponding to the time the snapshot was taken.
+ + ## Hardware and software requirements One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. The second computer is used to clone and mirror a client computer (computer 2) from your corporate network to the POC environment. Alternatively, you can use an arbitrary VM to represent this computer, therefore this computer is not required to complete the lab. +
- +
@@ -116,6 +121,8 @@ The second computer is used to clone and mirror a client computer (computer 2) f
**Computer 1** (required)
+
+ >Retaining applications and settings during the upgrade process requires that architecture (32 or 64-bit) is the same before and after the upgrade. *The Hyper-V server role can also be installed on a computer running Windows Server 2008 R2. However, the Windows PowerShell module for Hyper-V is not available on Windows Server 2008 R2, therefore you cannot use many of the steps provided in this guide to configure Hyper-V. The performance and features of the Hyper-V role are also much improved on later operating systems. If your host must be running Windows Server 2008 R2, see [Appendix B: Configuring Hyper-V settings on 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2). From 4dca91941ff7746e575402c75a20129fe3f41e8e Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 13 Oct 2016 14:38:04 -0700 Subject: [PATCH 014/233] added disk2vhd image --- windows/deploy/images/disk2vhd.PNG | Bin 0 -> 20359 bytes windows/deploy/windows-10-poc.md | 84 +++++++++++++++++------------ 2 files changed, 51 insertions(+), 33 deletions(-) create mode 100644 windows/deploy/images/disk2vhd.PNG diff --git a/windows/deploy/images/disk2vhd.PNG b/windows/deploy/images/disk2vhd.PNG new file mode 100644 index 0000000000000000000000000000000000000000..7b9835f5f653768d14e770f9f91747076257127d GIT binary patch literal 20359 zcmeFYXIxWn*De?ZL8OWb(k&R8bfk9$q$8jxUFjgb21w{2QY9e0cTkYtyMXjw0|W>V zdJDbIj{oO<=FFTj=bdxr+kD{1&fdwruf6WIu63<--#b`MMUMCm^&JohL@fXMl{yG? zlK=#|VR9P}IPE1p<{s5MF$|1$-v3d;P%?1R`m} z{@v)b%`*mpRB7d3Nol(2ZzZ3{(zeH-&l#p1O()!*|Cl{Bfz60{m{NKW#kGh@Mz~VZ z1X9r;4CjnS>*|+cBZ>Wfx7~ChvmxRch4rHre39e`+(>6 z?rilpst*EBZH?bLPt-Lc9mUss|NL0D$W2QLR z56!to%1GEv?BVX(`!W>h2KMm8sov`9?-6hk;T4HJ2l5mi-x9?>I|w9Bx3fi^qtJ4z z6f@s6Z4aDj-WxxgJ(#pbrlm?8NcYX3RqIa#Rtaq7q)0r^yd@T5g*VZ8$UiLTANO7U zeS=XP?BtqX4PC4?^tMS`ML?|byZ-yygm+*2v7o3)pS#7+=~uzej_LBLbQvZ#rguj% z#X||~e&rj@ZrH)+WT}J5=r-_W%~@y8yFs%TI~%JVOmo?YR9J+mSXFRQa@F_k>J4WPI9@$buavEfFE=py>YkS z_~>r91`;b<$2pr?v_9COAsIaOD)VWC_8qUfD!$7@V+|K>(ChK-?3g}X!e&;Bw_3bt zqGF*7{e7^xg#c3k$uhNr>e`mryO|XdtOmBiJU@r{ika?DTOSLE%PlQHI~afmp>d5+ z7ZPnSicXoVPOYRn{W4CMl;zyPcd_A^xORM*dC<49o$hrt^z)!~`0aYlUB$KUJ;fOz zxYy_3eg>clQ!=ihrx6zYtdMa3fr)V2Y#}6PG^8iw%05+1hx{*0a zRm7n6(7qwwev;pKlJYtx4rF_EwV$4=?!0$Z@DqHAq;Ov&+=6)Vb?q=ouSAw zj7HAo@@TJq9Se#zSckfV!Hh#&S+w~Dr6k-f#n@*&Bd?AUlbw(=K^CXAu)~=z0;})z zXWsQd?@8{!UM_XDNl2`;2L$lZ#3@UD@8repe#634Ya9Bx*LsSBn51#1=^FM%Fx92ee*@({ z+ei~M*75tkVC3iG;HsL>EOV(wL_Xj3ndLgM)1h+|`X;}=%-&m{;WQFfWfh%*fcd9P zdB*8azK}(pP8bYc*RIi@p&90+o6g&Krn$I&q%hoNw>d7pYhgt(JQjN$m7=mtn4XlH zt`4DHUV3nF6~%FOC9PdRS173Q85NypqSuF8bOW?(=!d#8Dj&z)(dIT>N4e|KP&DpR zH%K`6@+W%7;p6M~-9NDt-}3A_e+sYE7b3yI4%r%gY8qUrVM`vf1Z9|hYD3PgY zxs@a%nLG4p0Z_TM(jJb?)XPn?16$I*%-oa@uQ=;#eaC4s(_*TecM_ct%K}3)6+G4= zeSlS+5TCByqPOWM%px$ALM{V|risT!&g>P1&w+$*D4g?a7Pe6KMmLs(P$LisaRaEQs=UjfrC#n z7)VUBI_rwePQ5zFb!sCP7-X-Sk(RhvAYCh}+s>%4ni!sIz&A&AG#qRg3}kwk4P-yq zIFI3pZ4XIQ+Q_V#NR(M6o!gU$lfk5zJV_Ph82IM4rcc$h41$juQPgdu<_PGCmlS*zYViq?S-8gg``EF*@k6?+oS8#Lb z+T|g%+Me#3^3|Ncq_s-b`O}=#Z*LwlFsRN$RU-EHh1N(FWlbn5FYRv+l|apt_T8LX z;0L1`szWrk^&gdQlD3{5Zsb>0#p*+rADkZtQ0k}2(Lc_;D47MSF4bo+8U`opG+W)Uwz5%FW;vm;eC`UtU8KK2i#{wZ#Y z1n1vd9S6kZ*xvm}ySjq8ucilW>W~S{xn)9Y?Pi@Ph77I`4HD~nR>QrL6|Z-bH==oB zN4Dy#>zRhUmqYISIa;$OKUKeUc1D*^Nqnc)kk_Z0gB65cF@vm}sfMjd7P`66h`nW~2F$Xa zEruxs*-=@8m+r#6CU$HIO>r+1`K>d|Qla0s>vqJg9&Xoe*qqfhor}~Sj_a%e=W-HlYW=R3 z4Qz5lI2(L9&N>7Df0`+Xu4(1qXwv6A?rSY)bQ1NYZ1&Rq#p`@QRhA}W0UjX7SZEtP`!8P89k1x$MBhD5VMoqB z6|z=8zQN2uGVT$`H1-J0!X#;hR{Td&#JAfH4^DQ1AE~UUtI(8Vo?(SiL|cxS9I;XP z+U05)Vd9*?d0-znc@NQi-UQ?0A%UHlipNUew4fa!cse$^DH0@rKar}abHB4a_ofiP zW}UU$NIpO%+GgX^yG2s4Yrm?R*)KjYxZd!}4dJMb<2bLombpe*#SS9%&)Cnln=bwc z#(U*XXxYB$4xs?U+V6d&NFcu26Wm%pmuWm-bG_R0tJ_?39XdQt447MHvper8>J>yb zuq{HHXiW@8FC!w3-5`qX8&(BZ@@L81LiyzxmwmQn?5g8sK9o?c6vY9~rwt4dG^tjd zli4An+KEDaxRnnoMM)9hH>phqC89FZ4@XKTB-uxn?;gt*K-2l7OGzb9XRiM+e1da* zCv4(bY1Rr|eNe6+=m(^EJ(?4*C1N@;lbegdx>wdMPbyRx`g4;x7XWqYMO*1<*NZam z<(~fRHa~>SUO%gtLL0$^cN}3l9rPdcZ+Ov4J8gPFZ@JY;=3mWnC72~q$F;B}w~KhN#y1x+awKz( z*mSv=X!g=e5E;N~le$0&zA%pDE1XV?w&us~&@od~989t5GIfg2Yz_tJU25$*qc4@D zbQ%LV^famIUKcIA2bC`WLeM=UXOIDv6X&r<{ngQcNS7(DmkA0_&1`AQwZw|_Gt{pz zobyH$cl{RE`OACdv)PHT>T)OX4hexUwl*vToTp3{th-%05)U(vUFd(Q61&hRX<}}q zO1baiUzi`8y4%5BXf+vtC#Lq1qiB@cI6oR`G0Od00@U(fe4MHqZL$rORk_IjtBs$A zz5Ej1@-5;vpr!L(B;s|hF67SrDmJ&e1)!z6d*K~E449DBN4D1p?_kQ_Mj=9k0VAX37PFt}na z?(HLwy*^FbhtI_Y6nY@Z#LQC=9vJ(3b4Nag=4M9hb?fjIoQH9^z)@P?(EszG`BCz# z>HXm(>$~wo$~0pa)J35x>u(~wUeVNaChdR0<>3L( zW@$!FB$m94TepAH-Qv{Bkep{}w5BA{bhqTUl&~_tU=PoTa~6h*M^>B-#Qwy;I8%4mvQ2hAu638D0vfB2b{UrHybQ<$)$xm zi5KhT8{z%6A+h%gPF$c{)Vy!Wvy%exbDzd9(v8xOIB?OpG+)ZLSaIilS-R*)d>!*h zTy?Et@v*bzjVFn@p_D8Rk0ky>LCF{Y`}OS$xuY(&lh2P_d|tHPnpH^fSECC|a>h&zt|Y72pqm*+7zIY5(iKWdVgZ8@NS#O5m73 zoL;Uq1WNS;5a7LI+yqyYxDe!{_iw(kw?aC5^qVg^b-H1DZ*Io2@0&Ia2D5nPYn-mp zn@pg&I&q8)n@+kUR@V25@)HCiJ{j#CGP(Zf$$me(9Hph7y>S!d%?g0cSp+{mb7^+s zT3_oWuo=ryC#-%U4wJ~R)zxew7+T`=Waq_SXZ~Z)<-F$dW6`iMS8h4CF`0XGj%P#h zNC?DcvJc_yb?ym`pySn;Ai7&_JsmpS8O6eXbY(v`z$+i7Py)0cBys+^Q@RcwDMQ_0 zomSwUuPx;p5@C+nTQ4{zYnvzTvDeOCbjS2WhS(K&;^cOAW?tMa^^E;~9n-luR_Uog zo_pxDaxm5EY)`-KciTxGp{O*l8N~c9^-p0|3FH^*8$7j%0udJf;>m14eemh8-$wUR zbM*y8a^@bIu2VqwB7!e9XVdv&C9V>aY3$>-X+PLnUZD7c&ocSm=!&WOFmWbNLqo5>s!^2ZoQAsZ>x{;-Gu zF7zw3Bb`2%k&;j{1pIVN_Sv7MoSrk?UDxv)U&jGadUVe(jaD(Y-J}M}&Z)6kJLOcY zykCtNsI&1Y-MsfhO*_gUk!Ge!+MP#h>r@{$A>ff>`8^hYk(W zYYx<4ULvF#E(Z!+vz53S;a7|;1Dt0qjE6zPsLM}l1li;0aQxx@@Gic&qv8ozrYaH_P{a;x+5CP`_s}rBbn^9HCCk7vK{8WBz|jp*+6{p1HQGoy zWJAh5HWS?Iq&O0^e+i&(G59c@>%!Jry0$Tu6YuEml2t?bCm$~I9r6-XZho%y)TMI| zWgj7YRlGle@BHlycfQ}NeKD>S zk&;tUp=M@S)N$(81eX|%kB1Mva6o5A-1;{ddwBDt%-AjU4)$O5lHfIm7D@=Ol!*T1 z<@`=~50t8zN@bwOb{^CY@oSlQ?58PxU#Z-Y*C=u+q(6Ar7~S8@UY!`0Q^2O$Qj@>TfOtIm`T~(x&DBqoscut@@F!v9+kHOPnIjL9`Rh_GnowQ< z5iS;yF}Z9$<}7*iQmWpTxGiP)TJclK{F|-$VU89;6p`c@#C)#4bg28r-+YrFE^mG` z?>qm%#~#mc+HO$7aYZRoRs7Un{PI9U*mXN;Hb@?Hh)ohPDU3>L$6`7b9gD%5?gK_T z`KXeiQE~KCwVT;~rN3C`t%ws_fz;S~>$@@5$9moio_l*F$GB}NbwR>1b524T%3U?~ zwYT--E8DFHmS@GlO&$)ds&AJnEs%>A^scJrpDy?-R|FlA4HzM@u^hLgdj7umq6r7t zOIEif1MI*byEfQ(K2O*BQHVDsnD%{8dWkQ$wmDS>I9xW&M6gl2{uwqCx07;wee@JZ z0elktXf?cU{w}_^rlj2(huxI>t9hklwvD&lC1}E>nxpDr{%hI?Ltv|i7iogCC{vNg zTrhbZosUU1HgAgh2Ap$7ehwKr8uvt6lOwb}KzUDw89%SlC{5NH2_&EF8l4>x6Rufl zNl3H3+xn$?&l4U=@Mna0I3Cl$AP$GTFeKL|2LkskAHhu$r@h7AV&<)kev6|qoASY2 z{pFhW8H3RZr#XJKtm&(`DAxv2ZK3JY{Qa0p2xD<%JDY24|K%p+xeXzM0Mun!>DcW? zLm2yueppSqQx)gPO9W{2b|2&C4Wx3AY{%;IGW5XNh^$e<>Mos_yArf69Y`++nUL)7 zgz&*AEWd`yM;6~lrJ4Apdc38+cT0EYL6I)@_Wkwy_aT>Cqm3Ri>)Ge0#PWz&+8q38 z3~4G_5vK?v{k7?4y}^>vr-0^aYDs)=KFF*A7S;!3|Kc4&f2`dEQ-4Y3)jOLu`j49EOzMPHx8~LmJG84 zFEl74fQ}u^-K9%bcyA%-U_3#pb}8Z3L4ye86e%YO$u`FT<7Ard$>X{dmARE>x)UnL z;FFk{CAou7Pa_}tEm68X<&ESaD(cN5o*N+;bi$f;8t%`WCp6p=7SYw&-7c;ctF&t@ zLEa!_)S_c0A7%I#6hXg| zon1sk&phYx%eB2mkA!ccZ$QdeX-3^J`{)~?L>~P^GZ6I+GxEyA!x5ha``VMbrgX(3 zJwxJFXID|VR8RLgdIowbmJ!BkzK;|9SrY6Q<;^<7$=!XxCoRZfWZplaE~oX zy=7$*t3aAKX5{0xGfMa13`01ojmok5=Yo1Jv-b|Vzg{hgkau)+Xu=2A8U}0)Y8(v( zT55R-dbjPHj>jeG?d`OXvah!s;{*67&)}Zh!LNi#&BXypKDrG4z5dQv!O z-3M#&1b?TraIfr8uY^(3d5*ku38g1qqQ3`rmK86RSOM9dCiUN@!!27Oz9jiPw7c+Z z?Oj3zS%9_QDoY=XWbeWBL8NpjXdkn=$?LCl_#kiU$I7kW8(aK;inxpflS<^+B7a3T zx*R?&|1?H&&etM9&~m7r6Z3M#^O$$!NkrDW4VHyj7R|`nz*X%AQNKzG?uwdr4{oHnctBh;T?<<>HucAJrd@`@D zeq+lp`qoDInvlR#P}=gKQfuYatdqHMsJ{N3oPhw|!g(3R&`@UQXcdiu{FjwvxEryglySBi)*d3R`u2!rPtTAE~;i$7owGb+16oTA3CkgQg=%osSoJ*>hLIo-!+a=PJY51`p76$5%COulh`v+`!_wDp~UwpB&aiuJwIP> z(9mED(o>*a*cx&pma=_exZG%Z=?x~>=~SS`Jp74C7xdcmL*@4gx>)r4df^)&YoLR- zV?8aKcy=^WrpP}GOj}mfIMML4iRWoMvo(KUZuWL|t`Klb(TjkJXYMkIm?tue`Ui1a zOSh85CJ0;i$LbB<70}sxvmFP(y%8TLdaCv0^@nn#w0Xybq^m%5`j``^?BLmgn>33bx9$cZ(pXJL(Wzt#8i6T5l;_1A=;8qTLIXU zD_h@xmpc(WbTg4KT!?f2^M{o<#fk9qwQ2rq_Izb-{>TJTjz5;pwbmbU3Ke^bvpcPS zad-c~j2qk67EX{(!>Aygx~K7uZZmqi_7jrS6=zs|wGM94+x<~?52BkOoYp;WVe;o- z$!*><*x+4GDD$lFO9{Q%{(Ly*HR=Y)9FinIIX&br}v@(#L$t->R{l zmpm_>+0MIAoNYuXp0U!G2<>Eku|Xz~q~fAd>seT$#i#wJ?(2!fNhonl?U|gkCi4BTQ{gNCks>3HI{+8srkGkqt zzu>?XCnP+XG3UFdb8M5NHGAB5S2G?_(G~w8%=KUO^X#&xTs5I8N^&!R-tC0UARfTn z3y4dR7DnF)mgpUbp0|F^Gh)J=p_1c7;@>dWy_g}{O`%Lj#tZe$Y74H|goU#!2=EU=wX$(y(^x*@5E3)>LT7k~KEQ8m@ zUi7>p4U*B0OzHC1tr3}qy@hD^y1Yy_@hE~696pZ~rG(i++_$k>`8^NJp7n4_eP%WO z@Lhd?^TkPQ0x1C1QvLxi!E}kbIXzs>fowCo=(ptWoaSWaFmD6>)rUK|p}xu+<*G5`)Ra%MA&QHtIry#9(TUQJ@5#36aI*3K@;5jgvsi}!{QKIj>o+MEiNrB z0Z)|J#`wqEJlL;*{5I5Ro_;6S*CR(12VYwpOeB?cFybeD8sMa|vA+J*uUdW}`tDe2 zc@LbAUp^7#k~17Y^?KMOaZ6|hyu)$_u<~drt0{RngM|3Agic0gDS?Kb4AQ#$JBm?2B&rNDX(_lCxLr*V|aM&?T!(PM=#g9Yz~CJL_YQb96(zU z0$!M@aV+<`zG7)XSEk5w2`v|z(>R^BedVyTS`N6$#Rh-Jj1-qzbyg+$^z_rs#+|$S zDNkNGfMrDkb~lJChLC1$H{c)u7C!*%XbU0mECI>5%e@Re?nRvsq99DM--TAhrX!vq zYgc&!TW&4+Om#eRa?VB=Ay&m?)P`qtDC7ZPQJap5cc7K3BvGE*`EtUf*axk}j<`K5 z@=SZ2@x76n9YISKA$bj-PRhj(=|_X$WsjD)5e*Z}y_?H#8-C_~vEN0o92=pGQXl>* z`L#Affuw~vOJZj?R}^k{wE1DW!9!pRwk2DehN9t%s8XB~*sTe(CC_0Tc&Mp6#=(G% z2nCH4c|pgOP{<8YNu1(2Ndq46JkqT$8j6#O$N>8oyw*Cl_o(Oz!Um7JW-sF=U_6EL za(Qp;2^Tfs$Ivsr!{cLB0&&WJVl3hPV?dJ33-a)MYI>MoTwMJ8gjT$20d~v5b3d~h zfsGs7k@Tx7-YbqINt4TLXOgrwxh8_+M{B{?AL$xDIXtnmUV)P@CyII;&gVTLy&@_<-IG zl=?^Y3IDOq+NR>o^Dq)tl@{~+#C}uopN22calop=?)&!%-4BVrR^-wAZOHlo=yM9d zAB~QQ5{4SMr+3z#e|7|IuBMSFG96a)k$i>ODP_B=qeEBg`{`jk3zaf+Su?&;3ofrL z0+r_3quVC=bGm~OO!5`^iM1kxXeR5^ydYsXkCMCVS(4KAOr;=`g%#^8uf7AeGZJ?b zTk@U9;~EhO3wvz3L=a@X0fqVI66WxGJJM4=HyJcGt|k1UTQpO7TBCb+Py_v7*hARS zw{e!VT(!rxhoa+=g`% zVXB?BfV#;VV{opZ)9NhSq6K|2e>-OD=+e<78K%z;WkvsSsxYt@2ap+JyYTs?^7C5T zD={_^1Wwyy)f7Z*Cge*HDu-U_yw6nzw(v(IKqJTd4zQ*H2#v??R+8fGsuJ(CkTzse zQ}oAv*|o_W0xh&VPN@O6FG)i*lYNd(PcQkq4nElmm|vD1QcQnW(K>6NEZubhHfMRS zVbjAIP}>MC$5az|=F6ewy~A*fJw0X3%=jOnt(lgoKfB*IhVPTNMFvXnexp^5K~*H% zJ9pQb)FM>6xuoWxc0;rp=bh-^fvoWDmw zm82aBp+RY9cYrThv@r5j4Z7YgC^iHxjdwD5(b~Q!)=nqYcyLA{br_Qv#6_T{cn6$b z6VUil4SEX>swg)kPtaKv!5!1WUJ5~LmK8oY<9eIEL#Am^1DQ+!e>CLpOA<=NThz7O658M!}CK8^Ey2M&!fERB2PZX2Y9mJBH-b`b?@Rp;e`<5S!5{ z#-+pb?ZrkHCpEcVrA8{Y$?L%Nx`~M|9P44ETH3_W*+lti+Mh8zj$kHz<+mdZ$gfE| zD<9k9{RhO)ldcZBPKjI%PTtnman9}31##5x(ob(M%QL&smh+{0UEQJ+8^snE__uXPy?l*B zsgEpE!aT|(9yi5csDfewk;s$}N$VpOXsR#Gl?LulsqY7yUhvzaVBw6u zw#fc$R?ETb_jKlA$%pf~@}<5v5LL=?PiNv^X!{TPSDz+$Q)mK&P!&vWu-YOLjyBGo zEf24r)F8YMMa=+8z#N#B6~W_N)v||1gZAw^TStysy8(*_NW_h>N{MW1&u>BlN9Kc- zHBCiC@iutdMO*eY4u}=BLva@R0y86SZtmvGKqW$*q$pFIooMBd66Yk+w7(*E3oQ>| zrfJ0AdU6j5r}%lTQJqU&wBthmC1C8+8F_BqA(M7Qxj4T)GBIwR_QA1J`BjJ&%Fe1e z^=y^Hi22S$9I!p&%%Th0e4dVJsMW1C_@3JDrI-?=aLSR2MUIK{&q9et?txB{%l%Bk zYyN{V>d0RIPV);iRRFg%tz3!9@BhXqu2g)1F!dxqQNH(l^NH0NXJ3toX(x+*3quA)f1O4rD$^Ga z*0YQUbv)6ZQNJXuXH`hf9kGLQ9=gXSa0ac^Zuj}~%jvn(YAJlcS>ldgd5YQPpZH0q z_(lr;2O|_A@oD z>Qoon-;DzL0VNLT7?|n{UF6G&7jXJ@qkG2DE*B6SitR0&L`7;J~ z^#IgjWAvI&iKRZAEY|}1dAw18UC2>WAOEiE=nL-%2zqi}XVZP(o|FBnjE~Fxc%~YA zrF^#cunTFCx8b6kIqAx+xqyp19;t$qs9+M-ZpP*LXmz%Oj|FKvTT{mgzh2zQ(%YNe0{Awy_{^wdK9;-&kB>GzlqVfx3F=*kOt;==zUi#2 zh5YfA2eIP=bm`aF#^`-EJPBTaW1Q9xK7ew1(Wzc4_@rTchq{&l;z|z=8pO^?sPTch zBsL=l7%2B(FP|5r6hF|5D`96>{a>JR9TcqouSOmOf3&kB!*aQE;26*zEgKNWF`Q14 z@X}Yd1!LLx7IY%wh8mk2eJOQ6BUaUsjXw1KE4v=Oe%qGlAGFfPMuV+Yd~=F(xCqSp zlL+>^m{JFGQ(+3|{^YXrf0ZayFT&*C@1K1oO03*Y3m7QQ`QS(~GT8D)*yHH)AR|$4 ziaf6w>2HrIsB-oaf#p9$p5x{szj!poun}i5{Xs!5oqsItXTkbgP5^{vR6_Uvs1@(4 zN{%gG3I*o4_mAM-RSdf^1-ID80PbXriJI|!&y!mF>;H|{KBMrx2(?#18dQ2hDI|22de2w{}<5{=$k(DP>l4Th#flCaRBo}Tm7 zjgCj2UgJ-M-4EV>tDK=9rYore&rl%Phwo9pB|2kdt_i4c^bTJQBK zGh5}&gm)RlncIZcmn`yxjOo05w$j}lYQ*CDwOF`fmeL?LUQf?n$8DxPEH%`FS*&o- znMB`jmXcFqYd5mReqWq5Ptiw7{|MC+ft)9l0VVMr-k6d2b z5UZb->d6Isq>0^(M6h3}B;mB_En+VL|D&p1sWe-qK|(^`70oK22L^tP^FNp`ySRM4 zM!0G4>vuyu;rGuNL#FNL;uCt_g8?O8r@q2+lGo&Hd4yug{j^Xb@vF;}*LvTSvd2X47IL0!CTW zF`~x90N*<-(kNw6I9|>U>Q){OSS;7KkC^l@b4i+z2%@Z4Ao6XXuqg^Sd!T6Ls#f&8 zNhv$L_K?n!Hinz@r!kCWN0;06pyETG0_K;6QmaQ|Dtd1eokF4 z2v%TP(EK0@TplNVie;CrAWKd8*Y1G_0^~kPU|2R=9RqNJR zV}h6z%h_mip7(4g7|BxwR6gkbqw3mHOx9apX?&!&i@{Vo=pv*K$KM@MJJv-7{*Dp| zLsS~+tZEfQ#%!uItdBd|=*rM5dZ>K17o6})JCQq>X4)^58EWqJiGMcafG4I@sA!>u z8%2f&B$7I)C~3$yJTIzK3-Yqf#RM)5m~fQ+nS8c9UcIA+Vt!HewfE&a)+SBSpv8t( zSglfrL1V!S(!>r%T0uS~0px^LD(wMr=pborYOd|o2&(+^SlZ?D*1;u0P0Ve$A_VgYrjkBE&*-2sk@|f{XQB4ffzA$ z|I|aKcf5(m{4&2H-%UIpIW@`V9ZMXibZD9uN0*4KG zuU(eGtv}G~MZxTWk_b=tzWLhb3}Vq(jZI(!YK zZ$)UV&{~J~+)Xv8<}BOaaen%9R_N=BbUi97=JAMI-TJ@i;nQhD&9`1Uum1b-$OlPS zW%@r}S5e?1FnwQ7W1x3iG<*Mdu{a@mSCaAwKF`h>T20oab7S8(AF<}Z8@1ex*(%~C z)0O@BI@8$J z(yF;N4m~cNqfCM-*&bJj+7upXb||VIKJ`p~xfU!9by&OFTdQCGgwTzX3s#DkFRO=r zIJMs0Uv(6ktGE-IZ%_nRJdV(s-vZ~|Fh;9VVYs3VR=B(C@LwMPe31M0BRzkZ{A9fe z+tzGd1W9=4h@Wbs42H7tWv)tUX4gHY)ssDWYKBziF2+fpZ-ly~#q4)V)X{e0%ZqW3 zzPaCL;rP-pxVN_iU)}dz#+F37wK3*$`r`bw9 zU1AvoO^CE2uea4Cgf)TCZC>Alq>+Xl2F7Ez4XT%*e%jrW1xWHg2F=U+XsFP8mBvp< zaq}gwGTjB83=_4ZX<|?(y}STmdw0(7YUQ9zDQd?Zp^PYjGFNbGbHc*^rpHC(%;e2!|~+m zBCK)vMb`jiRD5YkqerFhSIs&ZTfTH4%O>B zBYEMY5c1eX+|ozfsd#LG{xj=;Ye}d?g08_~%Vt`DFWQQnrz!4PyWetyaI?TpMUiPg z-woLdm|sKx9x-pCfys0t*PZVis_U{ge`FfT{v6oiA5#7td_vK$b)h3CWcw&W!nA(! z?IxZh^muxEtSiK9|0}EA<$*Xw2mka~f3X%ob?K|!aqG) zm71bg`c1|2e5fB{kE%-J1p(YK>|&(hwARgzbXo&utdgF;_?`<&nm*?!E>0YxKE$CUuNC=<{+< z`u>x;JXPl5wAUjfqdy);R((rgg7(@*w?InG2lto_x&$0z0f9yFNxZ$v+tDr`zZ~<1 z_!H$xTQ(*+B&(xZSDuKcj;MErUR<)U7l;#3l%h>>>WC9$5v)=ew2qB@k&+0qE+=w$cL>mvC- zx>*^EH#m-I^QfX5xff}wEtGwmKoCNCbNblnAVve0r*0^6J84yi%sl$3&+dwhCQp*Zgs7PDtg&hREm% z&xD|$LHQ{vJ7BxQeZ~*SBmA~g3LeMXnSM`E2lH^-p^Jc>!Tb@l`TlPLVVGxBM<oXE&UvVE@Txlc$Sv=5i^%G%oNDzq=DJEE7}6|!Jl5Um!tj6)p8b} z^f8_)%OT60{OO+Q4q~TUr6!ZYcPv_}gcUTaciu=2{Cufz)wGi?o-=KLY<#KwXeWVk zoM0eLBu1EY!w&1WcDt0|y%C(NUr%g%jFeL3nGLeV!hI4H6R5C_+)~Rsa5at?&An@f zn=cX#$$?V}8f}UH@ZI{;|2y#kZ6s{n@#rnFEqOU9m;wj;DQ&HgMalOXNsICRzcOD( zk0LT7n{6(=>bg4T3D~E}{|QEh@^3*CXvqrym2Jz_9!&q$%{b?ks(%27Nx@EK|`g~~Ttx!@?9Jil`lCj?zxCzLNVpHF`TQmHXsu=U&qrY%e%a1&y3C)5O65Mr zT}entL%pQhhQ*4KBMuYNi{4=4Brv|Om}g7*;Vqq5rj5ywma-y+*-cnv^!c*{|LAB( z-w;K2Zlx|jl-DWD7{^!opZ~$Kn}T%{Q~$&tXi&ndZtZU(_zgnO_bION=DP>5>9ZJE zS43)0ia14*5HnPE7&kCLE9a<8OSEK;H~Szi67P2Ns>hvI1RF^bQGMI(2vb5tyOLgn%4{l{;f z0yP1Nh2v9K5_j<9Db)dM@I6!^7gk6<_wtB=T75kDb2lL_E)CA4I-IYOOCET{5H}6S zRj#2VvvkQWW=FcMn69y-Wy1$7q6rqOc*`C#`!p_zGoMPMq7*1qKM5*ZWxkWG>1OY& z&?}dT(vpZ3G4a#P1mYsC8TwrW|0F3=o@`AwP(tpXyZ+EU-N_*Fi>Ak8<~Xlc)Tv7gCr3P8nTT+8qyV#GUnZJTcOXm)fg_a&j&-8A0n zBVR&$#h9Yb?)!{k-3~k9+q4HOa#0hh0@D{o7g&zm-L5?hmYTmva@n4#@h>SU$&bgS z7hINJbR_s$II25eMKenC=TATJjw$i%!C~~cOW|tFEAmYx1Go_T`O2ZAp-b$lQGdq0 z9R(9{zUBQhbhUkiYwq)G-HHhHeOh+aRnhMTscL=PUyp6m-g{~|h&OU?^~DMc>{^xu?jwwIpAYE$gt`=YK;TX#lV30z zr=g=~qNkA0H1)NIRg&HC>F;U`*-I5i=QipZ9SV8hfJ|R`0coxldXQ4(p#MwA6;g`f zRUl1_#0DleK{h!L!E#}_9Jd-qo)-t(+;{TOC8@wts zy8REE6@(^qFzyyhTGrPeuxr;Y(z%~USOFdO6Gi57PIc^3VVa8u5S{E$KNgqGX(KPH zC@+5ZzUgBJW$ClT9EV2hJIM0Mlqh8DgwuL9N5vNK=9gXC6V8 z%T}E7V}Ud*Mk8;BCwZvpWp)wZ8n4ep_t8PmTzT9u6{{EFnq82|Xz)j!Yny4I>e!=A z5koI3hoxQSpU7X_NX8`&B6UxD424?WvvvWsF2^kU=;wI)h_bbzi5hT-bpLT>P@}+H z7tG63D^^&a--~s26k&37x%YG2EfMx0q377)aa>SGL0UaGYa_>K1E3}H>OFp%r^TXI zdTnzRfY9dwxDc63hr=+~e15(;;db@X*VARHX1ry)9cMzld)SS7p8zPz#%Y9EDr%={7b~C#+vSJY9Z>O+c zx=;bsD>{T8K_tWJ3vJ^Ml~h!w4FZhu@LbV}xHX14iy=mwn(k`w05VJYE}F85`X?$Y zQVuwKVL9~)m5$FkCBXuEXBW~_bDtKF(pl5uSbI*x|5f|STOo|c*S|fB{VJ`gDhk;M+VtRH z0%6ELBX+?ByEQOhOnxw0U{Gy@O?%Vi5nt5AOw-lT3eRZ;mr)24-(~$s`;x# zZ=n@fFm*hC5p=)Z8D1EA$|o*vlS=!Gd;XxzY+$;n?dj7PUIG_8MaK_nWnXQ1>@nRm zvUTx-sRl0=oMOIo*2WeczkJB;OO|J#BDjEoi>kedkE$4Oelc zIG+MCJrK?lq2T_tSsiWIe^J!>-)Ak8=DiyK@wZwICGDSV(LQw_PgV%(XCI-zRoP;u zpgXe4``JA|<1So;0*00EG_}5NaDGHVD0B>OJiimI_t5V>M`|ikKs_dEOVRwsi+#jL zj1^(FfNV}f7Z+}Sz6UZLFIpht{qzMv-%GFUNlzgRB5(Mw34r}C%1rnc$i~OQe4f9*#(1J>>S(Nh1kYjN}cqsRLI%X0wx75tTB zk8Z02D{FuA1v9CIC6JT4?=KBBI?DL;~OYDDs3H?9u z>e>H4C@?4gn_uVq-)B=LV6Vo1vFpnBAw4NQrFA{X{DJ$GpyV~z4*Qwyal@TYZlZ3w z<$J^LkB%7Dma}_SvnS?2+@kcN9Mf(VkMK-b1n?}xz2ht8tG%{$-A@*R)+S4g4o=aj zet!p~XRw|DnY*Ou*MwZHFH{_4ADXQ;5s`ga*qgUs*c<9l-e0Hbu{fMQ1eRem)`f?Q zcHMTXcTdbwU@4;Ee~*3Ar3#b2ckiCl)dfV@gyZ>_`G5VK*xMA{9rSMS7ES+fSkRRc zY4{EN2>b}bhzNe0sAt7Z7ULl!2UBLLL%=pJNuvL_LjLI8{5f}EOrAWrg zxULP=ipmV50rincXrs0INoh}cm6OhI{{A+1%}or+oearY zU)F%7M8>!IqU8l4`^H8k>4~Pjt2xBeCDg!9C2cA*a+tO6BKJL7DclG-op}F+m~z7w z1?ur|Wj_aH-%32KFuX6E*@IkQABjiyi@$@{_vW5EN|_FMv=1}3hfjd$DdTVl3+%`) z2EY%mEDr|wT#iDzcQ@aT4h_AT|4Mo2xm{lQ}kBa;FW|f>IZN|GJbpJ00-S zpKsrCZ&Vlpfzu1PSJ!N_(Mwe+HeXKE?=1g*gk>CF0yrE#hH4O5V>76M&jGtxSzPMz zni;*{$tL(e1q-UgzIBC;J#W<-f9zO?hV!LCFOP6dg0iB&{=9rjtu)X_#hKxR8jHY0Si#p+rLi&y0G~ z(lkA2qvDcMF1cGSVT**en1v$B;sDOEFU`mI{qVl`ocn*C-~I6XFZbxcMz}+R&_F2v zvRX4RKhzM<81*JClL$I}Roa+siwIzQ?fF*CP}IGx$+~SGQ8}UxK!$*N6=vj^KoG{4 zf$6fOJ;I>D!II6P`Ifxb@Uj;q)gaR?oM)zHKU)Kn?#Ls zNu!k^N?0XVzEGKQ4)ZLm-xkm2QoNxRaSmWSvf;aDm^CUvOzpg<~ICX$!e_T;^zQVr?enlVY^at zsiz3m{RGX`R4Hn>!)99N!wchjnAWJFL^!RJu}Y*OK%sp7gO&dMqp#wMJGQRov#u?n z6ffM{Mb|k31c{&fHke(EYvVViS14;5&;d{GO*|7fUOoBNh)E>?UM`eA3EQC*pq(;B z9hBY7zUYT#Li>hRXC$_A(HX&u_d8p#ka5OrjbVXf?QxwH%=;6jAMNBV6Ck%1>dEcS z#`_t(=+N*LmtD`*Eq;>wW3i-73Z2ImP78KhInSSiZVF~)BY>y-?v!|>ix1OEux=FT z$F{a%y|K^B~L%ft7!c zS)CQfoFa{QEPzR=MvFGHeM3|E>59ZV_R|kjmg7?sShO86de5qiRh_Lv0#O#fE@(FN zmKBhru?v?dtW&WX^n>@!Y8QCmd{io;7aS*Ybd!=LCq)sMsZJJ^)ac@QdY4?1WiZ1F z(5f!Kesd#5m7P~c0r^e;q%~gptHBaEh*wI=jl#mTy}m%0#EyOe-G+7FwOZ?E3K^Kq z`6U01Z!WL3vTr<|G2ee~?DK39c3&&0xTiaAcLY(!@79kaMHyye`nF1`6VfapOc11{ z1PLQ8UmGe1`1;5qEICvo7~H9|RaeaR&*Au@#*E;bYj@l3RhnNI#jX{PtT|+yEP#m4 zzoAhbMKh2$g$4;k2iqWOaFWLeI|`>6(N89mJEun=GXW8g$l)V5g3Z^gErkByZQq4% zJ=Q>&H7ira8%A2el_SMl=q<~2uJuZzjx(b_NESZpoEBJ^)90Y&zdC;xdCNiBi7c|;)$Y_l@&E^0`77JAg_l>0w22>>^-y(2|I88 zGE&oe9bgA)rWcXQnDUSqEw1w#`#%2i(FAxe6G_|W=XW0uFj1WdjOTbgp#LML={#6I z(vF|SHWKm_zf6HGvw0NWRh}ON`LrUjl0AZd&UCd-6Bt^lFrGrJO`==s&fbKmjskAN z#wqz-Pj$jo3w-8=b^0shpNbZijNlyFsFFK+G^$(p=Bmc($>tO9{61J_DL?NEaRfbP z+Y36?Aoy?e{2@e^cLg`JzL3DgkG8FZ5s`tqRr;NTr^5{*)jI*bKCY^s0f|V}5X+AK z_BMwYw!QY#w+y=F*RwhbaR;Bz$361-ze}Lr>g;Kzcx`inhOPScy~e?{$thD`y>CI| p@LIr+J&5p3y{-DK#$aLTs!^Wv5ENBfr(QJY?;E(c@~6nGe*v$FK>h## literal 0 HcmV?d00001 diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 0be49e1fbb..dd3bf3b231 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -51,7 +51,7 @@ The following topics and procedures are provided in this guide. An estimate of t
Hyper-VHyper-V is a server role introduced with Windows Server 2008 that lets you create a virtualized computing environment. Hyper-V can also be installed as a Windows feature on Windows client operating systems, starting with Windows 8.
Hyper-V hostThe computer where Hyper-V is installed.
Hyper-V ManagerThe user-interface console used to view and configure Hyper-V. -
Proof of concept (PoC)Verification of a proposal. +
Proof of concept (PoC)Confirmation that a process or idea works as intended. A PoC is carried out in a test environment to learn about and verify a process.
Virtual machine (VM)A VM is a virtual computer with its own operating system, running on the Hyper-V host.
Virtual switchA virtual network connection used to connect VMs to each other and to physical network adapters on the Hyper-V host.
VM snapshotA point in time image of a VM that includes its disk, memory and device state. It can be used to return a virtual machine to a former state corresponding to the time the snapshot was taken. @@ -63,7 +63,7 @@ The following topics and procedures are provided in this guide. An estimate of t One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. -The second computer is used to clone and mirror a client computer (computer 2) from your corporate network to the POC environment. Alternatively, you can use an arbitrary VM to represent this computer, therefore this computer is not required to complete the lab. +The second computer (computer 2) is a client computer from your corporate network that is used to create VM that can be added to the POC environment. The VM is a mirror image of the computer on your corporate network, providing a realistic simulation of the upgrade process. If you do not have a computer to use for this simulation, you can create an arbitrary VM to represent this computer.
@@ -131,7 +131,7 @@ The Hyper-V role cannot be installed on Windows 7 or earlier versions of Windows ## Lab setup -- The Hyper-V host computer (computer 1) is configured to host four VMs on a private, proof of concept network. +- The Hyper-V host computer (computer 1) is configured to host four VMs on a private, PoC network. - Two VMs are running Windows Server 2012 R2 with required network services and tools installed. - Two VMs are client systems: One VM is intended to mirror a host on your corporate network (computer 2) and one VM is running Windows 10 Enterprise to demonstrate the hardware replacement scenario. - Links are provided to download trial versions of Windows Server 2012, Windows 10 Enterprise, and all deployment tools necessary to complete the lab. @@ -141,7 +141,7 @@ The lab architecture is summarized in the following diagram: ![PoC](images/poc.png) **Note**: ->If you have an existing Hyper-V host, you can use this host if desired and skip the Hyper-V installation section in this guide. +>If you have an existing Hyper-V host, you can use this host and skip the Hyper-V installation section in this guide. >The two Windows Server VMs can be combined into a single VM to conserve RAM and disk space if required. However, instructions in this guide assume two server systems are used. Using two servers enables Active Directory Domain Services and DHCP to be installed on a server that is not directly connected to the corporate network. This mitigates the risk of clients on the corporate network receiving DHCP leases from the PoC network (i.e. "rogue" DHCP), and limits NETBIOS service broadcasts. @@ -175,7 +175,7 @@ The lab architecture is summarized in the following diagram: ``` In this example, the computer supports SLAT and Hyper-V. - If one or more requirements are evaluated as "No" then the computer does not support installing Hyper-V. However, if only the virtualization setting is incompatible, you might be able to enable virtualization in the BIOS and change the "Virtualization Enabled In Firmware" setting from "No" to "Yes." The location of this setting will depend on the manufacturer and BIOS version, but is typically found associated with the BIOS security settings. + If one or more requirements are evaluated as "No" then the computer does not support installing Hyper-V. However, if only the virtualization setting is incompatible, you might be able to enable virtualization in the BIOS and change the **Virtualization Enabled In Firmware** setting from "No" to "Yes." The location of this setting will depend on the manufacturer and BIOS version, but is typically found associated with the BIOS security settings. You can also identify Hyper-V support using [tools](https://blogs.msdn.microsoft.com/taylorb/2008/06/19/hyper-v-will-my-computer-run-hyper-v-detecting-intel-vt-and-amd-v/) provided by the processor manufacturer, the [msinfo32](https://technet.microsoft.com/en-us/library/cc731397.aspx) tool, or you can download the [coreinfo](http://technet.microsoft.com/en-us/sysinternals/cc835722) utility and run it, as shown in the following example: @@ -194,7 +194,7 @@ The lab architecture is summarized in the following diagram: EPT * Supports Intel extended page tables (SLAT) ``` - Note: A 64-bit operating system is requried to run Hyper-V. + Note: A 64-bit operating system is required to run Hyper-V. 2. Enable Hyper-V. @@ -203,56 +203,72 @@ The lab architecture is summarized in the following diagram: ``` Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All ``` - When you are prompted to restart the computer, choose Yes. The computer might restart more than once. + This command works on all operating systems that support Hyper-V. When you are prompted to restart the computer, choose **Yes**. The computer might restart more than once. - You can also install Hyper-V using the Control Panel in Windows under **Turn Windows features on or off** (client OS), or using Server Manager's **Add Roles and Features Wizard** (server OS), as shown below: + You can also install Hyper-V using the Control Panel in Windows under **Turn Windows features on or off** for a client operating system, or using Server Manager's **Add Roles and Features Wizard** on a server operating system, as shown below: ![hyper-v feature](images/hyper-v-feature.png) ![hyper-v](images/svr_mgr2.png) +

If you choose to install Hyper-V using Server Manager, accept all default selections. + ### Download VHD and ISO files +When you have completed installation of Hyper-V on the host computer, begin configuration of Hyper-V by downloading VHD and ISO files to the computer. These files will be used to create the VMs used in the lab. + +>Before you can download VHD and ISO files, you will need to register and sign in to the [TechNet Evaluation Center](https://www.microsoft.com/en-us/evalcenter/) using your Microsoft account. + 1. Create a directory on your Hyper-V host named C:\VHD and download a single [Windows Server 2012 R2 VHD](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2012-r2) from the TechNet Evaluation Center to the C:\VHD directory. **Important**: This guide assumes that VHDs are stored in the **C:\VHD** directory on the Hyper-V host. If you use a different directory to store VHDs, you must adjust steps in this guide appropriately. - After completing registration you will be able to download the 7.47 GB Windows Server 2012 R2 evaluation VHD. + After completing registration you will be able to download the 7.47 GB Windows Server 2012 R2 evaluation VHD. An example of the download is shown below. ![VHD](images/download_vhd.png) -2. Rename the VHD file that you downloaded to **2012R2-poc-1.vhd**. This is not required, but is done to make the filename simpler to recognize. +2. When the download is complete, rename the VHD file that you downloaded to **2012R2-poc-1.vhd**. This is done to make the filename simpler to recognize and type. 3. Copy the VHD to a second file also in the C:\VHD directory and name this VHD **2012R2-poc-2.vhd**. -4. Download the [Windows 10 Enterprise ISO](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise) from the TechNet Evaluation Center to the C:\VHD directory on your Hyper-V host. During registration, you must specify the type, version, and language of installation media to download. In this example, a Windows 10 Enterprise, 64 bit, English VHD is chosen. You can choose a different version if desired. Note that Windows 10 in-place upgrade is only possible if the source operating system and installation media are both 32-bit or both 64-bit, so you should download the file version that corresponds to the version of your source computer for upgrade testing. -5. Rename the ISO file that you downloaded to **w10-enterprise.iso**. Again, this is done so that the filename is simpler to type and recognize. After completing registration you will be able to download the 3.63 GB Windows 10 Enterprise evaluation ISO. - - The following commands and output display the procedures described in this section: +4. Download the [Windows 10 Enterprise ISO](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise) from the TechNet Evaluation Center to the C:\VHD directory on your Hyper-V host. + + - During registration, you must specify the type, version, and language of installation media to download. In this example, a Windows 10 Enterprise, 64 bit, English VHD is chosen. You can choose a different version if desired. Note that Windows 10 in-place upgrade is only possible if the source operating system and installation media are both 32-bit or both 64-bit, so you should download the file version that corresponds to the version of your source computer for upgrade testing. + +5. Rename the ISO file that you downloaded to **w10-enterprise.iso**. Again, this is done so that the filename is simpler to type and recognize. After completing registration you will be able to download the 3.63 GB Windows 10 Enterprise evaluation ISO. + +After completing these steps, you will have three files in the C:\VHD directory: 2012R2-poc-1.vhd, 2012R2-poc-2.vhd, w10-enterprise.iso. + +The following commands and output display the procedures described in this section: + + +``` +C:\>mkdir VHD +C:\>cd VHD +C:\VHD>ren 9600*.vhd 2012R2-poc-1.vhd +C:\VHD>copy 2012R2-poc-1.vhd 2012R2-poc-2.vhd + 1 file(s) copied. +C:\VHD ren *.iso w10-enterprise.iso +C:\VHD>dir /B +2012R2-poc-1.vhd +2012R2-poc-2.vhd +w10-enterprise.iso +``` - ``` - C:\>mkdir VHD - C:\>cd VHD - C:\VHD>ren 9600*.vhd 2012R2-poc-1.vhd - C:\VHD>copy 2012R2-poc-1.vhd 2012R2-poc-2.vhd - 1 file(s) copied. - C:\VHD ren *.iso w10-enterprise.iso - C:\VHD>dir /B - 2012R2-poc-1.vhd - 2012R2-poc-2.vhd - w10-enterprise.iso - ``` ### Convert PC to VHD -**Important**:Before you convert a PC to VHD, verify that you have access to a local administrator account on the computer. Alternatively you can use a domain account with administrative rights if these credentials are cached on the computer and your domain policy allows the use of cached credentials for login. +**Important**: Before you convert a PC to VHD, verify that you have access to a local administrator account on the computer. Alternatively you can use a domain account with administrative rights if these credentials are cached on the computer and your domain policy allows the use of cached credentials for login. After converting the computer to a VM, you must be able to sign in on this VM with local administrator privileges, while disconnected from the corporate network. ->For purposes of the test lab, you must use a PC with a single hard drive that is assigned a drive letter of C. Systems with multiple hard drives or non-standard configurations can also be upgraded using PC refresh and replace scenarios, but these systems require more advanced deployment task sequences than those used in this lab. +>For purposes of the test lab, use a PC that is assigned a drive letter of C. Systems with non-standard configurations can also be upgraded using PC refresh and replace scenarios, but these systems require more advanced deployment task sequences than those used in this lab. If the computer has multiple hard drives, then only choose the C drive for conversion. -1. Download the [Disk2vhd utility](https://technet.microsoft.com/en-us/library/ee656415.aspx), extract the .zip file and copy disk2vhd.exe to a flash drive or other location that is accessible from the computer you wish to convert. +1. Download the [Disk2vhd utility](https://technet.microsoft.com/en-us/library/ee656415.aspx), extract the .zip file and copy **disk2vhd.exe** to a flash drive or other location that is accessible from the computer you wish to convert. - >Note: You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media. + >You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media. 2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. -3. Select checkboxes next to the volumes you wish to copy and specify a location to save the resulting VHD or VHDX file. If your Hyper-V host is running Windows Server 2008 R2 you must choose VHD, otherwise choose VHDX. +3. Select checkboxes next to the **C** and **system** volumes and specify a location to save the resulting VHD or VHDX file. If your Hyper-V host is running Windows Server 2008 R2 you must choose VHD, otherwise choose VHDX. See the following example: + + ![disk2vhd](images/disk2vhd.png) + 4. Click **Create** to start creating a VHDX file. >Disk2vhd can save VHDs to local hard drives, even if they are the same as the volumes being converted. Performance is better however when the VHD is saved on a disk different than those being converted, such as a flash drive. @@ -658,7 +674,7 @@ If your Hyper-V host is running Windows Server 2008 R2, several of the steps in To manage Hyper-V on Windows Server 2008 R2, you can use Hyper-V WMI, or you can use the Hyper-V Manager console. -An example that uses Hyper-V WMI to create a virtual switch on Windows Server 2008 R2 is provided below. Converting all Hyper-V module commands used in this guide to Hyper-V WMI is beyond the scope of the guide. If you must use a Hyper-V host running Windows Server 2008 R2, the steps in the guide can be accomplished by using the Hyper-V Manager console. +An example that uses Hyper-V WMI to create a virtual switch on Windows Server 2008 R2 is provided below. ``` $SwitchFriendlyName = "poc-internal" @@ -687,8 +703,10 @@ To install Hyper-V on Windows Server 2008 R2, you can use the Add-WindowsFeature ``` Add-WindowsFeature -Name Hyper-V ``` -For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library. +Converting all Hyper-V module commands used in this guide to Hyper-V WMI is beyond the scope of the guide. If you must use a Hyper-V host running Windows Server 2008 R2, the steps in the guide can be accomplished by using the Hyper-V Manager console. These steps are not provided at this time in the guide. + +For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library. ## Related Topics From 7bf86f4a1a9b961b3ee5b8ce6b3d24d5b7b102e5 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 13 Oct 2016 17:28:58 -0700 Subject: [PATCH 015/233] several edits --- windows/deploy/images/ISE.PNG | Bin 0 -> 71898 bytes windows/deploy/windows-10-poc.md | 111 ++++++++++++++++++------------- 2 files changed, 64 insertions(+), 47 deletions(-) create mode 100644 windows/deploy/images/ISE.PNG diff --git a/windows/deploy/images/ISE.PNG b/windows/deploy/images/ISE.PNG new file mode 100644 index 0000000000000000000000000000000000000000..edf53101f4614228a1474d80eb8e43739cbf27cc GIT binary patch literal 71898 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

EbQ}OS(nE# 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 V#YSp+`11a!4>f_5o&WvD{{tm @@ -203,7 +205,7 @@ The lab architecture is summarized in the following diagram: ``` Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All ``` - This command works on all operating systems that support Hyper-V. When you are prompted to restart the computer, choose **Yes**. The computer might restart more than once. + This command works on all operating systems that support Hyper-V. When you are prompted to restart the computer, choose **Yes**. The computer might restart more than once. After installation is complete, you can open Hyper-V Manager by typing **virtmgmt.msc** at an elevated command prompt. You can also install Hyper-V using the Control Panel in Windows under **Turn Windows features on or off** for a client operating system, or using Server Manager's **Add Roles and Features Wizard** on a server operating system, as shown below: @@ -303,9 +305,9 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to ### Configure Hyper-V -Note: The Hyper-V Windows PowerShell module is not available on Windows Server 2008 R2. For more information, see [Appendix A: Configuring Hyper-V settings on 2008 R2](#appendix-a-configuring-hyper-v-on-windows-server-2008-r2). +Note: The Hyper-V Windows PowerShell module is not available on Windows Server 2008 R2. For more information, see [Appendix B: Configuring Hyper-V on Windows Server 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2). -**Important**:You should take advantage of [enhanced session mode](https://technet.microsoft.com/windows-server-docs/compute/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect) when completing instructions in this guide. Enhanced session mode enables you to copy and paste the commands. After copying some text, you can paste into a Windows PowerShell window by simply right-clicking. Before right-clicking, do not left click other locations as this can empty the clipboard. You can also copy and paste files directly from one computer to another by right-clicking and selecting copy, then right-clicking and selecting paste. +**Important**: You should take advantage of [enhanced session mode](https://technet.microsoft.com/windows-server-docs/compute/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect) when completing instructions in this guide. Enhanced session mode enables you to copy and paste the commands from the Hyper-V host to VMs and between VMs. After copying some text, you can paste into a Windows PowerShell window by simply right-clicking. Before right-clicking, do not left click other locations as this can empty the clipboard. You can also

directly from one computer to another by right-clicking and selecting copy, then right-clicking and selecting paste. Instructions to "type" commands provided in this guide can be typed, but in most cases the preferred method is to copy and paste these commands. @@ -318,16 +320,23 @@ Instructions to "type" commands provided in this guide can be typed, but in most ``` New-VMSwitch -Name poc-internal -SwitchType Internal -Notes "PoC Network" - New-VMSwitch -Name poc-external -NetAdapterName (Get-NetAdapter |?{$_.Status -eq "Up" -and $_.NdisPhysicalMedium -eq 14}).Name -Notes "PoC External" + New-VMSwitch -Name poc-external -NetAdapterName (Get-NetAdapter |?{$_.Status -eq "Up" -and !$_.Virtual}).Name -Notes "PoC External" + ``` + + **Note**: The second command above will temporarily interrupt network connectivity on the Hyper-V host. + + >Since an external virtual switch is associated to a physical network adapter on the Hyper-V host, this adapter must be specified when adding the virtual switch. This is automated in the example here by filtering for active non-virtual ethernet adapters using the Get-NetAdapter cmdlet ($_.Status -eq "Up" -and !$_.Virtual). If your Hyper-V host is dual-homed with multiple active ethernet adapters, this automation will not work, and the second command above will fail. In this case, you must edit the command used to add the "poc-external" virtual switch by inserting the NetAdapterName. The NetAdapterName value corresponds to the name of the network interface you wish to use, for example if the network interface you use on the Hyper-V host to connect to the Internet is named "Ethernet 2" then type the following command to create an external virtual switch: + + ``` + New-VMSwitch -Name poc-external -NetAdapterName "Ethernet 2" -Notes "PoC External" ``` - >Also, since an external virtual switch is associated to a physical network adapter on the Hyper-V host, this adapter must be specified when adding the virtual switch. This is automated in the example here by filtering for active ethernet adapters using the Get-NetAdapter cmdlet. If your Hyper-V host has multiple active ethernet adapters, this automation will not work, and the second command above will fail. In this case, you must edit the command used to add the "poc-external" virtual switch by inserting the specific value needed for the -NetAdapterName option. This value corresponds to the name of the network interface you wish to use. 2. At the elevated Windows PowerShell prompt, type the following command to determine the megabytes of RAM that are currently available on the Hyper-V host: ``` (Get-Counter -Counter @("\Memory\Available MBytes")).countersamples.cookedvalue ``` - >This command will display the megabytes of RAM available. On a Hyper-V host computer with 16 GB of physical RAM installed, 12,000 MB of RAM or greater should be available if the computer is not also running other applications. If the computer has less than 12,000 MB of available RAM, try closing applications to free up more memory. + >This command will display the megabytes of RAM available. On a Hyper-V host computer with 16 GB of physical RAM installed, 12,000 MB of RAM or greater should be available if the computer is not also running other applications. On a computer with 8 GB of physical RAM installed, at least 5000 MB should be available. If the computer has less RAM available than this, try closing applications to free up more memory. 3. Determine the available memory for VMs by dividing the available RAM by 4. For example: @@ -342,18 +351,20 @@ Instructions to "type" commands provided in this guide can be typed, but in most ``` $maxRAM = 2700MB - New-VM –Name "DC1" –VHDPath c:\vhd\2012R2-poc-1.vhd -SwitchName poc-internal + New-VM -Name "DC1" -VHDPath c:\vhd\2012R2-poc-1.vhd -SwitchName poc-internal Set-VMMemory -VMName "DC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20 - Enable-VMIntegrationService –Name "Guest Service Interface" -VMName DC1 - New-VM –Name "SRV1" –VHDPath c:\vhd\2012R2-poc-2.vhd -SwitchName poc-internal + Enable-VMIntegrationService -Name "Guest Service Interface" -VMName DC1 + New-VM -Name "SRV1" -VHDPath c:\vhd\2012R2-poc-2.vhd -SwitchName poc-internal Add-VMNetworkAdapter -VMName "SRV1" -SwitchName "poc-external" Set-VMMemory -VMName "SRV1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 80 - Enable-VMIntegrationService –Name "Guest Service Interface" -VMName SRV1 - New-VM –Name "PC1" –VHDPath c:\vhd\w7.vhdx -SwitchName poc-internal + Enable-VMIntegrationService -Name "Guest Service Interface" -VMName SRV1 + New-VM -Name "PC1" -VHDPath c:\vhd\w7.vhdx -SwitchName poc-internal Set-VMMemory -VMName "PC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20 - Enable-VMIntegrationService –Name "Guest Service Interface" -VMName PC1 + Enable-VMIntegrationService -Name "Guest Service Interface" -VMName PC1 ``` + **Note**: The RAM values assigned to VMs in this step are not permanent, and can be easily increased or decreased later if needed to address performance issues. + ### Configure VHDs 1. At an elevated Windows PowerShell prompt on the Hyper-V host, start the first VM by typing the following command: @@ -367,8 +378,9 @@ Instructions to "type" commands provided in this guide can be typed, but in most vmconnect localhost DC1 ``` 3. Click **Next** to accept the default settings, read the license terms and click **I accept**, provide an administrator password of **pass@word1**, and click **Finish**. -4. Sign in to DC1 using the local administrator account. Right-click **Start**, point to **Shut down or sign out**, and click **Sign out**. The VM connection will reset and a new connection dialog box will appear enabling you to choose a custom display configuration. Select a desktop size, click **Connect** and sign in with the local Administrator account. Note: Signing in this way ensures that [enhanced session mode](https://technet.microsoft.com/windows-server-docs/compute/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect) is enabled. It is only necessary to do this the first time you sign in to a new VM. -5. If DC1 is configured as described in this guide, it will currently be assigned an APIPA address, have a randomly generated hostname, and a single network adapter named "Ethernet." Open an elevated Windows PowerShell prompt on DC1 and type or paste the following commands to provide a new hostname and configure a static IP address and gateway: +4. Click the **Ctrl+Alt+Del** button in the upper left corner of the virtual machine connection window, and then sign in to DC1 using the local administrator account. +5. Right-click **Start**, point to **Shut down or sign out**, and click **Sign out**. The VM connection will reset and a new connection dialog box will appear enabling you to choose a custom display configuration. Select a desktop size, click **Connect** and sign in again with the local Administrator account. Note: Signing in this way ensures that [enhanced session mode](https://technet.microsoft.com/windows-server-docs/compute/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect) is enabled. It is only necessary to do this the first time you sign in to a new VM. +6. If DC1 is configured as described in this guide, it will currently be assigned an APIPA address, have a randomly generated hostname, and a single network adapter named "Ethernet." Open an elevated Windows PowerShell prompt on DC1 and type or paste the following commands to provide a new hostname and configure a static IP address and gateway: ``` Rename-Computer DC1 @@ -376,26 +388,26 @@ Instructions to "type" commands provided in this guide can be typed, but in most Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses 192.168.0.1,192.168.0.2 ``` >The default gateway at 192.168.0.2 will be configured later in this guide. -6. Install the Active Directory Domain Services role by typing the following command at an elevated Windows PowerShell prompt: +7. Install the Active Directory Domain Services role by typing the following command at an elevated Windows PowerShell prompt: ``` Install-WindowsFeature -Name AD-Domain-Services -IncludeAllSubFeature -IncludeManagementTools ``` -7. Before promoting DC1 to a Domain Controller, you must reboot so that the name change in step 3 above takes effect. To restart the computer, type the following command at an elevated Windows PowerShell prompt: +8. Before promoting DC1 to a Domain Controller, you must reboot so that the name change in step 3 above takes effect. To restart the computer, type the following command at an elevated Windows PowerShell prompt: ``` Restart-Computer ``` -8. When DC1 has rebooted, sign in again and open an elevated Windows PowerShell prompt. Now you can promote the server to be a domain controller. The directory services restore mode password must be entered as a secure string: +9. When DC1 has rebooted, sign in again and open an elevated Windows PowerShell prompt. Now you can promote the server to be a domain controller. The directory services restore mode password must be entered as a secure string. Type the following commands at the elevated Windows PowerShell prompt: ``` $pass = "pass@word1" | ConvertTo-SecureString -AsPlainText -Force Install-ADDSForest -DomainName contoso.com -InstallDns -SafeModeAdministratorPassword $pass -Force ``` Ignore any warnings that are displayed. The computer will automatically reboot upon completion. -9. When the reboot has completed, reconnect to DC1, sign in using the CONTOSO\Administrator account, open an elevated Windows PowerShell prompt, and use the following commands to add a reverse lookup zone for the PoC network, add the DHCP Server role, authorize DHCP in Active Directory, and supress the post-DHCP-install alert: +10. When the reboot has completed, reconnect to DC1, sign in using the CONTOSO\Administrator account, open an elevated Windows PowerShell prompt, and use the following commands to add a reverse lookup zone for the PoC network, add the DHCP Server role, authorize DHCP in Active Directory, and supress the post-DHCP-install alert: ``` Add-DnsServerPrimaryZone -NetworkID "192.168.0.0/24" -ReplicationScope Forest @@ -405,19 +417,19 @@ Instructions to "type" commands provided in this guide can be typed, but in most Add-DhcpServerInDC dc1.contoso.com 192.168.0.1 Set-ItemProperty –Path registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\Roles\12 –Name ConfigurationState –Value 2 ``` -10. Next, add a DHCP scope and set option values: +11. Next, add a DHCP scope and set option values: ``` Add-DhcpServerv4Scope -Name "PoC Scope" -StartRange 192.168.0.100 -EndRange 192.168.0.199 -SubnetMask 255.255.255.0 -Description "Windows 10 PoC" -State Active Set-DhcpServerv4OptionValue -ScopeId 192.168.0.0 -DnsDomain contoso.com -Router 192.168.0.2 -DnsServer 192.168.0.1,192.168.0.2 -Force ``` - >The -Force option is necessary when adding scope options to skip validation of 192.168.0.2 as a DNS server because we have not configured it yet. The scope should immediately begin issuing leases on the PoC network. The first DHCP lease that will be issued is to vEthernet interface on the Hyper-V host, which is a member of the internal network. -11. Add a user account to the contoso.com domain that can be used with client computers: + >The -Force option is necessary when adding scope options to skip validation of 192.168.0.2 as a DNS server because we have not configured it yet. The scope should immediately begin issuing leases on the PoC network. The first DHCP lease that will be issued is to vEthernet interface on the Hyper-V host, which is a member of the internal network. You can verify this by using the command: Get-DhcpServerv4Lease -ScopeId 192.168.0.0. +12. Add a user account to the contoso.com domain that can be used with client computers: ``` New-ADUser -Name "User1" -UserPrincipalName user1 -AccountPassword (ConvertTo-SecureString "pass@word1" -AsPlainText -Force) -ChangePasswordAtLogon $false -Enabled $true ``` -12. The DNS server role will also be installed on the member server, SRV1, at 192.168.0.2 so that we can forward DNS queries from DC1 to SRV1 to resolve Internet names without having to configure a forwarder outside the PoC network. Since the IP address of SRV1 already existed on DC1's network adapter, it will be automatically added during the DCPROMO process. To verify this server-level DNS forwarder on DC1, type the following command at an elevated Windows PowerShell prompt on DC1: +13. The DNS server role will also be installed on the member server, SRV1, at 192.168.0.2 so that we can forward DNS queries from DC1 to SRV1 to resolve Internet names without having to configure a forwarder outside the PoC network. Since the IP address of SRV1 already exists on DC1's network adapter, it will be automatically added during the DCPROMO process. To verify this server-level DNS forwarder on DC1, type the following command at an elevated Windows PowerShell prompt on DC1: ``` Get-DnsServerForwarder @@ -434,26 +446,26 @@ Instructions to "type" commands provided in this guide can be typed, but in most ``` Add-DnsServerForwarder -IPAddress 192.168.0.2 ``` -13. Minimize the DC1 VM window but **do not stop** the VM. +14. Minimize the DC1 VM window but **do not stop** the VM. Next, the client VM will be started and joined to the contoso.com domain. This is done before adding a gateway to the PoC network so that there is no danger of duplicate DNS registrations for the physical client and its cloned VM in the corporate domain. -14. Using an elevated Windows PowerShell prompt on the Hyper-V host, start the client VM (PC1), and connect to it: +15. Using an elevated Windows PowerShell prompt on the Hyper-V host, start the client VM (PC1), and connect to it: ``` Start-VM PC1 vmconnect localhost PC1 ``` -15. Sign on to PC1 using an account that has local administrator rights. +16. Sign on to PC1 using an account that has local administrator rights. >PC1 will be disconnected from its current domain, so you cannot use a domain account to sign on unless these credentials are cached and the use of cached credentials is permitted by Group Policy. If cached credentials are available and permitted, you can use these credentials to sign in. Otherwise, use an existing local administrator account. -16. After signing in, the operating system detects that it is running in a new environment. New drivers will be automatically installed, including the network adapter driver. The network adapter driver must be updated before you can proceed, so that you will be able to join the contoso.com domain. Depending on the resources allocated to PC1, installing the network adapter driver might take a few minutes. +17. After signing in, the operating system detects that it is running in a new environment. New drivers will be automatically installed, including the network adapter driver. The network adapter driver must be updated before you can proceed, so that you will be able to join the contoso.com domain. Depending on the resources allocated to PC1, installing the network adapter driver might take a few minutes. You can monitor device driver installation by clicking **Show hidden icons** in the notification area. ![PoC](images/installing-drivers.png) >If the client was configured with a static address, you must change this to a dynamic one so that it can obtain a DHCP lease. -17. When the new network adapter driver has completed installation, you will receive an alert to set a network location for the contoso.com network. Select **Work network** and then click **Close**. When you receive an alert that a restart is required, click **Restart Later**. -18. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. +18. When the new network adapter driver has completed installation, you will receive an alert to set a network location for the contoso.com network. Select **Work network** and then click **Close**. When you receive an alert that a restart is required, click **Restart Later**. +19. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." @@ -489,7 +501,7 @@ Instructions to "type" commands provided in this guide can be typed, but in most ``` >If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. -19. Open an elevated Windows PowerShell ISE window on the Hyper-V host and type the following commands in the (upper) script editor pane: +20. Open an elevated Windows PowerShell ISE window on the Hyper-V host (right-click Windows PowerShell and then click Run ISE as Administrator) and type the following commands in the (upper) script editor pane: ``` (Get-WmiObject Win32_ComputerSystem).UnjoinDomainOrWorkgroup($null,$null,0) @@ -499,14 +511,19 @@ Instructions to "type" commands provided in this guide can be typed, but in most Add-Computer -DomainName contoso.com -Credential $cred Restart-Computer ``` -20. Click **File**, click **Save As**, and save the commands as **c:\VHD\ps1.ps1** on the Hyper-V host. -21. In the (lower) terminal input window, type the following command to copy the script to PC1 using integration services: + + See the following example: + + ![ISE](images/ISE.png) + +21. Click **File**, click **Save As**, and save the commands as **c:\VHD\pc1.ps1** on the Hyper-V host. +22. In the (lower) terminal input window, type the following command to copy the script to PC1 using integration services: ``` Copy-VMFile "PC1" –SourcePath "C:\VHD\pc1.ps1" –DestinationPath "C:\pc1.ps1" –CreateFullPath –FileSource Host ``` >In order for this command to work properly, PC1 must be running the vmicguestinterface (Hyper-V Guest Service Interface) service. -22. On PC1, type the following commands at an elevated Windows PowerShell prompt: +23. On PC1, type the following commands at an elevated Windows PowerShell prompt: ``` Get-Content c:\pc1.ps1 | powershell.exe -noprofile - @@ -514,18 +531,18 @@ Instructions to "type" commands provided in this guide can be typed, but in most >PC1 is removed from its domain in this step while not connected to the corporate network so as to ensure the computer object in the corporate domain is unaffected. We have not also renamed PC1 to "PC1" in system properties so that it maintains some of its mirrored identity. However, if desired you can also rename the computer. -23. After PC1 restarts, sign in to the contoso.com domain with the (user1) account you created in step 11 of this section. +24. After PC1 restarts, sign in to the contoso.com domain with the (user1) account you created in step 11 of this section. >The settings that will be used to migrate user data specifically select only accounts that belong to the CONTOSO domain. If you wish to test migration of user data and settings with an account other than the user1 account, you must copy this account's profile to the user1 profile. -24. Minimize the PC1 window but do not turn it off while the second Windows Server 2012 R2 VM (SRV1) is configured. This verifies that the Hyper-V host has enough resources to run all VMs simultaneously. Next, SRV1 will be started, joined to the contoso.com domain, and configured with RRAS and DNS services. -25. On the Hyper-V host computer, at an elevated Windows PowerShell prompt, type the following commands: +25. Minimize the PC1 window but do not turn it off while the second Windows Server 2012 R2 VM (SRV1) is configured. This verifies that the Hyper-V host has enough resources to run all VMs simultaneously. Next, SRV1 will be started, joined to the contoso.com domain, and configured with RRAS and DNS services. +26. On the Hyper-V host computer, at an elevated Windows PowerShell prompt, type the following commands: ``` Start-VM SRV1 vmconnect localhost SRV1 ``` -26. Accept the default settings, read license terms and accept them, provide an administrator password of **pass@word1**, and click **Finish**. When you are prompted about finding PCs, devices, and content on the network, click **Yes**. -27. Sign in to SRV1 using the local administrator account. In the same way that was done on DC1, sign out of SRV1 and then sign in again to enable enhanced session mode. This will enable you to copy and paste Windows PowerShell commands from the Hyper-V host to the VM. -28. Open an elevated Windows PowerShell prompt on SRV1 and type the following commands: +27. Accept the default settings, read license terms and accept them, provide an administrator password of **pass@word1**, and click **Finish**. When you are prompted about finding PCs, devices, and content on the network, click **Yes**. +28. Sign in to SRV1 using the local administrator account. In the same way that was done on DC1, sign out of SRV1 and then sign in again to enable enhanced session mode. This will enable you to copy and paste Windows PowerShell commands from the Hyper-V host to the VM. +29. Open an elevated Windows PowerShell prompt on SRV1 and type the following commands: ``` Rename-Computer SRV1 @@ -533,7 +550,7 @@ Instructions to "type" commands provided in this guide can be typed, but in most Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses 192.168.0.1,192.168.0.2 Restart-Computer ``` -29. Wait for the computer to restart, then type or paste the following commands at an elevated Windows PowerShell prompt: +30. Wait for the computer to restart, then type or paste the following commands at an elevated Windows PowerShell prompt: ``` $pass = "pass@word1" | ConvertTo-SecureString -AsPlainText -Force @@ -542,14 +559,14 @@ Instructions to "type" commands provided in this guide can be typed, but in most Add-Computer -DomainName contoso.com -Credential $cred Restart-Computer ``` -30. Sign in to the contoso.com domain on SRV1 using the domain administrator account (enter contoso\administrator as the user), open an elevated Windows PowerShell prompt, and type the following commands: +31. Sign in to the contoso.com domain on SRV1 using the domain administrator account (enter contoso\administrator as the user), open an elevated Windows PowerShell prompt, and type the following commands: ``` Install-WindowsFeature -Name DNS -IncludeManagementTools Install-WindowsFeature -Name WDS -IncludeManagementTools Install-WindowsFeature -Name Routing -IncludeManagementTools ``` -31. Before configuring the routing service that was just installed, verify that network interfaces were added to SRV1 in the right order, resulting in an interface alias of "Ethernet" for the private interface, and an interface alias of "Ethernet 2" for the public interface. Also verify that the external interface has a valid external DHCP IP address lease. +32. Before configuring the routing service that was just installed, verify that network interfaces were added to SRV1 in the right order, resulting in an interface alias of "Ethernet" for the private interface, and an interface alias of "Ethernet 2" for the public interface. Also verify that the external interface has a valid external DHCP IP address lease. To view a list of interfaces, associated interface aliases, and IP addresses on SRV1, type the following Windows PowerShell command. Example output of the command is also shown below: @@ -563,7 +580,7 @@ Instructions to "type" commands provided in this guide can be typed, but in most ``` In this example, the poc-internal network interface at 192.168.0.2 is associated with the "Ethernet" interface and the Internet-facing poc-external interface is associated with the "Ethernet 2" interface. If your interfaces are different, you must adjust the commands provided in the next step appropriately to configure routing services. -32. To configure SRV1 with routing capability for the PoC network, type or paste the following commands at an elevated Windows PowerShell prompt on SRV1: +33. To configure SRV1 with routing capability for the PoC network, type or paste the following commands at an elevated Windows PowerShell prompt on SRV1: ``` Install-RemoteAccess -VpnType Vpn @@ -572,12 +589,12 @@ Instructions to "type" commands provided in this guide can be typed, but in most cmd /c netsh routing ip nat add interface name="Ethernet" mode=PRIVATE cmd /c netsh routing ip nat add interface name="Internal" mode=PRIVATE ``` -33. The DNS service on SRV1 also needs to resolve hosts in the contoso.com domain. This can be accomplished with a conditional forwarder. Open an elevated Windows PowerShell prompt on SRV1 and type the following command: +34. The DNS service on SRV1 also needs to resolve hosts in the contoso.com domain. This can be accomplished with a conditional forwarder. Open an elevated Windows PowerShell prompt on SRV1 and type the following command: ``` Add-DnsServerConditionalForwarderZone -Name contoso.com -MasterServers 192.168.0.1 ``` -34. In most cases, this completes configuration of the PoC network. However, if your corporate network has a firewall that filters queries from local DNS servers, you will also need to configure a server-level DNS forwarder on SRV1 to resolve Internet names. To test whether or not DNS is working without this forwarder, try to reach a name on the Internet from DC1 or PC1, which are only using DNS services on the PoC network. You can test DNS with the ping command, for example: +35. In most cases, this completes configuration of the PoC network. However, if your corporate network has a firewall that filters queries from local DNS servers, you will also need to configure a server-level DNS forwarder on SRV1 to resolve Internet names. To test whether or not DNS is working without this forwarder, try to reach a name on the Internet from DC1 or PC1, which are only using DNS services on the PoC network. You can test DNS with the ping command, for example: ``` ping www.microsoft.com @@ -589,7 +606,7 @@ Instructions to "type" commands provided in this guide can be typed, but in most ``` Add-DnsServerForwarder -IPAddress (Get-DnsClientServerAddress -InterfaceAlias "Ethernet 2").ServerAddresses ``` -35. If DNS and routing are both working correctly, you will see the following on DC1 and PC1: +36. If DNS and routing are both working correctly, you will see the following on DC1 and PC1: ``` PS C:\> ping www.microsoft.com @@ -605,8 +622,8 @@ Instructions to "type" commands provided in this guide can be typed, but in most Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 3ms, Average = 2ms ``` -36. Verify that all three VMs can reach each other, and the Internet. See [Appendix B: Verify the configuration](#appendix-b-verify-the-configuration) for more information. -37. Lastly, because the client computer has different hardware after copying it to a VM, its Windows activation will be invalidated and you might receive a message that you must activate Windows in 3 days. To extend this period to 30 days, type the following commands at an elevated Windows PowerShell prompt on PC1: +37. Verify that all three VMs can reach each other, and the Internet. See [Appendix B: Verify the configuration](#appendix-b-verify-the-configuration) for more information. +38. Lastly, because the client computer has different hardware after copying it to a VM, its Windows activation will be invalidated and you might receive a message that you must activate Windows in 3 days. To extend this period to 30 days, type the following commands at an elevated Windows PowerShell prompt on PC1: ``` slmgr -rearm From e248bdcd9a58006ba4a58b77bb111d96542631e4 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 18 Oct 2016 13:22:34 -0700 Subject: [PATCH 016/233] new graphic --- windows/deploy/images/disk2vhd.PNG | Bin 20359 -> 24397 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/windows/deploy/images/disk2vhd.PNG b/windows/deploy/images/disk2vhd.PNG index 7b9835f5f653768d14e770f9f91747076257127d..629ee33e6ce6260b7b064ccedf79cd1ea56683a7 100644 GIT binary patch literal 24397 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 From 9cd2eada289769c1e95df7d9bf52f0ec51ae0cb9 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 19 Oct 2016 11:28:55 -0700 Subject: [PATCH 017/233] t --- windows/deploy/images/disk2vhd.PNG | Bin 24397 -> 20359 bytes windows/deploy/windows-10-poc.md | 22 +++++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/windows/deploy/images/disk2vhd.PNG b/windows/deploy/images/disk2vhd.PNG index 629ee33e6ce6260b7b064ccedf79cd1ea56683a7..7b9835f5f653768d14e770f9f91747076257127d 100644 GIT binary patch literal 20359 zcmeFYXIxWn*De?ZL8OWb(k&R8bfk9$q$8jxUFjgb21w{2QY9e0cTkYtyMXjw0|W>V zdJDbIj{oO<=FFTj=bdxr+kD{1&fdwruf6WIu63<--#b`MMUMCm^&JohL@fXMl{yG? zlK=#|VR9P}IPE1p<{s5MF$|1$-v3d;P%?1R`m} z{@v)b%`*mpRB7d3Nol(2ZzZ3{(zeH-&l#p1O()!*|Cl{Bfz60{m{NKW#kGh@Mz~VZ z1X9r;4CjnS>*|+cBZ>Wfx7~ChvmxRch4rHre39e`+(>6 z?rilpst*EBZH?bLPt-Lc9mUss|NL0D$W2QLR z56!to%1GEv?BVX(`!W>h2KMm8sov`9?-6hk;T4HJ2l5mi-x9?>I|w9Bx3fi^qtJ4z z6f@s6Z4aDj-WxxgJ(#pbrlm?8NcYX3RqIa#Rtaq7q)0r^yd@T5g*VZ8$UiLTANO7U zeS=XP?BtqX4PC4?^tMS`ML?|byZ-yygm+*2v7o3)pS#7+=~uzej_LBLbQvZ#rguj% z#X||~e&rj@ZrH)+WT}J5=r-_W%~@y8yFs%TI~%JVOmo?YR9J+mSXFRQa@F_k>J4WPI9@$buavEfFE=py>YkS z_~>r91`;b<$2pr?v_9COAsIaOD)VWC_8qUfD!$7@V+|K>(ChK-?3g}X!e&;Bw_3bt zqGF*7{e7^xg#c3k$uhNr>e`mryO|XdtOmBiJU@r{ika?DTOSLE%PlQHI~afmp>d5+ z7ZPnSicXoVPOYRn{W4CMl;zyPcd_A^xORM*dC<49o$hrt^z)!~`0aYlUB$KUJ;fOz zxYy_3eg>clQ!=ihrx6zYtdMa3fr)V2Y#}6PG^8iw%05+1hx{*0a zRm7n6(7qwwev;pKlJYtx4rF_EwV$4=?!0$Z@DqHAq;Ov&+=6)Vb?q=ouSAw zj7HAo@@TJq9Se#zSckfV!Hh#&S+w~Dr6k-f#n@*&Bd?AUlbw(=K^CXAu)~=z0;})z zXWsQd?@8{!UM_XDNl2`;2L$lZ#3@UD@8repe#634Ya9Bx*LsSBn51#1=^FM%Fx92ee*@({ z+ei~M*75tkVC3iG;HsL>EOV(wL_Xj3ndLgM)1h+|`X;}=%-&m{;WQFfWfh%*fcd9P zdB*8azK}(pP8bYc*RIi@p&90+o6g&Krn$I&q%hoNw>d7pYhgt(JQjN$m7=mtn4XlH zt`4DHUV3nF6~%FOC9PdRS173Q85NypqSuF8bOW?(=!d#8Dj&z)(dIT>N4e|KP&DpR zH%K`6@+W%7;p6M~-9NDt-}3A_e+sYE7b3yI4%r%gY8qUrVM`vf1Z9|hYD3PgY zxs@a%nLG4p0Z_TM(jJb?)XPn?16$I*%-oa@uQ=;#eaC4s(_*TecM_ct%K}3)6+G4= zeSlS+5TCByqPOWM%px$ALM{V|risT!&g>P1&w+$*D4g?a7Pe6KMmLs(P$LisaRaEQs=UjfrC#n z7)VUBI_rwePQ5zFb!sCP7-X-Sk(RhvAYCh}+s>%4ni!sIz&A&AG#qRg3}kwk4P-yq zIFI3pZ4XIQ+Q_V#NR(M6o!gU$lfk5zJV_Ph82IM4rcc$h41$juQPgdu<_PGCmlS*zYViq?S-8gg``EF*@k6?+oS8#Lb z+T|g%+Me#3^3|Ncq_s-b`O}=#Z*LwlFsRN$RU-EHh1N(FWlbn5FYRv+l|apt_T8LX z;0L1`szWrk^&gdQlD3{5Zsb>0#p*+rADkZtQ0k}2(Lc_;D47MSF4bo+8U`opG+W)Uwz5%FW;vm;eC`UtU8KK2i#{wZ#Y z1n1vd9S6kZ*xvm}ySjq8ucilW>W~S{xn)9Y?Pi@Ph77I`4HD~nR>QrL6|Z-bH==oB zN4Dy#>zRhUmqYISIa;$OKUKeUc1D*^Nqnc)kk_Z0gB65cF@vm}sfMjd7P`66h`nW~2F$Xa zEruxs*-=@8m+r#6CU$HIO>r+1`K>d|Qla0s>vqJg9&Xoe*qqfhor}~Sj_a%e=W-HlYW=R3 z4Qz5lI2(L9&N>7Df0`+Xu4(1qXwv6A?rSY)bQ1NYZ1&Rq#p`@QRhA}W0UjX7SZEtP`!8P89k1x$MBhD5VMoqB z6|z=8zQN2uGVT$`H1-J0!X#;hR{Td&#JAfH4^DQ1AE~UUtI(8Vo?(SiL|cxS9I;XP z+U05)Vd9*?d0-znc@NQi-UQ?0A%UHlipNUew4fa!cse$^DH0@rKar}abHB4a_ofiP zW}UU$NIpO%+GgX^yG2s4Yrm?R*)KjYxZd!}4dJMb<2bLombpe*#SS9%&)Cnln=bwc z#(U*XXxYB$4xs?U+V6d&NFcu26Wm%pmuWm-bG_R0tJ_?39XdQt447MHvper8>J>yb zuq{HHXiW@8FC!w3-5`qX8&(BZ@@L81LiyzxmwmQn?5g8sK9o?c6vY9~rwt4dG^tjd zli4An+KEDaxRnnoMM)9hH>phqC89FZ4@XKTB-uxn?;gt*K-2l7OGzb9XRiM+e1da* zCv4(bY1Rr|eNe6+=m(^EJ(?4*C1N@;lbegdx>wdMPbyRx`g4;x7XWqYMO*1<*NZam z<(~fRHa~>SUO%gtLL0$^cN}3l9rPdcZ+Ov4J8gPFZ@JY;=3mWnC72~q$F;B}w~KhN#y1x+awKz( z*mSv=X!g=e5E;N~le$0&zA%pDE1XV?w&us~&@od~989t5GIfg2Yz_tJU25$*qc4@D zbQ%LV^famIUKcIA2bC`WLeM=UXOIDv6X&r<{ngQcNS7(DmkA0_&1`AQwZw|_Gt{pz zobyH$cl{RE`OACdv)PHT>T)OX4hexUwl*vToTp3{th-%05)U(vUFd(Q61&hRX<}}q zO1baiUzi`8y4%5BXf+vtC#Lq1qiB@cI6oR`G0Od00@U(fe4MHqZL$rORk_IjtBs$A zz5Ej1@-5;vpr!L(B;s|hF67SrDmJ&e1)!z6d*K~E449DBN4D1p?_kQ_Mj=9k0VAX37PFt}na z?(HLwy*^FbhtI_Y6nY@Z#LQC=9vJ(3b4Nag=4M9hb?fjIoQH9^z)@P?(EszG`BCz# z>HXm(>$~wo$~0pa)J35x>u(~wUeVNaChdR0<>3L( zW@$!FB$m94TepAH-Qv{Bkep{}w5BA{bhqTUl&~_tU=PoTa~6h*M^>B-#Qwy;I8%4mvQ2hAu638D0vfB2b{UrHybQ<$)$xm zi5KhT8{z%6A+h%gPF$c{)Vy!Wvy%exbDzd9(v8xOIB?OpG+)ZLSaIilS-R*)d>!*h zTy?Et@v*bzjVFn@p_D8Rk0ky>LCF{Y`}OS$xuY(&lh2P_d|tHPnpH^fSECC|a>h&zt|Y72pqm*+7zIY5(iKWdVgZ8@NS#O5m73 zoL;Uq1WNS;5a7LI+yqyYxDe!{_iw(kw?aC5^qVg^b-H1DZ*Io2@0&Ia2D5nPYn-mp zn@pg&I&q8)n@+kUR@V25@)HCiJ{j#CGP(Zf$$me(9Hph7y>S!d%?g0cSp+{mb7^+s zT3_oWuo=ryC#-%U4wJ~R)zxew7+T`=Waq_SXZ~Z)<-F$dW6`iMS8h4CF`0XGj%P#h zNC?DcvJc_yb?ym`pySn;Ai7&_JsmpS8O6eXbY(v`z$+i7Py)0cBys+^Q@RcwDMQ_0 zomSwUuPx;p5@C+nTQ4{zYnvzTvDeOCbjS2WhS(K&;^cOAW?tMa^^E;~9n-luR_Uog zo_pxDaxm5EY)`-KciTxGp{O*l8N~c9^-p0|3FH^*8$7j%0udJf;>m14eemh8-$wUR zbM*y8a^@bIu2VqwB7!e9XVdv&C9V>aY3$>-X+PLnUZD7c&ocSm=!&WOFmWbNLqo5>s!^2ZoQAsZ>x{;-Gu zF7zw3Bb`2%k&;j{1pIVN_Sv7MoSrk?UDxv)U&jGadUVe(jaD(Y-J}M}&Z)6kJLOcY zykCtNsI&1Y-MsfhO*_gUk!Ge!+MP#h>r@{$A>ff>`8^hYk(W zYYx<4ULvF#E(Z!+vz53S;a7|;1Dt0qjE6zPsLM}l1li;0aQxx@@Gic&qv8ozrYaH_P{a;x+5CP`_s}rBbn^9HCCk7vK{8WBz|jp*+6{p1HQGoy zWJAh5HWS?Iq&O0^e+i&(G59c@>%!Jry0$Tu6YuEml2t?bCm$~I9r6-XZho%y)TMI| zWgj7YRlGle@BHlycfQ}NeKD>S zk&;tUp=M@S)N$(81eX|%kB1Mva6o5A-1;{ddwBDt%-AjU4)$O5lHfIm7D@=Ol!*T1 z<@`=~50t8zN@bwOb{^CY@oSlQ?58PxU#Z-Y*C=u+q(6Ar7~S8@UY!`0Q^2O$Qj@>TfOtIm`T~(x&DBqoscut@@F!v9+kHOPnIjL9`Rh_GnowQ< z5iS;yF}Z9$<}7*iQmWpTxGiP)TJclK{F|-$VU89;6p`c@#C)#4bg28r-+YrFE^mG` z?>qm%#~#mc+HO$7aYZRoRs7Un{PI9U*mXN;Hb@?Hh)ohPDU3>L$6`7b9gD%5?gK_T z`KXeiQE~KCwVT;~rN3C`t%ws_fz;S~>$@@5$9moio_l*F$GB}NbwR>1b524T%3U?~ zwYT--E8DFHmS@GlO&$)ds&AJnEs%>A^scJrpDy?-R|FlA4HzM@u^hLgdj7umq6r7t zOIEif1MI*byEfQ(K2O*BQHVDsnD%{8dWkQ$wmDS>I9xW&M6gl2{uwqCx07;wee@JZ z0elktXf?cU{w}_^rlj2(huxI>t9hklwvD&lC1}E>nxpDr{%hI?Ltv|i7iogCC{vNg zTrhbZosUU1HgAgh2Ap$7ehwKr8uvt6lOwb}KzUDw89%SlC{5NH2_&EF8l4>x6Rufl zNl3H3+xn$?&l4U=@Mna0I3Cl$AP$GTFeKL|2LkskAHhu$r@h7AV&<)kev6|qoASY2 z{pFhW8H3RZr#XJKtm&(`DAxv2ZK3JY{Qa0p2xD<%JDY24|K%p+xeXzM0Mun!>DcW? zLm2yueppSqQx)gPO9W{2b|2&C4Wx3AY{%;IGW5XNh^$e<>Mos_yArf69Y`++nUL)7 zgz&*AEWd`yM;6~lrJ4Apdc38+cT0EYL6I)@_Wkwy_aT>Cqm3Ri>)Ge0#PWz&+8q38 z3~4G_5vK?v{k7?4y}^>vr-0^aYDs)=KFF*A7S;!3|Kc4&f2`dEQ-4Y3)jOLu`j49EOzMPHx8~LmJG84 zFEl74fQ}u^-K9%bcyA%-U_3#pb}8Z3L4ye86e%YO$u`FT<7Ard$>X{dmARE>x)UnL z;FFk{CAou7Pa_}tEm68X<&ESaD(cN5o*N+;bi$f;8t%`WCp6p=7SYw&-7c;ctF&t@ zLEa!_)S_c0A7%I#6hXg| zon1sk&phYx%eB2mkA!ccZ$QdeX-3^J`{)~?L>~P^GZ6I+GxEyA!x5ha``VMbrgX(3 zJwxJFXID|VR8RLgdIowbmJ!BkzK;|9SrY6Q<;^<7$=!XxCoRZfWZplaE~oX zy=7$*t3aAKX5{0xGfMa13`01ojmok5=Yo1Jv-b|Vzg{hgkau)+Xu=2A8U}0)Y8(v( zT55R-dbjPHj>jeG?d`OXvah!s;{*67&)}Zh!LNi#&BXypKDrG4z5dQv!O z-3M#&1b?TraIfr8uY^(3d5*ku38g1qqQ3`rmK86RSOM9dCiUN@!!27Oz9jiPw7c+Z z?Oj3zS%9_QDoY=XWbeWBL8NpjXdkn=$?LCl_#kiU$I7kW8(aK;inxpflS<^+B7a3T zx*R?&|1?H&&etM9&~m7r6Z3M#^O$$!NkrDW4VHyj7R|`nz*X%AQNKzG?uwdr4{oHnctBh;T?<<>HucAJrd@`@D zeq+lp`qoDInvlR#P}=gKQfuYatdqHMsJ{N3oPhw|!g(3R&`@UQXcdiu{FjwvxEryglySBi)*d3R`u2!rPtTAE~;i$7owGb+16oTA3CkgQg=%osSoJ*>hLIo-!+a=PJY51`p76$5%COulh`v+`!_wDp~UwpB&aiuJwIP> z(9mED(o>*a*cx&pma=_exZG%Z=?x~>=~SS`Jp74C7xdcmL*@4gx>)r4df^)&YoLR- zV?8aKcy=^WrpP}GOj}mfIMML4iRWoMvo(KUZuWL|t`Klb(TjkJXYMkIm?tue`Ui1a zOSh85CJ0;i$LbB<70}sxvmFP(y%8TLdaCv0^@nn#w0Xybq^m%5`j``^?BLmgn>33bx9$cZ(pXJL(Wzt#8i6T5l;_1A=;8qTLIXU zD_h@xmpc(WbTg4KT!?f2^M{o<#fk9qwQ2rq_Izb-{>TJTjz5;pwbmbU3Ke^bvpcPS zad-c~j2qk67EX{(!>Aygx~K7uZZmqi_7jrS6=zs|wGM94+x<~?52BkOoYp;WVe;o- z$!*><*x+4GDD$lFO9{Q%{(Ly*HR=Y)9FinIIX&br}v@(#L$t->R{l zmpm_>+0MIAoNYuXp0U!G2<>Eku|Xz~q~fAd>seT$#i#wJ?(2!fNhonl?U|gkCi4BTQ{gNCks>3HI{+8srkGkqt zzu>?XCnP+XG3UFdb8M5NHGAB5S2G?_(G~w8%=KUO^X#&xTs5I8N^&!R-tC0UARfTn z3y4dR7DnF)mgpUbp0|F^Gh)J=p_1c7;@>dWy_g}{O`%Lj#tZe$Y74H|goU#!2=EU=wX$(y(^x*@5E3)>LT7k~KEQ8m@ zUi7>p4U*B0OzHC1tr3}qy@hD^y1Yy_@hE~696pZ~rG(i++_$k>`8^NJp7n4_eP%WO z@Lhd?^TkPQ0x1C1QvLxi!E}kbIXzs>fowCo=(ptWoaSWaFmD6>)rUK|p}xu+<*G5`)Ra%MA&QHtIry#9(TUQJ@5#36aI*3K@;5jgvsi}!{QKIj>o+MEiNrB z0Z)|J#`wqEJlL;*{5I5Ro_;6S*CR(12VYwpOeB?cFybeD8sMa|vA+J*uUdW}`tDe2 zc@LbAUp^7#k~17Y^?KMOaZ6|hyu)$_u<~drt0{RngM|3Agic0gDS?Kb4AQ#$JBm?2B&rNDX(_lCxLr*V|aM&?T!(PM=#g9Yz~CJL_YQb96(zU z0$!M@aV+<`zG7)XSEk5w2`v|z(>R^BedVyTS`N6$#Rh-Jj1-qzbyg+$^z_rs#+|$S zDNkNGfMrDkb~lJChLC1$H{c)u7C!*%XbU0mECI>5%e@Re?nRvsq99DM--TAhrX!vq zYgc&!TW&4+Om#eRa?VB=Ay&m?)P`qtDC7ZPQJap5cc7K3BvGE*`EtUf*axk}j<`K5 z@=SZ2@x76n9YISKA$bj-PRhj(=|_X$WsjD)5e*Z}y_?H#8-C_~vEN0o92=pGQXl>* z`L#Affuw~vOJZj?R}^k{wE1DW!9!pRwk2DehN9t%s8XB~*sTe(CC_0Tc&Mp6#=(G% z2nCH4c|pgOP{<8YNu1(2Ndq46JkqT$8j6#O$N>8oyw*Cl_o(Oz!Um7JW-sF=U_6EL za(Qp;2^Tfs$Ivsr!{cLB0&&WJVl3hPV?dJ33-a)MYI>MoTwMJ8gjT$20d~v5b3d~h zfsGs7k@Tx7-YbqINt4TLXOgrwxh8_+M{B{?AL$xDIXtnmUV)P@CyII;&gVTLy&@_<-IG zl=?^Y3IDOq+NR>o^Dq)tl@{~+#C}uopN22calop=?)&!%-4BVrR^-wAZOHlo=yM9d zAB~QQ5{4SMr+3z#e|7|IuBMSFG96a)k$i>ODP_B=qeEBg`{`jk3zaf+Su?&;3ofrL z0+r_3quVC=bGm~OO!5`^iM1kxXeR5^ydYsXkCMCVS(4KAOr;=`g%#^8uf7AeGZJ?b zTk@U9;~EhO3wvz3L=a@X0fqVI66WxGJJM4=HyJcGt|k1UTQpO7TBCb+Py_v7*hARS zw{e!VT(!rxhoa+=g`% zVXB?BfV#;VV{opZ)9NhSq6K|2e>-OD=+e<78K%z;WkvsSsxYt@2ap+JyYTs?^7C5T zD={_^1Wwyy)f7Z*Cge*HDu-U_yw6nzw(v(IKqJTd4zQ*H2#v??R+8fGsuJ(CkTzse zQ}oAv*|o_W0xh&VPN@O6FG)i*lYNd(PcQkq4nElmm|vD1QcQnW(K>6NEZubhHfMRS zVbjAIP}>MC$5az|=F6ewy~A*fJw0X3%=jOnt(lgoKfB*IhVPTNMFvXnexp^5K~*H% zJ9pQb)FM>6xuoWxc0;rp=bh-^fvoWDmw zm82aBp+RY9cYrThv@r5j4Z7YgC^iHxjdwD5(b~Q!)=nqYcyLA{br_Qv#6_T{cn6$b z6VUil4SEX>swg)kPtaKv!5!1WUJ5~LmK8oY<9eIEL#Am^1DQ+!e>CLpOA<=NThz7O658M!}CK8^Ey2M&!fERB2PZX2Y9mJBH-b`b?@Rp;e`<5S!5{ z#-+pb?ZrkHCpEcVrA8{Y$?L%Nx`~M|9P44ETH3_W*+lti+Mh8zj$kHz<+mdZ$gfE| zD<9k9{RhO)ldcZBPKjI%PTtnman9}31##5x(ob(M%QL&smh+{0UEQJ+8^snE__uXPy?l*B zsgEpE!aT|(9yi5csDfewk;s$}N$VpOXsR#Gl?LulsqY7yUhvzaVBw6u zw#fc$R?ETb_jKlA$%pf~@}<5v5LL=?PiNv^X!{TPSDz+$Q)mK&P!&vWu-YOLjyBGo zEf24r)F8YMMa=+8z#N#B6~W_N)v||1gZAw^TStysy8(*_NW_h>N{MW1&u>BlN9Kc- zHBCiC@iutdMO*eY4u}=BLva@R0y86SZtmvGKqW$*q$pFIooMBd66Yk+w7(*E3oQ>| zrfJ0AdU6j5r}%lTQJqU&wBthmC1C8+8F_BqA(M7Qxj4T)GBIwR_QA1J`BjJ&%Fe1e z^=y^Hi22S$9I!p&%%Th0e4dVJsMW1C_@3JDrI-?=aLSR2MUIK{&q9et?txB{%l%Bk zYyN{V>d0RIPV);iRRFg%tz3!9@BhXqu2g)1F!dxqQNH(l^NH0NXJ3toX(x+*3quA)f1O4rD$^Ga z*0YQUbv)6ZQNJXuXH`hf9kGLQ9=gXSa0ac^Zuj}~%jvn(YAJlcS>ldgd5YQPpZH0q z_(lr;2O|_A@oD z>Qoon-;DzL0VNLT7?|n{UF6G&7jXJ@qkG2DE*B6SitR0&L`7;J~ z^#IgjWAvI&iKRZAEY|}1dAw18UC2>WAOEiE=nL-%2zqi}XVZP(o|FBnjE~Fxc%~YA zrF^#cunTFCx8b6kIqAx+xqyp19;t$qs9+M-ZpP*LXmz%Oj|FKvTT{mgzh2zQ(%YNe0{Awy_{^wdK9;-&kB>GzlqVfx3F=*kOt;==zUi#2 zh5YfA2eIP=bm`aF#^`-EJPBTaW1Q9xK7ew1(Wzc4_@rTchq{&l;z|z=8pO^?sPTch zBsL=l7%2B(FP|5r6hF|5D`96>{a>JR9TcqouSOmOf3&kB!*aQE;26*zEgKNWF`Q14 z@X}Yd1!LLx7IY%wh8mk2eJOQ6BUaUsjXw1KE4v=Oe%qGlAGFfPMuV+Yd~=F(xCqSp zlL+>^m{JFGQ(+3|{^YXrf0ZayFT&*C@1K1oO03*Y3m7QQ`QS(~GT8D)*yHH)AR|$4 ziaf6w>2HrIsB-oaf#p9$p5x{szj!poun}i5{Xs!5oqsItXTkbgP5^{vR6_Uvs1@(4 zN{%gG3I*o4_mAM-RSdf^1-ID80PbXriJI|!&y!mF>;H|{KBMrx2(?#18dQ2hDI|22de2w{}<5{=$k(DP>l4Th#flCaRBo}Tm7 zjgCj2UgJ-M-4EV>tDK=9rYore&rl%Phwo9pB|2kdt_i4c^bTJQBK zGh5}&gm)RlncIZcmn`yxjOo05w$j}lYQ*CDwOF`fmeL?LUQf?n$8DxPEH%`FS*&o- znMB`jmXcFqYd5mReqWq5Ptiw7{|MC+ft)9l0VVMr-k6d2b z5UZb->d6Isq>0^(M6h3}B;mB_En+VL|D&p1sWe-qK|(^`70oK22L^tP^FNp`ySRM4 zM!0G4>vuyu;rGuNL#FNL;uCt_g8?O8r@q2+lGo&Hd4yug{j^Xb@vF;}*LvTSvd2X47IL0!CTW zF`~x90N*<-(kNw6I9|>U>Q){OSS;7KkC^l@b4i+z2%@Z4Ao6XXuqg^Sd!T6Ls#f&8 zNhv$L_K?n!Hinz@r!kCWN0;06pyETG0_K;6QmaQ|Dtd1eokF4 z2v%TP(EK0@TplNVie;CrAWKd8*Y1G_0^~kPU|2R=9RqNJR zV}h6z%h_mip7(4g7|BxwR6gkbqw3mHOx9apX?&!&i@{Vo=pv*K$KM@MJJv-7{*Dp| zLsS~+tZEfQ#%!uItdBd|=*rM5dZ>K17o6})JCQq>X4)^58EWqJiGMcafG4I@sA!>u z8%2f&B$7I)C~3$yJTIzK3-Yqf#RM)5m~fQ+nS8c9UcIA+Vt!HewfE&a)+SBSpv8t( zSglfrL1V!S(!>r%T0uS~0px^LD(wMr=pborYOd|o2&(+^SlZ?D*1;u0P0Ve$A_VgYrjkBE&*-2sk@|f{XQB4ffzA$ z|I|aKcf5(m{4&2H-%UIpIW@`V9ZMXibZD9uN0*4KG zuU(eGtv}G~MZxTWk_b=tzWLhb3}Vq(jZI(!YK zZ$)UV&{~J~+)Xv8<}BOaaen%9R_N=BbUi97=JAMI-TJ@i;nQhD&9`1Uum1b-$OlPS zW%@r}S5e?1FnwQ7W1x3iG<*Mdu{a@mSCaAwKF`h>T20oab7S8(AF<}Z8@1ex*(%~C z)0O@BI@8$J z(yF;N4m~cNqfCM-*&bJj+7upXb||VIKJ`p~xfU!9by&OFTdQCGgwTzX3s#DkFRO=r zIJMs0Uv(6ktGE-IZ%_nRJdV(s-vZ~|Fh;9VVYs3VR=B(C@LwMPe31M0BRzkZ{A9fe z+tzGd1W9=4h@Wbs42H7tWv)tUX4gHY)ssDWYKBziF2+fpZ-ly~#q4)V)X{e0%ZqW3 zzPaCL;rP-pxVN_iU)}dz#+F37wK3*$`r`bw9 zU1AvoO^CE2uea4Cgf)TCZC>Alq>+Xl2F7Ez4XT%*e%jrW1xWHg2F=U+XsFP8mBvp< zaq}gwGTjB83=_4ZX<|?(y}STmdw0(7YUQ9zDQd?Zp^PYjGFNbGbHc*^rpHC(%;e2!|~+m zBCK)vMb`jiRD5YkqerFhSIs&ZTfTH4%O>B zBYEMY5c1eX+|ozfsd#LG{xj=;Ye}d?g08_~%Vt`DFWQQnrz!4PyWetyaI?TpMUiPg z-woLdm|sKx9x-pCfys0t*PZVis_U{ge`FfT{v6oiA5#7td_vK$b)h3CWcw&W!nA(! z?IxZh^muxEtSiK9|0}EA<$*Xw2mka~f3X%ob?K|!aqG) zm71bg`c1|2e5fB{kE%-J1p(YK>|&(hwARgzbXo&utdgF;_?`<&nm*?!E>0YxKE$CUuNC=<{+< z`u>x;JXPl5wAUjfqdy);R((rgg7(@*w?InG2lto_x&$0z0f9yFNxZ$v+tDr`zZ~<1 z_!H$xTQ(*+B&(xZSDuKcj;MErUR<)U7l;#3l%h>>>WC9$5v)=ew2qB@k&+0qE+=w$cL>mvC- zx>*^EH#m-I^QfX5xff}wEtGwmKoCNCbNblnAVve0r*0^6J84yi%sl$3&+dwhCQp*Zgs7PDtg&hREm% z&xD|$LHQ{vJ7BxQeZ~*SBmA~g3LeMXnSM`E2lH^-p^Jc>!Tb@l`TlPLVVGxBM<oXE&UvVE@Txlc$Sv=5i^%G%oNDzq=DJEE7}6|!Jl5Um!tj6)p8b} z^f8_)%OT60{OO+Q4q~TUr6!ZYcPv_}gcUTaciu=2{Cufz)wGi?o-=KLY<#KwXeWVk zoM0eLBu1EY!w&1WcDt0|y%C(NUr%g%jFeL3nGLeV!hI4H6R5C_+)~Rsa5at?&An@f zn=cX#$$?V}8f}UH@ZI{;|2y#kZ6s{n@#rnFEqOU9m;wj;DQ&HgMalOXNsICRzcOD( zk0LT7n{6(=>bg4T3D~E}{|QEh@^3*CXvqrym2Jz_9!&q$%{b?ks(%27Nx@EK|`g~~Ttx!@?9Jil`lCj?zxCzLNVpHF`TQmHXsu=U&qrY%e%a1&y3C)5O65Mr zT}entL%pQhhQ*4KBMuYNi{4=4Brv|Om}g7*;Vqq5rj5ywma-y+*-cnv^!c*{|LAB( z-w;K2Zlx|jl-DWD7{^!opZ~$Kn}T%{Q~$&tXi&ndZtZU(_zgnO_bION=DP>5>9ZJE zS43)0ia14*5HnPE7&kCLE9a<8OSEK;H~Szi67P2Ns>hvI1RF^bQGMI(2vb5tyOLgn%4{l{;f z0yP1Nh2v9K5_j<9Db)dM@I6!^7gk6<_wtB=T75kDb2lL_E)CA4I-IYOOCET{5H}6S zRj#2VvvkQWW=FcMn69y-Wy1$7q6rqOc*`C#`!p_zGoMPMq7*1qKM5*ZWxkWG>1OY& z&?}dT(vpZ3G4a#P1mYsC8TwrW|0F3=o@`AwP(tpXyZ+EU-N_*Fi>Ak8<~Xlc)Tv7gCr3P8nTT+8qyV#GUnZJTcOXm)fg_a&j&-8A0n zBVR&$#h9Yb?)!{k-3~k9+q4HOa#0hh0@D{o7g&zm-L5?hmYTmva@n4#@h>SU$&bgS z7hINJbR_s$II25eMKenC=TATJjw$i%!C~~cOW|tFEAmYx1Go_T`O2ZAp-b$lQGdq0 z9R(9{zUBQhbhUkiYwq)G-HHhHeOh+aRnhMTscL=PUyp6m-g{~|h&OU?^~DMc>{^xu?jwwIpAYE$gt`=YK;TX#lV30z zr=g=~qNkA0H1)NIRg&HC>F;U`*-I5i=QipZ9SV8hfJ|R`0coxldXQ4(p#MwA6;g`f zRUl1_#0DleK{h!L!E#}_9Jd-qo)-t(+;{TOC8@wts zy8REE6@(^qFzyyhTGrPeuxr;Y(z%~USOFdO6Gi57PIc^3VVa8u5S{E$KNgqGX(KPH zC@+5ZzUgBJW$ClT9EV2hJIM0Mlqh8DgwuL9N5vNK=9gXC6V8 z%T}E7V}Ud*Mk8;BCwZvpWp)wZ8n4ep_t8PmTzT9u6{{EFnq82|Xz)j!Yny4I>e!=A z5koI3hoxQSpU7X_NX8`&B6UxD424?WvvvWsF2^kU=;wI)h_bbzi5hT-bpLT>P@}+H z7tG63D^^&a--~s26k&37x%YG2EfMx0q377)aa>SGL0UaGYa_>K1E3}H>OFp%r^TXI zdTnzRfY9dwxDc63hr=+~e15(;;db@X*VARHX1ry)9cMzld)SS7p8zPz#%Y9EDr%={7b~C#+vSJY9Z>O+c zx=;bsD>{T8K_tWJ3vJ^Ml~h!w4FZhu@LbV}xHX14iy=mwn(k`w05VJYE}F85`X?$Y zQVuwKVL9~)m5$FkCBXuEXBW~_bDtKF(pl5uSbI*x|5f|STOo|c*S|fB{VJ`gDhk;M+VtRH z0%6ELBX+?ByEQOhOnxw0U{Gy@O?%Vi5nt5AOw-lT3eRZ;mr)24-(~$s`;x# zZ=n@fFm*hC5p=)Z8D1EA$|o*vlS=!Gd;XxzY+$;n?dj7PUIG_8MaK_nWnXQ1>@nRm zvUTx-sRl0=oMOIo*2WeczkJB;OO|J#BDjEoi>kedkE$4Oelc zIG+MCJrK?lq2T_tSsiWIe^J!>-)Ak8=DiyK@wZwICGDSV(LQw_PgV%(XCI-zRoP;u zpgXe4``JA|<1So;0*00EG_}5NaDGHVD0B>OJiimI_t5V>M`|ikKs_dEOVRwsi+#jL zj1^(FfNV}f7Z+}Sz6UZLFIpht{qzMv-%GFUNlzgRB5(Mw34r}C%1rnc$i~OQe4f9*#(1J>>S(Nh1kYjN}cqsRLI%X0wx75tTB zk8Z02D{FuA1v9CIC6JT4?=KBBI?DL;~OYDDs3H?9u z>e>H4C@?4gn_uVq-)B=LV6Vo1vFpnBAw4NQrFA{X{DJ$GpyV~z4*Qwyal@TYZlZ3w z<$J^LkB%7Dma}_SvnS?2+@kcN9Mf(VkMK-b1n?}xz2ht8tG%{$-A@*R)+S4g4o=aj zet!p~XRw|DnY*Ou*MwZHFH{_4ADXQ;5s`ga*qgUs*c<9l-e0Hbu{fMQ1eRem)`f?Q zcHMTXcTdbwU@4;Ee~*3Ar3#b2ckiCl)dfV@gyZ>_`G5VK*xMA{9rSMS7ES+fSkRRc zY4{EN2>b}bhzNe0sAt7Z7ULl!2UBLLL%=pJNuvL_LjLI8{5f}EOrAWrg zxULP=ipmV50rincXrs0INoh}cm6OhI{{A+1%}or+oearY zU)F%7M8>!IqU8l4`^H8k>4~Pjt2xBeCDg!9C2cA*a+tO6BKJL7DclG-op}F+m~z7w z1?ur|Wj_aH-%32KFuX6E*@IkQABjiyi@$@{_vW5EN|_FMv=1}3hfjd$DdTVl3+%`) z2EY%mEDr|wT#iDzcQ@aT4h_AT|4Mo2xm{lQ}kBa;FW|f>IZN|GJbpJ00-S zpKsrCZ&Vlpfzu1PSJ!N_(Mwe+HeXKE?=1g*gk>CF0yrE#hH4O5V>76M&jGtxSzPMz zni;*{$tL(e1q-UgzIBC;J#W<-f9zO?hV!LCFOP6dg0iB&{=9rjtu)X_#hKxR8jHY0Si#p+rLi&y0G~ z(lkA2qvDcMF1cGSVT**en1v$B;sDOEFU`mI{qVl`ocn*C-~I6XFZbxcMz}+R&_F2v zvRX4RKhzM<81*JClL$I}Roa+siwIzQ?fF*CP}IGx$+~SGQ8}UxK!$*N6=vj^KoG{4 zf$6fOJ;I>D!II6P`Ifxb@Uj;q)gaR?oM)zHKU)Kn?#Ls zNu!k^N?0XVzEGKQ4)ZLm-xkm2QoNxRaSmWSvf;aDm^CUvOzpg<~ICX$!e_T;^zQVr?enlVY^at zsiz3m{RGX`R4Hn>!)99N!wchjnAWJFL^!RJu}Y*OK%sp7gO&dMqp#wMJGQRov#u?n z6ffM{Mb|k31c{&fHke(EYvVViS14;5&;d{GO*|7fUOoBNh)E>?UM`eA3EQC*pq(;B z9hBY7zUYT#Li>hRXC$_A(HX&u_d8p#ka5OrjbVXf?QxwH%=;6jAMNBV6Ck%1>dEcS z#`_t(=+N*LmtD`*Eq;>wW3i-73Z2ImP78KhInSSiZVF~)BY>y-?v!|>ix1OEux=FT z$F{a%y|K^B~L%ft7!c zS)CQfoFa{QEPzR=MvFGHeM3|E>59ZV_R|kjmg7?sShO86de5qiRh_Lv0#O#fE@(FN zmKBhru?v?dtW&WX^n>@!Y8QCmd{io;7aS*Ybd!=LCq)sMsZJJ^)ac@QdY4?1WiZ1F z(5f!Kesd#5m7P~c0r^e;q%~gptHBaEh*wI=jl#mTy}m%0#EyOe-G+7FwOZ?E3K^Kq z`6U01Z!WL3vTr<|G2ee~?DK39c3&&0xTiaAcLY(!@79kaMHyye`nF1`6VfapOc11{ z1PLQ8UmGe1`1;5qEICvo7~H9|RaeaR&*Au@#*E;bYj@l3RhnNI#jX{PtT|+yEP#m4 zzoAhbMKh2$g$4;k2iqWOaFWLeI|`>6(N89mJEun=GXW8g$l)V5g3Z^gErkByZQq4% zJ=Q>&H7ira8%A2el_SMl=q<~2uJuZzjx(b_NESZpoEBJ^)90Y&zdC;xdCNiBi7c|;)$Y_l@&E^0`77JAg_l>0w22>>^-y(2|I88 zGE&oe9bgA)rWcXQnDUSqEw1w#`#%2i(FAxe6G_|W=XW0uFj1WdjOTbgp#LML={#6I z(vF|SHWKm_zf6HGvw0NWRh}ON`LrUjl0AZd&UCd-6Bt^lFrGrJO`==s&fbKmjskAN z#wqz-Pj$jo3w-8=b^0shpNbZijNlyFsFFK+G^$(p=Bmc($>tO9{61J_DL?NEaRfbP z+Y36?Aoy?e{2@e^cLg`JzL3DgkG8FZ5s`tqRr;NTr^5{*)jI*bKCY^s0f|V}5X+AK z_BMwYw!QY#w+y=F*RwhbaR;Bz$361-ze}Lr>g;Kzcx`inhOPScy~e?{$thD`y>CI| p@LIr+J&5p3y{-DK#$aLTs!^Wv5ENBfr(QJY?;E(c@~6nGe*v$FK>h## literal 24397 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 might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media. 2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. -3. Select checkboxes next to the **C** and **system** volumes and specify a location to save the resulting VHD or VHDX file. If your Hyper-V host is running Windows Server 2008 R2 you must choose VHD, otherwise choose VHDX. See the following example: +3. Select the checkboxes next to the **C** and the **system reserved** (BIOS/MBR) or **recovery** (UEFI/GPT) volumes. The system volumes are not typically assigned a drive letter, but will be displayed in the Disk2VHD tool with a volume label. +4. Specify a location to save the resulting VHD or VHDX file (F:\VHD\w7.vhdx in the following example) and click **Create**. If your Hyper-V host is running Windows Server 2008 R2 you must choose VHD, otherwise choose VHDX. See the following example: ![disk2vhd](images/disk2vhd.png) -4. Click **Create** to start creating a VHDX file. + >Important: You must include the system reserved or recovery volume in order to create a bootable VHD. If this volume is not displayed in the disk2vhd tool, see [Appendix C: Disk2VHD](#appendix-c-disk2vhd). + +5. Click **Create** to start creating a VHDX file. >Disk2vhd can save VHDs to local hard drives, even if they are the same as the volumes being converted. Performance is better however when the VHD is saved on a disk different than those being converted, such as a flash drive. -5. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHDX file (w7.vhdx) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory: +6. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHDX file (w7.vhdx) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory: ``` C:\vhd>dir /B @@ -725,6 +728,19 @@ Converting all Hyper-V module commands used in this guide to Hyper-V WMI is beyo For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library. +## Appendix C: Disk2VHD + +If the EFI System Partition is not visible in the Disk2VHD tool, use the following procedure to temporarily make it visible and include it in the conversion. + +1. Open an elevated command prompt and type the following command. The command assumes that S: is an available drive letter. If it is not available, replace the letter with an available one (ex: mountvol T: /S): + + ``` + mountvol S: /S + ``` + +2. Close and restart the Disk2VHD application. +3. Clear the **Use Volume Shadow Copy** checkbox. +4. Select the C: and S: drives to convert, and then click **Create**. ## Related Topics From c24c0f8ff0d2e140c72cb349c09a293575dae6a1 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 19 Oct 2016 17:35:46 -0700 Subject: [PATCH 018/233] t --- windows/deploy/windows-10-poc.md | 37 +++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 282b202952..18255445d2 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -28,7 +28,7 @@ The following topics and procedures are provided in this guide. An estimate of t
TopicDescriptionTime
[Terminology in this guide](#terminology-in-this-guide)Terms used in this guide.
[Hardware and software requirements](#hardware-and-software-requirements)Prerequisites to complete this guide. -
[Lab setup](#lab-setup)A description and diagram of the PoC environment that is configured.5 minutes +
[Lab setup](#lab-setup)A description and diagram of the PoC environment.
[Configure the PoC environment](#configure-the-poc-environment)Parent topic for procedures.
[Verify support and install Hyper-V](#verify-support-and-install-hyper-v)Verify that installation of Hyper-V is supported, and install the Hyper-V server role.10 minutes
[Download VHD and ISO files](#download-vhd-and-iso-files)Download evaluation versions of Windows Server 2012 R2 and Windows 10 and prepare these files to be used on the Hyper-V host.30 minutes @@ -38,6 +38,7 @@ The following topics and procedures are provided in this guide. An estimate of t
[Configure VHDs](#configure-vhds)Start virtual machines and configure all services and settings.60 minutes
[Appendix A: Verify the configuration](#appendix-a-verify-the-configuration)Verify and troubleshoot network connectivity and services in the PoC environment.30 minutes
[Appendix B: Configuring Hyper-V on Windows Server 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2)Information about using this guide with a Hyper-V host running Windows Server 2008 R2. +
[Appendix C: Disk2VHD](#appendix-c-disk2vhd)Information about the Disk2VHD application.
@@ -267,12 +268,11 @@ w10-enterprise.iso >You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media. 2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. -3. Select the checkboxes next to the **C** and the **system reserved** (BIOS/MBR) or **recovery** (UEFI/GPT) volumes. The system volumes are not typically assigned a drive letter, but will be displayed in the Disk2VHD tool with a volume label. +3. Select the checkboxes next to the **C:\** and the **system reserved** (BIOS/MBR) volumes. The system volume is not assigned a drive letter, but will be displayed in the Disk2VHD tool with a volume label similar to **\\?\Volume{** - see the example below. **Important**: You must include the system volume in order to create a bootable VHD. If this volume is not displayed in the disk2vhd tool, see [Appendix C: Disk2VHD](#appendix-c-disk2vhd). 4. Specify a location to save the resulting VHD or VHDX file (F:\VHD\w7.vhdx in the following example) and click **Create**. If your Hyper-V host is running Windows Server 2008 R2 you must choose VHD, otherwise choose VHDX. See the following example: ![disk2vhd](images/disk2vhd.png) - >Important: You must include the system reserved or recovery volume in order to create a bootable VHD. If this volume is not displayed in the disk2vhd tool, see [Appendix C: Disk2VHD](#appendix-c-disk2vhd). 5. Click **Create** to start creating a VHDX file. @@ -470,7 +470,7 @@ Instructions to "type" commands provided in this guide can be typed, but in most 18. When the new network adapter driver has completed installation, you will receive an alert to set a network location for the contoso.com network. Select **Work network** and then click **Close**. When you receive an alert that a restart is required, click **Restart Later**. 19. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. - To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." + To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection: ``` ipconfig @@ -504,7 +504,7 @@ Instructions to "type" commands provided in this guide can be typed, but in most ``` >If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. -20. Open an elevated Windows PowerShell ISE window on the Hyper-V host (right-click Windows PowerShell and then click Run ISE as Administrator) and type the following commands in the (upper) script editor pane: +20. Minimize the PC1 window and switch to the Hyper-V host computer. Open an elevated Windows PowerShell ISE window on the Hyper-V host (right-click Windows PowerShell and then click Run ISE as Administrator) and type the following commands in the (upper) script editor pane: ``` (Get-WmiObject Win32_ComputerSystem).UnjoinDomainOrWorkgroup($null,$null,0) @@ -515,6 +515,8 @@ Instructions to "type" commands provided in this guide can be typed, but in most Restart-Computer ``` + >If you do not see the script pane, click **View** and then click **Show Script Pane Top**. + See the following example: ![ISE](images/ISE.png) @@ -525,7 +527,8 @@ Instructions to "type" commands provided in this guide can be typed, but in most ``` Copy-VMFile "PC1" –SourcePath "C:\VHD\pc1.ps1" –DestinationPath "C:\pc1.ps1" –CreateFullPath –FileSource Host ``` - >In order for this command to work properly, PC1 must be running the vmicguestinterface (Hyper-V Guest Service Interface) service. + >In order for this command to work properly, PC1 must be running the vmicguestinterface (Hyper-V Guest Service Interface) service. If this service is not installed, you can try updating integration services on the VM. This can be done by mounting the Hyper-V Integration Services Setup (vmguest.iso), which is located in C:\Windows\System32 on Windows Server operating systems that are running the Hyper-V role service. Otherwise, just create the file c:\pc1.ps1 on the VM and type the commands into this file manually. Be sure to save the file as a Windows PowerShell script file with the .ps1 extension and not as a text (.txt) file. + 23. On PC1, type the following commands at an elevated Windows PowerShell prompt: ``` @@ -534,7 +537,7 @@ Instructions to "type" commands provided in this guide can be typed, but in most >PC1 is removed from its domain in this step while not connected to the corporate network so as to ensure the computer object in the corporate domain is unaffected. We have not also renamed PC1 to "PC1" in system properties so that it maintains some of its mirrored identity. However, if desired you can also rename the computer. -24. After PC1 restarts, sign in to the contoso.com domain with the (user1) account you created in step 11 of this section. +24. The script will take a minute or two to run. After PC1 restarts, sign in to the contoso.com domain using the **Switch User** option, with the **user1** account you created in step 11 of this section. >The settings that will be used to migrate user data specifically select only accounts that belong to the CONTOSO domain. If you wish to test migration of user data and settings with an account other than the user1 account, you must copy this account's profile to the user1 profile. 25. Minimize the PC1 window but do not turn it off while the second Windows Server 2012 R2 VM (SRV1) is configured. This verifies that the Hyper-V host has enough resources to run all VMs simultaneously. Next, SRV1 will be started, joined to the contoso.com domain, and configured with RRAS and DNS services. 26. On the Hyper-V host computer, at an elevated Windows PowerShell prompt, type the following commands: @@ -730,7 +733,7 @@ For more information about the Hyper-V Manager interface in Windows Server 2008 ## Appendix C: Disk2VHD -If the EFI System Partition is not visible in the Disk2VHD tool, use the following procedure to temporarily make it visible and include it in the conversion. +If the system partition is not visible in the Disk2VHD tool, this usually means that the client is using EFI firmware and has a GPT partition. Unfortunately, the GPT partition is will not boot as a VM when converted by the Disk2VHD tool. To resolve this issue, select a client that is using MBR or complete the following procedure to move the Windows image from GPT to MBR. 1. Open an elevated command prompt and type the following command. The command assumes that S: is an available drive letter. If it is not available, replace the letter with an available one (ex: mountvol T: /S): @@ -742,6 +745,24 @@ If the EFI System Partition is not visible in the Disk2VHD tool, use the followi 3. Clear the **Use Volume Shadow Copy** checkbox. 4. Select the C: and S: drives to convert, and then click **Create**. +mount-vhd -path D:\vhd\w7.VHDX + +dism /Capture-Image /ImageFile:d:\w7.wim /CaptureDir:H:\ /Name:w7 <--this takes a long time + + mount-vhd -path 'D:\vhd\w7-gen1\Virtual Hard Disks\w7-gen1.vhdx' + + New simple volume, created drive G: ---- + +dism /Apply-Image /ImageFile:D:\w7.wim /Index:1 /ApplyDir:G:\ + +boot to install disk and repair this + +the idea here is to create a MBR VHD, then restore the wim to that. + +--note another possible option is to create a backup, choose USB as the destination, then create VM, boot from DVD, and restore from backup usign tools. + +--also try https://community.spiceworks.com/topic/435119-can-i-virtualize-a-uefi-server-into-a-hyper-v-virtual-machine <-- does not work + ## Related Topics [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md)
From b746d717b5f62c1b7c041cb37464b6ca9d9224d3 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 20 Oct 2016 16:03:45 -0700 Subject: [PATCH 019/233] t --- windows/deploy/windows-10-poc.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 18255445d2..f1ffe18d7b 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -261,14 +261,21 @@ w10-enterprise.iso **Important**: Before you convert a PC to VHD, verify that you have access to a local administrator account on the computer. Alternatively you can use a domain account with administrative rights if these credentials are cached on the computer and your domain policy allows the use of cached credentials for login. After converting the computer to a VM, you must be able to sign in on this VM with local administrator privileges, while disconnected from the corporate network. ->For purposes of the test lab, use a PC that is assigned a drive letter of C. Systems with non-standard configurations can also be upgraded using PC refresh and replace scenarios, but these systems require more advanced deployment task sequences than those used in this lab. If the computer has multiple hard drives, then only choose the C drive for conversion. +####Client computer requirements for this lab: + +1. You must use a PC that is assigned a system/boot drive letter of **C:**. Computers with other configurations can also be upgraded using PC refresh and replace scenarios, but these systems require more advanced deployment task sequences than those used in this lab. If the computer has multiple hard drives, then only choose the **C:** drive for conversion. +2. If the PC is running Windows 7, then it must use the Master Boot Record (MBR) method for storing partition information, not the GUID Partition Table (GPT) method. This is because a generation 2 VM is required to support GPT, and Windows 7 is not supported for generation 2 VMs. Alternatively, you can convert the VHD to use MBR, but this procedure is somewhat complex. If you must create a bootable generation 1 VHD from a physical host that uses GPT, see [Appendix C: Convert GPT to MBR](#appendix-c-convert-gpt-to-mbr) + - To determine the storage method on a computer running Windows 7, open a command prompt and type **DISKPART**, then type **list disk**. Disks that use GPT will have an asterisk under **Gpt** in the command output. If the computer is running Windows 8 or a later OS, you can also type **Get-Disk** at an elevated Windows PowerShell prompt to identify the partition style. +3. If the PC is running Windows 8 or later and uses the GPT method for storing partition information, then you must create a generation 2 VM to mirror the PC in Hyper-V. + +####To convert a PC to VHD: 1. Download the [Disk2vhd utility](https://technet.microsoft.com/en-us/library/ee656415.aspx), extract the .zip file and copy **disk2vhd.exe** to a flash drive or other location that is accessible from the computer you wish to convert. - >You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media. + >You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media such as a USB drive. 2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. -3. Select the checkboxes next to the **C:\** and the **system reserved** (BIOS/MBR) volumes. The system volume is not assigned a drive letter, but will be displayed in the Disk2VHD tool with a volume label similar to **\\?\Volume{** - see the example below. **Important**: You must include the system volume in order to create a bootable VHD. If this volume is not displayed in the disk2vhd tool, see [Appendix C: Disk2VHD](#appendix-c-disk2vhd). +3. Select the checkboxes next to the **C:\** and the **system reserved** (BIOS/MBR) volumes. The system volume is not assigned a drive letter, but will be displayed in the Disk2VHD tool with a volume label similar to **\\?\Volume{** - see the example below. **Important**: You must include the system volume in order to create a bootable VHD. If this volume is not displayed in the disk2vhd tool, then the computer is using the GPT partition method. In this case, see the [requirements](#client-computer-requirements-for-this-lab) in this section for more information. 4. Specify a location to save the resulting VHD or VHDX file (F:\VHD\w7.vhdx in the following example) and click **Create**. If your Hyper-V host is running Windows Server 2008 R2 you must choose VHD, otherwise choose VHDX. See the following example: ![disk2vhd](images/disk2vhd.png) @@ -731,11 +738,11 @@ Converting all Hyper-V module commands used in this guide to Hyper-V WMI is beyo For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library. -## Appendix C: Disk2VHD +## Appendix C: Convert GPT to MBR -If the system partition is not visible in the Disk2VHD tool, this usually means that the client is using EFI firmware and has a GPT partition. Unfortunately, the GPT partition is will not boot as a VM when converted by the Disk2VHD tool. To resolve this issue, select a client that is using MBR or complete the following procedure to move the Windows image from GPT to MBR. +>Conversion of a disk directly from GPT to MBR without data loss is not possible without the use of external, specialized applications and tools. However, it is possible to create an image of the GPT disk and then restore this image to an MBR disk using standard tools. At a high level, this can be done by obtaining an image of the source drive, creating a blank MBR-formatted disk, applying the source drive image to the MBR disk, and then configuring the MBR disk to boot the applied image. This procedure is described below: -1. Open an elevated command prompt and type the following command. The command assumes that S: is an available drive letter. If it is not available, replace the letter with an available one (ex: mountvol T: /S): +1. Open an elevated command prompt and type the following command: ``` mountvol S: /S From c79a7b5777354cb17038452c4ae74937048169a0 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 26 Oct 2016 13:10:37 -0700 Subject: [PATCH 020/233] added intro --- windows/deploy/windows-10-poc.md | 35 +++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index f1ffe18d7b..5277eef390 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -14,9 +14,20 @@ author: greg-lindsay - Windows 10 -This guide provides step-by-step instructions for setting up a proof of concept (PoC) environment where you can deploy Windows 10. The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Simple to use Windows PowerShell commands are provided for setting up the test lab. +

This guide provides step-by-step instructions for setting up a proof of concept (PoC) environment where you test the tools and procedures necessary to deploy Windows 10. The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly and easily. -To complete this guide, you will need a Hyper-V capable computer running Windows 8.1 or later with 16GB of RAM. Detailed requirements are provided [below](#hardware-and-software-requirements). When you have completed configuring the PoC environment, additional topics are provided that use the PoC environment to deploy Windows 10 with current deployment tools. +Overview of procedures in this guide: +

    +
  • The Hyper-V role is installed. +
  • Hyper-V network and virtual machine (VM) settings are configured. +
  • Network services and settings are installed and configured on VMs. +
+ +Completing this guide enables you to test Windows 10 deployment procedures with current tools, documented in the following guides:
+- [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md)
+- [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md)
+ +To complete this guide, you will need a Hyper-V capable computer running Windows 8.1 or later with 16GB of RAM. Detailed requirements are provided [below](#hardware-and-software-requirements). ## In this guide @@ -25,7 +36,7 @@ The following topics and procedures are provided in this guide. An estimate of t
-
TopicDescriptionTime +
TopicDescriptionTime
[Terminology in this guide](#terminology-in-this-guide)Terms used in this guide.
[Hardware and software requirements](#hardware-and-software-requirements)Prerequisites to complete this guide.
[Lab setup](#lab-setup)A description and diagram of the PoC environment. @@ -43,15 +54,17 @@ The following topics and procedures are provided in this guide. An estimate of t -### Terminology in this guide +### Terminology used in this guide
- - - + + @@ -157,8 +170,7 @@ The lab architecture is summarized in the following diagram: [Convert PC to VHD](#convert-pc-to-vhd)
[Resize VHD](#resize-vhd)
[Configure Hyper-V](#configure-hyper-v)
-[Convert PC to VHD](#convert-pc-to-vhd)
-[Configure VHDs](#configure-vhds)
+[Configure VMs](#configure-vms)
### Verify support and install Hyper-V @@ -375,7 +387,7 @@ Instructions to "type" commands provided in this guide can be typed, but in most **Note**: The RAM values assigned to VMs in this step are not permanent, and can be easily increased or decreased later if needed to address performance issues. -### Configure VHDs +### Configure VMs 1. At an elevated Windows PowerShell prompt on the Hyper-V host, start the first VM by typing the following command: @@ -772,8 +784,7 @@ the idea here is to create a MBR VHD, then restore the wim to that. ## Related Topics -[Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md)
-[Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md)
+ [Windows 10 deployment scenarios](windows-10-deployment-scenarios.md)   From 4033aa678ef804ed7f3dd9ade5dd0602f1e45b02 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 26 Oct 2016 13:46:08 -0700 Subject: [PATCH 021/233] ... --- windows/deploy/windows-10-poc.md | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 5277eef390..f5c9f43400 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -36,7 +36,7 @@ The following topics and procedures are provided in this guide. An estimate of t
TermDefinition +
TermDefinition +
GPTGUID partition table (GPT) is an updated hard-disk formatting scheme that enables the use of newer hardware. GPT is one of the partition formats that can be chosen when first initializing a hard drive, prior to creating and formatting partitions.
Hyper-VHyper-V is a server role introduced with Windows Server 2008 that lets you create a virtualized computing environment. Hyper-V can also be installed as a Windows feature on Windows client operating systems, starting with Windows 8.
Hyper-V hostThe computer where Hyper-V is installed.
Hyper-V ManagerThe user-interface console used to view and configure Hyper-V. +
MBRMaster Boot Record (MBR) is a legacy hard-disk formatting scheme that limits support for newer hardware. MBR is one of the partition formats that can be chosen when first initializing a hard drive, prior to creating and formatting partitions. MBR is in the process of being replaced by the GPT partition format.
Proof of concept (PoC)Confirmation that a process or idea works as intended. A PoC is carried out in a test environment to learn about and verify a process.
Virtual machine (VM)A VM is a virtual computer with its own operating system, running on the Hyper-V host.
Virtual switchA virtual network connection used to connect VMs to each other and to physical network adapters on the Hyper-V host. @@ -107,8 +120,8 @@ The second computer (computer 2) is a client computer from your corporate networ
Disk50 GB available hard disk space (100 GB recommended)Any50 GB available hard disk space (100 GB recommended), any format.Any size, MBR formatted.
CPU
-
TopicDescriptionTime +
TopicDescriptionTime
[Terminology in this guide](#terminology-in-this-guide)Terms used in this guide.
[Hardware and software requirements](#hardware-and-software-requirements)Prerequisites to complete this guide.
[Lab setup](#lab-setup)A description and diagram of the PoC environment. @@ -59,7 +59,7 @@ The following topics and procedures are provided in this guide. An estimate of t
- - + @@ -137,9 +137,7 @@ The second computer (computer 2) is a client computer from your corporate networ ->Retaining applications and settings during the upgrade process requires that architecture (32 or 64-bit) is the same before and after the upgrade. - -*The Hyper-V server role can also be installed on a computer running Windows Server 2008 R2. However, the Windows PowerShell module for Hyper-V is not available on Windows Server 2008 R2, therefore you cannot use many of the steps provided in this guide to configure Hyper-V. The performance and features of the Hyper-V role are also much improved on later operating systems. If your host must be running Windows Server 2008 R2, see [Appendix B: Configuring Hyper-V settings on 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2). +*The Hyper-V server role can also be installed on a computer running Windows Server 2008 R2. However, the Windows PowerShell module for Hyper-V is not available on Windows Server 2008 R2, therefore you cannot use many of the steps provided in this guide to configure Hyper-V. To manage Hyper-V on Windows Server 2008 R2, you can use Hyper-V WMI, or you can use the Hyper-V Manager console. Converting all Hyper-V module commands used in this guide to Hyper-V WMI is beyond the scope of the guide. If you must use a Hyper-V host running Windows Server 2008 R2, the steps in the guide can be accomplished by using the Hyper-V Manager console. These steps are not provided at this time in the guide. For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library. The Hyper-V role cannot be installed on Windows 7 or earlier versions of Windows. @@ -712,9 +710,15 @@ Use the following procedures to verify that the PoC environment is configured pr ## Appendix B: Configuring Hyper-V on Windows Server 2008 R2 -If your Hyper-V host is running Windows Server 2008 R2, several of the steps in this guide will not work because they use the Hyper-V Module for Windows PowerShell, which is not available on Windows Server 2008 R2. +This section is a placeholder for instructions to configure Hyper-V on Windows Server 2008 R2. Full documentation of these procedures is currently out of scope for this guide, due to significant differences in the Hyper-V role in Windows Server 2008 R2. -To manage Hyper-V on Windows Server 2008 R2, you can use Hyper-V WMI, or you can use the Hyper-V Manager console. +If your Hyper-V host is running Windows Server 2008 R2, several of the steps in this guide will not work because they use the Hyper-V Module for Windows PowerShell, which is not available on Windows Server 2008 R2. The performance and features of the Hyper-V role are also much improved on later operating systems. + +To install Hyper-V on Windows Server 2008 R2, you can use the Add-WindowsFeature cmdlet: + +``` +Add-WindowsFeature -Name Hyper-V +``` An example that uses Hyper-V WMI to create a virtual switch on Windows Server 2008 R2 is provided below. @@ -740,15 +744,6 @@ $Result = $VirtualSwitchManagementService.ConnectSwitchPort($InternalSwitchPort, $filter = "SettingID='" + $InternalEthernetPort.DeviceID +"'" $NetworkAdapterConfiguration = gwmi Win32_NetworkAdapterConfiguration -filter $filter ``` -To install Hyper-V on Windows Server 2008 R2, you can use the Add-WindowsFeature cmdlet: - -``` -Add-WindowsFeature -Name Hyper-V -``` - -Converting all Hyper-V module commands used in this guide to Hyper-V WMI is beyond the scope of the guide. If you must use a Hyper-V host running Windows Server 2008 R2, the steps in the guide can be accomplished by using the Hyper-V Manager console. These steps are not provided at this time in the guide. - -For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library. ## Appendix C: Convert GPT to MBR From 041251216600028ba0478910bfa8361b1e25ae2d Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 26 Oct 2016 14:47:51 -0700 Subject: [PATCH 022/233] ... --- windows/deploy/windows-10-poc.md | 79 +++++++++++++++++--------------- 1 file changed, 43 insertions(+), 36 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index f5c9f43400..ac56ec7481 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -14,20 +14,21 @@ author: greg-lindsay - Windows 10 -

This guide provides step-by-step instructions for setting up a proof of concept (PoC) environment where you test the tools and procedures necessary to deploy Windows 10. The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly and easily. +

This guide provides step-by-step instructions for setting up a proof of concept (PoC) environment where you test the tools and procedures necessary to deploy Windows 10. The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly. The guide contains detailed instructions for three general procedures: -Overview of procedures in this guide:

    -
  • The Hyper-V role is installed. -
  • Hyper-V network and virtual machine (VM) settings are configured. -
  • Network services and settings are installed and configured on VMs. +
  • Install Hyper-V. +
  • Configure Hyper-V network and virtual machine (VM) settings. +
  • Install and configure network services and settings on VMs.
-Completing this guide enables you to test Windows 10 deployment procedures with current tools, documented in the following guides:
+If you already have a computer running Hyper-V, you can use this computer. After completing the instructions in this guide, you will have a PoC environment that enables you to test Windows 10 deployment procedures with current tools, as documented in subsequent guides:
- [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md)
- [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md)
-To complete this guide, you will need a Hyper-V capable computer running Windows 8.1 or later with 16GB of RAM. Detailed requirements are provided [below](#hardware-and-software-requirements). +Links are provided to download trial versions of Windows Server 2012, Windows 10 Enterprise, and all deployment tools necessary to complete the lab. + +To complete this guide, you will need a Hyper-V capable computer running Windows 8.1 or later with 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. ## In this guide @@ -37,7 +38,7 @@ The following topics and procedures are provided in this guide. An estimate of t
TermDefinition +
TermDefinition
GPTGUID partition table (GPT) is an updated hard-disk formatting scheme that enables the use of newer hardware. GPT is one of the partition formats that can be chosen when first initializing a hard drive, prior to creating and formatting partitions.
Hyper-VHyper-V is a server role introduced with Windows Server 2008 that lets you create a virtualized computing environment. Hyper-V can also be installed as a Windows feature on Windows client operating systems, starting with Windows 8.
Hyper-V hostThe computer where Hyper-V is installed. @@ -77,7 +77,7 @@ The following topics and procedures are provided in this guide. An estimate of t One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. -The second computer (computer 2) is a client computer from your corporate network that is used to create VM that can be added to the POC environment. The VM is a mirror image of the computer on your corporate network, providing a realistic simulation of the upgrade process. If you do not have a computer to use for this simulation, you can create an arbitrary VM to represent this computer. +>The second computer (computer 2) is a client computer from your corporate network that is used to create VM that can be added to the POC environment. The VM is a mirror image of the computer on your corporate network, providing a realistic simulation of the upgrade process. If you do not have a computer to use for this simulation, you can create an arbitrary VM to represent this computer. Later guides use this computer to simulate Windows 10 replace and refresh scenarios, so the VM is required even if you cannot create one that is mirrored from computer 2.
@@ -110,7 +110,7 @@ The second computer (computer 2) is a client computer from your corporate networ
Architecture 64-bitAnyAny
Note: Retaining applications and settings during the upgrade process requires that architecture (32 or 64-bit) is the same before and after the upgrade.
RAM
TopicDescriptionTime -
[Terminology in this guide](#terminology-in-this-guide)Terms used in this guide. +
[Hardware and software requirements](#hardware-and-software-requirements)Prerequisites to complete this guide.
[Lab setup](#lab-setup)A description and diagram of the PoC environment.
[Configure the PoC environment](#configure-the-poc-environment)Parent topic for procedures. @@ -50,25 +51,7 @@ The following topics and procedures are provided in this guide. An estimate of t
[Appendix A: Verify the configuration](#appendix-a-verify-the-configuration)Verify and troubleshoot network connectivity and services in the PoC environment.30 minutes
[Appendix B: Configuring Hyper-V on Windows Server 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2)Information about using this guide with a Hyper-V host running Windows Server 2008 R2.
[Appendix C: Disk2VHD](#appendix-c-disk2vhd)Information about the Disk2VHD application. -
- -
- -### Terminology used in this guide - -
- - -
TermDefinition -
GPTGUID partition table (GPT) is an updated hard-disk formatting scheme that enables the use of newer hardware. GPT is one of the partition formats that can be chosen when first initializing a hard drive, prior to creating and formatting partitions. -
Hyper-VHyper-V is a server role introduced with Windows Server 2008 that lets you create a virtualized computing environment. Hyper-V can also be installed as a Windows feature on Windows client operating systems, starting with Windows 8. -
Hyper-V hostThe computer where Hyper-V is installed. -
Hyper-V ManagerThe user-interface console used to view and configure Hyper-V. -
MBRMaster Boot Record (MBR) is a legacy hard-disk formatting scheme that limits support for newer hardware. MBR is one of the partition formats that can be chosen when first initializing a hard drive, prior to creating and formatting partitions. MBR is in the process of being replaced by the GPT partition format. -
Proof of concept (PoC)Confirmation that a process or idea works as intended. A PoC is carried out in a test environment to learn about and verify a process. -
Virtual machine (VM)A VM is a virtual computer with its own operating system, running on the Hyper-V host. -
Virtual switchA virtual network connection used to connect VMs to each other and to physical network adapters on the Hyper-V host. -
VM snapshotA point in time image of a VM that includes its disk, memory and device state. It can be used to return a virtual machine to a former state corresponding to the time the snapshot was taken. +
[Appendix D: Terminology in this guide](#appendix-d-terminology-in-this-guide)Terms used in this guide.
@@ -77,7 +60,7 @@ The following topics and procedures are provided in this guide. An estimate of t One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. ->The second computer (computer 2) is a client computer from your corporate network that is used to create VM that can be added to the POC environment. The VM is a mirror image of the computer on your corporate network, providing a realistic simulation of the upgrade process. If you do not have a computer to use for this simulation, you can create an arbitrary VM to represent this computer. Later guides use this computer to simulate Windows 10 replace and refresh scenarios, so the VM is required even if you cannot create one that is mirrored from computer 2. +>Computer 2 is a client computer from your corporate network that is "shadow copied" to create a VM that can be added to the POC environment. This enables you to use a VM that is a mirror image of the computer on your corporate network, providing a realistic simulation of the upgrade process. If you do not have a computer to use for this simulation, you can create an arbitrary VM to represent this computer. Later guides use this computer to simulate Windows 10 replace and refresh scenarios, so the VM is required even if you cannot create one that is mirrored from computer 2.
@@ -135,18 +118,19 @@ One computer that meets the hardware and software specifications below is requir
-
-*The Hyper-V server role can also be installed on a computer running Windows Server 2008 R2. However, the Windows PowerShell module for Hyper-V is not available on Windows Server 2008 R2, therefore you cannot use many of the steps provided in this guide to configure Hyper-V. To manage Hyper-V on Windows Server 2008 R2, you can use Hyper-V WMI, or you can use the Hyper-V Manager console. Converting all Hyper-V module commands used in this guide to Hyper-V WMI is beyond the scope of the guide. If you must use a Hyper-V host running Windows Server 2008 R2, the steps in the guide can be accomplished by using the Hyper-V Manager console. These steps are not provided at this time in the guide. For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library. + +*The Hyper-V server role can also be installed on a computer running Windows Server 2008 R2. However, the Windows PowerShell module for Hyper-V is not available on Windows Server 2008 R2, therefore you cannot use many of the steps provided in this guide to configure Hyper-V. To manage Hyper-V on Windows Server 2008 R2, you can use Hyper-V WMI, or you can use the Hyper-V Manager console. Providing all steps in this guide as Hyper-V WMI or as 2008 R2 Hyper-V Manager procedures is beyond the scope of the guide. The Hyper-V role cannot be installed on Windows 7 or earlier versions of Windows. + + ## Lab setup -- The Hyper-V host computer (computer 1) is configured to host four VMs on a private, PoC network. +- Computer 1 is configured to host four VMs on a private, PoC network. - Two VMs are running Windows Server 2012 R2 with required network services and tools installed. - Two VMs are client systems: One VM is intended to mirror a host on your corporate network (computer 2) and one VM is running Windows 10 Enterprise to demonstrate the hardware replacement scenario. -- Links are provided to download trial versions of Windows Server 2012, Windows 10 Enterprise, and all deployment tools necessary to complete the lab. The lab architecture is summarized in the following diagram: @@ -178,14 +162,15 @@ The lab architecture is summarized in the following diagram: See the following example: - ``` +
     C:\>systeminfo
     ...
     Hyper-V Requirements:      VM Monitor Mode Extensions: Yes
                                Virtualization Enabled In Firmware: Yes
                                Second Level Address Translation: Yes
                                Data Execution Prevention Available: Yes
-    ```   
+    
+ In this example, the computer supports SLAT and Hyper-V. If one or more requirements are evaluated as "No" then the computer does not support installing Hyper-V. However, if only the virtualization setting is incompatible, you might be able to enable virtualization in the BIOS and change the **Virtualization Enabled In Firmware** setting from "No" to "Yes." The location of this setting will depend on the manufacturer and BIOS version, but is typically found associated with the BIOS security settings. @@ -710,10 +695,10 @@ Use the following procedures to verify that the PoC environment is configured pr ## Appendix B: Configuring Hyper-V on Windows Server 2008 R2 -This section is a placeholder for instructions to configure Hyper-V on Windows Server 2008 R2. Full documentation of these procedures is currently out of scope for this guide, due to significant differences in the Hyper-V role in Windows Server 2008 R2. - If your Hyper-V host is running Windows Server 2008 R2, several of the steps in this guide will not work because they use the Hyper-V Module for Windows PowerShell, which is not available on Windows Server 2008 R2. The performance and features of the Hyper-V role are also much improved on later operating systems. +This section is a placeholder for instructions to configure Hyper-V on Windows Server 2008 R2. Full documentation of these procedures is currently out of scope for this guide, due to significant differences in the Hyper-V role in Windows Server 2008 R2. For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library. + To install Hyper-V on Windows Server 2008 R2, you can use the Add-WindowsFeature cmdlet: ``` @@ -777,6 +762,28 @@ the idea here is to create a MBR VHD, then restore the wim to that. --also try https://community.spiceworks.com/topic/435119-can-i-virtualize-a-uefi-server-into-a-hyper-v-virtual-machine <-- does not work +### Appendix D: Terminology used in this guide + +See the following table for a list of terms used in this guide. + +
+ + +
TermDefinition +
GPTGUID partition table (GPT) is an updated hard-disk formatting scheme that enables the use of newer hardware. GPT is one of the partition formats that can be chosen when first initializing a hard drive, prior to creating and formatting partitions. +
Hyper-VHyper-V is a server role introduced with Windows Server 2008 that lets you create a virtualized computing environment. Hyper-V can also be installed as a Windows feature on Windows client operating systems, starting with Windows 8. +
Hyper-V hostThe computer where Hyper-V is installed. +
Hyper-V ManagerThe user-interface console used to view and configure Hyper-V. +
MBRMaster Boot Record (MBR) is a legacy hard-disk formatting scheme that limits support for newer hardware. MBR is one of the partition formats that can be chosen when first initializing a hard drive, prior to creating and formatting partitions. MBR is in the process of being replaced by the GPT partition format. +
Proof of concept (PoC)Confirmation that a process or idea works as intended. A PoC is carried out in a test environment to learn about and verify a process. +
Shadow copyA copy or "snapshot" of a computer at a point in time, created by the Volume Shadow Copy Service (VSS), typically for backup purposes. +
Virtual machine (VM)A VM is a virtual computer with its own operating system, running on the Hyper-V host. +
Virtual switchA virtual network connection used to connect VMs to each other and to physical network adapters on the Hyper-V host. +
VM snapshotA point in time image of a VM that includes its disk, memory and device state. It can be used to return a virtual machine to a former state corresponding to the time the snapshot was taken. +
+ +
+ ## Related Topics From ae4a3b6cd4e93d5c30c3a7b66884f1da8ac977ea Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 26 Oct 2016 15:21:51 -0700 Subject: [PATCH 023/233] ... --- windows/deploy/windows-10-poc.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index ac56ec7481..34c2fc7354 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -169,7 +169,7 @@ The lab architecture is summarized in the following diagram: Virtualization Enabled In Firmware: Yes Second Level Address Translation: Yes Data Execution Prevention Available: Yes - + In this example, the computer supports SLAT and Hyper-V. @@ -177,7 +177,7 @@ The lab architecture is summarized in the following diagram: You can also identify Hyper-V support using [tools](https://blogs.msdn.microsoft.com/taylorb/2008/06/19/hyper-v-will-my-computer-run-hyper-v-detecting-intel-vt-and-amd-v/) provided by the processor manufacturer, the [msinfo32](https://technet.microsoft.com/en-us/library/cc731397.aspx) tool, or you can download the [coreinfo](http://technet.microsoft.com/en-us/sysinternals/cc835722) utility and run it, as shown in the following example: - ``` +
     C:\>coreinfo -v
 
     Coreinfo v3.31 - Dump information on system CPU and memory topology
@@ -190,7 +190,7 @@ The lab architecture is summarized in the following diagram:
     HYPERVISOR      -       Hypervisor is present
     VMX             *       Supports Intel hardware-assisted virtualization
     EPT             *       Supports Intel extended page tables (SLAT)
-    ```   
+    
Note: A 64-bit operating system is required to run Hyper-V. From 8ed78a18c31847951ffe73fb9b496fb24935be07 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 28 Oct 2016 10:28:59 -0700 Subject: [PATCH 024/233] ... --- windows/deploy/windows-10-poc.md | 323 +++++++++++++++++++------------ 1 file changed, 196 insertions(+), 127 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 34c2fc7354..8a5496b4b3 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -14,7 +14,9 @@ author: greg-lindsay - Windows 10 -

This guide provides step-by-step instructions for setting up a proof of concept (PoC) environment where you test the tools and procedures necessary to deploy Windows 10. The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly. The guide contains detailed instructions for three general procedures: +

This guide provides step-by-step instructions for setting up a proof of concept (PoC) environment where you test the tools and procedures necessary to deploy Windows 10. The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly. Instructions to "type" Windows PowerShell commands provided in this guide can be typed, but in most cases the preferred method is to copy and paste these commands. If you are not familiar with Hyper-V, review the [terms](#appendix-d-terminology-in-this-guide) used in this guide before starting. + +The guide contains detailed instructions for three general procedures:

  • Install Hyper-V. @@ -22,7 +24,9 @@ author: greg-lindsay
  • Install and configure network services and settings on VMs.
-If you already have a computer running Hyper-V, you can use this computer. After completing the instructions in this guide, you will have a PoC environment that enables you to test Windows 10 deployment procedures with current tools, as documented in subsequent guides:
+If you already have a computer running Hyper-V, you can use this computer and skip the first procedure. + +After completing the instructions in this guide, you will have a PoC environment that enables you to test Windows 10 deployment procedures with current tools, as documented in subsequent guides:
- [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md)
- [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md)
@@ -164,6 +168,7 @@ The lab architecture is summarized in the following diagram:
     C:\>systeminfo
+
     ...
     Hyper-V Requirements:      VM Monitor Mode Extensions: Yes
                                Virtualization Enabled In Firmware: Yes
@@ -198,9 +203,10 @@ The lab architecture is summarized in the following diagram:
 
     The Hyper-V feature is not installed by default. To install it, open an elevated Windows PowerShell window and type the following command:
 
-    ```
+    
     Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All
-    ```
+    
+ This command works on all operating systems that support Hyper-V. When you are prompted to restart the computer, choose **Yes**. The computer might restart more than once. After installation is complete, you can open Hyper-V Manager by typing **virtmgmt.msc** at an elevated command prompt. You can also install Hyper-V using the Control Panel in Windows under **Turn Windows features on or off** for a client operating system, or using Server Manager's **Add Roles and Features Wizard** on a server operating system, as shown below: @@ -225,11 +231,11 @@ When you have completed installation of Hyper-V on the host computer, begin conf ![VHD](images/download_vhd.png) -2. When the download is complete, rename the VHD file that you downloaded to **2012R2-poc-1.vhd**. This is done to make the filename simpler to recognize and type. +2. Download the file to the C:\VHD directory. When the download is complete, rename the VHD file that you downloaded to **2012R2-poc-1.vhd**. This is done to make the filename simpler to recognize and type. 3. Copy the VHD to a second file also in the C:\VHD directory and name this VHD **2012R2-poc-2.vhd**. 4. Download the [Windows 10 Enterprise ISO](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise) from the TechNet Evaluation Center to the C:\VHD directory on your Hyper-V host. - - During registration, you must specify the type, version, and language of installation media to download. In this example, a Windows 10 Enterprise, 64 bit, English VHD is chosen. You can choose a different version if desired. Note that Windows 10 in-place upgrade is only possible if the source operating system and installation media are both 32-bit or both 64-bit, so you should download the file version that corresponds to the version of your source computer for upgrade testing. + >During registration, you must specify the type, version, and language of installation media to download. In this example, a Windows 10 Enterprise, 64 bit, English ISO is chosen. You can choose a different version if desired. Note that Windows 10 in-place upgrade is only possible if the source operating system and installation media are both 32-bit or both 64-bit, so you should download the file version that corresponds to the version of your source computer (computer 2) for upgrade testing. 5. Rename the ISO file that you downloaded to **w10-enterprise.iso**. Again, this is done so that the filename is simpler to type and recognize. After completing registration you will be able to download the 3.63 GB Windows 10 Enterprise evaluation ISO. @@ -238,7 +244,7 @@ After completing these steps, you will have three files in the C:\VHD directory: The following commands and output display the procedures described in this section: -``` +
 C:\>mkdir VHD
 C:\>cd VHD
 C:\VHD>ren 9600*.vhd 2012R2-poc-1.vhd
@@ -249,29 +255,31 @@ C:\VHD>dir /B
 2012R2-poc-1.vhd
 2012R2-poc-2.vhd
 w10-enterprise.iso
-```
+
### Convert PC to VHD +If you do not have a PC available to convert to VHD, see [Appendix E: Create PC1 VM](#appendix-e-create-pc1-vm). + **Important**: Before you convert a PC to VHD, verify that you have access to a local administrator account on the computer. Alternatively you can use a domain account with administrative rights if these credentials are cached on the computer and your domain policy allows the use of cached credentials for login. After converting the computer to a VM, you must be able to sign in on this VM with local administrator privileges, while disconnected from the corporate network. -####Client computer requirements for this lab: +#### Client computer requirements for this lab: -1. You must use a PC that is assigned a system/boot drive letter of **C:**. Computers with other configurations can also be upgraded using PC refresh and replace scenarios, but these systems require more advanced deployment task sequences than those used in this lab. If the computer has multiple hard drives, then only choose the **C:** drive for conversion. -2. If the PC is running Windows 7, then it must use the Master Boot Record (MBR) method for storing partition information, not the GUID Partition Table (GPT) method. This is because a generation 2 VM is required to support GPT, and Windows 7 is not supported for generation 2 VMs. Alternatively, you can convert the VHD to use MBR, but this procedure is somewhat complex. If you must create a bootable generation 1 VHD from a physical host that uses GPT, see [Appendix C: Convert GPT to MBR](#appendix-c-convert-gpt-to-mbr) - - To determine the storage method on a computer running Windows 7, open a command prompt and type **DISKPART**, then type **list disk**. Disks that use GPT will have an asterisk under **Gpt** in the command output. If the computer is running Windows 8 or a later OS, you can also type **Get-Disk** at an elevated Windows PowerShell prompt to identify the partition style. +1. You must use a PC that is assigned a system/boot drive letter of **C**. Computers with other configurations can also be upgraded using PC refresh and replace scenarios, but these systems require more advanced deployment task sequences than the sample ones used in this lab. If the computer has multiple hard drives, then only choose the **C** drive for conversion. +2. If the PC is running Windows 7, then it must use the Master Boot Record (MBR) method for storing partition information, not the GUID Partition Table (GPT) method. This is because a generation 2 VM is required to support GPT, and Windows 7 is not supported in Hyper-V as a generation 2 VM. Alternatively, you can convert the VHD to use MBR, but this procedure is complex. If you must create a bootable generation 1 VHD from a physical host that uses GPT, see [Appendix C: Convert GPT to MBR](#appendix-c-convert-gpt-to-mbr) + >To determine the storage method on a computer running Windows 7, open a command prompt and type **DISKPART**, then type **list disk**. Disks that use GPT will have an asterisk under **Gpt** in the command output. If the computer is running Windows 8 or a later OS, you can also type **Get-Disk** at an elevated Windows PowerShell prompt to identify the partition style. 3. If the PC is running Windows 8 or later and uses the GPT method for storing partition information, then you must create a generation 2 VM to mirror the PC in Hyper-V. -####To convert a PC to VHD: +#### To convert a PC to VHD: 1. Download the [Disk2vhd utility](https://technet.microsoft.com/en-us/library/ee656415.aspx), extract the .zip file and copy **disk2vhd.exe** to a flash drive or other location that is accessible from the computer you wish to convert. >You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media such as a USB drive. 2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. -3. Select the checkboxes next to the **C:\** and the **system reserved** (BIOS/MBR) volumes. The system volume is not assigned a drive letter, but will be displayed in the Disk2VHD tool with a volume label similar to **\\?\Volume{** - see the example below. **Important**: You must include the system volume in order to create a bootable VHD. If this volume is not displayed in the disk2vhd tool, then the computer is using the GPT partition method. In this case, see the [requirements](#client-computer-requirements-for-this-lab) in this section for more information. -4. Specify a location to save the resulting VHD or VHDX file (F:\VHD\w7.vhdx in the following example) and click **Create**. If your Hyper-V host is running Windows Server 2008 R2 you must choose VHD, otherwise choose VHDX. See the following example: +3. Select the checkboxes next to the **C:\** and the **system reserved** (BIOS/MBR) volumes. The system volume is not assigned a drive letter, but will be displayed in the Disk2VHD tool with a volume label similar to **\\?\Volume{**. See the following example. **Important**: You must include the system volume in order to create a bootable VHD. If this volume is not displayed in the disk2vhd tool, then the computer is using the GPT partition method. In this case, see the second item in the [requirements](#client-computer-requirements-for-this-lab) list in this section for more information. +4. Specify a location to save the resulting VHD or VHDX file (F:\VHD\w7.vhdx in the following example) and click **Create**. Note: Hyper-V on Windows Server 2008 R2 does not support VHDX. See the following example: ![disk2vhd](images/disk2vhd.png) @@ -282,79 +290,80 @@ w10-enterprise.iso 6. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHDX file (w7.vhdx) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory: - ``` +
     C:\vhd>dir /B
     2012R2-poc-1.vhd
     2012R2-poc-2.vhd
     w10-enterprise.iso
     w7.VHDX
-    ```
+    
+ ### Resize VHD The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to 80GB to support installing imaging tools and storing OS images. 1. To add available space for the partition, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: - ``` +
     Resize-VHD –Path c:\VHD\2012R2-poc-2.vhd –SizeBytes 80GB
     $x = (Mount-VHD –Path c:\VHD\2012R2-poc-2.vhd -passthru | Get-Disk | Get-Partition | Get-Volume).DriveLetter
     Resize-Partition -DriveLetter $x -Size (Get-PartitionSupportedSize -DriveLetter $x).SizeMax
-    ```
+    
2. Verify that the mounted VHD drive is resized to 80 GB, and then dismount the drive: - ``` +
     Get-Volume -DriveLetter $x
     Dismount-VHD –Path c:\VHD\2012R2-poc-2.vhd
-    ```
+    
### Configure Hyper-V -Note: The Hyper-V Windows PowerShell module is not available on Windows Server 2008 R2. For more information, see [Appendix B: Configuring Hyper-V on Windows Server 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2). +**Important**: You should take advantage of [enhanced session mode](https://technet.microsoft.com/windows-server-docs/compute/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect) when completing instructions in this guide. Enhanced session mode enables you to copy and paste the commands from the Hyper-V host to VMs and between VMs. After copying some text, you can paste into a Windows PowerShell window by simply right-clicking. Before right-clicking, do not left click other locations as this can empty the clipboard. You can also copy and paste files directly from one computer to another by right-clicking and selecting copy on one computer, then right-clicking and selecting paste on another computer. -**Important**: You should take advantage of [enhanced session mode](https://technet.microsoft.com/windows-server-docs/compute/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect) when completing instructions in this guide. Enhanced session mode enables you to copy and paste the commands from the Hyper-V host to VMs and between VMs. After copying some text, you can paste into a Windows PowerShell window by simply right-clicking. Before right-clicking, do not left click other locations as this can empty the clipboard. You can also
    copy and paste files
directly from one computer to another by right-clicking and selecting copy, then right-clicking and selecting paste. - -Instructions to "type" commands provided in this guide can be typed, but in most cases the preferred method is to copy and paste these commands. +As mentioned previously: instructions to "type" commands provided in this guide can be typed, but the preferred method is to copy and paste these commands. 1. Open an elevated Windows PowerShell window and type the following command to create two virtual switches named "poc-internal" and "poc-external": - >If the Hyper-V host already has an external virtual switch bound to a physical NIC, do not attempt to add a second external virtual switch. Attempting to add a second external switch will result in an error indicating that the NIC is "**already bound to the Microsoft Virtual Switch protocol.**" In this case, choose one of the following options:
-    a) Remove the existing external virtual switch, then add the poc-external switch
-    b) Rename the existing external switch to "poc-external"
-    c) Replace each instance of "poc-external" used in this guide with the name of your existing external virtual switch
- If you choose b) or c), then do not run the second command below. + >If the Hyper-V host already has an external virtual switch bound to a physical NIC, do not attempt to add a second external virtual switch. Attempting to add a second external switch will result in an error indicating that the NIC is **already bound to the Microsoft Virtual Switch protocol.** In this case, choose one of the following options:
+    A) Remove the existing external virtual switch, then add the poc-external switch
+    B) Rename the existing external switch to "poc-external"
+    C) Replace each instance of "poc-external" used in this guide with the name of your existing external virtual switch
+ If you choose B) or C), then do not run the second command below. - ``` +
     New-VMSwitch -Name poc-internal -SwitchType Internal -Notes "PoC Network"
     New-VMSwitch -Name poc-external -NetAdapterName (Get-NetAdapter |?{$_.Status -eq "Up" -and !$_.Virtual}).Name -Notes "PoC External"
-    ```
+    
**Note**: The second command above will temporarily interrupt network connectivity on the Hyper-V host. - >Since an external virtual switch is associated to a physical network adapter on the Hyper-V host, this adapter must be specified when adding the virtual switch. This is automated in the example here by filtering for active non-virtual ethernet adapters using the Get-NetAdapter cmdlet ($_.Status -eq "Up" -and !$_.Virtual). If your Hyper-V host is dual-homed with multiple active ethernet adapters, this automation will not work, and the second command above will fail. In this case, you must edit the command used to add the "poc-external" virtual switch by inserting the NetAdapterName. The NetAdapterName value corresponds to the name of the network interface you wish to use, for example if the network interface you use on the Hyper-V host to connect to the Internet is named "Ethernet 2" then type the following command to create an external virtual switch: + >Since an external virtual switch is associated to a physical network adapter on the Hyper-V host, this adapter must be specified when adding the virtual switch. This is automated here by filtering for active non-virtual ethernet adapters using the Get-NetAdapter cmdlet ($_.Status -eq "Up" -and !$_.Virtual). If your Hyper-V host is dual-homed with multiple active ethernet adapters, this automation will not work, and the second command above will fail. In this case, you must edit the command used to add the "poc-external" virtual switch by inserting the NetAdapterName. The NetAdapterName value corresponds to the name of the network interface you wish to use. For example, if the network interface you use on the Hyper-V host to connect to the Internet is named "Ethernet 2" then type the following command to create an external virtual switch: - ``` +
     New-VMSwitch -Name poc-external -NetAdapterName "Ethernet 2" -Notes "PoC External"
-    ```
+    
2. At the elevated Windows PowerShell prompt, type the following command to determine the megabytes of RAM that are currently available on the Hyper-V host: - ``` - (Get-Counter -Counter @("\Memory\Available MBytes")).countersamples.cookedvalue - ``` - >This command will display the megabytes of RAM available. On a Hyper-V host computer with 16 GB of physical RAM installed, 12,000 MB of RAM or greater should be available if the computer is not also running other applications. On a computer with 8 GB of physical RAM installed, at least 5000 MB should be available. If the computer has less RAM available than this, try closing applications to free up more memory. +
+    (Get-VMHostNumaNode).MemoryAvailable
+    
+ + >This command will display the megabytes of RAM available. On a Hyper-V host computer with 16 GB of physical RAM installed, 10,000 MB of RAM or greater should be available if the computer is not also running other applications. On a computer with 8 GB of physical RAM installed, at least 4000 MB should be available. If the computer has less RAM available than this, try closing applications to free up more memory. 3. Determine the available memory for VMs by dividing the available RAM by 4. For example: - ``` - (Get-Counter -Counter @("\Memory\Available MBytes")).countersamples.cookedvalue/4 +
+    (Get-VMHostNumaNode).MemoryAvailable/4
     2775.5
-    ```
+    
+ In this example, VMs can use a maximum of 2700 MB of RAM each, to run four VMs simultaneously. 4. At the elevated Windows PowerShell prompt, type the following command to create three new VMs. The fourth VM will be added later. - >**Important**: Replace the value of 2700MB in the first command below with the RAM value that you calculated in the previous step: + >**Important**: Replace the value of 2700MB for $maxRAM in the first command below with the RAM value that you calculated in the previous step. - ``` +
     $maxRAM = 2700MB
     New-VM -Name "DC1" -VHDPath c:\vhd\2012R2-poc-1.vhd -SwitchName poc-internal
     Set-VMMemory -VMName "DC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20
@@ -366,7 +375,7 @@ Instructions to "type" commands provided in this guide can be typed, but in most
     New-VM -Name "PC1" -VHDPath c:\vhd\w7.vhdx -SwitchName poc-internal
     Set-VMMemory -VMName "PC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20
     Enable-VMIntegrationService -Name "Guest Service Interface" -VMName PC1
-    ```
+    
**Note**: The RAM values assigned to VMs in this step are not permanent, and can be easily increased or decreased later if needed to address performance issues. @@ -374,95 +383,112 @@ Instructions to "type" commands provided in this guide can be typed, but in most 1. At an elevated Windows PowerShell prompt on the Hyper-V host, start the first VM by typing the following command: - ``` +
     Start-VM DC1
-    ```
+    
+ 2. Wait for the VM to complete starting up, and then connect to it either using the Hyper-V Manager console (virtmgmt.msc) or using an elevated command prompt on the Hyper-V host: - ``` +
     vmconnect localhost DC1
-    ```
+    
+ 3. Click **Next** to accept the default settings, read the license terms and click **I accept**, provide an administrator password of **pass@word1**, and click **Finish**. 4. Click the **Ctrl+Alt+Del** button in the upper left corner of the virtual machine connection window, and then sign in to DC1 using the local administrator account. 5. Right-click **Start**, point to **Shut down or sign out**, and click **Sign out**. The VM connection will reset and a new connection dialog box will appear enabling you to choose a custom display configuration. Select a desktop size, click **Connect** and sign in again with the local Administrator account. Note: Signing in this way ensures that [enhanced session mode](https://technet.microsoft.com/windows-server-docs/compute/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect) is enabled. It is only necessary to do this the first time you sign in to a new VM. 6. If DC1 is configured as described in this guide, it will currently be assigned an APIPA address, have a randomly generated hostname, and a single network adapter named "Ethernet." Open an elevated Windows PowerShell prompt on DC1 and type or paste the following commands to provide a new hostname and configure a static IP address and gateway: - ``` +
     Rename-Computer DC1
     New-NetIPAddress –InterfaceAlias Ethernet –IPAddress 192.168.0.1 –PrefixLength 24 -DefaultGateway 192.168.0.2
     Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses 192.168.0.1,192.168.0.2
-    ```
+    
+ >The default gateway at 192.168.0.2 will be configured later in this guide. + 7. Install the Active Directory Domain Services role by typing the following command at an elevated Windows PowerShell prompt: - ``` +
     Install-WindowsFeature -Name AD-Domain-Services -IncludeAllSubFeature -IncludeManagementTools
-    ```
+    
8. Before promoting DC1 to a Domain Controller, you must reboot so that the name change in step 3 above takes effect. To restart the computer, type the following command at an elevated Windows PowerShell prompt: - ``` +
     Restart-Computer
-    ```
+    
9. When DC1 has rebooted, sign in again and open an elevated Windows PowerShell prompt. Now you can promote the server to be a domain controller. The directory services restore mode password must be entered as a secure string. Type the following commands at the elevated Windows PowerShell prompt: - ``` +
     $pass = "pass@word1" | ConvertTo-SecureString -AsPlainText -Force
     Install-ADDSForest -DomainName contoso.com -InstallDns -SafeModeAdministratorPassword $pass -Force
-    ```
+    
+ Ignore any warnings that are displayed. The computer will automatically reboot upon completion. + 10. When the reboot has completed, reconnect to DC1, sign in using the CONTOSO\Administrator account, open an elevated Windows PowerShell prompt, and use the following commands to add a reverse lookup zone for the PoC network, add the DHCP Server role, authorize DHCP in Active Directory, and supress the post-DHCP-install alert: - ``` +
     Add-DnsServerPrimaryZone -NetworkID "192.168.0.0/24" -ReplicationScope Forest
     Add-WindowsFeature -Name DHCP -IncludeManagementTools
     netsh dhcp add securitygroups
     Restart-Service DHCPServer
     Add-DhcpServerInDC  dc1.contoso.com  192.168.0.1
     Set-ItemProperty –Path registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\Roles\12 –Name ConfigurationState –Value 2
-    ```
+    
+ 11. Next, add a DHCP scope and set option values: - ``` +
     Add-DhcpServerv4Scope -Name "PoC Scope" -StartRange 192.168.0.100 -EndRange 192.168.0.199 -SubnetMask 255.255.255.0 -Description "Windows 10 PoC" -State Active
     Set-DhcpServerv4OptionValue -ScopeId 192.168.0.0 -DnsDomain contoso.com -Router 192.168.0.2 -DnsServer 192.168.0.1,192.168.0.2 -Force
-    ```
+    
+ >The -Force option is necessary when adding scope options to skip validation of 192.168.0.2 as a DNS server because we have not configured it yet. The scope should immediately begin issuing leases on the PoC network. The first DHCP lease that will be issued is to vEthernet interface on the Hyper-V host, which is a member of the internal network. You can verify this by using the command: Get-DhcpServerv4Lease -ScopeId 192.168.0.0. 12. Add a user account to the contoso.com domain that can be used with client computers: - ``` +
     New-ADUser -Name "User1" -UserPrincipalName user1 -AccountPassword (ConvertTo-SecureString "pass@word1" -AsPlainText -Force) -ChangePasswordAtLogon $false -Enabled $true
-    ```
+    
+ 13. The DNS server role will also be installed on the member server, SRV1, at 192.168.0.2 so that we can forward DNS queries from DC1 to SRV1 to resolve Internet names without having to configure a forwarder outside the PoC network. Since the IP address of SRV1 already exists on DC1's network adapter, it will be automatically added during the DCPROMO process. To verify this server-level DNS forwarder on DC1, type the following command at an elevated Windows PowerShell prompt on DC1: - ``` +
     Get-DnsServerForwarder
-    ```
+    
+ The following output should be displayed: - ``` + +
     UseRootHint        : True
     Timeout(s)         : 3
     EnableReordering   : True
     IPAddress          : 192.168.0.2
     ReorderedIPAddress : 192.168.0.2
-    ```
+    
+ If this output is not displayed, you can use the following command to add SRV1 as a forwarder: - ``` + +
     Add-DnsServerForwarder -IPAddress 192.168.0.2
-    ```
+    
+ 14. Minimize the DC1 VM window but **do not stop** the VM. Next, the client VM will be started and joined to the contoso.com domain. This is done before adding a gateway to the PoC network so that there is no danger of duplicate DNS registrations for the physical client and its cloned VM in the corporate domain. 15. Using an elevated Windows PowerShell prompt on the Hyper-V host, start the client VM (PC1), and connect to it: - ``` + +
     Start-VM PC1
     vmconnect localhost PC1
-    ```
+    
+ 16. Sign on to PC1 using an account that has local administrator rights. >PC1 will be disconnected from its current domain, so you cannot use a domain account to sign on unless these credentials are cached and the use of cached credentials is permitted by Group Policy. If cached credentials are available and permitted, you can use these credentials to sign in. Otherwise, use an existing local administrator account. + 17. After signing in, the operating system detects that it is running in a new environment. New drivers will be automatically installed, including the network adapter driver. The network adapter driver must be updated before you can proceed, so that you will be able to join the contoso.com domain. Depending on the resources allocated to PC1, installing the network adapter driver might take a few minutes. You can monitor device driver installation by clicking **Show hidden icons** in the notification area. ![PoC](images/installing-drivers.png) @@ -474,7 +500,7 @@ Instructions to "type" commands provided in this guide can be typed, but in most To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection: - ``` +
     ipconfig
 
     Windows IP Configuration
@@ -503,19 +529,20 @@ Instructions to "type" commands provided in this guide can be typed, but in most
      Dc Site Name: Default-First-Site-Name
     Our Site Name: Default-First-Site-Name
             Flags: PDC GC DS LDAP KDC TIMESERV WRITABLE DNS_FOREST CLOSE_SITE FULL_SECRET WS 0xC000
-    ```
+    
+ >If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. 20. Minimize the PC1 window and switch to the Hyper-V host computer. Open an elevated Windows PowerShell ISE window on the Hyper-V host (right-click Windows PowerShell and then click Run ISE as Administrator) and type the following commands in the (upper) script editor pane: - ``` +
     (Get-WmiObject Win32_ComputerSystem).UnjoinDomainOrWorkgroup($null,$null,0)
     $pass = "pass@word1" | ConvertTo-SecureString -AsPlainText -Force
     $user = "contoso\administrator"
     $cred = New-Object System.Management.Automation.PSCredential($user,$pass)
     Add-Computer -DomainName contoso.com -Credential $cred
     Restart-Computer
-    ```
+    
>If you do not see the script pane, click **View** and then click **Show Script Pane Top**. @@ -526,16 +553,17 @@ Instructions to "type" commands provided in this guide can be typed, but in most 21. Click **File**, click **Save As**, and save the commands as **c:\VHD\pc1.ps1** on the Hyper-V host. 22. In the (lower) terminal input window, type the following command to copy the script to PC1 using integration services: - ``` +
     Copy-VMFile "PC1" –SourcePath "C:\VHD\pc1.ps1"  –DestinationPath "C:\pc1.ps1" –CreateFullPath –FileSource Host
-    ```
+    
+ >In order for this command to work properly, PC1 must be running the vmicguestinterface (Hyper-V Guest Service Interface) service. If this service is not installed, you can try updating integration services on the VM. This can be done by mounting the Hyper-V Integration Services Setup (vmguest.iso), which is located in C:\Windows\System32 on Windows Server operating systems that are running the Hyper-V role service. Otherwise, just create the file c:\pc1.ps1 on the VM and type the commands into this file manually. Be sure to save the file as a Windows PowerShell script file with the .ps1 extension and not as a text (.txt) file. 23. On PC1, type the following commands at an elevated Windows PowerShell prompt: - ``` +
     Get-Content c:\pc1.ps1 | powershell.exe -noprofile - 
-    ```
+    
>PC1 is removed from its domain in this step while not connected to the corporate network so as to ensure the computer object in the corporate domain is unaffected. We have not also renamed PC1 to "PC1" in system properties so that it maintains some of its mirrored identity. However, if desired you can also rename the computer. @@ -544,79 +572,88 @@ Instructions to "type" commands provided in this guide can be typed, but in most 25. Minimize the PC1 window but do not turn it off while the second Windows Server 2012 R2 VM (SRV1) is configured. This verifies that the Hyper-V host has enough resources to run all VMs simultaneously. Next, SRV1 will be started, joined to the contoso.com domain, and configured with RRAS and DNS services. 26. On the Hyper-V host computer, at an elevated Windows PowerShell prompt, type the following commands: - ``` +
     Start-VM SRV1
     vmconnect localhost SRV1
-    ```
+    
+ 27. Accept the default settings, read license terms and accept them, provide an administrator password of **pass@word1**, and click **Finish**. When you are prompted about finding PCs, devices, and content on the network, click **Yes**. 28. Sign in to SRV1 using the local administrator account. In the same way that was done on DC1, sign out of SRV1 and then sign in again to enable enhanced session mode. This will enable you to copy and paste Windows PowerShell commands from the Hyper-V host to the VM. 29. Open an elevated Windows PowerShell prompt on SRV1 and type the following commands: - ``` +
     Rename-Computer SRV1
     New-NetIPAddress –InterfaceAlias Ethernet –IPAddress 192.168.0.2 –PrefixLength 24
     Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses 192.168.0.1,192.168.0.2
     Restart-Computer
-    ```
+    
+ 30. Wait for the computer to restart, then type or paste the following commands at an elevated Windows PowerShell prompt: - ``` +
  
     $pass = "pass@word1" | ConvertTo-SecureString -AsPlainText -Force
     $user = "contoso\administrator"
     $cred = New-Object System.Management.Automation.PSCredential($user,$pass)
     Add-Computer -DomainName contoso.com -Credential $cred
     Restart-Computer
-    ```
+    
+ 31. Sign in to the contoso.com domain on SRV1 using the domain administrator account (enter contoso\administrator as the user), open an elevated Windows PowerShell prompt, and type the following commands: - ``` +
     Install-WindowsFeature -Name DNS -IncludeManagementTools
     Install-WindowsFeature -Name WDS -IncludeManagementTools
     Install-WindowsFeature -Name Routing -IncludeManagementTools
-    ```
+    
+ 32. Before configuring the routing service that was just installed, verify that network interfaces were added to SRV1 in the right order, resulting in an interface alias of "Ethernet" for the private interface, and an interface alias of "Ethernet 2" for the public interface. Also verify that the external interface has a valid external DHCP IP address lease. To view a list of interfaces, associated interface aliases, and IP addresses on SRV1, type the following Windows PowerShell command. Example output of the command is also shown below: - ``` +
     Get-NetAdapter | ? status -eq ‘up’ | Get-NetIPAddress -AddressFamily IPv4 | ft IPAddress, InterfaceAlias
 
     IPAddress                                                                  InterfaceAlias
     ---------                                                                  --------------
     10.137.130.118                                                             Ethernet 2
     192.168.0.2                                                                Ethernet
-    ``` 
+    
+ In this example, the poc-internal network interface at 192.168.0.2 is associated with the "Ethernet" interface and the Internet-facing poc-external interface is associated with the "Ethernet 2" interface. If your interfaces are different, you must adjust the commands provided in the next step appropriately to configure routing services. 33. To configure SRV1 with routing capability for the PoC network, type or paste the following commands at an elevated Windows PowerShell prompt on SRV1: - ``` +
     Install-RemoteAccess -VpnType Vpn
     cmd /c netsh routing ip nat install
     cmd /c netsh routing ip nat add interface name="Ethernet 2" mode=FULL 
     cmd /c netsh routing ip nat add interface name="Ethernet" mode=PRIVATE
     cmd /c netsh routing ip nat add interface name="Internal" mode=PRIVATE
-    ```
+    
+ 34. The DNS service on SRV1 also needs to resolve hosts in the contoso.com domain. This can be accomplished with a conditional forwarder. Open an elevated Windows PowerShell prompt on SRV1 and type the following command: - ``` +
     Add-DnsServerConditionalForwarderZone -Name contoso.com -MasterServers 192.168.0.1
-    ```
+    
+ 35. In most cases, this completes configuration of the PoC network. However, if your corporate network has a firewall that filters queries from local DNS servers, you will also need to configure a server-level DNS forwarder on SRV1 to resolve Internet names. To test whether or not DNS is working without this forwarder, try to reach a name on the Internet from DC1 or PC1, which are only using DNS services on the PoC network. You can test DNS with the ping command, for example: - ``` +
     ping www.microsoft.com
-    ```
+    
+ If you see "Ping request could not find host www.microsoft.com" on PC1 and DC1, but not on SRV1, then you will need to configure a server-level DNS forwarder on SRV1. To do this, open an elevated Windows PowerShell prompt on SRV1 and type the following command. **Note**: This command also assumes that "Ethernet 2" is the external-facing network adapter on SRV1. If the external adapter has a different name, replace "Ethernet 2" in the command below with that name: - ``` +
     Add-DnsServerForwarder -IPAddress (Get-DnsClientServerAddress -InterfaceAlias "Ethernet 2").ServerAddresses
-    ```
+    
+ 36. If DNS and routing are both working correctly, you will see the following on DC1 and PC1: - ``` +
     PS C:\> ping www.microsoft.com
 
     Pinging e2847.dspb.akamaiedge.net [23.222.146.170] with 32 bytes of data:
@@ -629,14 +666,15 @@ Instructions to "type" commands provided in this guide can be typed, but in most
         Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
     Approximate round trip times in milli-seconds:
         Minimum = 1ms, Maximum = 3ms, Average = 2ms
-    ```
+    
+ 37. Verify that all three VMs can reach each other, and the Internet. See [Appendix B: Verify the configuration](#appendix-b-verify-the-configuration) for more information. 38. Lastly, because the client computer has different hardware after copying it to a VM, its Windows activation will be invalidated and you might receive a message that you must activate Windows in 3 days. To extend this period to 30 days, type the following commands at an elevated Windows PowerShell prompt on PC1: - ``` +
     slmgr -rearm
     Restart-Computer
-    ```
+    
## Appendix A: Verify the configuration @@ -644,7 +682,7 @@ Use the following procedures to verify that the PoC environment is configured pr 1. On DC1, open an elevated Windows PowerShell prompt and type the following commands: - ``` +
     Get-Service NTDS,DNS,DHCP
     DCDiag -a
     Get-DnsServerResourceRecord -ZoneName contoso.com -RRType A
@@ -653,7 +691,8 @@ Use the following procedures to verify that the PoC environment is configured pr
     Get-DhcpServerInDC
     Get-DhcpServerv4Statistics
     ipconfig /all
-    ```
+    
+ **Get-Service** displays a status of "Running" for all three services.
**DCDiag** displays "passed test" for all tests.
**Get-DnsServerResourceRecord** displays the correct DNS address records for DC1, SRV1, and the computername of PC1. Additional address records for the zone apex (@), DomainDnsZones, and ForestDnsZones will also be registered.
@@ -665,13 +704,14 @@ Use the following procedures to verify that the PoC environment is configured pr 2. On SRV1, open an elevated Windows PowerShell prompt and type the following commands: - ``` +
     Get-Service DNS,RemoteAccess
     Get-DnsServerForwarder
     Resolve-DnsName -Server dc1.contoso.com -Name www.microsoft.com
     ipconfig /all
     netsh int ipv4 show address
-    ```
+    
+ **Get-Service** displays a status of "Running" for both services.
**Get-DnsServerForwarder** either displays no forwarders, or displays a list of forwarders you are required to use so that SRV1 can resolve Internet names.
**Resolve-DnsName** displays public IP address results for www.microsoft.com.
@@ -680,13 +720,14 @@ Use the following procedures to verify that the PoC environment is configured pr 3. On PC1, open an elevated Windows PowerShell prompt and type the following commands: - ``` +
     whoami
     hostname
     nslookup www.microsoft.com
     ping -n 1 dc1.contoso.com
     tracert www.microsoft.com
-    ```
+    
+ **whoami** displays the current user context, for example in an elevated Windows PowerShell prompt, contoso\administrator is displayed.
**hostname** displays the name of the local computer, for example W7PC-001.
**nslookup** displays the DNS server used for the query, and the results of the query. For example, server dc1.contoso.com, address 192.168.0.1, Name e2847.dspb.akamaiedge.net.
@@ -701,13 +742,13 @@ This section is a placeholder for instructions to configure Hyper-V on Windows S To install Hyper-V on Windows Server 2008 R2, you can use the Add-WindowsFeature cmdlet: -``` +
 Add-WindowsFeature -Name Hyper-V
-```
+
An example that uses Hyper-V WMI to create a virtual switch on Windows Server 2008 R2 is provided below. -``` +
 $SwitchFriendlyName = "poc-internal"
 $InternalEthernetPortFriendlyName = $SwitchFriendlyName
 $InternalSwitchPortFriendlyName = "poc"
@@ -728,39 +769,63 @@ $InternalLanEndPoint = gwmi -namespace root\virtualization -query $query
 $Result = $VirtualSwitchManagementService.ConnectSwitchPort($InternalSwitchPort, $InternalLanEndPoint)
 $filter = "SettingID='" + $InternalEthernetPort.DeviceID +"'"
 $NetworkAdapterConfiguration = gwmi Win32_NetworkAdapterConfiguration -filter $filter
-```
+
## Appendix C: Convert GPT to MBR >Conversion of a disk directly from GPT to MBR without data loss is not possible without the use of external, specialized applications and tools. However, it is possible to create an image of the GPT disk and then restore this image to an MBR disk using standard tools. At a high level, this can be done by obtaining an image of the source drive, creating a blank MBR-formatted disk, applying the source drive image to the MBR disk, and then configuring the MBR disk to boot the applied image. This procedure is described below: -1. Open an elevated command prompt and type the following command: +First I capture a VSS image of the GPT disk: - ``` - mountvol S: /S - ``` -2. Close and restart the Disk2VHD application. -3. Clear the **Use Volume Shadow Copy** checkbox. -4. Select the C: and S: drives to convert, and then click **Create**. +1. Create VHD (function thanks to Senthil Rajaram). -mount-vhd -path D:\vhd\w7.VHDX +function CreateVHD ($VHDPath, $Size) +{ + $drive = (New-VHD -path $vhdpath -SizeBytes $size -Dynamic | ` + Mount-VHD -Passthru | ` + get-disk -number {$_.DiskNumber} | ` + Initialize-Disk -PartitionStyle MBR -PassThru | ` + New-Partition -UseMaximumSize -AssignDriveLetter:$False -MbrType IFS | ` + Format-Volume -Confirm:$false -FileSystem NTFS -force | ` + get-partition | ` + Add-PartitionAccessPath -AssignDriveLetter -PassThru | ` + get-volume).DriveLetter + Dismount-VHD $VHDPath +} -dism /Capture-Image /ImageFile:d:\w7.wim /CaptureDir:H:\ /Name:w7 <--this takes a long time +Be sure to use a size sufficient for the backup (i.e. 100GB) and specify a path to a USB drive. For Windows 7 to mount the drive it must be .vhd not .vhdx. - mount-vhd -path 'D:\vhd\w7-gen1\Virtual Hard Disks\w7-gen1.vhdx' +CreateVHD F:\pc1.vhd 100GB - New simple volume, created drive G: ---- -dism /Apply-Image /ImageFile:D:\w7.wim /Index:1 /ApplyDir:G:\ -boot to install disk and repair this +2. Insert USB into client and mount using disk management. It is possible also using diskpart but easier with disk manager. Note the drive letter of the mount. Assuming G: -the idea here is to create a MBR VHD, then restore the wim to that. +wbadmin start backup -backupTarget:g: -include:c: -quiet + +- this takes a few minutes then you see: + +Creating a backup of volume C(C:), copied (98%). +Creating a backup of volume C(C:), copied (98%). +Creating a backup of volume C(C:), copied (99%). +Creating a backup of volume C(C:), copied (99%). +Creating a backup of volume C(C:), copied (100%). +The backup operation successfully completed. +Summary of the backup operation: +------------------ + +The backup of volume C(C:) successfully completed. + +C:\> + +Note: Alternatively you can back up the client to a network share, then access the network share from system restore. + +3. Detatch the VHD, remove the USB, insert USB in Hyper-V host. + +4. Create new VM with blank VHD, add the usb vhd as secondary. remove it later...no need to keep the image on the same disk. ---note another possible option is to create a backup, choose USB as the destination, then create VM, boot from DVD, and restore from backup usign tools. ---also try https://community.spiceworks.com/topic/435119-can-i-virtualize-a-uefi-server-into-a-hyper-v-virtual-machine <-- does not work ### Appendix D: Terminology used in this guide @@ -784,6 +849,10 @@ See the following table for a list of terms used in this guide. +### Appendix E: Create PC1 VM + +Here is where I provide a procedure to create a blank client VM. + ## Related Topics From 44d2cf13b5082cbca4f3f247386c1298dfc60326 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 9 Nov 2016 10:38:50 -0800 Subject: [PATCH 025/233] rework client procedure --- windows/deploy/images/disk2vhd-convert.PNG | Bin 0 -> 17223 bytes windows/deploy/images/disk2vhd-gen2.PNG | Bin 0 -> 19807 bytes windows/deploy/windows-10-poc.md | 232 +++++++++++++++++++-- 3 files changed, 215 insertions(+), 17 deletions(-) create mode 100644 windows/deploy/images/disk2vhd-convert.PNG create mode 100644 windows/deploy/images/disk2vhd-gen2.PNG diff --git a/windows/deploy/images/disk2vhd-convert.PNG b/windows/deploy/images/disk2vhd-convert.PNG new file mode 100644 index 0000000000000000000000000000000000000000..f0614a5ab17a9910acdc8ee57b40fc9d32915b78 GIT binary patch literal 17223 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�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 literal 0 HcmV?d00001 diff --git a/windows/deploy/images/disk2vhd-gen2.PNG b/windows/deploy/images/disk2vhd-gen2.PNG new file mode 100644 index 0000000000000000000000000000000000000000..7f8d920f9d91075593d5ee726e5f7debe27e709c GIT binary patch literal 19807 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 D{tvmz literal 0 HcmV?d00001 diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 8a5496b4b3..8673e4fc15 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -48,7 +48,7 @@ The following topics and procedures are provided in this guide. An estimate of t
[Configure the PoC environment](#configure-the-poc-environment)Parent topic for procedures.
[Verify support and install Hyper-V](#verify-support-and-install-hyper-v)Verify that installation of Hyper-V is supported, and install the Hyper-V server role.10 minutes
[Download VHD and ISO files](#download-vhd-and-iso-files)Download evaluation versions of Windows Server 2012 R2 and Windows 10 and prepare these files to be used on the Hyper-V host.30 minutes -
[Convert PC to VHD](#convert-pc-to-vhd)Convert a physical computer on your network to a VHDX file and prepare it to be used on the Hyper-V host.30 minutes +
[Convert PC to VM](#convert-pc-to-vm)Convert a physical computer on your network to a VM hosted in Hyper-V.30 minutes
[Resize VHD](#resize-vhd)Increase the storage capacity for one of the Windows Server VMs.5 minutes
[Configure Hyper-V](#configure-hyper-v)Create virtual switches, determine available RAM for virtual machines, and add virtual machines.15 minutes
[Configure VHDs](#configure-vhds)Start virtual machines and configure all services and settings.60 minutes @@ -258,32 +258,137 @@ w10-enterprise.iso -### Convert PC to VHD +### Convert PC to VM -If you do not have a PC available to convert to VHD, see [Appendix E: Create PC1 VM](#appendix-e-create-pc1-vm). +If you do not have a PC available to convert to VM, see [Appendix E: Create PC1 VM](#appendix-e-create-pc1-vm). -**Important**: Before you convert a PC to VHD, verify that you have access to a local administrator account on the computer. Alternatively you can use a domain account with administrative rights if these credentials are cached on the computer and your domain policy allows the use of cached credentials for login. After converting the computer to a VM, you must be able to sign in on this VM with local administrator privileges, while disconnected from the corporate network. +If you have a PC available to convert to VM: -#### Client computer requirements for this lab: +1. Verify that you have access to a local administrator account on the computer. Alternatively you can use a domain account with administrative rights, if these credentials are cached on the computer and your domain policy allows the use of cached credentials for login. After converting the computer to a VM, you must be able to sign in on this VM with local administrator privileges, while disconnected from the corporate network. +2. Determine the VM generation that is required. See below. +3. Based on the VM generation, perform the appropriate conversion procedure. -1. You must use a PC that is assigned a system/boot drive letter of **C**. Computers with other configurations can also be upgraded using PC refresh and replace scenarios, but these systems require more advanced deployment task sequences than the sample ones used in this lab. If the computer has multiple hard drives, then only choose the **C** drive for conversion. -2. If the PC is running Windows 7, then it must use the Master Boot Record (MBR) method for storing partition information, not the GUID Partition Table (GPT) method. This is because a generation 2 VM is required to support GPT, and Windows 7 is not supported in Hyper-V as a generation 2 VM. Alternatively, you can convert the VHD to use MBR, but this procedure is complex. If you must create a bootable generation 1 VHD from a physical host that uses GPT, see [Appendix C: Convert GPT to MBR](#appendix-c-convert-gpt-to-mbr) - >To determine the storage method on a computer running Windows 7, open a command prompt and type **DISKPART**, then type **list disk**. Disks that use GPT will have an asterisk under **Gpt** in the command output. If the computer is running Windows 8 or a later OS, you can also type **Get-Disk** at an elevated Windows PowerShell prompt to identify the partition style. -3. If the PC is running Windows 8 or later and uses the GPT method for storing partition information, then you must create a generation 2 VM to mirror the PC in Hyper-V. +#### Determine VM generation -#### To convert a PC to VHD: +When creating a VM in Hyper-V, you must specify either generation 1 or generation 2. The following table describes requirements for these two types of VMs. + +
+ + + + + + + + + + + + + + + + + + + + +
GenerationArchitectureOperating systemPartition style
Generation 132-bit or 64-bitWindows 7 or laterMBR
Generation 264-bitWindows 8 or laterMBR or GPT
+ +
+ +To determine the OS and architecture of a PC, type **systeminfo** at a command prompt and review the output next to **OS Name** and **System Type**. + +To determine the partition style, open a Windows PowerShell prompt on the PC and type the following command: + +
+Get-WmiObject -Class Win32_DiskPartition | Select-Object -Property SystemName,Caption,Type
+
+ +If the **Type** column does not indicate GPT, then the disk partition format is MBR ("Installable File System" = MBR). + +>On a computer running Windows 8 or later, you can also type **Get-Disk** at a Windows PowerShell prompt to discover the partition style. The default output of this cmdlet displays the partition style for all attached disks. + +**Choosing a VM generation** + +The following table displays the Hyper-V VM generation to choose based on the OS, architecture, and partition style. Links to procedures to create the corresponding VMs are included. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OSPartition styleArchitectureVM generationProcedures
Windows 7MBR321A
641A
GPT32N/AN/A
641C, A
Windows 8 or laterMBR321A
641, 2A
GPT321C, A
642B
+ +
+ +>If the PC is running Windows 7, it can only be converted and hosted in Hyper-V as a generation 1 VM. If the Windows 7 PC is also using a GPT partition style, the disk contents must be captured and then used to create a VHD with the MBR partition style. If this is required, see [Appendix C: Convert GPT to MBR](#appendix-c-convert-gpt-to-mbr). +>
If the PC is running Windows 8 or later and uses the GPT partition style, you can capture the disk image and create a generation 2 VM. To do this, you must temporarily mount the EFI system partition which is a simple procedure using the mountvol command. +>
If the PC is using an MBR partition style, you can convert the disk to VHD and use it to create a generation 1 VM. If you use the Disk2VHD tool described in this guide, it is not necessary to mount the MBR system partition, but it is still necessary to capture it. + +#### Prepare a generation 1 VM 1. Download the [Disk2vhd utility](https://technet.microsoft.com/en-us/library/ee656415.aspx), extract the .zip file and copy **disk2vhd.exe** to a flash drive or other location that is accessible from the computer you wish to convert. >You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media such as a USB drive. 2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. -3. Select the checkboxes next to the **C:\** and the **system reserved** (BIOS/MBR) volumes. The system volume is not assigned a drive letter, but will be displayed in the Disk2VHD tool with a volume label similar to **\\?\Volume{**. See the following example. **Important**: You must include the system volume in order to create a bootable VHD. If this volume is not displayed in the disk2vhd tool, then the computer is using the GPT partition method. In this case, see the second item in the [requirements](#client-computer-requirements-for-this-lab) list in this section for more information. +3. Select the checkboxes next to the **C:\** and the **system reserved** (BIOS/MBR) volumes. The system volume is not assigned a drive letter, but will be displayed in the Disk2VHD tool with a volume label similar to **\\?\Volume{**. See the following example. **Important**: You must include the system volume in order to create a bootable VHD. If this volume is not displayed in the disk2vhd tool, then the computer is likely to be using the GPT partition style. In this case, see [Determine VM generation](#determine-vm-generation). 4. Specify a location to save the resulting VHD or VHDX file (F:\VHD\w7.vhdx in the following example) and click **Create**. Note: Hyper-V on Windows Server 2008 R2 does not support VHDX. See the following example: ![disk2vhd](images/disk2vhd.png) - 5. Click **Create** to start creating a VHDX file. >Disk2vhd can save VHDs to local hard drives, even if they are the same as the volumes being converted. Performance is better however when the VHD is saved on a disk different than those being converted, such as a flash drive. @@ -298,6 +403,43 @@ If you do not have a PC available to convert to VHD, see [Appendix E: Create PC1 w7.VHDX +#### Prepare a generation 2 VM + +1. Download the [Disk2vhd utility](https://technet.microsoft.com/en-us/library/ee656415.aspx), extract the .zip file and copy **disk2vhd.exe** to a flash drive or other location that is accessible from the computer you wish to convert. + + >You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media such as a USB drive. + +2. On the computer you wish to convert, open an elevated command prompt and type the following command: + +
+    mountvol s: /s
+    
+ + >This command temporarily assigns a drive letter of S to the system volume and mounts it. If the letter S is already assigned to a different volume on the computer, then choose one that is available (ex: mountvol z: /s). + +2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. +3. Select the checkboxes next to the **C:\** and the **S:\** volumes, and clear the **Use Volume Shadow Copy checkbox**. Volume shadow copy will not work if the EFI system partition is selected. + + **Important**: You must include the EFI system partition in order to create a bootable VHD. The Windows RE tools partition is not requried, but it can also be converted if desired. + +4. Specify a location to save the resulting VHD or VHDX file (F:\VHD\PC1.vhdx in the following example) and click **Create**. Note: Hyper-V on Windows Server 2008 R2 does not support VHDX. See the following example: + + ![disk2vhd](images/disk2vhd-gen2.png) + +5. Click **Create** to start creating a VHDX file. + + >Disk2vhd can save VHDs to local hard drives, even if they are the same as the volumes being converted. Performance is better however when the VHD is saved on a disk different than those being converted, such as a flash drive. + +6. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHDX file (PC1.vhdx) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory: + +
+    C:\vhd>dir /B
+    2012R2-poc-1.vhd
+    2012R2-poc-2.vhd
+    w10-enterprise.iso
+    PC1.VHDX
+    
+ ### Resize VHD The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to 80GB to support installing imaging tools and storing OS images. @@ -360,7 +502,7 @@ As mentioned previously: instructions to "type" commands provided in this guide In this example, VMs can use a maximum of 2700 MB of RAM each, to run four VMs simultaneously. -4. At the elevated Windows PowerShell prompt, type the following command to create three new VMs. The fourth VM will be added later. +4. At the elevated Windows PowerShell prompt, type the following command to create two new VMs. Other VMs will be added later. >**Important**: Replace the value of 2700MB for $maxRAM in the first command below with the RAM value that you calculated in the previous step.
@@ -372,13 +514,28 @@ As mentioned previously: instructions to "type" commands provided in this guide
     Add-VMNetworkAdapter -VMName "SRV1" -SwitchName "poc-external"
     Set-VMMemory -VMName "SRV1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 80
     Enable-VMIntegrationService -Name "Guest Service Interface" -VMName SRV1
-    New-VM -Name "PC1" -VHDPath c:\vhd\w7.vhdx -SwitchName poc-internal
-    Set-VMMemory -VMName "PC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20
-    Enable-VMIntegrationService -Name "Guest Service Interface" -VMName PC1
     
**Note**: The RAM values assigned to VMs in this step are not permanent, and can be easily increased or decreased later if needed to address performance issues. +5. Using the same elevated Windows PowerShell prompt that was used in the previous step, type one of the following sets of commands, depending on the type of VM that was prepared in the [Determine VM generation](#determine-vm-generation) section, either generation 1 or generation 2. + + To create a generation 1 VM: + +
+    New-VM -Name "PC1" -VHDPath c:\vhd\w7.vhdx -SwitchName poc-internal
+    Set-VMMemory -VMName "PC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20
+    Enable-VMIntegrationService -Name "Guest Service Interface" -VMName PC1
+    
+ + To create a generation 2 VM: + +
+    New-VM -Name "PC1" -Generation 2 -VHDPath c:\vhd\PC1.vhdx -SwitchName poc-internal
+    Set-VMMemory -VMName "PC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20
+    Enable-VMIntegrationService -Name "Guest Service Interface" -VMName PC1
+    
+ ### Configure VMs 1. At an elevated Windows PowerShell prompt on the Hyper-V host, start the first VM by typing the following command: @@ -773,9 +930,47 @@ $NetworkAdapterConfiguration = gwmi Win32_NetworkAdapterConfiguration -filter $f ## Appendix C: Convert GPT to MBR +This appendix provides a procedure to convert physical disk that is using the GPT partition style to a VHD that can be used to create a generation 1 VM in Hyper-V. Because generation 1 VMs require an MBR partition style, the physical disk is saved and then converted. + >Conversion of a disk directly from GPT to MBR without data loss is not possible without the use of external, specialized applications and tools. However, it is possible to create an image of the GPT disk and then restore this image to an MBR disk using standard tools. At a high level, this can be done by obtaining an image of the source drive, creating a blank MBR-formatted disk, applying the source drive image to the MBR disk, and then configuring the MBR disk to boot the applied image. This procedure is described below: -First I capture a VSS image of the GPT disk: +1. Download the [Disk2vhd utility](https://technet.microsoft.com/en-us/library/ee656415.aspx), extract the .zip file and copy **disk2vhd.exe** to a flash drive or other location that is accessible from the computer you wish to convert. + + >You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media such as a USB drive. + +2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. +3. Select the checkbox next to the **C:\** volume. On a computer using the GPT partition style, the system volume will not be displayed in the Disk2VHD tool. +4. Specify a location to save the resulting VHDX file (F:\VHD\w7-convert.vhdx in the following example) and click **Create**. See the following example: + + ![disk2vhd](images/disk2vhd-convert.png) + +5. Click **Create** to start creating a VHDX file. + + >Disk2vhd can save VHDs to local hard drives, even if they are the same as the volumes being converted. Performance is better however when the VHD is saved on a disk different than those being converted, such as a flash drive. + + +--here is where I need to insert the procedure to convert this to a bootable disk, given a vhdx file. + +How shall I do this? + + + +6. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHDX file (w7.vhdx) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory: + +
+    C:\vhd>dir /B
+    2012R2-poc-1.vhd
+    2012R2-poc-2.vhd
+    w10-enterprise.iso
+    w7.VHDX
+    
+ + +First I capture a VSS image of the GPT disk using disk2vhd + +Then I create a new VHD using the command below, attach both, robocopy from one to the other, detach the original and load the second. + + 1. Create VHD (function thanks to Senthil Rajaram). @@ -786,6 +981,9 @@ function CreateVHD ($VHDPath, $Size) Mount-VHD -Passthru | ` get-disk -number {$_.DiskNumber} | ` Initialize-Disk -PartitionStyle MBR -PassThru | ` + New-Partition -Size 100MB -AssignDriveLetter:$False -MbrType FAT32 -IsActive | ` + Format-Volume -Confirm:$false -FileSystem FAT32 -force | ` + get-partition | ` New-Partition -UseMaximumSize -AssignDriveLetter:$False -MbrType IFS | ` Format-Volume -Confirm:$false -FileSystem NTFS -force | ` get-partition | ` From ed7e43ca37fd462d0e0856e428517565c75c1de1 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 9 Nov 2016 11:00:25 -0800 Subject: [PATCH 026/233] trying to commit --- windows/deploy/windows-10-poc.md | 1 + 1 file changed, 1 insertion(+) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 8673e4fc15..c126583569 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -686,6 +686,7 @@ As mentioned previously: instructions to "type" commands provided in this guide Dc Site Name: Default-First-Site-Name Our Site Name: Default-First-Site-Name Flags: PDC GC DS LDAP KDC TIMESERV WRITABLE DNS_FOREST CLOSE_SITE FULL_SECRET WS 0xC000 + >If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. From d368c488ffbf6652b4ffe9f031b9f11637599e34 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 9 Nov 2016 11:31:13 -0800 Subject: [PATCH 027/233] stupid error.. --- windows/deploy/windows-10-poc.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index c126583569..c6ea9a2de3 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -653,11 +653,10 @@ As mentioned previously: instructions to "type" commands provided in this guide >If the client was configured with a static address, you must change this to a dynamic one so that it can obtain a DHCP lease. 18. When the new network adapter driver has completed installation, you will receive an alert to set a network location for the contoso.com network. Select **Work network** and then click **Close**. When you receive an alert that a restart is required, click **Restart Later**. -19. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. - - To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection: +19. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection: -
+
+
     ipconfig
 
     Windows IP Configuration
@@ -687,7 +686,7 @@ As mentioned previously: instructions to "type" commands provided in this guide
     Our Site Name: Default-First-Site-Name
             Flags: PDC GC DS LDAP KDC TIMESERV WRITABLE DNS_FOREST CLOSE_SITE FULL_SECRET WS 0xC000
     
-    
+
>If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. From b01ec83133643717a55676ff35ff03622c581ab6 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 9 Nov 2016 11:37:37 -0800 Subject: [PATCH 028/233] stupid error.. --- windows/deploy/windows-10-poc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index c6ea9a2de3..2295a75f56 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -685,7 +685,7 @@ As mentioned previously: instructions to "type" commands provided in this guide Dc Site Name: Default-First-Site-Name Our Site Name: Default-First-Site-Name Flags: PDC GC DS LDAP KDC TIMESERV WRITABLE DNS_FOREST CLOSE_SITE FULL_SECRET WS 0xC000 - + >If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. From 5a58807fe212b44cead43382a98fee0f5881c40d Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 9 Nov 2016 13:43:59 -0800 Subject: [PATCH 029/233] stupid error.. --- windows/deploy/windows-10-poc.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 2295a75f56..ecaf2f117a 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -655,8 +655,7 @@ As mentioned previously: instructions to "type" commands provided in this guide 18. When the new network adapter driver has completed installation, you will receive an alert to set a network location for the contoso.com network. Select **Work network** and then click **Close**. When you receive an alert that a restart is required, click **Restart Later**. 19. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection: -
-
+    
     ipconfig
 
     Windows IP Configuration
@@ -685,10 +684,9 @@ As mentioned previously: instructions to "type" commands provided in this guide
      Dc Site Name: Default-First-Site-Name
     Our Site Name: Default-First-Site-Name
             Flags: PDC GC DS LDAP KDC TIMESERV WRITABLE DNS_FOREST CLOSE_SITE FULL_SECRET WS 0xC000
+    
-
- ->If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. + >If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. 20. Minimize the PC1 window and switch to the Hyper-V host computer. Open an elevated Windows PowerShell ISE window on the Hyper-V host (right-click Windows PowerShell and then click Run ISE as Administrator) and type the following commands in the (upper) script editor pane: From 42607f03295be91b42fb63ad846a9b88ca5c989b Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 9 Nov 2016 14:05:28 -0800 Subject: [PATCH 030/233] stupid error.. --- windows/deploy/windows-10-poc.md | 31 +------------------------------ 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index ecaf2f117a..544da2ad39 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -655,36 +655,7 @@ As mentioned previously: instructions to "type" commands provided in this guide 18. When the new network adapter driver has completed installation, you will receive an alert to set a network location for the contoso.com network. Select **Work network** and then click **Close**. When you receive an alert that a restart is required, click **Restart Later**. 19. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection: -
-    ipconfig
-
-    Windows IP Configuration
-
-    Ethernet adapter Local Area Connection 3:
-        Connection-specific DNS Suffix  . : contoso.com
-        Link-local IPv6 Address . . . . . : fe80::64c2:4d2a:7403:6e02%18
-        Ipv4 Address. . . . . . . . . . . : 192.168.0.101
-        Subnet Mask . . . . . . . . . . . : 255.255.255.0
-        Default Gateway . . . . . . . . . : 192.168.0.2
-
-    ping dc1.contoso.com
-
-    Pinging dc1.contoso.com [192.168.0.1] with 32 bytes of data:
-    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
-    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
-    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
-    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
-
-    nltest /dsgetdc:contoso.com
-               DC: \\DC1
-          Address: \\192.168.0.1
-         Dom Guid: fdbd0643-d664-411b-aea0-fe343d7670a8
-         Dom Name: CONTOSO
-      Forest Name: contoso.com
-     Dc Site Name: Default-First-Site-Name
-    Our Site Name: Default-First-Site-Name
-            Flags: PDC GC DS LDAP KDC TIMESERV WRITABLE DNS_FOREST CLOSE_SITE FULL_SECRET WS 0xC000
-    
+ problem text removed >If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. From a8b26c9b52c24a51a7c1f3127ae67c8fc9031281 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 9 Nov 2016 14:26:01 -0800 Subject: [PATCH 031/233] still trying to fix pre error --- windows/deploy/windows-10-poc.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 544da2ad39..409af9369a 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -655,7 +655,11 @@ As mentioned previously: instructions to "type" commands provided in this guide 18. When the new network adapter driver has completed installation, you will receive an alert to set a network location for the contoso.com network. Select **Work network** and then click **Close**. When you receive an alert that a restart is required, click **Restart Later**. 19. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection: - problem text removed +
+
+    Pinging dc1.contoso.com [192.168.0.1] with 32 bytes of data:
+
+    
>If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. From 7f201bfa1f1e7fbb73d1b9ef5b10483e7726db81 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 9 Nov 2016 14:30:02 -0800 Subject: [PATCH 032/233] still trying to fix pre error --- windows/deploy/windows-10-poc.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 409af9369a..294b45444f 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -228,8 +228,10 @@ When you have completed installation of Hyper-V on the host computer, begin conf **Important**: This guide assumes that VHDs are stored in the **C:\VHD** directory on the Hyper-V host. If you use a different directory to store VHDs, you must adjust steps in this guide appropriately. After completing registration you will be able to download the 7.47 GB Windows Server 2012 R2 evaluation VHD. An example of the download is shown below. - - ![VHD](images/download_vhd.png) + + +
![VHD](images/download_vhd.png) +
2. Download the file to the C:\VHD directory. When the download is complete, rename the VHD file that you downloaded to **2012R2-poc-1.vhd**. This is done to make the filename simpler to recognize and type. 3. Copy the VHD to a second file also in the C:\VHD directory and name this VHD **2012R2-poc-2.vhd**. From 9ac0d0ac20ed3fb86d3c16e32e81d58b0993c09c Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 9 Nov 2016 14:44:41 -0800 Subject: [PATCH 033/233] still trying to fix pre error --- windows/deploy/windows-10-poc.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 294b45444f..02c6f0bdbc 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -227,8 +227,8 @@ When you have completed installation of Hyper-V on the host computer, begin conf **Important**: This guide assumes that VHDs are stored in the **C:\VHD** directory on the Hyper-V host. If you use a different directory to store VHDs, you must adjust steps in this guide appropriately. - After completing registration you will be able to download the 7.47 GB Windows Server 2012 R2 evaluation VHD. An example of the download is shown below. - + After completing registration you will be able to download the 7.47 GB Windows Server 2012 R2 evaluation VHD. An example of the download offering is shown below. +
![VHD](images/download_vhd.png)
@@ -659,7 +659,13 @@ As mentioned previously: instructions to "type" commands provided in this guide
 
+    ping dc1.contoso.com
+
     Pinging dc1.contoso.com [192.168.0.1] with 32 bytes of data:
+    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
+    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
+    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
+    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
 
     
From 4a14a08118488128459ff1dc3c919ce2031e1775 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 9 Nov 2016 14:54:03 -0800 Subject: [PATCH 034/233] still trying to fix pre error --- windows/deploy/windows-10-poc.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 02c6f0bdbc..a9d98e414e 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -662,10 +662,10 @@ As mentioned previously: instructions to "type" commands provided in this guide ping dc1.contoso.com Pinging dc1.contoso.com [192.168.0.1] with 32 bytes of data: - Reply from 192.168.0.1: bytes=32 time<1ms TTL=128 - Reply from 192.168.0.1: bytes=32 time<1ms TTL=128 - Reply from 192.168.0.1: bytes=32 time<1ms TTL=128 - Reply from 192.168.0.1: bytes=32 time<1ms TTL=128 + Reply from 192.168.0.1: bytes=32 time\<1ms TTL=128 + Reply from 192.168.0.1: bytes=32 time\<1ms TTL=128 + Reply from 192.168.0.1: bytes=32 time\<1ms TTL=128 + Reply from 192.168.0.1: bytes=32 time\<1ms TTL=128 From 2e290b79c757fbdbde69408f1853a575c51339a2 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 9 Nov 2016 15:06:10 -0800 Subject: [PATCH 035/233] still trying to fix pre error --- windows/deploy/windows-10-poc.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index a9d98e414e..dc628f8f97 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -662,10 +662,10 @@ As mentioned previously: instructions to "type" commands provided in this guide ping dc1.contoso.com Pinging dc1.contoso.com [192.168.0.1] with 32 bytes of data: - Reply from 192.168.0.1: bytes=32 time\<1ms TTL=128 - Reply from 192.168.0.1: bytes=32 time\<1ms TTL=128 - Reply from 192.168.0.1: bytes=32 time\<1ms TTL=128 - Reply from 192.168.0.1: bytes=32 time\<1ms TTL=128 + Reply from 192.168.0.1: bytes=32 time 1ms TTL=128 + Reply from 192.168.0.1: bytes=32 time 1ms TTL=128 + Reply from 192.168.0.1: bytes=32 time 1ms TTL=128 + Reply from 192.168.0.1: bytes=32 time 1ms TTL=128 From 36506547889ba4175b7437896f55704ba40655e3 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 9 Nov 2016 15:24:02 -0800 Subject: [PATCH 036/233] replace > with < --- windows/deploy/windows-10-poc.md | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index dc628f8f97..e1eb798421 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -656,17 +656,37 @@ As mentioned previously: instructions to "type" commands provided in this guide 18. When the new network adapter driver has completed installation, you will receive an alert to set a network location for the contoso.com network. Select **Work network** and then click **Close**. When you receive an alert that a restart is required, click **Restart Later**. 19. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection: +
+    ipconfig
+
+    Windows IP Configuration
+
+    Ethernet adapter Local Area Connection 3:
+        Connection-specific DNS Suffix  . : contoso.com
+        Link-local IPv6 Address . . . . . : fe80::64c2:4d2a:7403:6e02%18
+        Ipv4 Address. . . . . . . . . . . : 192.168.0.101
+        Subnet Mask . . . . . . . . . . . : 255.255.255.0
+        Default Gateway . . . . . . . . . : 192.168.0.2
 
     ping dc1.contoso.com
 
     Pinging dc1.contoso.com [192.168.0.1] with 32 bytes of data:
-    Reply from 192.168.0.1: bytes=32 time 1ms TTL=128
-    Reply from 192.168.0.1: bytes=32 time 1ms TTL=128
-    Reply from 192.168.0.1: bytes=32 time 1ms TTL=128
-    Reply from 192.168.0.1: bytes=32 time 1ms TTL=128
+    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
+    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
+    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
+    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
 
+    nltest /dsgetdc:contoso.com
+               DC: \\DC1
+          Address: \\192.168.0.1
+         Dom Guid: fdbd0643-d664-411b-aea0-fe343d7670a8
+         Dom Name: CONTOSO
+      Forest Name: contoso.com
+     Dc Site Name: Default-First-Site-Name
+    Our Site Name: Default-First-Site-Name
+            Flags: PDC GC DS LDAP KDC TIMESERV WRITABLE DNS_FOREST CLOSE_SITE FULL_SECRET WS 0xC000
     
>If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. From 41c0891c458c15d774ab60b479902e7a15f9aaa8 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 10 Nov 2016 10:33:35 -0800 Subject: [PATCH 037/233] lots of format errors --- windows/deploy/windows-10-poc.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index e1eb798421..c5ca6bb657 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -655,10 +655,12 @@ As mentioned previously: instructions to "type" commands provided in this guide >If the client was configured with a static address, you must change this to a dynamic one so that it can obtain a DHCP lease. 18. When the new network adapter driver has completed installation, you will receive an alert to set a network location for the contoso.com network. Select **Work network** and then click **Close**. When you receive an alert that a restart is required, click **Restart Later**. -19. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection: - -
+19. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. 
+
+To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection:
+
+```
     ipconfig
 
     Windows IP Configuration
@@ -687,9 +689,9 @@ As mentioned previously: instructions to "type" commands provided in this guide
      Dc Site Name: Default-First-Site-Name
     Our Site Name: Default-First-Site-Name
             Flags: PDC GC DS LDAP KDC TIMESERV WRITABLE DNS_FOREST CLOSE_SITE FULL_SECRET WS 0xC000
-    
+``` - >If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. +>If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. 20. Minimize the PC1 window and switch to the Hyper-V host computer. Open an elevated Windows PowerShell ISE window on the Hyper-V host (right-click Windows PowerShell and then click Run ISE as Administrator) and type the following commands in the (upper) script editor pane: @@ -976,6 +978,8 @@ Then I create a new VHD using the command below, attach both, robocopy from one 1. Create VHD (function thanks to Senthil Rajaram). + +
 function CreateVHD ($VHDPath, $Size)
 {
   $drive = (New-VHD -path $vhdpath -SizeBytes $size -Dynamic   | `
@@ -992,11 +996,13 @@ function CreateVHD ($VHDPath, $Size)
               get-volume).DriveLetter 
     Dismount-VHD $VHDPath
 }
+
Be sure to use a size sufficient for the backup (i.e. 100GB) and specify a path to a USB drive. For Windows 7 to mount the drive it must be .vhd not .vhdx. +
 CreateVHD F:\pc1.vhd 100GB
-
+
2. Insert USB into client and mount using disk management. It is possible also using diskpart but easier with disk manager. Note the drive letter of the mount. Assuming G: From ef73b412a8ef0d86f3cf5250b93a4df329648b2d Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 11 Nov 2016 10:17:40 -0800 Subject: [PATCH 038/233] draft --- windows/deploy/windows-10-poc.md | 119 +++++++++++++++++++------------ 1 file changed, 72 insertions(+), 47 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index c5ca6bb657..4dffc3a993 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -14,15 +14,17 @@ author: greg-lindsay - Windows 10 -

This guide provides step-by-step instructions for setting up a proof of concept (PoC) environment where you test the tools and procedures necessary to deploy Windows 10. The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly. Instructions to "type" Windows PowerShell commands provided in this guide can be typed, but in most cases the preferred method is to copy and paste these commands. If you are not familiar with Hyper-V, review the [terms](#appendix-d-terminology-in-this-guide) used in this guide before starting. +

This guide provides step-by-step instructions for setting up a proof of concept (PoC) environment where you can test the tools and procedures necessary to deploy Windows 10. To complete this guide, you will need a Hyper-V capable computer running Windows 8.1 or later with 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. The guide requires a minimum of about 3 hours to complete. + +The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly. Instructions to "type" Windows PowerShell commands provided in this guide can be typed, but in most cases the preferred method is to copy and paste these commands. If you are not familiar with Hyper-V, review the [terms](#appendix-d-terminology-in-this-guide) used in this guide before starting. The guide contains detailed instructions for three general procedures: -

    +
    1. Install Hyper-V. -
    2. Configure Hyper-V network and virtual machine (VM) settings. -
    3. Install and configure network services and settings on VMs. -
+
  • Configure Hyper-V. +
  • Configure VMs. + If you already have a computer running Hyper-V, you can use this computer and skip the first procedure. @@ -32,11 +34,9 @@ After completing the instructions in this guide, you will have a PoC environment Links are provided to download trial versions of Windows Server 2012, Windows 10 Enterprise, and all deployment tools necessary to complete the lab. -To complete this guide, you will need a Hyper-V capable computer running Windows 8.1 or later with 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. - ## In this guide -The following topics and procedures are provided in this guide. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed. +The following table describes topics and procedures in this guide. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed.
    @@ -64,7 +64,7 @@ The following topics and procedures are provided in this guide. An estimate of t One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. ->Computer 2 is a client computer from your corporate network that is "shadow copied" to create a VM that can be added to the POC environment. This enables you to use a VM that is a mirror image of the computer on your corporate network, providing a realistic simulation of the upgrade process. If you do not have a computer to use for this simulation, you can create an arbitrary VM to represent this computer. Later guides use this computer to simulate Windows 10 replace and refresh scenarios, so the VM is required even if you cannot create one that is mirrored from computer 2. +>Computer 2 is a client computer from your corporate network that is copied to create a VM that can be added to the PoC environment. This enables you to test a VM that is a mirror image of the computer on your network. If you do not have a computer to use for this simulation, you can create an arbitrary VM to represent this computer. Later guides use this computer to simulate Windows 10 replace and refresh scenarios, so the VM is required even if you cannot create this VM using computer 2.
    @@ -147,7 +147,7 @@ The lab architecture is summarized in the following diagram: ## Configure the PoC environment -**Before you begin**: Ensure that Windows PowerShell is pinned to the taskbar for easy access. If the Hyper-V host is running Windows Server 2012 R2, or Windows Server 2016 then Windows PowerShell is automatically pinned to the taskbar. To pin Windows PowerShell to the taskbar on Windows 8.1 or Windows 10: Click **Start**, type **power**, right click **Windows PowerShell**, and then click **Pin to taskbar**. After Windows PowerShell is pinned to the taskbar, you can open an elevated Windows PowerShell prompt by right-clicking the icon on the taskbar and then clicking **Run as Administrator**. +**Hint**: Before you begin, ensure that Windows PowerShell is pinned to the taskbar for easy access. If the Hyper-V host is running Windows Server then Windows PowerShell is automatically pinned to the taskbar. To pin Windows PowerShell to the taskbar on Windows 8.1 or Windows 10: Click **Start**, type **power**, right click **Windows PowerShell**, and then click **Pin to taskbar**. After Windows PowerShell is pinned to the taskbar, you can open an elevated Windows PowerShell prompt by right-clicking the icon on the taskbar and then clicking **Run as Administrator**. ### Procedures in this section @@ -207,7 +207,9 @@ The lab architecture is summarized in the following diagram: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All - This command works on all operating systems that support Hyper-V. When you are prompted to restart the computer, choose **Yes**. The computer might restart more than once. After installation is complete, you can open Hyper-V Manager by typing **virtmgmt.msc** at an elevated command prompt. + This command works on all operating systems that support Hyper-V. + + When you are prompted to restart the computer, choose **Yes**. The computer might restart more than once. After installation is complete, you can open Hyper-V Manager by typing **virtmgmt.msc** at an elevated command prompt. You can also install Hyper-V using the Control Panel in Windows under **Turn Windows features on or off** for a client operating system, or using Server Manager's **Add Roles and Features Wizard** on a server operating system, as shown below: @@ -223,7 +225,7 @@ When you have completed installation of Hyper-V on the host computer, begin conf >Before you can download VHD and ISO files, you will need to register and sign in to the [TechNet Evaluation Center](https://www.microsoft.com/en-us/evalcenter/) using your Microsoft account. -1. Create a directory on your Hyper-V host named C:\VHD and download a single [Windows Server 2012 R2 VHD](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2012-r2) from the TechNet Evaluation Center to the C:\VHD directory. +1. Create a directory on your Hyper-V host named **C:\VHD** and download a single [Windows Server 2012 R2 VHD](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2012-r2) from the TechNet Evaluation Center to the **C:\VHD** directory. **Important**: This guide assumes that VHDs are stored in the **C:\VHD** directory on the Hyper-V host. If you use a different directory to store VHDs, you must adjust steps in this guide appropriately. @@ -233,17 +235,17 @@ When you have completed installation of Hyper-V on the host computer, begin conf
  • ![VHD](images/download_vhd.png)
    -2. Download the file to the C:\VHD directory. When the download is complete, rename the VHD file that you downloaded to **2012R2-poc-1.vhd**. This is done to make the filename simpler to recognize and type. -3. Copy the VHD to a second file also in the C:\VHD directory and name this VHD **2012R2-poc-2.vhd**. -4. Download the [Windows 10 Enterprise ISO](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise) from the TechNet Evaluation Center to the C:\VHD directory on your Hyper-V host. +2. Download the file to the **C:\VHD** directory. When the download is complete, rename the VHD file that you downloaded to **2012R2-poc-1.vhd**. This is done to make the filename simple to recognize and type. +3. Copy the VHD to a second file also in the **C:\VHD** directory and name this VHD **2012R2-poc-2.vhd**. +4. Download the [Windows 10 Enterprise ISO](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise) from the TechNet Evaluation Center to the **C:\VHD** directory on your Hyper-V host. >During registration, you must specify the type, version, and language of installation media to download. In this example, a Windows 10 Enterprise, 64 bit, English ISO is chosen. You can choose a different version if desired. Note that Windows 10 in-place upgrade is only possible if the source operating system and installation media are both 32-bit or both 64-bit, so you should download the file version that corresponds to the version of your source computer (computer 2) for upgrade testing. -5. Rename the ISO file that you downloaded to **w10-enterprise.iso**. Again, this is done so that the filename is simpler to type and recognize. After completing registration you will be able to download the 3.63 GB Windows 10 Enterprise evaluation ISO. +5. Rename the ISO file that you downloaded to **w10-enterprise.iso**. Again, this is done so that the filename is simple to type and recognize. After completing registration you will be able to download the 3.63 GB Windows 10 Enterprise evaluation ISO. -After completing these steps, you will have three files in the C:\VHD directory: 2012R2-poc-1.vhd, 2012R2-poc-2.vhd, w10-enterprise.iso. +After completing these steps, you will have three files in the **C:\VHD** directory: **2012R2-poc-1.vhd**, **2012R2-poc-2.vhd**, **w10-enterprise.iso**. -The following commands and output display the procedures described in this section: +The following commands and output display the procedures described in this section, both before and after downloading files:
    @@ -267,7 +269,7 @@ If you do not have a PC available to convert to VM, see [Appendix E: Create PC1
     If you have a PC available to convert to VM:
     
     1. Verify that you have access to a local administrator account on the computer. Alternatively you can use a domain account with administrative rights, if these credentials are cached on the computer and your domain policy allows the use of cached credentials for login. After converting the computer to a VM, you must be able to sign in on this VM with local administrator privileges, while disconnected from the corporate network.
    -2. Determine the VM generation that is required. See below.
    +2. [Determine the VM generation](#determine-the-vm-generation) that is required.
     3. Based on the VM generation, perform the appropriate conversion procedure.
     
     #### Determine VM generation
    @@ -278,7 +280,7 @@ When creating a VM in Hyper-V, you must specify either generation 1 or generatio
     
     
    -        
    +        
    @@ -311,6 +313,26 @@ If the **Type** column does not indicate GPT, then the disk partition format is
     
     >On a computer running Windows 8 or later, you can also type **Get-Disk** at a Windows PowerShell prompt to discover the partition style. The default output of this cmdlet displays the partition style for all attached disks.
     
    +Both commands are shown in the following example. The client computer is running Windows 8.1 and uses a GPT style partition format:
    +
    +
    +PS C:\> Get-WmiObject -Class Win32_DiskPartition | Select-Object -Property SystemName,Caption,Type
    +
    +SystemName                                       Caption                                              Type
    +----------                                       -------                                              ----
    +PC-X1                                            Disk #0, Partition #0                                GPT: Unknown
    +PC-X1                                            Disk #0, Partition #1                                GPT: System
    +PC-X1                                            Disk #0, Partition #2                                GPT: Basic Data
    +PC-X1                                            Disk #0, Partition #3                                GPT: Basic Data
    +PC-X1                                            Disk #0, Partition #4                                GPT: Basic Data
    +
    +PS C:\> Get-Disk
    +
    +Number Friendly Name                            OperationalStatus                                               Total Size Partition Style
    +------ -------------                            -----------------                                               ---------- ---------------
    +0      INTEL SSDSCMMW240A3L                     Online                                                           223.57 GB GPT
    +
    + **Choosing a VM generation** The following table displays the Hyper-V VM generation to choose based on the OS, architecture, and partition style. Links to procedures to create the corresponding VMs are included. @@ -330,12 +352,12 @@ The following table displays the Hyper-V VM generation to choose based on the OS - + - + @@ -346,38 +368,43 @@ The following table displays the Hyper-V VM generation to choose based on the OS - + - + - + - + - +
    Generation Architecture Operating system Partition styleMBR 32 1A[Prepare a generation 1 VM](#prepare-a-generation-1-vm)
    64 1A[Prepare a generation 1 VM](#prepare-a-generation-1-vm)
    GPT
    64 1C, A[Appendix C: Convert GPT to MBR](#appendix-c-convert-gpt-to-mbr) +
    [Prepare a generation 1 VM](#prepare-a-generation-1-vm)
    Windows 8 or later MBR 32 1A[Prepare a generation 1 VM](#prepare-a-generation-1-vm)
    64 1, 2A[Prepare a generation 1 VM](#prepare-a-generation-1-vm)
    GPT 32 1C, A[Appendix C: Convert GPT to MBR](#appendix-c-convert-gpt-to-mbr) +
    [Prepare a generation 1 VM](#prepare-a-generation-1-vm)
    64 2B[Prepare a generation 2 VM](#prepare-a-generation-2-vm)
    ->If the PC is running Windows 7, it can only be converted and hosted in Hyper-V as a generation 1 VM. If the Windows 7 PC is also using a GPT partition style, the disk contents must be captured and then used to create a VHD with the MBR partition style. If this is required, see [Appendix C: Convert GPT to MBR](#appendix-c-convert-gpt-to-mbr). ->
    If the PC is running Windows 8 or later and uses the GPT partition style, you can capture the disk image and create a generation 2 VM. To do this, you must temporarily mount the EFI system partition which is a simple procedure using the mountvol command. ->
    If the PC is using an MBR partition style, you can convert the disk to VHD and use it to create a generation 1 VM. If you use the Disk2VHD tool described in this guide, it is not necessary to mount the MBR system partition, but it is still necessary to capture it. +Notes:
    +
      +
    • If the PC is running Windows 7, it can only be converted and hosted in Hyper-V as a generation 1 VM. This Hyper-V requirement means that if the Windows 7 PC is also using a GPT partition style, the disk contents must be captured and then used to create a VHD with the MBR partition style. In this case, see [Appendix C: Convert GPT to MBR](#appendix-c-convert-gpt-to-mbr). +
    • If the PC is running Windows 8 or later and uses the GPT partition style, you can capture the disk image and create a generation 2 VM. To do this, you must temporarily mount the EFI system partition which is accomplished using the **mountvol** command. +
    • If the PC is using an MBR partition style, you can convert the disk to VHD and use it to create a generation 1 VM. If you use the Disk2VHD tool described in this guide, it is not necessary to mount the MBR system partition, but it is still necessary to capture it. +
    #### Prepare a generation 1 VM @@ -386,11 +413,13 @@ The following table displays the Hyper-V VM generation to choose based on the OS >You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media such as a USB drive. 2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. -3. Select the checkboxes next to the **C:\** and the **system reserved** (BIOS/MBR) volumes. The system volume is not assigned a drive letter, but will be displayed in the Disk2VHD tool with a volume label similar to **\\?\Volume{**. See the following example. **Important**: You must include the system volume in order to create a bootable VHD. If this volume is not displayed in the disk2vhd tool, then the computer is likely to be using the GPT partition style. In this case, see [Determine VM generation](#determine-vm-generation). -4. Specify a location to save the resulting VHD or VHDX file (F:\VHD\w7.vhdx in the following example) and click **Create**. Note: Hyper-V on Windows Server 2008 R2 does not support VHDX. See the following example: +3. Select the checkboxes next to the **C:\** and the **system reserved** (BIOS/MBR) volumes. The system volume is not assigned a drive letter, but will be displayed in the Disk2VHD tool with a volume label similar to **\\?\Volume{**. See the following example. **Important**: You must include the system volume in order to create a bootable VHD. If this volume is not displayed in the disk2vhd tool, then the computer is likely to be using the GPT partition style. For more information, see [Determine VM generation](#determine-vm-generation). +4. Specify a location to save the resulting VHD or VHDX file (F:\VHD\w7.vhdx in the following example) and click **Create**. See the following example: ![disk2vhd](images/disk2vhd.png) + Note: Hyper-V on Windows Server 2008 R2 does not support VHDX. + 5. Click **Create** to start creating a VHDX file. >Disk2vhd can save VHDs to local hard drives, even if they are the same as the volumes being converted. Performance is better however when the VHD is saved on a disk different than those being converted, such as a flash drive. @@ -422,7 +451,7 @@ The following table displays the Hyper-V VM generation to choose based on the OS 2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. 3. Select the checkboxes next to the **C:\** and the **S:\** volumes, and clear the **Use Volume Shadow Copy checkbox**. Volume shadow copy will not work if the EFI system partition is selected. - **Important**: You must include the EFI system partition in order to create a bootable VHD. The Windows RE tools partition is not requried, but it can also be converted if desired. + **Important**: You must include the EFI system partition in order to create a bootable VHD. The Windows RE tools partition (shown below) is not required, but it can also be converted if desired. 4. Specify a location to save the resulting VHD or VHDX file (F:\VHD\PC1.vhdx in the following example) and click **Create**. Note: Hyper-V on Windows Server 2008 R2 does not support VHDX. See the following example: @@ -481,12 +510,8 @@ As mentioned previously: instructions to "type" commands provided in this guide **Note**: The second command above will temporarily interrupt network connectivity on the Hyper-V host. - >Since an external virtual switch is associated to a physical network adapter on the Hyper-V host, this adapter must be specified when adding the virtual switch. This is automated here by filtering for active non-virtual ethernet adapters using the Get-NetAdapter cmdlet ($_.Status -eq "Up" -and !$_.Virtual). If your Hyper-V host is dual-homed with multiple active ethernet adapters, this automation will not work, and the second command above will fail. In this case, you must edit the command used to add the "poc-external" virtual switch by inserting the NetAdapterName. The NetAdapterName value corresponds to the name of the network interface you wish to use. For example, if the network interface you use on the Hyper-V host to connect to the Internet is named "Ethernet 2" then type the following command to create an external virtual switch: + >Since an external virtual switch is associated to a physical network adapter on the Hyper-V host, this adapter must be specified when adding the virtual switch. The previous commands automate this by filtering for active non-virtual ethernet adapters using the Get-NetAdapter cmdlet ($_.Status -eq "Up" -and !$_.Virtual). If your Hyper-V host is dual-homed with multiple active ethernet adapters, this automation will not work, and the second command above will fail. In this case, you must edit the command used to add the "poc-external" virtual switch by inserting the appropriate NetAdapterName. The NetAdapterName value corresponds to the name of the network interface you wish to use. For example, if the network interface you use on the Hyper-V host to connect to the Internet is named "Ethernet 2" then type the following command to create an external virtual switch: New-VMSwitch -Name poc-external -NetAdapterName "Ethernet 2" -Notes "PoC External" -
    -    New-VMSwitch -Name poc-external -NetAdapterName "Ethernet 2" -Notes "PoC External"
    -    
    - 2. At the elevated Windows PowerShell prompt, type the following command to determine the megabytes of RAM that are currently available on the Hyper-V host:
    @@ -522,7 +547,7 @@ As mentioned previously: instructions to "type" commands provided in this guide
     
     5. Using the same elevated Windows PowerShell prompt that was used in the previous step, type one of the following sets of commands, depending on the type of VM that was prepared in the [Determine VM generation](#determine-vm-generation) section, either generation 1 or generation 2.
     
    -    To create a generation 1 VM:
    +    To create a generation 1 VM: (using c:\vhd\w7.vhdx)
     
         
         New-VM -Name "PC1" -VHDPath c:\vhd\w7.vhdx -SwitchName poc-internal
    @@ -530,7 +555,7 @@ As mentioned previously: instructions to "type" commands provided in this guide
         Enable-VMIntegrationService -Name "Guest Service Interface" -VMName PC1
         
    - To create a generation 2 VM: + To create a generation 2 VM: (using c:\vhd\PC1.vhdx)
         New-VM -Name "PC1" -Generation 2 -VHDPath c:\vhd\PC1.vhdx -SwitchName poc-internal
    @@ -660,7 +685,7 @@ As mentioned previously: instructions to "type" commands provided in this guide
     
     To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection:
     
    -```
    +    ```
         ipconfig
     
         Windows IP Configuration
    @@ -675,10 +700,10 @@ To open Windows PowerShell on Windows 7, click **Start**, and search for "**powe
         ping dc1.contoso.com
     
         Pinging dc1.contoso.com [192.168.0.1] with 32 bytes of data:
    -    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
    -    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
    -    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
    -    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
    +    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
    +    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
    +    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
    +    Reply from 192.168.0.1: bytes=32 time<1ms TTL=128
     
         nltest /dsgetdc:contoso.com
                    DC: \\DC1
    @@ -689,9 +714,9 @@ To open Windows PowerShell on Windows 7, click **Start**, and search for "**powe
          Dc Site Name: Default-First-Site-Name
         Our Site Name: Default-First-Site-Name
                 Flags: PDC GC DS LDAP KDC TIMESERV WRITABLE DNS_FOREST CLOSE_SITE FULL_SECRET WS 0xC000
    -```
    +    ```
     
    ->If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them.
    +    >If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them.
     
     20. Minimize the PC1 window and switch to the Hyper-V host computer. Open an elevated Windows PowerShell ISE window on the Hyper-V host (right-click Windows PowerShell and then click Run ISE as Administrator) and type the following commands in the (upper) script editor pane: 
     
    
    From e5ecf111ec739435c400bebd63668f772a3c9553 Mon Sep 17 00:00:00 2001
    From: Greg Lindsay 
    Date: Fri, 11 Nov 2016 10:31:26 -0800
    Subject: [PATCH 039/233] still have text bug
    
    ---
     windows/deploy/windows-10-poc.md | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md
    index 4dffc3a993..8bb82a76a0 100644
    --- a/windows/deploy/windows-10-poc.md
    +++ b/windows/deploy/windows-10-poc.md
    @@ -683,7 +683,7 @@ As mentioned previously: instructions to "type" commands provided in this guide
     
     19. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. 
     
    -To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection:
    +    To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection:
     
         ```
         ipconfig
    
    From 6373548d640f783534b073887ba2f933cd93c19a Mon Sep 17 00:00:00 2001
    From: Greg Lindsay 
    Date: Tue, 15 Nov 2016 11:01:45 -0800
    Subject: [PATCH 040/233] draft
    
    ---
     windows/deploy/windows-10-poc.md | 26 ++++++++++++--------------
     1 file changed, 12 insertions(+), 14 deletions(-)
    
    diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md
    index 8bb82a76a0..e55c76e6f1 100644
    --- a/windows/deploy/windows-10-poc.md
    +++ b/windows/deploy/windows-10-poc.md
    @@ -921,9 +921,7 @@ Use the following procedures to verify that the PoC environment is configured pr
     
     ## Appendix B: Configuring Hyper-V on Windows Server 2008 R2
     
    -If your Hyper-V host is running Windows Server 2008 R2, several of the steps in this guide will not work because they use the Hyper-V Module for Windows PowerShell, which is not available on Windows Server 2008 R2. The performance and features of the Hyper-V role are also much improved on later operating systems. 
    -
    -This section is a placeholder for instructions to configure Hyper-V on Windows Server 2008 R2. Full documentation of these procedures is currently out of scope for this guide, due to significant differences in the Hyper-V role in Windows Server 2008 R2. For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library.
    +Full documentation of procedures to configure the PoC in Hyper-V on Windows Server 2008 R2 is currently out of scope for this guide, due to significant differences in the Hyper-V role in Windows Server 2008 R2. For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library. A limited number of procedures are provided in this section.
     
     To install Hyper-V on Windows Server 2008 R2, you can use the Add-WindowsFeature cmdlet:
     
    @@ -1007,17 +1005,17 @@ Then I create a new VHD using the command below, attach both, robocopy from one
     
     function CreateVHD ($VHDPath, $Size)
     {
    -  $drive = (New-VHD -path $vhdpath -SizeBytes $size -Dynamic   | `
    -              Mount-VHD -Passthru |  `
    -              get-disk -number {$_.DiskNumber} | `
    -              Initialize-Disk -PartitionStyle MBR -PassThru | `
    -              New-Partition -Size 100MB -AssignDriveLetter:$False -MbrType FAT32 -IsActive | `
    -              Format-Volume -Confirm:$false -FileSystem FAT32 -force | `
    -              get-partition | `
    -              New-Partition -UseMaximumSize -AssignDriveLetter:$False -MbrType IFS | `
    -              Format-Volume -Confirm:$false -FileSystem NTFS -force | `
    -              get-partition | `
    -              Add-PartitionAccessPath -AssignDriveLetter -PassThru | `
    +  $drive = (New-VHD -path $vhdpath -SizeBytes $size -Dynamic   |
    +              Mount-VHD -Passthru |
    +              get-disk -number {$_.DiskNumber} |
    +              Initialize-Disk -PartitionStyle MBR -PassThru |
    +              New-Partition -Size 100MB -AssignDriveLetter:$False -MbrType FAT32 -IsActive |
    +              Format-Volume -Confirm:$false -FileSystem FAT32 -force |
    +              get-partition |
    +              New-Partition -UseMaximumSize -AssignDriveLetter:$False -MbrType IFS |
    +              Format-Volume -Confirm:$false -FileSystem NTFS -force |
    +              get-partition |
    +              Add-PartitionAccessPath -AssignDriveLetter -PassThru |
                   get-volume).DriveLetter 
         Dismount-VHD $VHDPath
     }
    
    From 7569bea69cae376a34a30f0e631115c20b59bf7f Mon Sep 17 00:00:00 2001
    From: Greg Lindsay 
    Date: Tue, 15 Nov 2016 14:29:49 -0800
    Subject: [PATCH 041/233] edits
    
    ---
     windows/deploy/windows-10-poc.md | 36 +++++++++++++++++---------------
     1 file changed, 19 insertions(+), 17 deletions(-)
    
    diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md
    index e55c76e6f1..7e1f1f21f9 100644
    --- a/windows/deploy/windows-10-poc.md
    +++ b/windows/deploy/windows-10-poc.md
    @@ -14,11 +14,15 @@ author: greg-lindsay
     
     -   Windows 10
     
    -

    This guide provides step-by-step instructions for setting up a proof of concept (PoC) environment where you can test the tools and procedures necessary to deploy Windows 10. To complete this guide, you will need a Hyper-V capable computer running Windows 8.1 or later with 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. The guide requires a minimum of about 3 hours to complete. +

    This guide provides step-by-step instructions for IT administrators to set up a proof of concept (PoC) environment for testing the tools and procedures necessary to deploy Windows 10. The guide requires about 3 hours to complete. -The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly. Instructions to "type" Windows PowerShell commands provided in this guide can be typed, but in most cases the preferred method is to copy and paste these commands. If you are not familiar with Hyper-V, review the [terms](#appendix-d-terminology-in-this-guide) used in this guide before starting. +To complete this guide, you will need a Hyper-V capable computer running Windows 8.1 or later with 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. -The guide contains detailed instructions for three general procedures: +The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly. Instructions to "type" Windows PowerShell commands provided in this guide can be typed, but in most cases the preferred method is to copy and paste these commands. If you are not familiar with Hyper-V, review the [terminology](#appendix-d-terminology-in-this-guide) used in this guide before starting. + +## In this guide + +This guide contains detailed instructions for three general procedures:

    1. Install Hyper-V. @@ -34,9 +38,7 @@ After completing the instructions in this guide, you will have a PoC environment Links are provided to download trial versions of Windows Server 2012, Windows 10 Enterprise, and all deployment tools necessary to complete the lab. -## In this guide - -The following table describes topics and procedures in this guide. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed. +Topics and procedures in this guide are summarized in the following table. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed.
      @@ -147,7 +149,7 @@ The lab architecture is summarized in the following diagram: ## Configure the PoC environment -**Hint**: Before you begin, ensure that Windows PowerShell is pinned to the taskbar for easy access. If the Hyper-V host is running Windows Server then Windows PowerShell is automatically pinned to the taskbar. To pin Windows PowerShell to the taskbar on Windows 8.1 or Windows 10: Click **Start**, type **power**, right click **Windows PowerShell**, and then click **Pin to taskbar**. After Windows PowerShell is pinned to the taskbar, you can open an elevated Windows PowerShell prompt by right-clicking the icon on the taskbar and then clicking **Run as Administrator**. +>**Hint**: Before you begin, ensure that Windows PowerShell is pinned to the taskbar for easy access. If the Hyper-V host is running Windows Server then Windows PowerShell is automatically pinned to the taskbar. To pin Windows PowerShell to the taskbar on Windows 8.1 or Windows 10: Click **Start**, type **power**, right click **Windows PowerShell**, and then click **Pin to taskbar**. After Windows PowerShell is pinned to the taskbar, you can open an elevated Windows PowerShell prompt by right-clicking the icon on the taskbar and then clicking **Run as Administrator**. ### Procedures in this section @@ -318,19 +320,19 @@ Both commands are shown in the following example. The client computer is running
       PS C:\> Get-WmiObject -Class Win32_DiskPartition | Select-Object -Property SystemName,Caption,Type
       
      -SystemName                                       Caption                                              Type
      -----------                                       -------                                              ----
      -PC-X1                                            Disk #0, Partition #0                                GPT: Unknown
      -PC-X1                                            Disk #0, Partition #1                                GPT: System
      -PC-X1                                            Disk #0, Partition #2                                GPT: Basic Data
      -PC-X1                                            Disk #0, Partition #3                                GPT: Basic Data
      -PC-X1                                            Disk #0, Partition #4                                GPT: Basic Data
      +SystemName                            Caption                               Type
      +----------                            -------                               ----
      +PC-X1                                 Disk #0, Partition #0                 GPT: Unknown
      +PC-X1                                 Disk #0, Partition #1                 GPT: System
      +PC-X1                                 Disk #0, Partition #2                 GPT: Basic Data
      +PC-X1                                 Disk #0, Partition #3                 GPT: Basic Data
      +PC-X1                                 Disk #0, Partition #4                 GPT: Basic Data
       
       PS C:\> Get-Disk
       
      -Number Friendly Name                            OperationalStatus                                               Total Size Partition Style
      ------- -------------                            -----------------                                               ---------- ---------------
      -0      INTEL SSDSCMMW240A3L                     Online                                                           223.57 GB GPT
      +Number Friendly Name                  OperationalStatus                     Total Size Partition Style
      +------ -------------                  -----------------                     ---------- ---------------
      +0      INTEL SSDSCMMW240A3L           Online                                223.57 GB GPT
       
      **Choosing a VM generation** From 30202a9c5bcb8dc05611abc513c7ab1fcadff229 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 17 Nov 2016 11:53:45 -0800 Subject: [PATCH 042/233] lotsa changes --- windows/deploy/windows-10-poc.md | 219 +++++++------------------------ 1 file changed, 44 insertions(+), 175 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 7e1f1f21f9..ed1efaa54d 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -14,15 +14,21 @@ author: greg-lindsay - Windows 10 -

      This guide provides step-by-step instructions for IT administrators to set up a proof of concept (PoC) environment for testing the tools and procedures necessary to deploy Windows 10. The guide requires about 3 hours to complete. +

      The following guides provide step-by-step instructions for IT administrators to test Windows 10 deployment procedures in a proof of concept (PoC) environment: -To complete this guide, you will need a Hyper-V capable computer running Windows 8.1 or later with 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. +- Step by step guide: Deploy Windows 10 in a test lab (this guide): Configure the PoC environment.
      +- [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md): Use the Microsoft Deployment Toolkit (MDT) to deploy Windows 10 in the PoC environment.
      +- [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md): Use System Center Configuration Manager to deploy Windows 10 in the PoC environment.
      -The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly. Instructions to "type" Windows PowerShell commands provided in this guide can be typed, but in most cases the preferred method is to copy and paste these commands. If you are not familiar with Hyper-V, review the [terminology](#appendix-d-terminology-in-this-guide) used in this guide before starting. +This guide requires about 3 hours to complete. You will need a Hyper-V capable computer running Windows 8.1 or later with at least 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. + +The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly. You do not need to be an expert in Windows PowerShell to complete the steps in the guide, however you are required to customize some commands to your environment. + +Instructions to "type" Windows PowerShell commands provided in this guide can be typed, but in most cases the preferred method is to copy and paste these commands. If you are not familiar with Hyper-V, review the [terminology](#appendix-c-terminology-in-this-guide) used in this guide before starting. ## In this guide -This guide contains detailed instructions for three general procedures: +This guide contains instructions for three general procedures:

      1. Install Hyper-V. @@ -30,13 +36,7 @@ This guide contains detailed instructions for three general procedures:
      2. Configure VMs.
      -If you already have a computer running Hyper-V, you can use this computer and skip the first procedure. - -After completing the instructions in this guide, you will have a PoC environment that enables you to test Windows 10 deployment procedures with current tools, as documented in subsequent guides:
      -- [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md)
      -- [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md)
      - -Links are provided to download trial versions of Windows Server 2012, Windows 10 Enterprise, and all deployment tools necessary to complete the lab. +If you already have a computer running Hyper-V, you can use this computer and skip the first procedure. After completing the instructions in this guide, you will have a PoC environment that enables you to test Windows 10 deployment procedures with current tools, as documented in subsequent guides. Links are provided to download trial versions of Windows Server 2012, Windows 10 Enterprise, and all deployment tools necessary to complete the lab. Topics and procedures in this guide are summarized in the following table. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed. @@ -45,9 +45,9 @@ Topics and procedures in this guide are summarized in the following table. An es
      TopicDescriptionTime -
      [Hardware and software requirements](#hardware-and-software-requirements)Prerequisites to complete this guide. -
      [Lab setup](#lab-setup)A description and diagram of the PoC environment. -
      [Configure the PoC environment](#configure-the-poc-environment)Parent topic for procedures. +
      [Hardware and software requirements](#hardware-and-software-requirements)Prerequisites to complete this guide.Informational +
      [Lab setup](#lab-setup)A description and diagram of the PoC environment.Informational +
      [Configure the PoC environment](#configure-the-poc-environment)Parent topic for procedures.Informational
      [Verify support and install Hyper-V](#verify-support-and-install-hyper-v)Verify that installation of Hyper-V is supported, and install the Hyper-V server role.10 minutes
      [Download VHD and ISO files](#download-vhd-and-iso-files)Download evaluation versions of Windows Server 2012 R2 and Windows 10 and prepare these files to be used on the Hyper-V host.30 minutes
      [Convert PC to VM](#convert-pc-to-vm)Convert a physical computer on your network to a VM hosted in Hyper-V.30 minutes @@ -55,9 +55,8 @@ Topics and procedures in this guide are summarized in the following table. An es
      [Configure Hyper-V](#configure-hyper-v)Create virtual switches, determine available RAM for virtual machines, and add virtual machines.15 minutes
      [Configure VHDs](#configure-vhds)Start virtual machines and configure all services and settings.60 minutes
      [Appendix A: Verify the configuration](#appendix-a-verify-the-configuration)Verify and troubleshoot network connectivity and services in the PoC environment.30 minutes -
      [Appendix B: Configuring Hyper-V on Windows Server 2008 R2](#appendix-b-configuring-hyper-v-on-windows-server-2008-r2)Information about using this guide with a Hyper-V host running Windows Server 2008 R2. -
      [Appendix C: Disk2VHD](#appendix-c-disk2vhd)Information about the Disk2VHD application. -
      [Appendix D: Terminology in this guide](#appendix-d-terminology-in-this-guide)Terms used in this guide. +
      [Appendix B: Create generation 1 VM from GPT disk](#appendix-b-create-generation-1-vm-from-gpt-disk)Solution to boot a GPT formatted disk as a generation 1 VM.Optional +
      [Appendix C: Terminology in this guide](#appendix-d-terminology-in-this-guide)Terms used in this guide.Informational
      @@ -66,7 +65,7 @@ Topics and procedures in this guide are summarized in the following table. An es One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. ->Computer 2 is a client computer from your corporate network that is copied to create a VM that can be added to the PoC environment. This enables you to test a VM that is a mirror image of the computer on your network. If you do not have a computer to use for this simulation, you can create an arbitrary VM to represent this computer. Later guides use this computer to simulate Windows 10 replace and refresh scenarios, so the VM is required even if you cannot create this VM using computer 2. +>Computer 2 is a client computer from your corporate network that is copied to create a VM that can be added to the PoC environment. This enables you to test a VM that is a mirror image of the computer on your network. If you do not have a computer to use for this simulation, you can download an evaluation VHD and use it to represent this computer. Later guides use this computer to simulate Windows 10 replace and refresh scenarios, so the VM is required even if you cannot create this VM using computer 2.
      @@ -128,24 +127,23 @@ One computer that meets the hardware and software specifications below is requir *The Hyper-V server role can also be installed on a computer running Windows Server 2008 R2. However, the Windows PowerShell module for Hyper-V is not available on Windows Server 2008 R2, therefore you cannot use many of the steps provided in this guide to configure Hyper-V. To manage Hyper-V on Windows Server 2008 R2, you can use Hyper-V WMI, or you can use the Hyper-V Manager console. Providing all steps in this guide as Hyper-V WMI or as 2008 R2 Hyper-V Manager procedures is beyond the scope of the guide. -The Hyper-V role cannot be installed on Windows 7 or earlier versions of Windows. +

      The Hyper-V role cannot be installed on Windows 7 or earlier versions of Windows.

      ## Lab setup -- Computer 1 is configured to host four VMs on a private, PoC network. - - Two VMs are running Windows Server 2012 R2 with required network services and tools installed. - - Two VMs are client systems: One VM is intended to mirror a host on your corporate network (computer 2) and one VM is running Windows 10 Enterprise to demonstrate the hardware replacement scenario. - The lab architecture is summarized in the following diagram: ![PoC](images/poc.png) -**Note**: +- Computer 1 is configured to host four VMs on a private, PoC network. + - Two VMs are running Windows Server 2012 R2 with required network services and tools installed. + - Two VMs are client systems: One VM is intended to mirror a host on your corporate network (computer 2) and one VM is running Windows 10 Enterprise to demonstrate the hardware replacement scenario. + >If you have an existing Hyper-V host, you can use this host and skip the Hyper-V installation section in this guide. ->The two Windows Server VMs can be combined into a single VM to conserve RAM and disk space if required. However, instructions in this guide assume two server systems are used. Using two servers enables Active Directory Domain Services and DHCP to be installed on a server that is not directly connected to the corporate network. This mitigates the risk of clients on the corporate network receiving DHCP leases from the PoC network (i.e. "rogue" DHCP), and limits NETBIOS service broadcasts. +The two Windows Server VMs can be combined into a single VM to conserve RAM and disk space if required. However, instructions in this guide assume two server systems are used. Using two servers enables Active Directory Domain Services and DHCP to be installed on a server that is not directly connected to the corporate network. This mitigates the risk of clients on the corporate network receiving DHCP leases from the PoC network (i.e. "rogue" DHCP), and limits NETBIOS service broadcasts. ## Configure the PoC environment @@ -162,11 +160,9 @@ The lab architecture is summarized in the following diagram: ### Verify support and install Hyper-V -1. Verify that the computer supports Hyper-V. +Starting with Windows 8, the host computer’s microprocessor must support second level address translation (SLAT) to install Hyper-V. See [Hyper-V: List of SLAT-Capable CPUs for Hosts](http://social.technet.microsoft.com/wiki/contents/articles/1401.hyper-v-list-of-slat-capable-cpus-for-hosts.aspx) for more information. - Starting with Windows 8, the host computer’s microprocessor must support second level address translation (SLAT) to install Hyper-V. See [Hyper-V: List of SLAT-Capable CPUs for Hosts](http://social.technet.microsoft.com/wiki/contents/articles/1401.hyper-v-list-of-slat-capable-cpus-for-hosts.aspx) for more information. To verify your computer supports SLAT, open an administrator command prompt, type systeminfo, press ENTER, and review the section displayed at the bottom of the output, next to Hyper-V Requirements. - - See the following example: +1. To verify your computer supports SLAT, open an administrator command prompt, type systeminfo, press ENTER, and review the section displayed at the bottom of the output, next to Hyper-V Requirements. See the following example:
           C:\>systeminfo
      @@ -201,9 +197,7 @@ The lab architecture is summarized in the following diagram:
       
           Note: A 64-bit operating system is required to run Hyper-V.
       
      -2. Enable Hyper-V.
      -
      -    The Hyper-V feature is not installed by default. To install it, open an elevated Windows PowerShell window and type the following command:
      +2. The Hyper-V feature is not installed by default. To install it, open an elevated Windows PowerShell window and type the following command:
       
           
           Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All
      @@ -234,14 +228,14 @@ When you have completed installation of Hyper-V on the host computer, begin conf
           After completing registration you will be able to download the 7.47 GB Windows Server 2012 R2 evaluation VHD. An example of the download offering is shown below.
       
           
      -    
      ![VHD](images/download_vhd.png) +
      ![VHD](images/download_vhd.png)
      2. Download the file to the **C:\VHD** directory. When the download is complete, rename the VHD file that you downloaded to **2012R2-poc-1.vhd**. This is done to make the filename simple to recognize and type. 3. Copy the VHD to a second file also in the **C:\VHD** directory and name this VHD **2012R2-poc-2.vhd**. 4. Download the [Windows 10 Enterprise ISO](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise) from the TechNet Evaluation Center to the **C:\VHD** directory on your Hyper-V host. - >During registration, you must specify the type, version, and language of installation media to download. In this example, a Windows 10 Enterprise, 64 bit, English ISO is chosen. You can choose a different version if desired. Note that Windows 10 in-place upgrade is only possible if the source operating system and installation media are both 32-bit or both 64-bit, so you should download the file version that corresponds to the version of your source computer (computer 2) for upgrade testing. + >During registration, you must specify the type, version, and language of installation media to download. In this example, a Windows 10 Enterprise, 64 bit, English ISO is chosen. You can choose a different version if desired. **Note: The evaluation version of Windows 10 does not support in-place upgrade**. 5. Rename the ISO file that you downloaded to **w10-enterprise.iso**. Again, this is done so that the filename is simple to type and recognize. After completing registration you will be able to download the 3.63 GB Windows 10 Enterprise evaluation ISO. @@ -249,7 +243,6 @@ After completing these steps, you will have three files in the **C:\VHD** direct The following commands and output display the procedures described in this section, both before and after downloading files: -
       C:\>mkdir VHD
       C:\>cd VHD
      @@ -263,14 +256,24 @@ C:\VHD>dir /B
       w10-enterprise.iso
       
      - ### Convert PC to VM -If you do not have a PC available to convert to VM, see [Appendix E: Create PC1 VM](#appendix-e-create-pc1-vm). +If you do not have a PC available to convert to VM, you can download a VM using the following steps. Skip these steps if you have a PC to convert. + +
        +
      1. Open the [Download virtual machines](https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/) page. +
      2. Under **Virtual machine**, choose **IE11 on Win7**. +
      3. Under **Select platform** choose **HyperV (Windows)**. +
      4. Click **Download .zip**. The download is 3.31 GB. +
      5. Extract the zip file. Three directories are created. +
      6. Open the **Virtual Hard Disks** directory and then copy **IE11 - Win7.vhd** to the **C:\VHD** directory. +
      7. Rename **IE11 - Win7.vhd** to **w7.vhd** (**do not rename the file to w7.vhdx**). +
      8. Create a generation 1 VM as described in step 5 of the [Configure Hyper-V](#configure-hyper-v) section, replacing the VHD file name **w7.vhdx** with **w7.vhd**. +
      If you have a PC available to convert to VM: -1. Verify that you have access to a local administrator account on the computer. Alternatively you can use a domain account with administrative rights, if these credentials are cached on the computer and your domain policy allows the use of cached credentials for login. After converting the computer to a VM, you must be able to sign in on this VM with local administrator privileges, while disconnected from the corporate network. +1. Sign in to the computer using an account with Administrator privileges. You can use a local computer account, or a domain account with administrative rights if domain policy allows the use of cached credentials. After converting the computer to a VM, you must be able to sign in on this VM with Administrator rights while the VM is disconnected from the corporate network. 2. [Determine the VM generation](#determine-the-vm-generation) that is required. 3. Based on the VM generation, perform the appropriate conversion procedure. @@ -315,7 +318,7 @@ If the **Type** column does not indicate GPT, then the disk partition format is >On a computer running Windows 8 or later, you can also type **Get-Disk** at a Windows PowerShell prompt to discover the partition style. The default output of this cmdlet displays the partition style for all attached disks. -Both commands are shown in the following example. The client computer is running Windows 8.1 and uses a GPT style partition format: +Both commands are displayed below. In this example, the client computer is running Windows 8.1 and uses a GPT style partition format:
       PS C:\> Get-WmiObject -Class Win32_DiskPartition | Select-Object -Property SystemName,Caption,Type
      @@ -921,143 +924,13 @@ Use the following procedures to verify that the PoC environment is configured pr
           **ping** displays if the source can resolve the target name, and whether or not the target responds to ICMP. If it cannot be resolved, "..could not find host" will be diplayed and if the target is found and also responds to ICMP, you will see "Reply from" and the IP address of the target.
      **tracert** displays the path to reach the destination, for example srv1.contoso.com [192.168.0.2] followed by a list of hosts and IP addresses corresponding to subsequent routing nodes between the source and the destination. -## Appendix B: Configuring Hyper-V on Windows Server 2008 R2 - -Full documentation of procedures to configure the PoC in Hyper-V on Windows Server 2008 R2 is currently out of scope for this guide, due to significant differences in the Hyper-V role in Windows Server 2008 R2. For more information about the Hyper-V Manager interface in Windows Server 2008 R2, see [Hyper-V](https://technet.microsoft.com/library/cc730764.aspx) in the Windows Server TechNet Library. A limited number of procedures are provided in this section. - -To install Hyper-V on Windows Server 2008 R2, you can use the Add-WindowsFeature cmdlet: - -
      -Add-WindowsFeature -Name Hyper-V
      -
      - -An example that uses Hyper-V WMI to create a virtual switch on Windows Server 2008 R2 is provided below. - -
      -$SwitchFriendlyName = "poc-internal"
      -$InternalEthernetPortFriendlyName = $SwitchFriendlyName
      -$InternalSwitchPortFriendlyName = "poc"
      -$SwitchName = [guid]::NewGuid().ToString()
      -$InternalSwitchPortName = [guid]::NewGuid().ToString()
      -$InternalEthernetPortName = [guid]::NewGuid().ToString()
      -$NumLearnableAddresses = 1024
      -$ScopeOfResidence = ""
      -$VirtualSwitchManagementService = gwmi Msvm_VirtualSwitchManagementService -namespace "root\virtualization"
      -$Result = $VirtualSwitchManagementService.CreateSwitch($SwitchName, $SwitchFriendlyName, $NumLearnableAddresses, $ScopeOfResidence) 
      -$Switch = [WMI]$Result.CreatedVirtualSwitch 
      -$Result = $VirtualSwitchManagementService.CreateSwitchPort($Switch, $InternalSwitchPortName, $InternalSwitchPortFriendlyName, $ScopeOfResidence)
      -$InternalSwitchPort = [WMI]$Result.CreatedSwitchPort 
      -$Result = $VirtualSwitchManagementService.CreateInternalEthernetPortDynamicMac($InternalEthernetPortName, $InternalEthernetPortFriendlyName)
      -$InternalEthernetPort = [WMI]$Result.CreatedInternalEthernetPort
      -$query = "Associators of {$InternalEthernetPort} Where ResultClass=CIM_LanEndpoint"
      -$InternalLanEndPoint = gwmi -namespace root\virtualization -query $query
      -$Result = $VirtualSwitchManagementService.ConnectSwitchPort($InternalSwitchPort, $InternalLanEndPoint)
      -$filter = "SettingID='" + $InternalEthernetPort.DeviceID +"'"
      -$NetworkAdapterConfiguration = gwmi Win32_NetworkAdapterConfiguration -filter $filter
      -
      - -## Appendix C: Convert GPT to MBR - -This appendix provides a procedure to convert physical disk that is using the GPT partition style to a VHD that can be used to create a generation 1 VM in Hyper-V. Because generation 1 VMs require an MBR partition style, the physical disk is saved and then converted. - ->Conversion of a disk directly from GPT to MBR without data loss is not possible without the use of external, specialized applications and tools. However, it is possible to create an image of the GPT disk and then restore this image to an MBR disk using standard tools. At a high level, this can be done by obtaining an image of the source drive, creating a blank MBR-formatted disk, applying the source drive image to the MBR disk, and then configuring the MBR disk to boot the applied image. This procedure is described below: - -1. Download the [Disk2vhd utility](https://technet.microsoft.com/en-us/library/ee656415.aspx), extract the .zip file and copy **disk2vhd.exe** to a flash drive or other location that is accessible from the computer you wish to convert. - - >You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media such as a USB drive. - -2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. -3. Select the checkbox next to the **C:\** volume. On a computer using the GPT partition style, the system volume will not be displayed in the Disk2VHD tool. -4. Specify a location to save the resulting VHDX file (F:\VHD\w7-convert.vhdx in the following example) and click **Create**. See the following example: - - ![disk2vhd](images/disk2vhd-convert.png) - -5. Click **Create** to start creating a VHDX file. - - >Disk2vhd can save VHDs to local hard drives, even if they are the same as the volumes being converted. Performance is better however when the VHD is saved on a disk different than those being converted, such as a flash drive. - - ---here is where I need to insert the procedure to convert this to a bootable disk, given a vhdx file. - -How shall I do this? - - - -6. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHDX file (w7.vhdx) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory: - -
      -    C:\vhd>dir /B
      -    2012R2-poc-1.vhd
      -    2012R2-poc-2.vhd
      -    w10-enterprise.iso
      -    w7.VHDX
      -    
      - - -First I capture a VSS image of the GPT disk using disk2vhd - -Then I create a new VHD using the command below, attach both, robocopy from one to the other, detach the original and load the second. +## Appendix B: Create generation 1 VM from GPT disk -1. Create VHD (function thanks to Senthil Rajaram). - -
      -function CreateVHD ($VHDPath, $Size)
      -{
      -  $drive = (New-VHD -path $vhdpath -SizeBytes $size -Dynamic   |
      -              Mount-VHD -Passthru |
      -              get-disk -number {$_.DiskNumber} |
      -              Initialize-Disk -PartitionStyle MBR -PassThru |
      -              New-Partition -Size 100MB -AssignDriveLetter:$False -MbrType FAT32 -IsActive |
      -              Format-Volume -Confirm:$false -FileSystem FAT32 -force |
      -              get-partition |
      -              New-Partition -UseMaximumSize -AssignDriveLetter:$False -MbrType IFS |
      -              Format-Volume -Confirm:$false -FileSystem NTFS -force |
      -              get-partition |
      -              Add-PartitionAccessPath -AssignDriveLetter -PassThru |
      -              get-volume).DriveLetter 
      -    Dismount-VHD $VHDPath
      -}
      -
      - -Be sure to use a size sufficient for the backup (i.e. 100GB) and specify a path to a USB drive. For Windows 7 to mount the drive it must be .vhd not .vhdx. - -
      -CreateVHD F:\pc1.vhd 100GB
      -
      - - -2. Insert USB into client and mount using disk management. It is possible also using diskpart but easier with disk manager. Note the drive letter of the mount. Assuming G: - -wbadmin start backup -backupTarget:g: -include:c: -quiet - -- this takes a few minutes then you see: - -Creating a backup of volume C(C:), copied (98%). -Creating a backup of volume C(C:), copied (98%). -Creating a backup of volume C(C:), copied (99%). -Creating a backup of volume C(C:), copied (99%). -Creating a backup of volume C(C:), copied (100%). -The backup operation successfully completed. -Summary of the backup operation: ------------------- - -The backup of volume C(C:) successfully completed. - -C:\> - -Note: Alternatively you can back up the client to a network share, then access the network share from system restore. - -3. Detatch the VHD, remove the USB, insert USB in Hyper-V host. - -4. Create new VM with blank VHD, add the usb vhd as secondary. remove it later...no need to keep the image on the same disk. - - - -### Appendix D: Terminology used in this guide +### Appendix C: Terminology used in this guide See the following table for a list of terms used in this guide. @@ -1079,10 +952,6 @@ See the following table for a list of terms used in this guide. -### Appendix E: Create PC1 VM - -Here is where I provide a procedure to create a blank client VM. - ## Related Topics From c8395e273e979cda1640b963a211595a6d19fd43 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 17 Nov 2016 16:24:10 -0800 Subject: [PATCH 043/233] finally did it --- windows/deploy/images/disk2vhd4.PNG | Bin 0 -> 16148 bytes windows/deploy/images/scanos.PNG | Bin 0 -> 61226 bytes windows/deploy/windows-10-poc.md | 177 +++++++++++++++++++--------- 3 files changed, 120 insertions(+), 57 deletions(-) create mode 100644 windows/deploy/images/disk2vhd4.PNG create mode 100644 windows/deploy/images/scanos.PNG diff --git a/windows/deploy/images/disk2vhd4.PNG b/windows/deploy/images/disk2vhd4.PNG new file mode 100644 index 0000000000000000000000000000000000000000..97f944844141f4749bb95d14a27778649bf08a1f GIT binary patch literal 16148 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%0DrD3j{ouB928LORw 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 literal 0 HcmV?d00001 diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index ed1efaa54d..d43a0ddcf6 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -16,27 +16,23 @@ author: greg-lindsay

      The following guides provide step-by-step instructions for IT administrators to test Windows 10 deployment procedures in a proof of concept (PoC) environment: -- Step by step guide: Deploy Windows 10 in a test lab (this guide): Configure the PoC environment.
      +- (This guide) Step by step guide: Deploy Windows 10 in a test lab: Configure the PoC environment.
      - [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md): Use the Microsoft Deployment Toolkit (MDT) to deploy Windows 10 in the PoC environment.
      - [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md): Use System Center Configuration Manager to deploy Windows 10 in the PoC environment.
      -This guide requires about 3 hours to complete. You will need a Hyper-V capable computer running Windows 8.1 or later with at least 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. +Configuring the PoC: -The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly. You do not need to be an expert in Windows PowerShell to complete the steps in the guide, however you are required to customize some commands to your environment. +Approximately 3 hours are required to configure the PoC environment. You will need a Hyper-V capable computer running Windows 8.1 or later with at least 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. -Instructions to "type" Windows PowerShell commands provided in this guide can be typed, but in most cases the preferred method is to copy and paste these commands. If you are not familiar with Hyper-V, review the [terminology](#appendix-c-terminology-in-this-guide) used in this guide before starting. +The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly. You do not need to be an expert in Windows PowerShell to complete the steps in the guide, however you are required to customize some commands to fit your environment. + +Instructions to "type" Windows PowerShell commands provided in this guide can be typed, but in most cases the preferred method is to copy and paste these commands. If you are not familiar with Hyper-V, review the [terminology](#appendix-b-terminology-in-this-guide) used in this guide before starting. ## In this guide -This guide contains instructions for three general procedures: +This guide contains instructions for three general procedures: Install Hyper-V, configure Hyper-V, and configure VMs. If you already have a computer running Hyper-V, you can use this computer and skip the first procedure. -

        -
      1. Install Hyper-V. -
      2. Configure Hyper-V. -
      3. Configure VMs. -
      - -If you already have a computer running Hyper-V, you can use this computer and skip the first procedure. After completing the instructions in this guide, you will have a PoC environment that enables you to test Windows 10 deployment procedures with current tools, as documented in subsequent guides. Links are provided to download trial versions of Windows Server 2012, Windows 10 Enterprise, and all deployment tools necessary to complete the lab. +After completing the instructions in this guide, you will have a PoC environment that enables you to test Windows 10 deployment procedures with current tools, as documented in subsequent guides. Links are provided to download trial versions of Windows Server 2012, Windows 10 Enterprise, and all deployment tools necessary to complete the lab. Topics and procedures in this guide are summarized in the following table. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed. @@ -55,8 +51,7 @@ Topics and procedures in this guide are summarized in the following table. An es
    [Configure Hyper-V](#configure-hyper-v)Create virtual switches, determine available RAM for virtual machines, and add virtual machines.15 minutes
    [Configure VHDs](#configure-vhds)Start virtual machines and configure all services and settings.60 minutes
    [Appendix A: Verify the configuration](#appendix-a-verify-the-configuration)Verify and troubleshoot network connectivity and services in the PoC environment.30 minutes -
    [Appendix B: Create generation 1 VM from GPT disk](#appendix-b-create-generation-1-vm-from-gpt-disk)Solution to boot a GPT formatted disk as a generation 1 VM.Optional -
    [Appendix C: Terminology in this guide](#appendix-d-terminology-in-this-guide)Terms used in this guide.Informational +
    [Appendix B: Terminology in this guide](#appendix-d-terminology-in-this-guide)Terms used in this guide.Informational
    @@ -65,7 +60,7 @@ Topics and procedures in this guide are summarized in the following table. An es One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. ->Computer 2 is a client computer from your corporate network that is copied to create a VM that can be added to the PoC environment. This enables you to test a VM that is a mirror image of the computer on your network. If you do not have a computer to use for this simulation, you can download an evaluation VHD and use it to represent this computer. Later guides use this computer to simulate Windows 10 replace and refresh scenarios, so the VM is required even if you cannot create this VM using computer 2. +>Computer 2 is a client computer from your corporate network that is shadow-copied to create a VM that can be added to the PoC environment. This enables you to test a VM that is a mirror image of the computer on your network. If you do not have a computer to use for this simulation, you can download an evaluation VHD and use it to represent this computer. Subsequent guides use this computer to simulate Windows 10 replace and refresh scenarios, so the VM is required even if you cannot create this VM using computer 2.
    @@ -76,58 +71,57 @@ One computer that meets the hardware and software specifications below is requir **Computer 2** (recommended) - Role + **Role** Hyper-V host Client computer - Description + **Description** This computer will run Hyper-V, the Hyper-V management tools, and the Hyper-V Windows PowerShell module. This computer is a Windows 7 or Windows 8/8.1 client on your corporate network that will be converted to a VHD for upgrade demonstration purposes. - OS + **OS** Windows 8.1/10 or Windows Server 2012/2012 R2/2016* Windows 7 or a later - Edition + **Edition** Enterprise, Professional, or Education Any - Architecture + **Architecture** 64-bit Any
    Note: Retaining applications and settings during the upgrade process requires that architecture (32 or 64-bit) is the same before and after the upgrade. - RAM + **RAM** 8 GB RAM (16 GB recommended) to test Windows 10 deployment with MDT.
    16 GB RAM to test Windows 10 deployment with System Center Configuration Manager. Any - Disk + **Disk** 50 GB available hard disk space (100 GB recommended), any format. Any size, MBR formatted. - CPU + **CPU** SLAT-Capable CPU Any - Network + **Network** Internet connection Any - *The Hyper-V server role can also be installed on a computer running Windows Server 2008 R2. However, the Windows PowerShell module for Hyper-V is not available on Windows Server 2008 R2, therefore you cannot use many of the steps provided in this guide to configure Hyper-V. To manage Hyper-V on Windows Server 2008 R2, you can use Hyper-V WMI, or you can use the Hyper-V Manager console. Providing all steps in this guide as Hyper-V WMI or as 2008 R2 Hyper-V Manager procedures is beyond the scope of the guide. - -

    The Hyper-V role cannot be installed on Windows 7 or earlier versions of Windows. +
    +
    The Hyper-V role cannot be installed on Windows 7 or earlier versions of Windows.

    @@ -162,7 +156,7 @@ The lab architecture is summarized in the following diagram: Starting with Windows 8, the host computer’s microprocessor must support second level address translation (SLAT) to install Hyper-V. See [Hyper-V: List of SLAT-Capable CPUs for Hosts](http://social.technet.microsoft.com/wiki/contents/articles/1401.hyper-v-list-of-slat-capable-cpus-for-hosts.aspx) for more information. -1. To verify your computer supports SLAT, open an administrator command prompt, type systeminfo, press ENTER, and review the section displayed at the bottom of the output, next to Hyper-V Requirements. See the following example: +1. To verify your computer supports SLAT, open an administrator command prompt, type **systeminfo**, press ENTER, and review the section displayed at the bottom of the output, next to Hyper-V Requirements. See the following example:
         C:\>systeminfo
    @@ -176,7 +170,7 @@ Starting with Windows 8, the host computer’s microprocessor must support secon
         
         In this example, the computer supports SLAT and Hyper-V. 
         
    -    If one or more requirements are evaluated as "No" then the computer does not support installing Hyper-V.  However, if only the virtualization setting is incompatible, you might be able to enable virtualization in the BIOS and change the **Virtualization Enabled In Firmware** setting from "No" to "Yes." The location of this setting will depend on the manufacturer and BIOS version, but is typically found associated with the BIOS security settings.
    +    If one or more requirements are evaluated as **No** then the computer does not support installing Hyper-V.  However, if only the virtualization setting is incompatible, you might be able to enable virtualization in the BIOS and change the **Virtualization Enabled In Firmware** setting from **No** to **Yes**. The location of this setting will depend on the manufacturer and BIOS version, but is typically found associated with the BIOS security settings.
     
         You can also identify Hyper-V support using [tools](https://blogs.msdn.microsoft.com/taylorb/2008/06/19/hyper-v-will-my-computer-run-hyper-v-detecting-intel-vt-and-amd-v/) provided by the processor manufacturer, the [msinfo32](https://technet.microsoft.com/en-us/library/cc731397.aspx) tool, or you can download the [coreinfo](http://technet.microsoft.com/en-us/sysinternals/cc835722) utility and run it, as shown in the following example:
     
    @@ -207,7 +201,7 @@ Starting with Windows 8, the host computer’s microprocessor must support secon
         
         When you are prompted to restart the computer, choose **Yes**. The computer might restart more than once. After installation is complete, you can open Hyper-V Manager by typing **virtmgmt.msc** at an elevated command prompt.
         
    -    You can also install Hyper-V using the Control Panel in Windows under **Turn Windows features on or off** for a client operating system, or using Server Manager's **Add Roles and Features Wizard** on a server operating system, as shown below:
    +    >Alternatively, you can install Hyper-V using the Control Panel in Windows under **Turn Windows features on or off** for a client operating system, or using Server Manager's **Add Roles and Features Wizard** on a server operating system, as shown below:
         
         ![hyper-v feature](images/hyper-v-feature.png)
     
    @@ -217,9 +211,7 @@ Starting with Windows 8, the host computer’s microprocessor must support secon
     
     ### Download VHD and ISO files
     
    -When you have completed installation of Hyper-V on the host computer, begin configuration of Hyper-V by downloading VHD and ISO files to the computer. These files will be used to create the VMs used in the lab.
    -
    ->Before you can download VHD and ISO files, you will need to register and sign in to the [TechNet Evaluation Center](https://www.microsoft.com/en-us/evalcenter/) using your Microsoft account.
    +When you have completed installation of Hyper-V on the host computer, begin configuration of Hyper-V by downloading VHD and ISO files to the computer. These files will be used to create the VMs used in the lab. Before you can download VHD and ISO files, you will need to register and sign in to the [TechNet Evaluation Center](https://www.microsoft.com/en-us/evalcenter/) using your Microsoft account.
     
     1. Create a directory on your Hyper-V host named **C:\VHD** and download a single [Windows Server 2012 R2 VHD](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2012-r2) from the TechNet Evaluation Center to the **C:\VHD** directory. 
     
    @@ -241,7 +233,7 @@ When you have completed installation of Hyper-V on the host computer, begin conf
     
     After completing these steps, you will have three files in the **C:\VHD** directory: **2012R2-poc-1.vhd**, **2012R2-poc-2.vhd**, **w10-enterprise.iso**.
         
    -The following commands and output display the procedures described in this section, both before and after downloading files:
    +The following displays the procedures described in this section, both before and after downloading files:
     
     
     C:\>mkdir VHD
    @@ -258,7 +250,18 @@ w10-enterprise.iso
     
     ### Convert PC to VM
     
    -If you do not have a PC available to convert to VM, you can download a VM using the following steps. Skip these steps if you have a PC to convert.
    +If you have a PC available to convert to VM (computer 2):
    +
    +
      +
    1. Sign in to computer 2 using an account with Administrator privileges. + +>You can use a local computer account, or a domain account with administrative rights if domain policy allows the use of cached credentials. After converting the computer to a VM, you must be able to sign in on this VM with Administrator rights while the VM is disconnected from the corporate network. + +
    2. [Determine the VM generation and partition type](#determine-the-vm-generation-and-partition-type) that is required. +
    3. Based on the VM generation and partition type, perform one of the following: prepare a generation 1 VM, prepare a generation 2 VM, or prepare a generation 1 VM from a GPT disk. +
    + +If you do not have a PC available to convert to VM, perform the following steps to download an evaluation VM:
    1. Open the [Download virtual machines](https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/) page. @@ -271,13 +274,7 @@ If you do not have a PC available to convert to VM, you can download a VM using
    2. Create a generation 1 VM as described in step 5 of the [Configure Hyper-V](#configure-hyper-v) section, replacing the VHD file name **w7.vhdx** with **w7.vhd**.
    -If you have a PC available to convert to VM: - -1. Sign in to the computer using an account with Administrator privileges. You can use a local computer account, or a domain account with administrative rights if domain policy allows the use of cached credentials. After converting the computer to a VM, you must be able to sign in on this VM with Administrator rights while the VM is disconnected from the corporate network. -2. [Determine the VM generation](#determine-the-vm-generation) that is required. -3. Based on the VM generation, perform the appropriate conversion procedure. - -#### Determine VM generation +#### Determine the VM generation and partition type When creating a VM in Hyper-V, you must specify either generation 1 or generation 2. The following table describes requirements for these two types of VMs. @@ -316,9 +313,7 @@ Get-WmiObject -Class Win32_DiskPartition | Select-Object -Property SystemName,Ca If the **Type** column does not indicate GPT, then the disk partition format is MBR ("Installable File System" = MBR). ->On a computer running Windows 8 or later, you can also type **Get-Disk** at a Windows PowerShell prompt to discover the partition style. The default output of this cmdlet displays the partition style for all attached disks. - -Both commands are displayed below. In this example, the client computer is running Windows 8.1 and uses a GPT style partition format: +On a computer running Windows 8 or later, you can also type **Get-Disk** at a Windows PowerShell prompt to discover the partition style. The default output of this cmdlet displays the partition style for all attached disks. Both commands are displayed below. In this example, the client computer is running Windows 8.1 and uses a GPT style partition format:
     PS C:\> Get-WmiObject -Class Win32_DiskPartition | Select-Object -Property SystemName,Caption,Type
    @@ -423,8 +418,6 @@ Notes:
    ![disk2vhd](images/disk2vhd.png) - Note: Hyper-V on Windows Server 2008 R2 does not support VHDX. - 5. Click **Create** to start creating a VHDX file. >Disk2vhd can save VHDs to local hard drives, even if they are the same as the volumes being converted. Performance is better however when the VHD is saved on a disk different than those being converted, such as a flash drive. @@ -476,6 +469,34 @@ Notes:
    PC1.VHDX
    +#### Prepare a generation 1 VM from a GPT disk + +1. Download the [Disk2vhd utility](https://technet.microsoft.com/en-us/library/ee656415.aspx), extract the .zip file and copy **disk2vhd.exe** to a flash drive or other location that is accessible from the computer you wish to convert. + + >You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media such as a USB drive. + +2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. +3. Select the checkbox next to the **C:\** volume and clear the checkbox next to **Use Vhdx**. Note: no system volume is copied in this scenario. +4. Specify a location to save the resulting VHD file (F:\VHD\w7.vhd in the following example) and click **Create**. See the following example: + + ![disk2vhd](images/disk2vhd4.png) + +5. Click **Create** to start creating a VHD file. + + >Disk2vhd can save VHDs to local hard drives, even if they are the same as the volumes being converted. Performance is better however when the VHD is saved on a disk different than those being converted, such as a flash drive. + +6. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHD file (w7.vhd) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory: + +
    +    C:\vhd>dir /B
    +    2012R2-poc-1.vhd
    +    2012R2-poc-2.vhd
    +    w10-enterprise.iso
    +    w7.VHD
    +    
    + + >Note: In its current state, the w7.VHD file is not bootable. The VHD will be used to create a bootable VM later in this guide in the [Configure Hyper-V](#configure-hyper-v) section. + ### Resize VHD The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to 80GB to support installing imaging tools and storing OS images. @@ -550,9 +571,9 @@ As mentioned previously: instructions to "type" commands provided in this guide **Note**: The RAM values assigned to VMs in this step are not permanent, and can be easily increased or decreased later if needed to address performance issues. -5. Using the same elevated Windows PowerShell prompt that was used in the previous step, type one of the following sets of commands, depending on the type of VM that was prepared in the [Determine VM generation](#determine-vm-generation) section, either generation 1 or generation 2. +5. Using the same elevated Windows PowerShell prompt that was used in the previous step, type one of the following sets of commands, depending on the type of VM that was prepared in the [Determine VM generation](#determine-vm-generation) section, either generation 1, generation 2, or generation 1 with GPT. - To create a generation 1 VM: (using c:\vhd\w7.vhdx) + To create a generation 1 VM (using c:\vhd\w7.vhdx):
         New-VM -Name "PC1" -VHDPath c:\vhd\w7.vhdx -SwitchName poc-internal
    @@ -560,13 +581,60 @@ As mentioned previously: instructions to "type" commands provided in this guide
         Enable-VMIntegrationService -Name "Guest Service Interface" -VMName PC1
         
    - To create a generation 2 VM: (using c:\vhd\PC1.vhdx) + To create a generation 2 VM (using c:\vhd\PC1.vhdx):
         New-VM -Name "PC1" -Generation 2 -VHDPath c:\vhd\PC1.vhdx -SwitchName poc-internal
         Set-VMMemory -VMName "PC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20
         Enable-VMIntegrationService -Name "Guest Service Interface" -VMName PC1
         
    + + To create a generation 1 VM from a GPT disk (using c:\vhd\w7.vhd): + + Type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host. Do not forget to type the pipe "|" at the end of commands 1-5: + +
    +    New-VHD -Path c:\vhd\s.vhd -SizeBytes 100MB |
    +    Mount-VHD -Passthru |
    +    Get-Disk -Number {$_.DiskNumber} |
    +    Initialize-Disk -PartitionStyle MBR -PassThru |
    +    New-Partition -UseMaximumSize -IsActive |
    +    Format-Volume -Confirm:$false -FileSystem NTFS -force
    +    Dismount-VHD -Path c:\vhd\s.vhd
    +    
    + + The previous set of commands creates a VHD with an MBR formatted system partition. System files are not yet copied to the partition. + + >It is possible to copy system files directly onto this partition by mounting the OS partition (w7.vhd) and using the bcdboot tool. However, this approach is not as safe as running bcdboot by accessing OS repair options for the VM. The following steps use this safer method. + + Type the following command at an elevated Windows PowerShell prompt ($maxram was defined previously): + +
    +    New-VM -Name "PC1" -VHDPath c:\vhd\s.vhd -SwitchName poc-internal
    +    Add-VMHardDiskDrive -VMName PC1 -Path c:\vhd\w7.vhd
    +    Add-VMDvdDrive -VMName PC1 -Path c:\vhd\w10-enterprise.iso
    +    Set-VMMemory -VMName "PC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20
    +    Enable-VMIntegrationService -Name "Guest Service Interface" -VMName PC1
    +    Start-VM PC1
    +    vmconnect localhost PC1
    +    
    + + Press a key to boot from DVD. The VM will boot into Windows Setup. + + 1. Click **Next**. + 2. Click **Repair your computer**. + 3. Click **Troubleshoot**. + 4. Click **Command Prompt**. + 5. Type **bootrec /scanos** and verify that **D:\Windows** is found. + 6. Type **bcdboot D:\Windows** and verify that **Boot files successfully created** is displayed. See the following example: + + ![scanos](images/scanos.png) + + >If there is an error at this stage, ensure that the system partition VHD (c:\vhd\s.vdh) is correctly formatted and attached to the VM. + + 7. Type **exit**. + 8. Click **Continue**. Do not boot from the DVD again. The VM will boot into the OS partition that was expored to c:\vhd\w7.vhd. + 9. On the PC1 virtual machine connection menu, click Media, point to DVD drive, and then click Eject w10-enterprise.iso. ### Configure VMs @@ -858,7 +926,7 @@ As mentioned previously: instructions to "type" commands provided in this guide Minimum = 1ms, Maximum = 3ms, Average = 2ms
    -37. Verify that all three VMs can reach each other, and the Internet. See [Appendix B: Verify the configuration](#appendix-b-verify-the-configuration) for more information. +37. Verify that all three VMs can reach each other, and the Internet. See [Appendix A: Verify the configuration](#appendix-b-verify-the-configuration) for more information. 38. Lastly, because the client computer has different hardware after copying it to a VM, its Windows activation will be invalidated and you might receive a message that you must activate Windows in 3 days. To extend this period to 30 days, type the following commands at an elevated Windows PowerShell prompt on PC1:
    @@ -924,13 +992,8 @@ Use the following procedures to verify that the PoC environment is configured pr
         **ping** displays if the source can resolve the target name, and whether or not the target responds to ICMP. If it cannot be resolved, "..could not find host" will be diplayed and if the target is found and also responds to ICMP, you will see "Reply from" and the IP address of the target.
    **tracert** displays the path to reach the destination, for example srv1.contoso.com [192.168.0.2] followed by a list of hosts and IP addresses corresponding to subsequent routing nodes between the source and the destination. -## Appendix B: Create generation 1 VM from GPT disk - - - - -### Appendix C: Terminology used in this guide +### Appendix B: Terminology used in this guide See the following table for a list of terms used in this guide. From d2578a905828f20e4b23f2bd7c3c9fcf3e5c48de Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 17 Nov 2016 17:22:56 -0800 Subject: [PATCH 044/233] finally did it --- windows/deploy/windows-10-poc.md | 76 ++++++++++++++------------------ 1 file changed, 34 insertions(+), 42 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index d43a0ddcf6..17193c7cb2 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -16,11 +16,11 @@ author: greg-lindsay

    The following guides provide step-by-step instructions for IT administrators to test Windows 10 deployment procedures in a proof of concept (PoC) environment: -- (This guide) Step by step guide: Deploy Windows 10 in a test lab: Configure the PoC environment.
    -- [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md): Use the Microsoft Deployment Toolkit (MDT) to deploy Windows 10 in the PoC environment.
    -- [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md): Use System Center Configuration Manager to deploy Windows 10 in the PoC environment.
    +- (This guide) Step by step guide: Deploy Windows 10 in a test lab.
    +- [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md).
    +- [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md).
    -Configuring the PoC: +The first guide contains instructions to configure the PoC environment. The second and third guides contains steps to deploy Windows 10 in this environment with current tools. Approximately 3 hours are required to configure the PoC environment. You will need a Hyper-V capable computer running Windows 8.1 or later with at least 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. @@ -60,7 +60,10 @@ Topics and procedures in this guide are summarized in the following table. An es One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. ->Computer 2 is a client computer from your corporate network that is shadow-copied to create a VM that can be added to the PoC environment. This enables you to test a VM that is a mirror image of the computer on your network. If you do not have a computer to use for this simulation, you can download an evaluation VHD and use it to represent this computer. Subsequent guides use this computer to simulate Windows 10 replace and refresh scenarios, so the VM is required even if you cannot create this VM using computer 2. +- Computer 1 is the computer you will use to run Hyper-V and host virtual machines. It is recommended that this computer have 16 GB or more of installed RAM and a multi-core processor. +- Computer 2 is a client computer from your corporate network that is shadow-copied to create a VM that can be added to the PoC environment. This procedure enables you to test a VM that is a mirror image of the computer on your network. If you do not have a computer to use for this simulation, you can download an evaluation VHD and use it to represent this computer. Subsequent guides use this computer to simulate Windows 10 replace and refresh scenarios, so the VM is required even if you cannot create this VM using computer 2. + +Harware requirements are displayed below:

    @@ -252,14 +255,12 @@ w10-enterprise.iso If you have a PC available to convert to VM (computer 2): -
      -
    1. Sign in to computer 2 using an account with Administrator privileges. +1. Sign in to computer 2 using an account with Administrator privileges. >You can use a local computer account, or a domain account with administrative rights if domain policy allows the use of cached credentials. After converting the computer to a VM, you must be able to sign in on this VM with Administrator rights while the VM is disconnected from the corporate network. -
    2. [Determine the VM generation and partition type](#determine-the-vm-generation-and-partition-type) that is required. -
    3. Based on the VM generation and partition type, perform one of the following: prepare a generation 1 VM, prepare a generation 2 VM, or prepare a generation 1 VM from a GPT disk. -
    +2. [Determine the VM generation and partition type](#determine-the-vm-generation-and-partition-type) that is required. +3. Based on the VM generation and partition type, perform one of the following: [Prepare a generation 1 VM](#prepare-a-generation-1-vm), [Prepare a generation 2 VM](#prepare-a-generation-2-vm), or prepare a generation 1 VM from a GPT disk. If you do not have a PC available to convert to VM, perform the following steps to download an evaluation VM: @@ -345,7 +346,7 @@ The following table displays the Hyper-V VM generation to choose based on the OS Partition style Architecture VM generation - Procedures + Procedure Windows 7 @@ -368,8 +369,7 @@ The following table displays the Hyper-V VM generation to choose based on the OS 64 1 - [Appendix C: Convert GPT to MBR](#appendix-c-convert-gpt-to-mbr) -
    [Prepare a generation 1 VM](#prepare-a-generation-1-vm) + [Prepare a generation 1 VM from a GPT disk](#prepare-a-generation-1-vm-from-a-gpt-disk) Windows 8 or later @@ -387,8 +387,7 @@ The following table displays the Hyper-V VM generation to choose based on the OS GPT 32 1 - [Appendix C: Convert GPT to MBR](#appendix-c-convert-gpt-to-mbr) -
    [Prepare a generation 1 VM](#prepare-a-generation-1-vm) + [Prepare a generation 1 VM from a GPT disk](#prepare-a-generation-1-vm-from-a-gpt-disk) 64 @@ -401,9 +400,9 @@ The following table displays the Hyper-V VM generation to choose based on the OS Notes:
      -
    • If the PC is running Windows 7, it can only be converted and hosted in Hyper-V as a generation 1 VM. This Hyper-V requirement means that if the Windows 7 PC is also using a GPT partition style, the disk contents must be captured and then used to create a VHD with the MBR partition style. In this case, see [Appendix C: Convert GPT to MBR](#appendix-c-convert-gpt-to-mbr). -
    • If the PC is running Windows 8 or later and uses the GPT partition style, you can capture the disk image and create a generation 2 VM. To do this, you must temporarily mount the EFI system partition which is accomplished using the **mountvol** command. -
    • If the PC is using an MBR partition style, you can convert the disk to VHD and use it to create a generation 1 VM. If you use the Disk2VHD tool described in this guide, it is not necessary to mount the MBR system partition, but it is still necessary to capture it. +
    • If the PC is running Windows 7, it can only be converted and hosted in Hyper-V as a generation 1 VM. This Hyper-V requirement means that if the Windows 7 PC is also using a GPT partition style, the OS disk can be shadow copied, but a new system partition must be created. In this case, see [Prepare a generation 1 VM from a GPT disk](#prepare-a-generation-1-vm-from-a-gpt-disk). +
    • If the PC is running Windows 8 or later and uses the GPT partition style, you can capture the disk image and create a generation 2 VM. To do this, you must temporarily mount the EFI system partition which is accomplished using the **mountvol** command. In this case, see [Prepare a generation 2 VM](#prepare-a-generation-2-vm). +
    • If the PC is using an MBR partition style, you can convert the disk to VHD and use it to create a generation 1 VM. If you use the Disk2VHD tool described in this guide, it is not necessary to mount the MBR system partition, but it is still necessary to capture it. In this case, see [Prepare a generation 1 VM](#prepare-a-generation-1-vm).
    #### Prepare a generation 1 VM @@ -418,11 +417,9 @@ Notes:
    ![disk2vhd](images/disk2vhd.png) -5. Click **Create** to start creating a VHDX file. - >Disk2vhd can save VHDs to local hard drives, even if they are the same as the volumes being converted. Performance is better however when the VHD is saved on a disk different than those being converted, such as a flash drive. -6. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHDX file (w7.vhdx) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory: +5. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHDX file (w7.vhdx) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory:
         C:\vhd>dir /B
    @@ -444,19 +441,17 @@ Notes:
    mountvol s: /s
    - >This command temporarily assigns a drive letter of S to the system volume and mounts it. If the letter S is already assigned to a different volume on the computer, then choose one that is available (ex: mountvol z: /s). + This command temporarily assigns a drive letter of S to the system volume and mounts it. If the letter S is already assigned to a different volume on the computer, then choose one that is available (ex: mountvol z: /s). -2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. -3. Select the checkboxes next to the **C:\** and the **S:\** volumes, and clear the **Use Volume Shadow Copy checkbox**. Volume shadow copy will not work if the EFI system partition is selected. +3. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. +4. Select the checkboxes next to the **C:\** and the **S:\** volumes, and clear the **Use Volume Shadow Copy checkbox**. Volume shadow copy will not work if the EFI system partition is selected. **Important**: You must include the EFI system partition in order to create a bootable VHD. The Windows RE tools partition (shown below) is not required, but it can also be converted if desired. -4. Specify a location to save the resulting VHD or VHDX file (F:\VHD\PC1.vhdx in the following example) and click **Create**. Note: Hyper-V on Windows Server 2008 R2 does not support VHDX. See the following example: +5. Specify a location to save the resulting VHD or VHDX file (F:\VHD\PC1.vhdx in the following example) and click **Create**. Note: Hyper-V on Windows Server 2008 R2 does not support VHDX. See the following example: ![disk2vhd](images/disk2vhd-gen2.png) -5. Click **Create** to start creating a VHDX file. - >Disk2vhd can save VHDs to local hard drives, even if they are the same as the volumes being converted. Performance is better however when the VHD is saved on a disk different than those being converted, such as a flash drive. 6. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHDX file (PC1.vhdx) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory: @@ -481,11 +476,9 @@ Notes:
    ![disk2vhd](images/disk2vhd4.png) -5. Click **Create** to start creating a VHD file. - >Disk2vhd can save VHDs to local hard drives, even if they are the same as the volumes being converted. Performance is better however when the VHD is saved on a disk different than those being converted, such as a flash drive. -6. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHD file (w7.vhd) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory: +5. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHD file (w7.vhd) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory:
         C:\vhd>dir /B
    @@ -495,7 +488,7 @@ Notes:
    w7.VHD
    - >Note: In its current state, the w7.VHD file is not bootable. The VHD will be used to create a bootable VM later in this guide in the [Configure Hyper-V](#configure-hyper-v) section. + >In its current state, the w7.VHD file is not bootable. The VHD will be used to create a bootable VM later in the [Configure Hyper-V](#configure-hyper-v) section. ### Resize VHD @@ -523,6 +516,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to As mentioned previously: instructions to "type" commands provided in this guide can be typed, but the preferred method is to copy and paste these commands. 1. Open an elevated Windows PowerShell window and type the following command to create two virtual switches named "poc-internal" and "poc-external": + >If the Hyper-V host already has an external virtual switch bound to a physical NIC, do not attempt to add a second external virtual switch. Attempting to add a second external switch will result in an error indicating that the NIC is **already bound to the Microsoft Virtual Switch protocol.** In this case, choose one of the following options:
       A) Remove the existing external virtual switch, then add the poc-external switch
       B) Rename the existing external switch to "poc-external"
    @@ -544,7 +538,7 @@ As mentioned previously: instructions to "type" commands provided in this guide (Get-VMHostNumaNode).MemoryAvailable
    - >This command will display the megabytes of RAM available. On a Hyper-V host computer with 16 GB of physical RAM installed, 10,000 MB of RAM or greater should be available if the computer is not also running other applications. On a computer with 8 GB of physical RAM installed, at least 4000 MB should be available. If the computer has less RAM available than this, try closing applications to free up more memory. + This command will display the megabytes of RAM available. On a Hyper-V host computer with 16 GB of physical RAM installed, 10,000 MB of RAM or greater should be available if the computer is not also running other applications. On a computer with 8 GB of physical RAM installed, at least 4000 MB should be available. If the computer has less RAM available than this, try closing applications to free up more memory. 3. Determine the available memory for VMs by dividing the available RAM by 4. For example: @@ -591,7 +585,7 @@ As mentioned previously: instructions to "type" commands provided in this guide To create a generation 1 VM from a GPT disk (using c:\vhd\w7.vhd): - Type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host. Do not forget to type the pipe "|" at the end of commands 1-5: + Type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host. Do not forget to include the pipe "|" at the end of commands 1-5:
         New-VHD -Path c:\vhd\s.vhd -SizeBytes 100MB |
    @@ -619,7 +613,7 @@ As mentioned previously: instructions to "type" commands provided in this guide
         vmconnect localhost PC1
         
    - Press a key to boot from DVD. The VM will boot into Windows Setup. + In the PC1 window, press a key to boot from DVD. The VM will boot into Windows Setup. 1. Click **Next**. 2. Click **Repair your computer**. @@ -633,12 +627,12 @@ As mentioned previously: instructions to "type" commands provided in this guide >If there is an error at this stage, ensure that the system partition VHD (c:\vhd\s.vdh) is correctly formatted and attached to the VM. 7. Type **exit**. - 8. Click **Continue**. Do not boot from the DVD again. The VM will boot into the OS partition that was expored to c:\vhd\w7.vhd. - 9. On the PC1 virtual machine connection menu, click Media, point to DVD drive, and then click Eject w10-enterprise.iso. + 8. Click **Continue**. Do not boot from the DVD again. The VM will boot into the OS partition that was exported to c:\vhd\w7.vhd. + 9. On the PC1 virtual machine connection menu, click **Media**, point to **DVD drive**, and then click **Eject w10-enterprise.iso**. ### Configure VMs -1. At an elevated Windows PowerShell prompt on the Hyper-V host, start the first VM by typing the following command: +1. At an elevated Windows PowerShell prompt on the Hyper-V host, start the first Windows Server VM by typing the following command:
         Start-VM DC1
    @@ -735,14 +729,14 @@ As mentioned previously: instructions to "type" commands provided in this guide
     
         Next, the client VM will be started and joined to the contoso.com domain. This is done before adding a gateway to the PoC network so that there is no danger of duplicate DNS registrations for the physical client and its cloned VM in the corporate domain.
     
    -15. Using an elevated Windows PowerShell prompt on the Hyper-V host, start the client VM (PC1), and connect to it:
    +15. If the PC1 VM is not started yet, using an elevated Windows PowerShell prompt on the Hyper-V host, start the client VM (PC1), and connect to it:
     
         
         Start-VM PC1
         vmconnect localhost PC1
         
    -16. Sign on to PC1 using an account that has local administrator rights. +16. Sign in to PC1 using an account that has local administrator rights. >PC1 will be disconnected from its current domain, so you cannot use a domain account to sign on unless these credentials are cached and the use of cached credentials is permitted by Group Policy. If cached credentials are available and permitted, you can use these credentials to sign in. Otherwise, use an existing local administrator account. @@ -789,7 +783,7 @@ As mentioned previously: instructions to "type" commands provided in this guide Flags: PDC GC DS LDAP KDC TIMESERV WRITABLE DNS_FOREST CLOSE_SITE FULL_SECRET WS 0xC000 ``` - >If PC1 is running Windows 7, enhanced session mode is not available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. + >If PC1 is running Windows 7, enhanced session mode might not be available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. 20. Minimize the PC1 window and switch to the Hyper-V host computer. Open an elevated Windows PowerShell ISE window on the Hyper-V host (right-click Windows PowerShell and then click Run ISE as Administrator) and type the following commands in the (upper) script editor pane: @@ -995,8 +989,6 @@ Use the following procedures to verify that the PoC environment is configured pr ### Appendix B: Terminology used in this guide -See the following table for a list of terms used in this guide. -
    From e5fa0301967c90f4abef83035df7175030fca9f2 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 18 Nov 2016 10:31:30 -0800 Subject: [PATCH 045/233] finally did it --- windows/deploy/windows-10-poc.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 17193c7cb2..7110b5d3bd 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -260,7 +260,7 @@ If you have a PC available to convert to VM (computer 2): >You can use a local computer account, or a domain account with administrative rights if domain policy allows the use of cached credentials. After converting the computer to a VM, you must be able to sign in on this VM with Administrator rights while the VM is disconnected from the corporate network. 2. [Determine the VM generation and partition type](#determine-the-vm-generation-and-partition-type) that is required. -3. Based on the VM generation and partition type, perform one of the following: [Prepare a generation 1 VM](#prepare-a-generation-1-vm), [Prepare a generation 2 VM](#prepare-a-generation-2-vm), or prepare a generation 1 VM from a GPT disk. +3. Based on the VM generation and partition type, perform one of the following procedures: [Prepare a generation 1 VM](#prepare-a-generation-1-vm), [Prepare a generation 2 VM](#prepare-a-generation-2-vm), or [prepare a generation 1 VM from a GPT disk](#prepare-a-generation-1-vm-from-a-gpt-disk). If you do not have a PC available to convert to VM, perform the following steps to download an evaluation VM: @@ -271,8 +271,8 @@ If you do not have a PC available to convert to VM, perform the following steps
  • Click **Download .zip**. The download is 3.31 GB.
  • Extract the zip file. Three directories are created.
  • Open the **Virtual Hard Disks** directory and then copy **IE11 - Win7.vhd** to the **C:\VHD** directory. -
  • Rename **IE11 - Win7.vhd** to **w7.vhd** (**do not rename the file to w7.vhdx**). -
  • Create a generation 1 VM as described in step 5 of the [Configure Hyper-V](#configure-hyper-v) section, replacing the VHD file name **w7.vhdx** with **w7.vhd**. +
  • Rename **IE11 - Win7.vhd** to **w7.vhd** (do not rename the file to w7.vhdx). +
  • In step 5 of the [Configure Hyper-V](#configure-hyper-v) section, replace the VHD file name **w7.vhdx** with **w7.vhd**. #### Determine the VM generation and partition type @@ -448,7 +448,7 @@ Notes:
    **Important**: You must include the EFI system partition in order to create a bootable VHD. The Windows RE tools partition (shown below) is not required, but it can also be converted if desired. -5. Specify a location to save the resulting VHD or VHDX file (F:\VHD\PC1.vhdx in the following example) and click **Create**. Note: Hyper-V on Windows Server 2008 R2 does not support VHDX. See the following example: +5. Specify a location to save the resulting VHD or VHDX file (F:\VHD\PC1.vhdx in the following example) and click **Create**. See the following example: ![disk2vhd](images/disk2vhd-gen2.png) @@ -471,7 +471,7 @@ Notes:
    >You might experience timeouts if you attempt to run Disk2vhd from a network share, or specify a network share for the destination. To avoid timeouts, use local, portable media such as a USB drive. 2. On the computer you wish to convert, double-click the disk2vhd utility to start the graphical user interface. -3. Select the checkbox next to the **C:\** volume and clear the checkbox next to **Use Vhdx**. Note: no system volume is copied in this scenario. +3. Select the checkbox next to the **C:\** volume and clear the checkbox next to **Use Vhdx**. Note: the system volume is not copied in this scenario, it will be added later. 4. Specify a location to save the resulting VHD file (F:\VHD\w7.vhd in the following example) and click **Create**. See the following example: ![disk2vhd](images/disk2vhd4.png) @@ -585,7 +585,7 @@ As mentioned previously: instructions to "type" commands provided in this guide To create a generation 1 VM from a GPT disk (using c:\vhd\w7.vhd): - Type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host. Do not forget to include the pipe "|" at the end of commands 1-5: + Type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host. Do not forget to include the pipe "|" at the end of the first five commands:
         New-VHD -Path c:\vhd\s.vhd -SizeBytes 100MB |
    @@ -624,10 +624,10 @@ As mentioned previously: instructions to "type" commands provided in this guide
     
         ![scanos](images/scanos.png)
     
    -    >If there is an error at this stage, ensure that the system partition VHD (c:\vhd\s.vdh) is correctly formatted and attached to the VM.
    +    >If there is an error at this stage, ensure that the system partition VHD (c:\vhd\s.vdh) is correctly formatted, marked as active, and attached to the VM. Note: the OS drive is only temporarily assigned a letter of D.
     
         7. Type **exit**.
    -    8. Click **Continue**. Do not boot from the DVD again. The VM will boot into the OS partition that was exported to c:\vhd\w7.vhd.
    +    8. Click **Continue**. Do not press a key to boot from the DVD again. The VM will boot into the OS partition that was exported to c:\vhd\w7.vhd.
         9. On the PC1 virtual machine connection menu, click **Media**, point to **DVD drive**, and then click **Eject w10-enterprise.iso**.
         
     ### Configure VMs 
    @@ -987,7 +987,9 @@ Use the following procedures to verify that the PoC environment is configured pr
         **tracert** displays the path to reach the destination, for example srv1.contoso.com [192.168.0.2] followed by a list of hosts and IP addresses corresponding to subsequent routing nodes between the source and the destination.
     
     
    -### Appendix B: Terminology used in this guide
    +## Appendix B: Terminology used in this guide
    +
    +

     

    From 32381196c5a19cc8e6b3d870d3f13153c2a7db0a Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 18 Nov 2016 11:25:32 -0800 Subject: [PATCH 046/233] finally did it --- windows/deploy/windows-10-poc.md | 42 ++++++++++++++++---------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 7110b5d3bd..1aa6dcb7dc 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -8,7 +8,7 @@ ms.pagetype: deploy author: greg-lindsay --- -# Step by step guide: Deploy Windows 10 in a test lab +# Step by step guide: Configure a test lab to deploy Windows 10 **Applies to** @@ -16,21 +16,19 @@ author: greg-lindsay

    The following guides provide step-by-step instructions for IT administrators to test Windows 10 deployment procedures in a proof of concept (PoC) environment: -- (This guide) Step by step guide: Deploy Windows 10 in a test lab.
    +- (This guide) Step by step guide: Configure a test lab to deploy Windows 10.
    - [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md).
    - [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md).
    -The first guide contains instructions to configure the PoC environment. The second and third guides contains steps to deploy Windows 10 in this environment with current tools. +This guide contains instructions to configure a PoC/test environment using Hyper-V that requires a minimum amount of resources. Subsequent companion guides contain steps to deploy Windows 10 using this environment. Approximately 3 hours are required to configure the PoC environment. You will need a Hyper-V capable computer running Windows 8.1 or later with at least 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. -Approximately 3 hours are required to configure the PoC environment. You will need a Hyper-V capable computer running Windows 8.1 or later with at least 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. +Windows PowerShell commands are provided to set up the PoC environment quickly. You do not need to be an expert in Windows PowerShell to complete the steps in the guide, however you are required to customize some commands to fit your environment. Instructions to "type" Windows PowerShell commands provided in this guide can be followed literally by typing the commands, but when it is possible the preferred method is to copy and paste these commands. -The PoC enviroment is configured by using Hyper-V and requires a minimum amount of resources. Windows PowerShell commands are provided to set up the test lab quickly. You do not need to be an expert in Windows PowerShell to complete the steps in the guide, however you are required to customize some commands to fit your environment. - -Instructions to "type" Windows PowerShell commands provided in this guide can be typed, but in most cases the preferred method is to copy and paste these commands. If you are not familiar with Hyper-V, review the [terminology](#appendix-b-terminology-in-this-guide) used in this guide before starting. +Hyper-V is installed, configured and used extensively in this guide. If you are not familiar with Hyper-V, review the [terminology](#appendix-b-terminology-in-this-guide) used in this guide before starting. ## In this guide -This guide contains instructions for three general procedures: Install Hyper-V, configure Hyper-V, and configure VMs. If you already have a computer running Hyper-V, you can use this computer and skip the first procedure. +This guide contains instructions for three general procedures: Install Hyper-V, configure Hyper-V, and configure VMs. If you already have a computer running Hyper-V, you can use this computer and skip the first procedure. In this case, virtual switch settings must be modified to match those used in this guide, or the steps can be modified to use your existing Hyper-V settings. After completing the instructions in this guide, you will have a PoC environment that enables you to test Windows 10 deployment procedures with current tools, as documented in subsequent guides. Links are provided to download trial versions of Windows Server 2012, Windows 10 Enterprise, and all deployment tools necessary to complete the lab. @@ -60,8 +58,8 @@ Topics and procedures in this guide are summarized in the following table. An es One computer that meets the hardware and software specifications below is required to complete the guide; A second computer is recommended to validate the upgrade process. -- Computer 1 is the computer you will use to run Hyper-V and host virtual machines. It is recommended that this computer have 16 GB or more of installed RAM and a multi-core processor. -- Computer 2 is a client computer from your corporate network that is shadow-copied to create a VM that can be added to the PoC environment. This procedure enables you to test a VM that is a mirror image of the computer on your network. If you do not have a computer to use for this simulation, you can download an evaluation VHD and use it to represent this computer. Subsequent guides use this computer to simulate Windows 10 replace and refresh scenarios, so the VM is required even if you cannot create this VM using computer 2. +- **Computer 1**: the computer you will use to run Hyper-V and host virtual machines. This computer should have 16 GB or more of installed RAM and a multi-core processor. +- **Computer 2**: a client computer from your corporate network. It is shadow-copied to create a VM that can be added to the PoC environment, enabling you to test a mirror image of a computer on your network. If you do not have a computer to use for this simulation, you can download an evaluation VHD and use it to represent this computer. Subsequent guides use this computer to simulate Windows 10 replace and refresh scenarios, so the VM is required even if you cannot create this VM using computer 2. Harware requirements are displayed below: @@ -81,7 +79,7 @@ Harware requirements are displayed below:

  • - + @@ -96,7 +94,7 @@ Harware requirements are displayed below: - + @@ -253,15 +251,7 @@ w10-enterprise.iso ### Convert PC to VM -If you have a PC available to convert to VM (computer 2): - -1. Sign in to computer 2 using an account with Administrator privileges. - ->You can use a local computer account, or a domain account with administrative rights if domain policy allows the use of cached credentials. After converting the computer to a VM, you must be able to sign in on this VM with Administrator rights while the VM is disconnected from the corporate network. - -2. [Determine the VM generation and partition type](#determine-the-vm-generation-and-partition-type) that is required. -3. Based on the VM generation and partition type, perform one of the following procedures: [Prepare a generation 1 VM](#prepare-a-generation-1-vm), [Prepare a generation 2 VM](#prepare-a-generation-2-vm), or [prepare a generation 1 VM from a GPT disk](#prepare-a-generation-1-vm-from-a-gpt-disk). - +
    **Description** This computer will run Hyper-V, the Hyper-V management tools, and the Hyper-V Windows PowerShell module.This computer is a Windows 7 or Windows 8/8.1 client on your corporate network that will be converted to a VHD for upgrade demonstration purposes.This computer is a Windows 7 or Windows 8/8.1 client on your corporate network that will be converted to a VM to demonstrate the upgrade process.
    **OS**
    **Architecture** 64-bitAny
    Note: Retaining applications and settings during the upgrade process requires that architecture (32 or 64-bit) is the same before and after the upgrade.
    Any
    Note: Retaining applications and settings requires that architecture (32 or 64-bit) is the same before and after the upgrade.
    **RAM**
    If you do not have a PC available to convert to VM, perform the following steps to download an evaluation VM:
      @@ -274,6 +264,16 @@ If you do not have a PC available to convert to VM, perform the following steps
    1. Rename **IE11 - Win7.vhd** to **w7.vhd** (do not rename the file to w7.vhdx).
    2. In step 5 of the [Configure Hyper-V](#configure-hyper-v) section, replace the VHD file name **w7.vhdx** with **w7.vhd**.
    +
    + +If you have a PC available to convert to VM (computer 2): + +1. Sign in to computer 2 using an account with Administrator privileges. + +>You can use a local computer account, or a domain account with administrative rights if domain policy allows the use of cached credentials. After converting the computer to a VM, you must be able to sign in on this VM with Administrator rights while the VM is disconnected from the corporate network. + +2. [Determine the VM generation and partition type](#determine-the-vm-generation-and-partition-type) that is required. +3. Based on the VM generation and partition type, perform one of the following procedures: [Prepare a generation 1 VM](#prepare-a-generation-1-vm), [Prepare a generation 2 VM](#prepare-a-generation-2-vm), or [prepare a generation 1 VM from a GPT disk](#prepare-a-generation-1-vm-from-a-gpt-disk). #### Determine the VM generation and partition type From 7ad6529cac618eec850a6dbf01f12066b792741f Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 18 Nov 2016 13:18:08 -0800 Subject: [PATCH 047/233] minor tweaks --- windows/deploy/windows-10-poc.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 1aa6dcb7dc..7cd92679cc 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -270,7 +270,7 @@ If you have a PC available to convert to VM (computer 2): 1. Sign in to computer 2 using an account with Administrator privileges. ->You can use a local computer account, or a domain account with administrative rights if domain policy allows the use of cached credentials. After converting the computer to a VM, you must be able to sign in on this VM with Administrator rights while the VM is disconnected from the corporate network. +>Important: the account used in this step must have local administrator privileges. You can use a local computer account, or a domain account with administrative rights if domain policy allows the use of cached credentials. After converting the computer to a VM, you must be able to sign in on this VM with Administrator rights while the VM is disconnected from the corporate network. 2. [Determine the VM generation and partition type](#determine-the-vm-generation-and-partition-type) that is required. 3. Based on the VM generation and partition type, perform one of the following procedures: [Prepare a generation 1 VM](#prepare-a-generation-1-vm), [Prepare a generation 2 VM](#prepare-a-generation-2-vm), or [prepare a generation 1 VM from a GPT disk](#prepare-a-generation-1-vm-from-a-gpt-disk). @@ -312,7 +312,16 @@ To determine the partition style, open a Windows PowerShell prompt on the PC and Get-WmiObject -Class Win32_DiskPartition | Select-Object -Property SystemName,Caption,Type
    -If the **Type** column does not indicate GPT, then the disk partition format is MBR ("Installable File System" = MBR). +If the **Type** column does not indicate GPT, then the disk partition format is MBR ("Installable File System" = MBR). In the following example, the disk is GPT: + +
    +PS C:\> Get-WmiObject -Class Win32_DiskPartition | Select-Object -Property SystemName,Caption,Type
    +
    +SystemName                           Caption                                 Type
    +----------                           -------                                 ----
    +USER-PC1                             Disk #0, Partition #0                   GPT: System
    +USER-PC1                             Disk #0, Partition #1                   GPT: Basic Data
    +
    On a computer running Windows 8 or later, you can also type **Get-Disk** at a Windows PowerShell prompt to discover the partition style. The default output of this cmdlet displays the partition style for all attached disks. Both commands are displayed below. In this example, the client computer is running Windows 8.1 and uses a GPT style partition format: @@ -492,6 +501,10 @@ Notes:
    ### Resize VHD +**Important**: You should take advantage of [enhanced session mode](https://technet.microsoft.com/windows-server-docs/compute/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect) when completing instructions in this guide. Enhanced session mode enables you to copy and paste the commands from the Hyper-V host to VMs, between VMs, and between RDP sessions. After copying some text, you can paste into a Windows PowerShell window by simply right-clicking. Before right-clicking, do not left click other locations as this can empty the clipboard. You can also copy and paste files directly from one computer to another by right-clicking and selecting copy on one computer, then right-clicking and selecting paste on another computer. + +As mentioned previously: instructions to "type" commands provided in this guide can be typed, but the preferred method is to copy and paste these commands. Most of the commands to this point in the guide have been brief, but many commands in sections below are longer and more complex. + The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to 80GB to support installing imaging tools and storing OS images. 1. To add available space for the partition, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: @@ -511,10 +524,6 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to ### Configure Hyper-V -**Important**: You should take advantage of [enhanced session mode](https://technet.microsoft.com/windows-server-docs/compute/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect) when completing instructions in this guide. Enhanced session mode enables you to copy and paste the commands from the Hyper-V host to VMs and between VMs. After copying some text, you can paste into a Windows PowerShell window by simply right-clicking. Before right-clicking, do not left click other locations as this can empty the clipboard. You can also copy and paste files directly from one computer to another by right-clicking and selecting copy on one computer, then right-clicking and selecting paste on another computer. - -As mentioned previously: instructions to "type" commands provided in this guide can be typed, but the preferred method is to copy and paste these commands. - 1. Open an elevated Windows PowerShell window and type the following command to create two virtual switches named "poc-internal" and "poc-external": >If the Hyper-V host already has an external virtual switch bound to a physical NIC, do not attempt to add a second external virtual switch. Attempting to add a second external switch will result in an error indicating that the NIC is **already bound to the Microsoft Virtual Switch protocol.** In this case, choose one of the following options:
    From 45cff09c1268340b07f29ad237a9bb47e4884a59 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 18 Nov 2016 16:00:24 -0800 Subject: [PATCH 048/233] finished one guide.. --- windows/deploy/windows-10-poc.md | 96 ++++++++++++++++---------------- 1 file changed, 47 insertions(+), 49 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 7cd92679cc..5bf7861466 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -253,7 +253,7 @@ w10-enterprise.iso
    If you do not have a PC available to convert to VM, perform the following steps to download an evaluation VM: - +
    1. Open the [Download virtual machines](https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/) page.
    2. Under **Virtual machine**, choose **IE11 on Win7**. @@ -268,9 +268,9 @@ If you do not have a PC available to convert to VM, perform the following steps If you have a PC available to convert to VM (computer 2): -1. Sign in to computer 2 using an account with Administrator privileges. +1. Sign in on computer 2 using an account with Administrator privileges. ->Important: the account used in this step must have local administrator privileges. You can use a local computer account, or a domain account with administrative rights if domain policy allows the use of cached credentials. After converting the computer to a VM, you must be able to sign in on this VM with Administrator rights while the VM is disconnected from the corporate network. +>Important: the account used in this step must have local administrator privileges. You can use a local computer account, or a domain account with administrative rights if domain policy allows the use of cached credentials. After converting the computer to a VM, you must be able to sign in on this VM with administrator rights while the VM is disconnected from the corporate network. 2. [Determine the VM generation and partition type](#determine-the-vm-generation-and-partition-type) that is required. 3. Based on the VM generation and partition type, perform one of the following procedures: [Prepare a generation 1 VM](#prepare-a-generation-1-vm), [Prepare a generation 2 VM](#prepare-a-generation-2-vm), or [prepare a generation 1 VM from a GPT disk](#prepare-a-generation-1-vm-from-a-gpt-disk). @@ -615,7 +615,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
           New-VM -Name "PC1" -VHDPath c:\vhd\s.vhd -SwitchName poc-internal
           Add-VMHardDiskDrive -VMName PC1 -Path c:\vhd\w7.vhd
      -    Add-VMDvdDrive -VMName PC1 -Path c:\vhd\w10-enterprise.iso
      +    Set-VMDvdDrive -VMName PC1 -Path c:\vhd\w10-enterprise.iso
           Set-VMMemory -VMName "PC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20
           Enable-VMIntegrationService -Name "Guest Service Interface" -VMName PC1
           Start-VM PC1
      @@ -638,25 +638,21 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
           7. Type **exit**.
           8. Click **Continue**. Do not press a key to boot from the DVD again. The VM will boot into the OS partition that was exported to c:\vhd\w7.vhd.
           9. On the PC1 virtual machine connection menu, click **Media**, point to **DVD drive**, and then click **Eject w10-enterprise.iso**.
      +    10. In the upper left corner click **Ctrl+Alt+Del** and then in the bottom right corner click **Shut down**.
           
       ### Configure VMs 
       
      -1. At an elevated Windows PowerShell prompt on the Hyper-V host, start the first Windows Server VM by typing the following command:
      +1. At an elevated Windows PowerShell prompt on the Hyper-V host, start the first Windows Server VM and connect to it by typing the following commands:
       
           
           Start-VM DC1
      -    
      - -2. Wait for the VM to complete starting up, and then connect to it either using the Hyper-V Manager console (virtmgmt.msc) or using an elevated command prompt on the Hyper-V host: - -
           vmconnect localhost DC1
           
      -3. Click **Next** to accept the default settings, read the license terms and click **I accept**, provide an administrator password of **pass@word1**, and click **Finish**. -4. Click the **Ctrl+Alt+Del** button in the upper left corner of the virtual machine connection window, and then sign in to DC1 using the local administrator account. -5. Right-click **Start**, point to **Shut down or sign out**, and click **Sign out**. The VM connection will reset and a new connection dialog box will appear enabling you to choose a custom display configuration. Select a desktop size, click **Connect** and sign in again with the local Administrator account. Note: Signing in this way ensures that [enhanced session mode](https://technet.microsoft.com/windows-server-docs/compute/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect) is enabled. It is only necessary to do this the first time you sign in to a new VM. -6. If DC1 is configured as described in this guide, it will currently be assigned an APIPA address, have a randomly generated hostname, and a single network adapter named "Ethernet." Open an elevated Windows PowerShell prompt on DC1 and type or paste the following commands to provide a new hostname and configure a static IP address and gateway: +2. Click **Next** to accept the default settings, read the license terms and click **I accept**, provide an administrator password of **pass@word1**, and click **Finish**. +3. Click **Ctrl+Alt+Del** in the upper left corner of the virtual machine connection window, and then sign in to DC1 using the Administrator account. +4. Right-click **Start**, point to **Shut down or sign out**, and click **Sign out**. The VM connection will reset and a new connection dialog box will appear enabling you to choose a custom display configuration. Select a desktop size, click **Connect** and sign in again with the local Administrator account. Note: Signing in this way ensures that [enhanced session mode](https://technet.microsoft.com/windows-server-docs/compute/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect) is enabled. It is only necessary to do this the first time you sign in to a new VM. +5. If DC1 is configured as described in this guide, it will currently be assigned an APIPA address, have a randomly generated hostname, and a single network adapter named "Ethernet." Open an elevated Windows PowerShell prompt on DC1 and type or paste the following commands to provide a new hostname and configure a static IP address and gateway:
           Rename-Computer DC1
      @@ -666,19 +662,21 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
       
           >The default gateway at 192.168.0.2 will be configured later in this guide.
       
      -7. Install the Active Directory Domain Services role by typing the following command at an elevated Windows PowerShell prompt:
      +    >Note: A list of available tasks for an app will be populated the first time you run it on the taskbar. Because these tasks aren't available until the App has been run, you will not see the Run as Administrator task until you have left-clicked Windows PowerShell for the first time. In this newly created VM, you will need to left-click Windows PowerShell one time, and then you can right-click and choose Run as Administrator to open an elevated Windows PowerShell prompt.
      +
      +6. Install the Active Directory Domain Services role by typing the following command at an elevated Windows PowerShell prompt:
       
           
           Install-WindowsFeature -Name AD-Domain-Services -IncludeAllSubFeature -IncludeManagementTools
           
      -8. Before promoting DC1 to a Domain Controller, you must reboot so that the name change in step 3 above takes effect. To restart the computer, type the following command at an elevated Windows PowerShell prompt: +7. Before promoting DC1 to a Domain Controller, you must reboot so that the name change in step 3 above takes effect. To restart the computer, type the following command at an elevated Windows PowerShell prompt:
           Restart-Computer
           
      -9. When DC1 has rebooted, sign in again and open an elevated Windows PowerShell prompt. Now you can promote the server to be a domain controller. The directory services restore mode password must be entered as a secure string. Type the following commands at the elevated Windows PowerShell prompt: +8. When DC1 has rebooted, sign in again and open an elevated Windows PowerShell prompt. Now you can promote the server to be a domain controller. The directory services restore mode password must be entered as a secure string. Type the following commands at the elevated Windows PowerShell prompt:
           $pass = "pass@word1" | ConvertTo-SecureString -AsPlainText -Force
      @@ -687,7 +685,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
       
           Ignore any warnings that are displayed. The computer will automatically reboot upon completion.
       
      -10. When the reboot has completed, reconnect to DC1, sign in using the CONTOSO\Administrator account, open an elevated Windows PowerShell prompt, and use the following commands to add a reverse lookup zone for the PoC network, add the DHCP Server role, authorize DHCP in Active Directory, and supress the post-DHCP-install alert:
      +9. When the reboot has completed, reconnect to DC1, sign in using the CONTOSO\Administrator account, open an elevated Windows PowerShell prompt, and use the following commands to add a reverse lookup zone for the PoC network, add the DHCP Server role, authorize DHCP in Active Directory, and supress the post-DHCP-install alert:
       
           
           Add-DnsServerPrimaryZone -NetworkID "192.168.0.0/24" -ReplicationScope Forest
      @@ -698,7 +696,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
           Set-ItemProperty –Path registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\Roles\12 –Name ConfigurationState –Value 2
           
      -11. Next, add a DHCP scope and set option values: +10. Next, add a DHCP scope and set option values:
           Add-DhcpServerv4Scope -Name "PoC Scope" -StartRange 192.168.0.100 -EndRange 192.168.0.199 -SubnetMask 255.255.255.0 -Description "Windows 10 PoC" -State Active
      @@ -706,13 +704,13 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
           
      >The -Force option is necessary when adding scope options to skip validation of 192.168.0.2 as a DNS server because we have not configured it yet. The scope should immediately begin issuing leases on the PoC network. The first DHCP lease that will be issued is to vEthernet interface on the Hyper-V host, which is a member of the internal network. You can verify this by using the command: Get-DhcpServerv4Lease -ScopeId 192.168.0.0. -12. Add a user account to the contoso.com domain that can be used with client computers: +11. Add a user account to the contoso.com domain that can be used with client computers:
           New-ADUser -Name "User1" -UserPrincipalName user1 -AccountPassword (ConvertTo-SecureString "pass@word1" -AsPlainText -Force) -ChangePasswordAtLogon $false -Enabled $true
           
      -13. The DNS server role will also be installed on the member server, SRV1, at 192.168.0.2 so that we can forward DNS queries from DC1 to SRV1 to resolve Internet names without having to configure a forwarder outside the PoC network. Since the IP address of SRV1 already exists on DC1's network adapter, it will be automatically added during the DCPROMO process. To verify this server-level DNS forwarder on DC1, type the following command at an elevated Windows PowerShell prompt on DC1: +12. The DNS server role will also be installed on the member server, SRV1, at 192.168.0.2 so that we can forward DNS queries from DC1 to SRV1 to resolve Internet names without having to configure a forwarder outside the PoC network. Since the IP address of SRV1 already exists on DC1's network adapter, it will be automatically added during the DCPROMO process. To verify this server-level DNS forwarder on DC1, type the following command at an elevated Windows PowerShell prompt on DC1:
           Get-DnsServerForwarder
      @@ -734,30 +732,30 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
           Add-DnsServerForwarder -IPAddress 192.168.0.2
           
      -14. Minimize the DC1 VM window but **do not stop** the VM. +13. Minimize the DC1 VM window but **do not stop** the VM. Next, the client VM will be started and joined to the contoso.com domain. This is done before adding a gateway to the PoC network so that there is no danger of duplicate DNS registrations for the physical client and its cloned VM in the corporate domain. -15. If the PC1 VM is not started yet, using an elevated Windows PowerShell prompt on the Hyper-V host, start the client VM (PC1), and connect to it: +14. If the PC1 VM is not started yet, using an elevated Windows PowerShell prompt on the Hyper-V host, start the client VM (PC1), and connect to it:
           Start-VM PC1
           vmconnect localhost PC1
           
      -16. Sign in to PC1 using an account that has local administrator rights. +15. Sign in to PC1 using an account that has local administrator rights. >PC1 will be disconnected from its current domain, so you cannot use a domain account to sign on unless these credentials are cached and the use of cached credentials is permitted by Group Policy. If cached credentials are available and permitted, you can use these credentials to sign in. Otherwise, use an existing local administrator account. -17. After signing in, the operating system detects that it is running in a new environment. New drivers will be automatically installed, including the network adapter driver. The network adapter driver must be updated before you can proceed, so that you will be able to join the contoso.com domain. Depending on the resources allocated to PC1, installing the network adapter driver might take a few minutes. You can monitor device driver installation by clicking **Show hidden icons** in the notification area. +16. After signing in, the operating system detects that it is running in a new environment. New drivers will be automatically installed, including the network adapter driver. The network adapter driver must be updated before you can proceed, so that you will be able to join the contoso.com domain. Depending on the resources allocated to PC1, installing the network adapter driver might take a few minutes. You can monitor device driver installation by clicking **Show hidden icons** in the notification area. ![PoC](images/installing-drivers.png) >If the client was configured with a static address, you must change this to a dynamic one so that it can obtain a DHCP lease. -18. When the new network adapter driver has completed installation, you will receive an alert to set a network location for the contoso.com network. Select **Work network** and then click **Close**. When you receive an alert that a restart is required, click **Restart Later**. +17. When the new network adapter driver has completed installation, you will receive an alert to set a network location for the contoso.com network. Select **Work network** and then click **Close**. When you receive an alert that a restart is required, click **Restart Later**. -19. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. +18. Open an elevated Windows PowerShell prompt on PC1 and verify that the client VM has received a DHCP lease and can communicate with the consoto.com domain controller. To open Windows PowerShell on Windows 7, click **Start**, and search for "**power**." Right-click **Windows PowerShell** and then click **Pin to Taskbar** so that it is simpler to use Windows Powershell during this lab. Click **Windows PowerShell** on the taskbar, and then type **ipconfig** at the prompt to see the client's current IP address. Also type **ping dc1.contoso.com** and **nltest /dsgetdc:contoso.com** to verify that it can reach the domain controller. See the following examples of a successful network connection: @@ -794,7 +792,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to >If PC1 is running Windows 7, enhanced session mode might not be available, which means that you cannot copy and paste commands from the Hyper-V host to a Windows PowerShell prompt on PC1. However, it is possible to use integration services to copy a file from the Hyper-V host to a VM. The next procedure demonstrates this. If the Copy-VMFile command fails, then type the commands below at an elevated Windows PowerShell prompt on PC1 instead of saving them to a script to run remotely. If PC1 is running Windows 8 or a later operating system, you can use enhanced session mode to copy and paste these commands instead of typing them. -20. Minimize the PC1 window and switch to the Hyper-V host computer. Open an elevated Windows PowerShell ISE window on the Hyper-V host (right-click Windows PowerShell and then click Run ISE as Administrator) and type the following commands in the (upper) script editor pane: +19. Minimize the PC1 window and switch to the Hyper-V host computer. Open an elevated Windows PowerShell ISE window on the Hyper-V host (right-click Windows PowerShell and then click **Run ISE as Administrator**) and type the following commands in the (upper) script editor pane:
           (Get-WmiObject Win32_ComputerSystem).UnjoinDomainOrWorkgroup($null,$null,0)
      @@ -811,8 +809,8 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
       
           ![ISE](images/ISE.png)
       
      -21. Click **File**, click **Save As**, and save the commands as **c:\VHD\pc1.ps1** on the Hyper-V host.
      -22. In the (lower) terminal input window, type the following command to copy the script to PC1 using integration services:
      +20. Click **File**, click **Save As**, and save the commands as **c:\VHD\pc1.ps1** on the Hyper-V host.
      +21. In the (lower) terminal input window, type the following command to copy the script to PC1 using integration services:
       
           
           Copy-VMFile "PC1" –SourcePath "C:\VHD\pc1.ps1"  –DestinationPath "C:\pc1.ps1" –CreateFullPath –FileSource Host
      @@ -820,27 +818,27 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
       
           >In order for this command to work properly, PC1 must be running the vmicguestinterface (Hyper-V Guest Service Interface) service. If this service is not installed, you can try updating integration services on the VM. This can be done by mounting the Hyper-V Integration Services Setup (vmguest.iso), which is located in C:\Windows\System32 on Windows Server operating systems that are running the Hyper-V role service. Otherwise, just create the file c:\pc1.ps1 on the VM and type the commands into this file manually. Be sure to save the file as a Windows PowerShell script file with the .ps1 extension and not as a text (.txt) file.
       
      -23. On PC1, type the following commands at an elevated Windows PowerShell prompt:
      +22. On PC1, type the following commands at an elevated Windows PowerShell prompt:
       
           
           Get-Content c:\pc1.ps1 | powershell.exe -noprofile - 
           
      - >PC1 is removed from its domain in this step while not connected to the corporate network so as to ensure the computer object in the corporate domain is unaffected. We have not also renamed PC1 to "PC1" in system properties so that it maintains some of its mirrored identity. However, if desired you can also rename the computer. + >The commands might take a few moments to complete. If an error is displayed, check that you typed the command correctly, paying close attention to spaces. PC1 is removed from its domain in this step while not connected to the corporate network so as to ensure the computer object in the corporate domain is unaffected. PC1 is also not renamed to "PC1" in system properties so that it maintains some of its mirrored identity. However, if desired you can also rename the computer. -24. The script will take a minute or two to run. After PC1 restarts, sign in to the contoso.com domain using the **Switch User** option, with the **user1** account you created in step 11 of this section. +23. After PC1 restarts, sign in to the contoso.com domain using the **Switch User** option, with the **user1** account you created in step 11 of this section. >The settings that will be used to migrate user data specifically select only accounts that belong to the CONTOSO domain. If you wish to test migration of user data and settings with an account other than the user1 account, you must copy this account's profile to the user1 profile. -25. Minimize the PC1 window but do not turn it off while the second Windows Server 2012 R2 VM (SRV1) is configured. This verifies that the Hyper-V host has enough resources to run all VMs simultaneously. Next, SRV1 will be started, joined to the contoso.com domain, and configured with RRAS and DNS services. -26. On the Hyper-V host computer, at an elevated Windows PowerShell prompt, type the following commands: +24. Minimize the PC1 window but do not turn it off while the second Windows Server 2012 R2 VM (SRV1) is configured. This verifies that the Hyper-V host has enough resources to run all VMs simultaneously. Next, SRV1 will be started, joined to the contoso.com domain, and configured with RRAS and DNS services. +25. On the Hyper-V host computer, at an elevated Windows PowerShell prompt, type the following commands:
           Start-VM SRV1
           vmconnect localhost SRV1
           
      -27. Accept the default settings, read license terms and accept them, provide an administrator password of **pass@word1**, and click **Finish**. When you are prompted about finding PCs, devices, and content on the network, click **Yes**. -28. Sign in to SRV1 using the local administrator account. In the same way that was done on DC1, sign out of SRV1 and then sign in again to enable enhanced session mode. This will enable you to copy and paste Windows PowerShell commands from the Hyper-V host to the VM. -29. Open an elevated Windows PowerShell prompt on SRV1 and type the following commands: +26. Accept the default settings, read license terms and accept them, provide an administrator password of **pass@word1**, and click **Finish**. When you are prompted about finding PCs, devices, and content on the network, click **Yes**. +27. Sign in to SRV1 using the local administrator account. In the same way that was done on DC1, sign out of SRV1 and then sign in again to enable enhanced session mode. This will enable you to copy and paste Windows PowerShell commands from the Hyper-V host to the VM. +28. Open an elevated Windows PowerShell prompt on SRV1 and type the following commands:
           Rename-Computer SRV1
      @@ -849,9 +847,9 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
           Restart-Computer
           
      -30. Wait for the computer to restart, then type or paste the following commands at an elevated Windows PowerShell prompt: +29. Wait for the computer to restart, sign in again, then type the following commands at an elevated Windows PowerShell prompt: -
        
      +    
           $pass = "pass@word1" | ConvertTo-SecureString -AsPlainText -Force
           $user = "contoso\administrator"
           $cred = New-Object System.Management.Automation.PSCredential($user,$pass)
      @@ -859,7 +857,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
           Restart-Computer
           
      -31. Sign in to the contoso.com domain on SRV1 using the domain administrator account (enter contoso\administrator as the user), open an elevated Windows PowerShell prompt, and type the following commands: +30. Sign in to the contoso.com domain on SRV1 using the domain administrator account (enter contoso\administrator as the user), open an elevated Windows PowerShell prompt, and type the following commands:
           Install-WindowsFeature -Name DNS -IncludeManagementTools
      @@ -867,7 +865,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
           Install-WindowsFeature -Name Routing -IncludeManagementTools
           
      -32. Before configuring the routing service that was just installed, verify that network interfaces were added to SRV1 in the right order, resulting in an interface alias of "Ethernet" for the private interface, and an interface alias of "Ethernet 2" for the public interface. Also verify that the external interface has a valid external DHCP IP address lease. +31. Before configuring the routing service that was just installed, verify that network interfaces were added to SRV1 in the right order, resulting in an interface alias of "Ethernet" for the private interface, and an interface alias of "Ethernet 2" for the public interface. Also verify that the external interface has a valid external DHCP IP address lease. To view a list of interfaces, associated interface aliases, and IP addresses on SRV1, type the following Windows PowerShell command. Example output of the command is also shown below: @@ -882,7 +880,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to In this example, the poc-internal network interface at 192.168.0.2 is associated with the "Ethernet" interface and the Internet-facing poc-external interface is associated with the "Ethernet 2" interface. If your interfaces are different, you must adjust the commands provided in the next step appropriately to configure routing services. -33. To configure SRV1 with routing capability for the PoC network, type or paste the following commands at an elevated Windows PowerShell prompt on SRV1: +32. To configure SRV1 with routing capability for the PoC network, type or paste the following commands at an elevated Windows PowerShell prompt on SRV1:
           Install-RemoteAccess -VpnType Vpn
      @@ -892,13 +890,13 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
           cmd /c netsh routing ip nat add interface name="Internal" mode=PRIVATE
           
      -34. The DNS service on SRV1 also needs to resolve hosts in the contoso.com domain. This can be accomplished with a conditional forwarder. Open an elevated Windows PowerShell prompt on SRV1 and type the following command: +33. The DNS service on SRV1 also needs to resolve hosts in the contoso.com domain. This can be accomplished with a conditional forwarder. Open an elevated Windows PowerShell prompt on SRV1 and type the following command:
           Add-DnsServerConditionalForwarderZone -Name contoso.com -MasterServers 192.168.0.1
           
      -35. In most cases, this completes configuration of the PoC network. However, if your corporate network has a firewall that filters queries from local DNS servers, you will also need to configure a server-level DNS forwarder on SRV1 to resolve Internet names. To test whether or not DNS is working without this forwarder, try to reach a name on the Internet from DC1 or PC1, which are only using DNS services on the PoC network. You can test DNS with the ping command, for example: +34. In most cases, this completes configuration of the PoC network. However, if your corporate network has a firewall that filters queries from local DNS servers, you will also need to configure a server-level DNS forwarder on SRV1 to resolve Internet names. To test whether or not DNS is working without this forwarder, try to reach a name on the Internet from DC1 or PC1, which are only using DNS services on the PoC network. You can test DNS with the ping command, for example:
           ping www.microsoft.com
      @@ -912,7 +910,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
           Add-DnsServerForwarder -IPAddress (Get-DnsClientServerAddress -InterfaceAlias "Ethernet 2").ServerAddresses
           
      -36. If DNS and routing are both working correctly, you will see the following on DC1 and PC1: +35. If DNS and routing are both working correctly, you will see the following on DC1 and PC1 (the IP address might be different, but that is OK):
           PS C:\> ping www.microsoft.com
      @@ -929,11 +927,11 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
               Minimum = 1ms, Maximum = 3ms, Average = 2ms
           
      -37. Verify that all three VMs can reach each other, and the Internet. See [Appendix A: Verify the configuration](#appendix-b-verify-the-configuration) for more information. -38. Lastly, because the client computer has different hardware after copying it to a VM, its Windows activation will be invalidated and you might receive a message that you must activate Windows in 3 days. To extend this period to 30 days, type the following commands at an elevated Windows PowerShell prompt on PC1: +36. Verify that all three VMs can reach each other, and the Internet. See [Appendix A: Verify the configuration](#appendix-b-verify-the-configuration) for more information. +37. Lastly, because the client computer has different hardware after copying it to a VM, its Windows activation will be invalidated and you might receive a message that you must activate Windows in 3 days. To extend this period to 30 days, type the following commands at an elevated Windows PowerShell prompt on PC1:
      -    slmgr -rearm
      +    runas /noprofile /env /user:administrator@contoso.com "cmd slmgr -rearm"
           Restart-Computer
           
      From db85093e4a54f345dc9dd2ea66407065fe7345f9 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 18 Nov 2016 16:16:47 -0800 Subject: [PATCH 049/233] finished one guide.. --- windows/deploy/windows-10-poc-mdt.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 05589e281d..f182004d72 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -14,7 +14,7 @@ author: greg-lindsay - Windows 10 -**Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md). Please complete all steps in the prerequisite guide before attempting the procedures in this guide. +**Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md). Please complete all steps in the prerequisite guide before attempting the procedures in this guide. The PoC environment is a virtual network running on Hyper-V with three virtual machines: - **DC1**: A contoso.com domain controller, DNS server, and DHCP server. @@ -25,7 +25,7 @@ This guide leverages the Hyper-V server role to perform procedures. If you do no ## In this guide -Description here. +This guide provides instructions to install and configure the Microsoft Deployment Toolkit (MDT) to deploy a Windows 10 image. ## Install the Microsoft Deployment Toolkit (MDT) From aadbb583aaba9fbf02d80fcd142a8a8035cf8749 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 21 Nov 2016 10:08:22 -0800 Subject: [PATCH 050/233] . --- windows/deploy/windows-10-poc-mdt.md | 4 ++-- windows/deploy/windows-10-poc.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index f182004d72..c742bfebed 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -1,5 +1,5 @@ --- -title: Placeholder (Windows 10) +title: Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit description: Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit ms.prod: w10 ms.mktglfcycl: deploy @@ -19,7 +19,7 @@ author: greg-lindsay The PoC environment is a virtual network running on Hyper-V with three virtual machines: - **DC1**: A contoso.com domain controller, DNS server, and DHCP server. - **SRV1**: A dual-homed contoso.com domain member server, DNS server, and default gateway providing NAT service for the PoC network. -- **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been cloned from a physical computer on your corporate network for testing purposes. +- **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been shadow-copied from a physical computer on your corporate network for use in this guide. This guide leverages the Hyper-V server role to perform procedures. If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 5bf7861466..3a5e667ef5 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -1,5 +1,5 @@ --- -title: Deploy Windows 10 in a test lab (Windows 10) +title: Configure a test lab to deploy Windows 10 description: Concepts and procedures for deploying Windows 10 in a proof of concept lab environment. ms.prod: w10 ms.mktglfcycl: deploy From 806f1cb303d6c642aad36b312f969a8e4aaa52f5 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 21 Nov 2016 15:58:25 -0800 Subject: [PATCH 051/233] . --- windows/deploy/windows-10-poc-mdt.md | 4 ++-- windows/deploy/windows-10-poc.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index c742bfebed..c3d260d53c 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -1,6 +1,6 @@ --- -title: Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit -description: Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit +title: Step by step: Deploy Windows 10 in a test lab using MDT +description: Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit (MDT) ms.prod: w10 ms.mktglfcycl: deploy ms.sitesec: library diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 3a5e667ef5..4e2ab3dd85 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -17,8 +17,8 @@ author: greg-lindsay

      The following guides provide step-by-step instructions for IT administrators to test Windows 10 deployment procedures in a proof of concept (PoC) environment: - (This guide) Step by step guide: Configure a test lab to deploy Windows 10.
      -- [Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md).
      -- [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md).
      +- [Step by step: Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md).
      +- [Step by step: Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md).
      This guide contains instructions to configure a PoC/test environment using Hyper-V that requires a minimum amount of resources. Subsequent companion guides contain steps to deploy Windows 10 using this environment. Approximately 3 hours are required to configure the PoC environment. You will need a Hyper-V capable computer running Windows 8.1 or later with at least 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. From 4e287d56f4efb2fd2d4d1ad39b0f56c83f988c07 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 22 Nov 2016 13:10:52 -0800 Subject: [PATCH 052/233] . --- windows/deploy/windows-10-poc-mdt.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index c3d260d53c..1b561e224a 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -14,7 +14,7 @@ author: greg-lindsay - Windows 10 -**Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md). Please complete all steps in the prerequisite guide before attempting the procedures in this guide. +**Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md). Please complete all steps in the prerequisite guide before starting this guide. The PoC environment is a virtual network running on Hyper-V with three virtual machines: - **DC1**: A contoso.com domain controller, DNS server, and DHCP server. @@ -49,14 +49,14 @@ This guide provides instructions to install and configure the Microsoft Deployme ## Create a deployment share and reference image -1. In [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md) the Windows 10 Enterprise .iso file was saved to the c:\VHD directory as **c:\VHD\w10-enterprise.iso**. The first step in creating a deployment share is to mount this file on SRV1. To mount the Windows 10 Enterprise DVD on SRV1, open an elevated Windows PowerShell prompt on the Hyper-V host computer and type the following command: +1. In [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md), the Windows 10 Enterprise .iso file was saved to the c:\VHD directory as **c:\VHD\w10-enterprise.iso**. The first step in creating a deployment share is to mount this file on SRV1. To mount the Windows 10 Enterprise DVD on SRV1, open an elevated Windows PowerShell prompt on the Hyper-V host computer and type the following command: ``` Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\w10-enterprise.iso ``` -2. Connect to SRV1 and verify that the Windows Enterprise installation DVD is mounted as drive letter D. +2. On SRV1, verify that the Windows Enterprise installation DVD is mounted as drive letter D. -3. The Windows 10 Enterprise installation files will be used to create a deployment share on SRV1 using the MDT deployment workbench. To open the deployment workbench, click **Start**, type **deployment**, and then click **Deployment Workbench**. +3. The Windows 10 Enterprise installation files will be used to create a deployment share on SRV1 using the MDT deployment workbench. To open the deployment workbench, click **Start**, type **deployment**, and then click **Deployment Workbench**. Note: To enable quick access to the application, right-click **Deployment Workbench** on the taskbar and then click **Pin this program to the taskbar**. 4. In the Deployment Workbench console, right-click **Deployment Shares** and select **New Deployment Share**. @@ -69,19 +69,22 @@ This guide provides instructions to install and configure the Microsoft Deployme - Progress: settings will be applied
      - Confirmation: click **Finish** -6. Expand the Deployment Shares node, and then expand MDT build lab. -7. Right-click the Operating Systems node, and then click New Folder. Name the new folder **Windows 10**. Complete the wizard using default values and click **Finish**. +6. Expand the **Deployment Shares** node, and then expand **MDT build lab**. -7. Right-click the Windows 10 folder created in the previous step, and then click **Import Operating System**. +7. Right-click the **Operating Systems** node, and then click **New Folder**. Name the new folder **Windows 10**. Complete the wizard using default values and click **Finish**. + +7. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. 8. Use the following settings for the Import Operating System Wizard: - OS Type: **Full set of source files**
      - Source: **D:\\**
      - Destination: **W10Ent_x64**
      - Summary: click **Next** + - Progress: wait for files to be copied - Confirmation: click **Finish** + 9. For purposes of this test lab, we will not add applications (such as Microsoft Office) to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. 10. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: From 53a4950d9c5f141bf3ced12e457c11c7bf2d4729 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 22 Nov 2016 13:16:39 -0800 Subject: [PATCH 053/233] . --- windows/deploy/windows-10-poc-mdt.md | 57 +++++++++++++++------------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 1b561e224a..5c2849f06d 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -56,11 +56,13 @@ This guide provides instructions to install and configure the Microsoft Deployme ``` 2. On SRV1, verify that the Windows Enterprise installation DVD is mounted as drive letter D. -3. The Windows 10 Enterprise installation files will be used to create a deployment share on SRV1 using the MDT deployment workbench. To open the deployment workbench, click **Start**, type **deployment**, and then click **Deployment Workbench**. Note: To enable quick access to the application, right-click **Deployment Workbench** on the taskbar and then click **Pin this program to the taskbar**. +3. The Windows 10 Enterprise installation files will be used to create a deployment share on SRV1 using the MDT deployment workbench. To open the deployment workbench, click **Start**, type **deployment**, and then click **Deployment Workbench**. -4. In the Deployment Workbench console, right-click **Deployment Shares** and select **New Deployment Share**. +4. To enable quick access to the application, right-click **Deployment Workbench** on the taskbar and then click **Pin this program to the taskbar**. -5. Use the following settings for the New Deployment Share Wizard: +5. In the Deployment Workbench console, right-click **Deployment Shares** and select **New Deployment Share**. + +6. Use the following settings for the New Deployment Share Wizard: - Deployment share path: **C:\MDTBuildLab**
      - Share name: **MDTBuildLab$**
      - Deployment share description: **MDT build lab**
      @@ -70,13 +72,13 @@ This guide provides instructions to install and configure the Microsoft Deployme - Confirmation: click **Finish** -6. Expand the **Deployment Shares** node, and then expand **MDT build lab**. +7. Expand the **Deployment Shares** node, and then expand **MDT build lab**. -7. Right-click the **Operating Systems** node, and then click **New Folder**. Name the new folder **Windows 10**. Complete the wizard using default values and click **Finish**. +8. Right-click the **Operating Systems** node, and then click **New Folder**. Name the new folder **Windows 10**. Complete the wizard using default values and click **Finish**. -7. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. +9. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. -8. Use the following settings for the Import Operating System Wizard: +10. Use the following settings for the Import Operating System Wizard: - OS Type: **Full set of source files**
      - Source: **D:\\**
      - Destination: **W10Ent_x64**
      @@ -85,9 +87,9 @@ This guide provides instructions to install and configure the Microsoft Deployme - Confirmation: click **Finish** -9. For purposes of this test lab, we will not add applications (such as Microsoft Office) to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. +>For purposes of this test lab, we will not add applications (ex: Microsoft Office) to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. -10. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: +11. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: - Task sequence ID: **REFW10X64-001**
      - Task sequence name: **Windows 10 Enterprise x64 Default Image**
      - Task sequence comments: **Reference Build**
      @@ -101,24 +103,25 @@ This guide provides instructions to install and configure the Microsoft Deployme - Summary: click **Next** - Confirmation: click **Finish** -11. Edit the task sequence to add the Microsoft NET Framework 3.5, which is required by many applications. To edit the task sequence, double-click **Windows 10 Enterprise x64 Default Image** that was created in the previous step. -12. Click the **Task Sequence** tab. Under **State Restore** click **Tatto** to highlight it, then click **Add** and choose **New Group**. +12. Edit the task sequence to add the Microsoft NET Framework 3.5, which is required by many applications. To edit the task sequence, double-click **Windows 10 Enterprise x64 Default Image** that was created in the previous step. -13. On the Properties tab of the group that was created in the previous step, change the Name from New Group to **Custom Tasks (Pre-Windows Update)** and then click **Apply**. +13. Click the **Task Sequence** tab. Under **State Restore** click **Tatto** to highlight it, then click **Add** and choose **New Group**. -14. Click the **Custom Tasks (Pre-Windows Update)** group again, click **Add**, point to **Roles**, and then click **Install Roles and Features**. +14. On the Properties tab of the group that was created in the previous step, change the Name from New Group to **Custom Tasks (Pre-Windows Update)** and then click **Apply**. -15. Under **Select the roles and features that should be installed**, select **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** and then click **Apply**. +15. Click the **Custom Tasks (Pre-Windows Update)** group again, click **Add**, point to **Roles**, and then click **Install Roles and Features**. -16. Enable Windows Update in the task sequence by clicking the **Windows Update (Post-Application Installation)** step, clicking the **Options** tab, and clearing the **Disable this step** checkbox. +16. Under **Select the roles and features that should be installed**, select **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** and then click **Apply**. + +17. Enable Windows Update in the task sequence by clicking the **Windows Update (Post-Application Installation)** step, clicking the **Options** tab, and clearing the **Disable this step** checkbox. >Note: Since we are not installing applications in this test lab, there is no need to enable the Windows Update Pre-Application Installation step. However, you should enable this step if you are also installing applications. -17. Click **OK** to complete editing the task sequence. +18. Click **OK** to complete editing the task sequence. -18. The next step is to configure the MDT deployment share rules. To configure rules in the Deployment Workbench, right-click MDT build lab (C:\MDTBuildLab) and click **Properties**, and then click the **Rules** tab. +19. The next step is to configure the MDT deployment share rules. To configure rules in the Deployment Workbench, right-click MDT build lab (C:\MDTBuildLab) and click **Properties**, and then click the **Rules** tab. -19. Replace the default rules with the following text: +20. Replace the default rules with the following text: ``` [Settings] @@ -152,7 +155,7 @@ This guide provides instructions to install and configure the Microsoft Deployme SkipFinalSummary=YES ``` -20. Click **Apply** and then click **Edit Bootstrap.ini**. Replace the contents of the Bootstrap.ini file with the following text, and save the file: +21. Click **Apply** and then click **Edit Bootstrap.ini**. Replace the contents of the Bootstrap.ini file with the following text, and save the file: ``` [Settings] @@ -166,17 +169,17 @@ This guide provides instructions to install and configure the Microsoft Deployme SkipBDDWelcome=YES ``` -21. Click **OK** to complete the configuration of the deployment share. +22. Click **OK** to complete the configuration of the deployment share. -22. Right-click **MDT build lab (C:\MDTBuildLab)** and then click **Update Deployment Share**. +23. Right-click **MDT build lab (C:\MDTBuildLab)** and then click **Update Deployment Share**. -23. Accept all default values in the Update Deployment Share Wizard by clicking **Next**. The update process will take 5 to 10 minutes. When it has completed, click **Finish**. +24. Accept all default values in the Update Deployment Share Wizard by clicking **Next**. The update process will take 5 to 10 minutes. When it has completed, click **Finish**. -24. Copy **c:\MDTBuildLab\Boot\LiteTouchPE_x86.iso** on SRV1 to the **c:\VHD** directory on the Hyper-V host computer. Note that in MDT, the x86 boot image can deploy both x86 and x64 operating systems, except on computers based on Unified Extensible Firmware Interface (UEFI). +25. Copy **c:\MDTBuildLab\Boot\LiteTouchPE_x86.iso** on SRV1 to the **c:\VHD** directory on the Hyper-V host computer. Note that in MDT, the x86 boot image can deploy both x86 and x64 operating systems, except on computers based on Unified Extensible Firmware Interface (UEFI). >Hint: Top copy the file, right-click the **LiteTouchPE_x86.iso** file and click **Copy** on SRV1, then open the **c:\VHD** folder on the Hyper-V host, right-click inside the folder and click **Paste**. -25. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: +26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: ``` New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB @@ -185,9 +188,9 @@ This guide provides instructions to install and configure the Microsoft Deployme Start-VM REFW10X64-001 vmconnect localhost REFW10X64-001 ``` -26. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. +27. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. -27. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. +28. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. Additional system restarts will occur to complete updating and preparing the operating system. Setup will complete the following procedures: @@ -201,7 +204,7 @@ This guide provides instructions to install and configure the Microsoft Deployme This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server. The file name is **REFW10X64-001.wim**. - ## Deploy a Windows 10 image using MDT +## Deploy a Windows 10 image using MDT This procedure will demonstrate how to deploy the reference image to the PoC environment using MDT. From d244e9a3a6f443dcd62d021f6851c82e6263843b Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 22 Nov 2016 13:57:59 -0800 Subject: [PATCH 054/233] . --- windows/deploy/windows-10-poc-mdt.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 5c2849f06d..04f2f6bd8c 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -87,7 +87,7 @@ This guide provides instructions to install and configure the Microsoft Deployme - Confirmation: click **Finish** ->For purposes of this test lab, we will not add applications (ex: Microsoft Office) to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. +>For purposes of this test lab, we will only add the prerequisite .NET Framework feature. Commerical applications (ex: Microsoft Office) will not be added to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. 11. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: - Task sequence ID: **REFW10X64-001**
      @@ -104,22 +104,24 @@ This guide provides instructions to install and configure the Microsoft Deployme - Confirmation: click **Finish** + 12. Edit the task sequence to add the Microsoft NET Framework 3.5, which is required by many applications. To edit the task sequence, double-click **Windows 10 Enterprise x64 Default Image** that was created in the previous step. 13. Click the **Task Sequence** tab. Under **State Restore** click **Tatto** to highlight it, then click **Add** and choose **New Group**. -14. On the Properties tab of the group that was created in the previous step, change the Name from New Group to **Custom Tasks (Pre-Windows Update)** and then click **Apply**. +14. On the Properties tab of the group that was created in the previous step, change the Name from **New Group** to **Custom Tasks (Pre-Windows Update)** and then click **Apply**. Click another location in the window to see the name change. 15. Click the **Custom Tasks (Pre-Windows Update)** group again, click **Add**, point to **Roles**, and then click **Install Roles and Features**. 16. Under **Select the roles and features that should be installed**, select **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** and then click **Apply**. 17. Enable Windows Update in the task sequence by clicking the **Windows Update (Post-Application Installation)** step, clicking the **Options** tab, and clearing the **Disable this step** checkbox. + >Note: Since we are not installing applications in this test lab, there is no need to enable the Windows Update Pre-Application Installation step. However, you should enable this step if you are also installing applications. 18. Click **OK** to complete editing the task sequence. -19. The next step is to configure the MDT deployment share rules. To configure rules in the Deployment Workbench, right-click MDT build lab (C:\MDTBuildLab) and click **Properties**, and then click the **Rules** tab. +19. The next step is to configure the MDT deployment share rules. To configure rules in the Deployment Workbench, right-click **MDT build lab (C:\MDTBuildLab)** and click **Properties**, and then click the **Rules** tab. 20. Replace the default rules with the following text: @@ -173,7 +175,7 @@ This guide provides instructions to install and configure the Microsoft Deployme 23. Right-click **MDT build lab (C:\MDTBuildLab)** and then click **Update Deployment Share**. -24. Accept all default values in the Update Deployment Share Wizard by clicking **Next**. The update process will take 5 to 10 minutes. When it has completed, click **Finish**. +24. Accept all default values in the Update Deployment Share Wizard by clicking **Next** twice. The update process will take 5 to 10 minutes. When it has completed, click **Finish**. 25. Copy **c:\MDTBuildLab\Boot\LiteTouchPE_x86.iso** on SRV1 to the **c:\VHD** directory on the Hyper-V host computer. Note that in MDT, the x86 boot image can deploy both x86 and x64 operating systems, except on computers based on Unified Extensible Firmware Interface (UEFI). @@ -181,6 +183,7 @@ This guide provides instructions to install and configure the Microsoft Deployme 26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: + ``` New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20 @@ -188,6 +191,7 @@ This guide provides instructions to install and configure the Microsoft Deployme Start-VM REFW10X64-001 vmconnect localhost REFW10X64-001 ``` + 27. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. 28. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. From 206021c1e7729004fe899cba436ed957c7714a49 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 22 Nov 2016 14:22:06 -0800 Subject: [PATCH 055/233] . --- windows/deploy/windows-10-poc-mdt.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 04f2f6bd8c..fcb5c186ba 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -191,10 +191,10 @@ This guide provides instructions to install and configure the Microsoft Deployme Start-VM REFW10X64-001 vmconnect localhost REFW10X64-001 ``` - + 27. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. -28. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. +28. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes, and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. Additional system restarts will occur to complete updating and preparing the operating system. Setup will complete the following procedures: @@ -206,6 +206,7 @@ This guide provides instructions to install and configure the Microsoft Deployme - Capture the installation to a Windows Imaging (WIM) file. - Turn off the virtual machine. + This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server. The file name is **REFW10X64-001.wim**. ## Deploy a Windows 10 image using MDT From e1f85cae95287e0e83408867d54cc6e48c952efa Mon Sep 17 00:00:00 2001 From: Jan Backstrom Date: Thu, 1 Dec 2016 12:36:03 -0800 Subject: [PATCH 056/233] new content; Surface Wake On LAN --- devices/surface/TOC.md | 1 + devices/surface/change-history-for-surface.md | 6 ++ devices/surface/update.md | 1 + .../wake-on-lan-for-surface-devices.md | 55 +++++++++++++++++++ 4 files changed, 63 insertions(+) create mode 100644 devices/surface/wake-on-lan-for-surface-devices.md diff --git a/devices/surface/TOC.md b/devices/surface/TOC.md index ee3fbbd2b8..e4fd6d25d3 100644 --- a/devices/surface/TOC.md +++ b/devices/surface/TOC.md @@ -13,6 +13,7 @@ ### [Manage Surface driver and firmware updates](manage-surface-pro-3-firmware-updates.md) ### [Manage Surface Dock firmware updates](manage-surface-dock-firmware-updates.md) ### [Surface Dock Updater](surface-dock-updater.md) +### [Wake on LAN for Surface devices](wake-on-lan-for-surface-devices.md) ## [Considerations for Surface and System Center Configuration Manager](considerations-for-surface-and-system-center-configuration-manager.md) ## [Deploy Surface app with Windows Store for Business](deploy-surface-app-with-windows-store-for-business.md) ## [Enable PEAP, EAP-FAST, and Cisco LEAP on Surface devices](enable-peap-eap-fast-and-cisco-leap-on-surface-devices.md) diff --git a/devices/surface/change-history-for-surface.md b/devices/surface/change-history-for-surface.md index b3601e729a..4c58aaa0c5 100644 --- a/devices/surface/change-history-for-surface.md +++ b/devices/surface/change-history-for-surface.md @@ -11,6 +11,12 @@ author: jdeckerMS This topic lists new and updated topics in the Surface documentation library. +## December 2016 + +|New or changed topic | Description | +| --- | --- | +|[Wake on LAN for Surface devices](wake-on-lan-for-surface-devices.md) | New | + ## November 2016 |New or changed topic | Description | diff --git a/devices/surface/update.md b/devices/surface/update.md index 3e00c77e71..46d1f3b6bd 100644 --- a/devices/surface/update.md +++ b/devices/surface/update.md @@ -16,6 +16,7 @@ Find out how to download and manage the latest firmware and driver updates for y | Topic | Description | | --- | --- | +|[Wake On LAN for Surface devices](wake-on-lan-for-surface-devices.md) | See how you can use Wake On LAN to remotely wake up devices to perform management or maintenance tasks, or to enable management solutions automatically. | | [Download the latest firmware and drivers for Surface devices](deploy-the-latest-firmware-and-drivers-for-surface-devices.md)| Get a list of the available downloads for Surface devices and links to download the drivers and firmware for your device.| | [Manage Surface driver and firmware updates](manage-surface-pro-3-firmware-updates.md)| Explore the available options to manage firmware and driver updates for Surface devices.| | [Manage Surface Dock firmware updates](manage-surface-dock-firmware-updates.md)| Read about the different methods you can use to manage the process of Surface Dock firmware updates.| diff --git a/devices/surface/wake-on-lan-for-surface-devices.md b/devices/surface/wake-on-lan-for-surface-devices.md new file mode 100644 index 0000000000..4aa2aa0a12 --- /dev/null +++ b/devices/surface/wake-on-lan-for-surface-devices.md @@ -0,0 +1,55 @@ +--- +title: Wake On LAN for Surface devices (Surface) +description: See how you can use Wake on LAN to remotely wake up devices to perform management or maintenance tasks, or to enable management solutions automatically – even if the devices are powered down. +keywords: update, deploy, driver, wol +ms.prod: w10 +ms.mktglfcycl: manage +ms.pagetype: surface, devices +ms.sitesec: library +author: jobotto +--- + +# Wake On LAN for Surface devices + +Surface devices that run Windows 10, version 1607 (also known as Windows 10 Anniversary Update) or later and use a Surface Ethernet adapter to connect to a wired network, are capable of Wake On LAN from Connected Standby. With Wake On LAN, you can remotely wake up devices to perform management or maintenance tasks or enable management solutions (such as System Center Configuration Manager) automatically – even if the devices are powered down. For example, you can deploy applications to Surface devices left docked with a Surface Dock or Surface Pro 3 Docking Station by using System Center Configuration Manager during a window in the middle of the night, when the office is empty. + +>[!NOTE] +>Surface devices must be connected to AC power to support Wake On LAN. + +## Supported devices + +The following devices are supported for Wake On LAN: + +* Surface Book +* Surface Pro 4 +* Surface Pro 3 +* Surface 3 +* Surface Ethernet adapter +* Surface Dock +* Surface Docking Station for Surface Pro 3 + +## Wake On LAN driver + +To enable Wake On LAN support on Surface devices, a specific driver for the Surface Ethernet adapter is required. This driver is not included in the standard driver and firmware pack for Surface devices – you must download and install it separately. You can download the Surface Wake On LAN driver, SurfaceWOL.msi, from the [Surface Tools for IT](https://www.microsoft.com/download/details.aspx?id=46703) page in the Microsoft Download Center. + +You can run this Microsoft Windows Installer (.msi) file on a Surface device to install the Surface Wake On LAN driver, or you can distribute it to Surface devices with an application deployment solution, such as System Center Configuration Manager. To include the Surface Wake On LAN driver during deployment, you can install the .msi file as an application during the deployment process. You can also extract the Surface Wake On LAN driver files to include them in the deployment process. For example, you can include them in your Microsoft Deployment Toolkit (MDT) deployment share. You can read more about Surface deployment with MDT in [Deploy Windows 10 to Surface devices with Microsoft Deployment Toolkit](https://technet.microsoft.com/itpro/surface/deploy-windows-10-to-surface-devices-with-mdt). + +>[!NOTE] +>During the installation of SurfaceWOL.msi, the following registry key is set to a value of 1, which allows easy identification of systems where the Wake On LAN driver has been installed. If you chose to extract and install these drivers separately during deployment, this registry key will not be configured and must be configured manually or with a script. + +>**HKLM\SYSTEM\CurrentControlSet\Control\Power AllowSystemRequiredPowerRequests** + +To extract the contents of SurfaceWOL.msi, use the MSIExec administrative installation option (**/a**), as shown in the following example, to extract the contents to the **C:\WOL\** folder: +**msiexec /a surfacewol.msi targetdir=C:\WOL /qn** + +## Using Surface Wake On LAN + +The Surface Wake On LAN driver conforms to the Wake On LAN standard, whereby the device is woken by a special network communication known as a magic packet. The magic packet consists of 6 bytes of 255 (or FF in hexadecimal) followed by 16 repetitions of the target computer’s MAC address. You can read more about the magic packet and the Wake On LAN standard at [Wake-on-LAN](https://wikipedia.org/wiki/Wake-on-LAN#Magic_packet) on Wikipedia. + +>[!NOTE] +>To send a magic packet and wake up a device by using Wake On LAN, you must know the MAC address of the target device and Ethernet adapter. Because the magic packet does not use the IP network protocol, it is not possible to use the IP address or DNS name of the device. + +Many management solutions, such as System Center Configuration Manager, provide built-in support for Wake On LAN. There are also many solutions, including Windows Store apps, PowerShell modules, third-party applications, and third-party management solutions that allow you to send a magic packet to wake up a device. For example, you can use the [Wake On LAN PowerShell module](https://gallery.technet.microsoft.com/scriptcenter/Wake-On-Lan-815424c4) from the TechNet Script Center. + +>[!NOTE] +>After a device has been woken up with a magic packet, the device will return to sleep if an application is not actively preventing sleep on the system or if the AllowSystemRequiredPowerRequests registry key is not configured to 1, which allows applications to prevent sleep. See the [Wake On LAN driver](#wake-on-lan-driver) section of this article for more information about this registry key. From c7061f80d4cb5210cc72b67d06042a7d8362293d Mon Sep 17 00:00:00 2001 From: Jan Backstrom Date: Thu, 1 Dec 2016 13:16:10 -0800 Subject: [PATCH 057/233] edits --- devices/surface/TOC.md | 2 +- devices/surface/change-history-for-surface.md | 2 +- devices/surface/wake-on-lan-for-surface-devices.md | 7 ++++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/devices/surface/TOC.md b/devices/surface/TOC.md index e4fd6d25d3..0ce34a2dfe 100644 --- a/devices/surface/TOC.md +++ b/devices/surface/TOC.md @@ -13,7 +13,7 @@ ### [Manage Surface driver and firmware updates](manage-surface-pro-3-firmware-updates.md) ### [Manage Surface Dock firmware updates](manage-surface-dock-firmware-updates.md) ### [Surface Dock Updater](surface-dock-updater.md) -### [Wake on LAN for Surface devices](wake-on-lan-for-surface-devices.md) +### [Wake On LAN for Surface devices](wake-on-lan-for-surface-devices.md) ## [Considerations for Surface and System Center Configuration Manager](considerations-for-surface-and-system-center-configuration-manager.md) ## [Deploy Surface app with Windows Store for Business](deploy-surface-app-with-windows-store-for-business.md) ## [Enable PEAP, EAP-FAST, and Cisco LEAP on Surface devices](enable-peap-eap-fast-and-cisco-leap-on-surface-devices.md) diff --git a/devices/surface/change-history-for-surface.md b/devices/surface/change-history-for-surface.md index 4c58aaa0c5..a91317837d 100644 --- a/devices/surface/change-history-for-surface.md +++ b/devices/surface/change-history-for-surface.md @@ -15,7 +15,7 @@ This topic lists new and updated topics in the Surface documentation library. |New or changed topic | Description | | --- | --- | -|[Wake on LAN for Surface devices](wake-on-lan-for-surface-devices.md) | New | +|[Wake On LAN for Surface devices](wake-on-lan-for-surface-devices.md) | New | ## November 2016 diff --git a/devices/surface/wake-on-lan-for-surface-devices.md b/devices/surface/wake-on-lan-for-surface-devices.md index 4aa2aa0a12..5dce70e3f7 100644 --- a/devices/surface/wake-on-lan-for-surface-devices.md +++ b/devices/surface/wake-on-lan-for-surface-devices.md @@ -1,6 +1,6 @@ --- title: Wake On LAN for Surface devices (Surface) -description: See how you can use Wake on LAN to remotely wake up devices to perform management or maintenance tasks, or to enable management solutions automatically – even if the devices are powered down. +description: See how you can use Wake On LAN to remotely wake up devices to perform management or maintenance tasks, or to enable management solutions automatically – even if the devices are powered down. keywords: update, deploy, driver, wol ms.prod: w10 ms.mktglfcycl: manage @@ -30,7 +30,7 @@ The following devices are supported for Wake On LAN: ## Wake On LAN driver -To enable Wake On LAN support on Surface devices, a specific driver for the Surface Ethernet adapter is required. This driver is not included in the standard driver and firmware pack for Surface devices – you must download and install it separately. You can download the Surface Wake On LAN driver, SurfaceWOL.msi, from the [Surface Tools for IT](https://www.microsoft.com/download/details.aspx?id=46703) page in the Microsoft Download Center. +To enable Wake On LAN support on Surface devices, a specific driver for the Surface Ethernet adapter is required. This driver is not included in the standard driver and firmware pack for Surface devices – you must download and install it separately. You can download the Surface Wake On LAN driver (SurfaceWOL.msi) from the [Surface Tools for IT](https://www.microsoft.com/download/details.aspx?id=46703) page in the Microsoft Download Center. You can run this Microsoft Windows Installer (.msi) file on a Surface device to install the Surface Wake On LAN driver, or you can distribute it to Surface devices with an application deployment solution, such as System Center Configuration Manager. To include the Surface Wake On LAN driver during deployment, you can install the .msi file as an application during the deployment process. You can also extract the Surface Wake On LAN driver files to include them in the deployment process. For example, you can include them in your Microsoft Deployment Toolkit (MDT) deployment share. You can read more about Surface deployment with MDT in [Deploy Windows 10 to Surface devices with Microsoft Deployment Toolkit](https://technet.microsoft.com/itpro/surface/deploy-windows-10-to-surface-devices-with-mdt). @@ -40,7 +40,8 @@ You can run this Microsoft Windows Installer (.msi) file on a Surface device to >**HKLM\SYSTEM\CurrentControlSet\Control\Power AllowSystemRequiredPowerRequests** To extract the contents of SurfaceWOL.msi, use the MSIExec administrative installation option (**/a**), as shown in the following example, to extract the contents to the **C:\WOL\** folder: -**msiexec /a surfacewol.msi targetdir=C:\WOL /qn** + + `msiexec /a surfacewol.msi targetdir=C:\WOL /qn` ## Using Surface Wake On LAN From 6bcfa575d0afd16a12b7164d6584fe93979c9019 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 5 Dec 2016 10:34:22 -0800 Subject: [PATCH 058/233] . --- windows/deploy/windows-10-poc.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 4e2ab3dd85..9b9ffb35e4 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -14,13 +14,12 @@ author: greg-lindsay - Windows 10 -

      The following guides provide step-by-step instructions for IT administrators to test Windows 10 deployment procedures in a proof of concept (PoC) environment: +This guide contains instructions to configure a proof of concept (PoC) environment using Hyper-V that requires a minimum amount of resources. Subsequent companion guides contain steps to deploy Windows 10 using the PoC environment. After completing this guide, also see the following guides: -- (This guide) Step by step guide: Configure a test lab to deploy Windows 10.
      - [Step by step: Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md).
      - [Step by step: Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md).
      -This guide contains instructions to configure a PoC/test environment using Hyper-V that requires a minimum amount of resources. Subsequent companion guides contain steps to deploy Windows 10 using this environment. Approximately 3 hours are required to configure the PoC environment. You will need a Hyper-V capable computer running Windows 8.1 or later with at least 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. +Approximately 3 hours are required to configure the PoC environment. You will need a Hyper-V capable computer running Windows 8.1 or later with at least 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. Windows PowerShell commands are provided to set up the PoC environment quickly. You do not need to be an expert in Windows PowerShell to complete the steps in the guide, however you are required to customize some commands to fit your environment. Instructions to "type" Windows PowerShell commands provided in this guide can be followed literally by typing the commands, but when it is possible the preferred method is to copy and paste these commands. From dd724106962e4350e30ce7ff9804ada269325569 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 5 Dec 2016 10:39:00 -0800 Subject: [PATCH 059/233] . --- windows/deploy/windows-10-poc-mdt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index fcb5c186ba..3a31c1ce86 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -1,5 +1,5 @@ --- -title: Step by step: Deploy Windows 10 in a test lab using MDT +title: Step by step - Deploy Windows 10 in a test lab using MDT description: Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit (MDT) ms.prod: w10 ms.mktglfcycl: deploy From d6344c11efca06f27882a9a6051f17a0a1f4d167 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 6 Dec 2016 12:11:21 -0800 Subject: [PATCH 060/233] . --- windows/deploy/windows-10-poc-mdt.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 3a31c1ce86..da24dec5fd 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -21,7 +21,8 @@ The PoC environment is a virtual network running on Hyper-V with three virtual m - **SRV1**: A dual-homed contoso.com domain member server, DNS server, and default gateway providing NAT service for the PoC network. - **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been shadow-copied from a physical computer on your corporate network for use in this guide. -This guide leverages the Hyper-V server role to perform procedures. If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. +This guide leverages the Hyper-V server role to perform procedures. +- If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. ## In this guide From 3aca9ebfdd8a1ebef3fb7b308e63ae6cac7541b3 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 7 Dec 2016 11:06:14 -0800 Subject: [PATCH 061/233] . --- windows/deploy/windows-10-poc-mdt.md | 45 +++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index da24dec5fd..90e02d038b 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -16,19 +16,44 @@ author: greg-lindsay **Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md). Please complete all steps in the prerequisite guide before starting this guide. -The PoC environment is a virtual network running on Hyper-V with three virtual machines: +The PoC environment is a virtual network running on Hyper-V with three virtual machines (VMs): - **DC1**: A contoso.com domain controller, DNS server, and DHCP server. - **SRV1**: A dual-homed contoso.com domain member server, DNS server, and default gateway providing NAT service for the PoC network. -- **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been shadow-copied from a physical computer on your corporate network for use in this guide. +- **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been shadow-copied from a physical computer on your corporate network. -This guide leverages the Hyper-V server role to perform procedures. -- If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. +>This guide leverages the Hyper-V server role to perform procedures. +>- If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. ## In this guide This guide provides instructions to install and configure the Microsoft Deployment Toolkit (MDT) to deploy a Windows 10 image. -## Install the Microsoft Deployment Toolkit (MDT) +Topics and procedures in this guide are summarized in the following table. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed. + +

      + + +
      TopicDescriptionTime + +
      [About MDT](#about-mdt)A high-level overview of the Microsoft Deployment Toolkit (MDT).Informational +
      [Install MDT](#install-mdt)Download and install MDT.40 minutes +
      [Create a deployment share and reference image](#create-a-deployment-share-and-reference-image)A reference image is created to serve as the template for deploying new images.60 minutes +
      [Deploy a Windows 10 image using MDT](#deploy-a-windows-10-image-using-mdt)The reference image is deployed in the PoC environment.60 minutes +
      [Refresh a computer with Windows 10](#refresh-a-computer-with-windows-10)Export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings.30 minutes +
      [Replace a computer with Windows 10](#replace-a-computer-with-windows-10)Back up an existing client computer, then restore this backup to a new computer.30 minutes +
      [Troubleshooting logs, events, and utilities](#troubleshooting-logs-events-and-utilities)Log locations and troubleshooting hints.Informational +
      + +
      + +## About MDT + +MDT performs deployments by using the Lite Touch Installation (LTI), Zero Touch Installation (ZTI), and User-Driven Installation (UDI) deployment methods. +- LDI is the deployment method used in the current guide, requiring only MDT and performed with a minimum amount of user interaction. +- ZTI is fully automated, requiring no user interaction and is performed using MDT and System Center Configuration Manager. After completing the steps in the current guide, see [Step by step: Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) to use the ZTI deployment method in the PoC environment. +- UDI requires manual intervention to respond to installation prompts such as machine name, password and language settings. UDI requires MDT and System Center Configuration Manager. + +## Install MDT 1. On SRV1, temporarily disable IE Enhanced Security Configuration for Administrators by typing the following commands at an elevated Windows PowerShell prompt: @@ -50,6 +75,8 @@ This guide provides instructions to install and configure the Microsoft Deployme ## Create a deployment share and reference image +A reference image serves as the foundation for Windows 10 devices in your organization. + 1. In [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md), the Windows 10 Enterprise .iso file was saved to the c:\VHD directory as **c:\VHD\w10-enterprise.iso**. The first step in creating a deployment share is to mount this file on SRV1. To mount the Windows 10 Enterprise DVD on SRV1, open an elevated Windows PowerShell prompt on the Hyper-V host computer and type the following command: ``` @@ -390,7 +417,7 @@ This procedure will demonstrate how to deploy the reference image to the PoC env 9. Turn off the PC2 VM before starting the next section. To turn off the VM, right-click **Start**, point to **Shut down or sign out**, and then click **Shut down**. -### Refresh a computer with Windows 10 +## Refresh a computer with Windows 10 This topic will demonstrate how to export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings. The scenario will use PC1, a computer that was cloned from a physical device to a VM, as described in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md). @@ -441,7 +468,7 @@ This topic will demonstrate how to export user data from an existing client comp ``` 10. Sign in to PC1 using the contoso\administrator account. -### Replace a computer with Windows 10 +## Replace a computer with Windows 10 At a high level, the computer replace process consists of:
      - A special replace task sequence that runs the USMT backup and an optional full Window Imaging (WIM) backup.
      @@ -536,7 +563,7 @@ At a high level, the computer replace process consists of:
      ``` 7. Setup will install the Windows 10 Enterprise operating system, update via Windows Update, and restore the user settings and data from PC1. -#### Troubleshooting logs, events, and utilities +## Troubleshooting logs, events, and utilities Deployment logs are available on the client computer in the following locations: - Before the image is applied: X:\MININT\SMSOSD\OSDLOGS @@ -547,6 +574,8 @@ You can review WDS events in Event Viewer at: **Applications and Services Logs > Tools for viewing log files, and to assist with troubleshooting are available in the [System Center 2012 R2 Configuration Manager Toolkit](https://www.microsoft.com/en-us/download/details.aspx?id=50012) +Also see [Resolve Windows 10 upgrade errors](resolve-windows-10-upgrade-errors) for detailed troubleshooting information. + ## Related Topics [Microsoft Deployment Toolkit](https://technet.microsoft.com/en-US/windows/dn475741)
      From d6ca4b0feac95828efec0f3d72a7d81221539df1 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 7 Dec 2016 11:54:12 -0800 Subject: [PATCH 062/233] . --- windows/deploy/windows-10-poc-mdt.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 90e02d038b..18136b2e25 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -21,8 +21,7 @@ The PoC environment is a virtual network running on Hyper-V with three virtual m - **SRV1**: A dual-homed contoso.com domain member server, DNS server, and default gateway providing NAT service for the PoC network. - **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been shadow-copied from a physical computer on your corporate network. ->This guide leverages the Hyper-V server role to perform procedures. ->- If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. +>This guide leverages the Hyper-V server role to perform procedures. If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. ## In this guide @@ -115,7 +114,7 @@ A reference image serves as the foundation for Windows 10 devices in your organi - Confirmation: click **Finish** ->For purposes of this test lab, we will only add the prerequisite .NET Framework feature. Commerical applications (ex: Microsoft Office) will not be added to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. + >For purposes of this test lab, we will only add the prerequisite .NET Framework feature. Commerical applications (ex: Microsoft Office) will not be added to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. 11. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: - Task sequence ID: **REFW10X64-001**
      @@ -207,18 +206,20 @@ A reference image serves as the foundation for Windows 10 devices in your organi 25. Copy **c:\MDTBuildLab\Boot\LiteTouchPE_x86.iso** on SRV1 to the **c:\VHD** directory on the Hyper-V host computer. Note that in MDT, the x86 boot image can deploy both x86 and x64 operating systems, except on computers based on Unified Extensible Firmware Interface (UEFI). ->Hint: Top copy the file, right-click the **LiteTouchPE_x86.iso** file and click **Copy** on SRV1, then open the **c:\VHD** folder on the Hyper-V host, right-click inside the folder and click **Paste**. + >Hint: To copy the file, right-click the **LiteTouchPE_x86.iso** file and click **Copy** on SRV1, then open the **c:\VHD** folder on the Hyper-V host, right-click inside the folder and click **Paste**. 26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: - ``` +
           New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB 
           Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
           Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
           Start-VM REFW10X64-001
           vmconnect localhost REFW10X64-001
      -    ```
      +    
      + + The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. 27. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. @@ -234,7 +235,6 @@ A reference image serves as the foundation for Windows 10 devices in your organi - Capture the installation to a Windows Imaging (WIM) file. - Turn off the virtual machine. - This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server. The file name is **REFW10X64-001.wim**. ## Deploy a Windows 10 image using MDT From 08357b8921337f19c89b213d423e9c14f95c2e01 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 7 Dec 2016 13:43:26 -0800 Subject: [PATCH 063/233] . --- windows/deploy/images/image.PNG | Bin 0 -> 41429 bytes windows/deploy/windows-10-poc-mdt.md | 102 ++++++++++++++------------- 2 files changed, 53 insertions(+), 49 deletions(-) create mode 100644 windows/deploy/images/image.PNG diff --git a/windows/deploy/images/image.PNG b/windows/deploy/images/image.PNG new file mode 100644 index 0000000000000000000000000000000000000000..0bbadcb68f47150cb9e252250c7d7a0965ef558c GIT binary patch literal 41429 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�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 IN8K*{3q;*HssI20 literal 0 HcmV?d00001 diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 18136b2e25..b9a217169f 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -36,7 +36,7 @@ Topics and procedures in this guide are summarized in the following table. An es
    [About MDT](#about-mdt)A high-level overview of the Microsoft Deployment Toolkit (MDT).Informational
    [Install MDT](#install-mdt)Download and install MDT.40 minutes -
    [Create a deployment share and reference image](#create-a-deployment-share-and-reference-image)A reference image is created to serve as the template for deploying new images.60 minutes +
    [Create a deployment share and reference image](#create-a-deployment-share-and-reference-image)A reference image is created to serve as the template for deploying new images.90 minutes
    [Deploy a Windows 10 image using MDT](#deploy-a-windows-10-image-using-mdt)The reference image is deployed in the PoC environment.60 minutes
    [Refresh a computer with Windows 10](#refresh-a-computer-with-windows-10)Export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings.30 minutes
    [Replace a computer with Windows 10](#replace-a-computer-with-windows-10)Back up an existing client computer, then restore this backup to a new computer.30 minutes @@ -130,8 +130,6 @@ A reference image serves as the foundation for Windows 10 devices in your organi - Summary: click **Next** - Confirmation: click **Finish** - - 12. Edit the task sequence to add the Microsoft NET Framework 3.5, which is required by many applications. To edit the task sequence, double-click **Windows 10 Enterprise x64 Default Image** that was created in the previous step. 13. Click the **Task Sequence** tab. Under **State Restore** click **Tatto** to highlight it, then click **Add** and choose **New Group**. @@ -235,7 +233,7 @@ A reference image serves as the foundation for Windows 10 devices in your organi - Capture the installation to a Windows Imaging (WIM) file. - Turn off the virtual machine. - This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server. The file name is **REFW10X64-001.wim**. + This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server (SRV1). The file name is **REFW10X64-001.wim**. ## Deploy a Windows 10 image using MDT @@ -247,29 +245,31 @@ This procedure will demonstrate how to deploy the reference image to the PoC env - **Deployment share description**: MDT Production - **Options**: accept the default -2. Click **Finish** and verify the new deployment share was added successfully. +2. Click **Next**, verify the new deployment share was added successfully, then click **Finish**. 3. In the Deployment Workbench console, expand the MDT Production deployment share, right-click **Operating Systems**, and then click **New Folder**. Name the new folder **Windows 10** and complete the wizard using default values. -4. Right-click the Windows 10 folder created in the previous step, and then click **Import Operating System**. +4. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. 5. On the **OS Type** page, choose **Custom image file** and then click **Next**. -6. On the Image page, browse to the C:\MDTBuildLab\Captures\REFW10X64-001.wim file created in the previous procedure, click **Open**, and then click **Next**. +6. On the Image page, browse to the **C:\MDTBuildLab\Captures\REFW10X64-001.wim** file created in the previous procedure, click **Open**, and then click **Next**. 7. On the Setup page, select **Copy Windows 7, Windows Server 2008 R2, or later setup files from the specified path**. 8. Under **Setup source directory**, browse to **C:\MDTBuildLab\Operating Systems\W10Ent_x64** click **OK** and then click **Next**. -9. On the Destination page, accept the default Destination directory name of **REFW10X64-001**, click **Next** twice, and then click **Finish**. +9. On the Destination page, accept the default Destination directory name of **REFW10X64-001**, click **Next** twice, wait for the import process to complete, and then click **Finish**. -10. In the Operating Systems > Windows 10 node, double-click the operating system that was added to view its Properties. Change the Operating system name to **Windows 10 Enterprise x64 Custom Image** and then click **OK**. +10. In the **Operating Systems** > **Windows 10** node, double-click the operating system that was added to view its properties. Change the operating system name to **Windows 10 Enterprise x64 Custom Image** and then click **OK**. See the following example: + + ![custom image](images/image.png) ### Create the deployment task sequence -1. Using the Deployment Workbench, select Task Sequences in the MDT Production node, and create a folder named **Windows 10**. +1. Using the Deployment Workbench, right-click **Task Sequences** under the **MDT Production** node, click **New Folder** and create a folder with the name: **Windows 10**. -2. Right-click the Windows 10 folder created in the previous step, and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: +2. Right-click the **Windows 10** folder created in the previous step, and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: - Task sequence ID: W10-X64-001 - Task sequence name: Windows 10 Enterprise x64 Custom Image - Task sequence comments: Production Image @@ -289,43 +289,43 @@ This procedure will demonstrate how to deploy the reference image to the PoC env copy-item "C:\Program Files\Microsoft Deployment Toolkit\Templates\Bootstrap.ini" C:\MDTProd\Control\Bootstrap.ini -Force copy-item "C:\Program Files\Microsoft Deployment Toolkit\Templates\CustomSettings.ini" C:\MDTProd\Control\CustomSettings.ini -Force ``` -2. In the Deployment Workbench console on SRV1, right-click the **MDT Production** deployment share and then click Properties. +2. In the Deployment Workbench console on SRV1, right-click the **MDT Production** deployment share and then click **Properties**. -3. Click the **Rules** tab and replace the rules with the following text: +3. Click the **Rules** tab and replace the rules with the following text (don't click OK yet): ``` - [Settings] - Priority=Default + [Settings] + Priority=Default - [Default] - _SMSTSORGNAME=Contoso - OSInstall=YES - UserDataLocation=AUTO + [Default] + _SMSTSORGNAME=Contoso + OSInstall=YES + UserDataLocation=AUTO TimeZoneName=Pacific Standard Time OSDComputername=#Left("PC-%SerialNumber%",7)# - AdminPassword=pass@word1 - JoinDomain=contoso.com + AdminPassword=pass@word1 + JoinDomain=contoso.com DomainAdmin=administrator DomainAdminDomain=CONTOSO - DomainAdminPassword=pass@word1 + DomainAdminPassword=pass@word1 ScanStateArgs=/ue:*\* /ui:CONTOSO\* USMTMigFiles001=MigApp.xml USMTMigFiles002=MigUser.xml - HideShell=YES - ApplyGPOPack=NO - SkipAppsOnUpgrade=NO + HideShell=YES + ApplyGPOPack=NO + SkipAppsOnUpgrade=NO SkipAdminPassword=YES - SkipProductKey=YES - SkipComputerName=YES + SkipProductKey=YES + SkipComputerName=YES SkipDomainMembership=YES - SkipUserData=YES - SkipLocaleSelection=YES - SkipTaskSequence=NO - SkipTimeZone=YES - SkipApplications=NO - SkipBitLocker=YES - SkipSummary=YES - SkipCapture=YES + SkipUserData=YES + SkipLocaleSelection=YES + SkipTaskSequence=NO + SkipTimeZone=YES + SkipApplications=NO + SkipBitLocker=YES + SkipSummary=YES + SkipCapture=YES SkipFinalSummary=NO EventService=http://SRV1:9800 ``` @@ -336,12 +336,12 @@ This procedure will demonstrate how to deploy the reference image to the PoC env 4. Click **Edit Bootstap.ini** and replace text in the file with the following text: ``` - [Settings] - Priority=Default + [Settings] + Priority=Default - [Default] - DeployRoot=\\SRV1\MDTProd$ - UserDomain=CONTOSO + [Default] + DeployRoot=\\SRV1\MDTProd$ + UserDomain=CONTOSO UserID=administrator UserPassword=pass@word1 SkipBDDWelcome=YES @@ -377,13 +377,17 @@ This procedure will demonstrate how to deploy the reference image to the PoC env 2. Click **Start**, type **Windows Deployment**, and then click **Windows Deployment Services**. -3. In the Windows Deployment Services console, expand Servers, expand SRV1.contoso.com, right-click **Boot Images**, and then click **Add Boot Image**. +3. In the Windows Deployment Services console, expand **Servers**, expand **SRV1.contoso.com**, right-click **Boot Images**, and then click **Add Boot Image**. 4. Browse to the **C:\MDTProd\Boot\LiteTouchPE_x64.wim** file, click **Open**, click **Next**, and accept the defaults in the Add Image Wizard. Click **Finish** to complete adding a boot image. ### Deploy the client image -1. Before using WDS to deploy a client image, you must temporarily disable the external network adapter on SRV1. This is just an artifact of the lab environment. In a typical deployment environment WDS would not be installed on the default gateway. **Note**: Do not disable the *internal* network interface. To disable the *external* interface on SRV1, open a Windows PowerShell prompt on SRV1 and type the following command: +1. Before using WDS to deploy a client image, you must temporarily disable the external network adapter on SRV1. This is just an artifact of the lab environment. In a typical deployment environment WDS would not be installed on the default gateway. + + >**Note**: Do not disable the *internal* network interface. To quickly view IP addresses and interface names configured on the VM, **type Get-NetIPAddress | ft interfacealias, ipaddress** + + Assuming the external interface is named "Ethernet 2", to disable the *external* interface on SRV1, open a Windows PowerShell prompt on SRV1 and type the following command: ``` Disable-NetAdapter "Ethernet 2" -Confirm:$false @@ -393,7 +397,7 @@ This procedure will demonstrate how to deploy the reference image to the PoC env ``` New-VM –Name "PC2" –NewVHDPath "c:\vhd\pc2.vhdx" -NewVHDSizeBytes 60GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 - Set-VMMemory -VMName "PC2" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 + Set-VMMemory -VMName "PC2" -DynamicMemoryEnabled $true -MinimumBytes 720MB -MaximumBytes 2048MB -Buffer 20 ``` >Dynamic memory is configured on the VM to conserve resources. However, this can cause memory allocation to be reduced past what is required to install an operating system. If this happens, reset the VM and begin the OS installation task sequence immediately. This ensures the VM memory allocation is not decreased too much while it is idle. @@ -405,21 +409,21 @@ This procedure will demonstrate how to deploy the reference image to the PoC env ``` 4. When prompted, hit ENTER to start the network boot process. -5. Choose the **Windows 10 Enterprise x64 Custom Image** and then click **Next**. +5. In the Windows Deployment Wizard, choose the **Windows 10 Enterprise x64 Custom Image** and then click **Next**. 6. After MDT lite touch installation has started, be sure to re-enable the external network adapter on SRV1. This is needed so the client can use Windows Update after operating system installation is complete.To re-enable the external network interface, open an elevated Windows PowerShell prompt on SRV1 and type the following command: ``` Enable-NetAdapter "Ethernet 2" ``` -7. On SRV1, in the Deployment Workbench console, click on **Monitoring** and view the status of installation. -8. When OS installation is complete, the system will reboot automatically and begin configuring devices. When the new client computer is finished updating, click **Finish**. You will be automatically signed in to the local computer as administrator. +7. On SRV1, in the Deployment Workbench console, click on **Monitoring** and view the status of installation. Right-click **Monitoring** and click **Refresh** if no data is displayed. +8. OS installation requires about 10 minutes. When the installation is complete, the system will reboot automatically, configure devices, and install updates, requiring another 10-20 minutes. When the new client computer is finished updating, click **Finish**. You will be automatically signed in to the local computer as administrator. -9. Turn off the PC2 VM before starting the next section. To turn off the VM, right-click **Start**, point to **Shut down or sign out**, and then click **Shut down**. +This completes the demonstration of how to deploy a reference image to the network. To conserve resources, turn off the PC2 VM before starting the next section. ## Refresh a computer with Windows 10 -This topic will demonstrate how to export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings. The scenario will use PC1, a computer that was cloned from a physical device to a VM, as described in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md). +This section will demonstrate how to export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings. The scenario will use PC1, a computer that was cloned from a physical device to a VM, as described in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md). 1. Create a checkpoint for the PC1 VM so that it can easily be reverted to its current state for troubleshooting purposes and to perform additional scenarios. Checkpoints are also known as snapshots. To create a checkpoint for the PC1 VM, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: @@ -574,7 +578,7 @@ You can review WDS events in Event Viewer at: **Applications and Services Logs > Tools for viewing log files, and to assist with troubleshooting are available in the [System Center 2012 R2 Configuration Manager Toolkit](https://www.microsoft.com/en-us/download/details.aspx?id=50012) -Also see [Resolve Windows 10 upgrade errors](resolve-windows-10-upgrade-errors) for detailed troubleshooting information. +Also see [Resolve Windows 10 upgrade errors](resolve-windows-10-upgrade-errors.md) for detailed troubleshooting information. ## Related Topics From 4e569236362ec727a3be544878afa2477630df1e Mon Sep 17 00:00:00 2001 From: Trudy Hakala Date: Tue, 13 Dec 2016 12:50:58 -0800 Subject: [PATCH 064/233] updates for invoicing --- .../education-scenarios-store-for-business.md | 4 ++-- education/windows/school-get-minecraft.md | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/education/windows/education-scenarios-store-for-business.md b/education/windows/education-scenarios-store-for-business.md index 8a42859576..ce335d4357 100644 --- a/education/windows/education-scenarios-store-for-business.md +++ b/education/windows/education-scenarios-store-for-business.md @@ -91,9 +91,9 @@ Find apps for your school using Windows Store for Business. Admins in an educati **To acquire apps** - For info on how to acquire apps, see [Acquire apps in Windows Store for Business](https://technet.microsoft.com/itpro/windows/manage/acquire-apps-windows-store-for-business#acquire-apps) -**To add a payment method** +**To add a payment method - debit or credit card** -If you the app you purchase has a price, you’ll need to provide a payment method. +If the app you purchase has a price, you’ll need to provide a payment method. - Click **Get started! Add a way to pay.** Provide the info needed for your debit or credit card. For more information on payment options, see [payment options](https://technet.microsoft.com/itpro/windows/manage/acquire-apps-windows-store-for-business#payment-options). diff --git a/education/windows/school-get-minecraft.md b/education/windows/school-get-minecraft.md index 0adea43fb7..325067f303 100644 --- a/education/windows/school-get-minecraft.md +++ b/education/windows/school-get-minecraft.md @@ -58,6 +58,20 @@ Qualified education institutions can purchase Minecraft: Education Edition licen - You’ll receive an email with a link to Windows Store for Business. - Sign in to [Windows Store for Business](https://www.microsoft.com/business-store) to distribute and manage the Minecraft: Education Edition licenses. For more information on distribution options, see [Distribute Minecraft](#distribute-minecraft) +## Minecraft: Education Edition payment options +You can pay for Minecraft: Education Edition with a debit or credit card, or with an invoice. + +**Debit or credit cards** + +During the purchase, click **Get started! Add a way to pay.** Provide the info needed for your debit or credit card. + +**Invoices** + +Invoices are now a supported payment method for Minecraft: Education Edition. There are a few requirements: +- Admins only (not supported for Teachers) +- $500 invoice minimum +- $15,000 invoice maximum (for all invoices within your organization) + ## Distribute Minecraft After Minecraft: Education Edition is added to your Windows Store for Business inventory, you have three options: From 89251878e919450038ef33c8e220e6b6af69efd8 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 13 Dec 2016 13:13:21 -0800 Subject: [PATCH 065/233] . --- windows/deploy/images/deploy-finish.PNG | Bin 0 -> 14263 bytes windows/deploy/windows-10-poc-mdt.md | 4 +++- windows/deploy/windows-10-poc.md | 28 ++++++++++++++---------- 3 files changed, 19 insertions(+), 13 deletions(-) create mode 100644 windows/deploy/images/deploy-finish.PNG diff --git a/windows/deploy/images/deploy-finish.PNG b/windows/deploy/images/deploy-finish.PNG new file mode 100644 index 0000000000000000000000000000000000000000..4f0d5cb859c309aa0746bcec674952fd834c2a36 GIT binary patch literal 14263 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 z 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 literal 0 HcmV?d00001 diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index b9a217169f..a1190baf15 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -419,6 +419,8 @@ This procedure will demonstrate how to deploy the reference image to the PoC env 7. On SRV1, in the Deployment Workbench console, click on **Monitoring** and view the status of installation. Right-click **Monitoring** and click **Refresh** if no data is displayed. 8. OS installation requires about 10 minutes. When the installation is complete, the system will reboot automatically, configure devices, and install updates, requiring another 10-20 minutes. When the new client computer is finished updating, click **Finish**. You will be automatically signed in to the local computer as administrator. + ![finish](images/deploy-finish.png) + This completes the demonstration of how to deploy a reference image to the network. To conserve resources, turn off the PC2 VM before starting the next section. ## Refresh a computer with Windows 10 @@ -454,7 +456,7 @@ This section will demonstrate how to export user data from an existing client co - Update the operating system via Windows Update. - Restore user settings and data using USMT. - You can review the progress of installation on SRV1 by clicking on the **Monitoring** node in the deployment workbench. When OS installation is complete, the computer will restart, set up devices, and configure settings. + You can review the progress of installation on SRV1 by clicking on the **Monitoring** node in the deployment workbench. When OS installation is complete, the computer will restart, set up devices, and configure settings. 7. Sign in with the CONTOSO\Administrator account and verify that all CONTOSO domain user accounts and data have been migrated to the new operating system. diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 9b9ffb35e4..6bcdaff0d0 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -193,9 +193,7 @@ Starting with Windows 8, the host computer’s microprocessor must support secon 2. The Hyper-V feature is not installed by default. To install it, open an elevated Windows PowerShell window and type the following command: -
    -    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All
    -    
    +
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All
    This command works on all operating systems that support Hyper-V. @@ -445,9 +443,7 @@ Notes:
    2. On the computer you wish to convert, open an elevated command prompt and type the following command: -
    -    mountvol s: /s
    -    
    +
    mountvol s: /s
    This command temporarily assigns a drive letter of S to the system volume and mounts it. If the letter S is already assigned to a different volume on the computer, then choose one that is available (ex: mountvol z: /s). @@ -518,8 +514,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
         Get-Volume -DriveLetter $x
    -    Dismount-VHD –Path c:\VHD\2012R2-poc-2.vhd
    -    
    + Dismount-VHD –Path c:\VHD\2012R2-poc-2.vhd ### Configure Hyper-V @@ -634,10 +629,19 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to >If there is an error at this stage, ensure that the system partition VHD (c:\vhd\s.vdh) is correctly formatted, marked as active, and attached to the VM. Note: the OS drive is only temporarily assigned a letter of D. - 7. Type **exit**. - 8. Click **Continue**. Do not press a key to boot from the DVD again. The VM will boot into the OS partition that was exported to c:\vhd\w7.vhd. - 9. On the PC1 virtual machine connection menu, click **Media**, point to **DVD drive**, and then click **Eject w10-enterprise.iso**. - 10. In the upper left corner click **Ctrl+Alt+Del** and then in the bottom right corner click **Shut down**. + 7. Next, automounting of new volumes needs to be disabled so that the GPT system volume is not assigned a drive letter after rebooting. To disable automounting, type the following commands at the current command prompt: + +
    +    diskpart
    +    automount disable
    +    automount scrub
    +    exit
    +    
    + + 8. Type **exit** to quit the command prompt. + 9. Click **Continue**. Do not press a key to boot from the DVD again. The VM will boot into the OS partition that was exported to c:\vhd\w7.vhd. + 10. On the PC1 virtual machine connection menu, click **Media**, point to **DVD drive**, and then click **Eject w10-enterprise.iso**. + 11. In the upper left corner click **Ctrl+Alt+Del** and then in the bottom right corner click **Shut down**. ### Configure VMs From 3887d2fc83c77749c1330856161b4249cebefa84 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 20 Dec 2016 12:22:03 -0800 Subject: [PATCH 066/233] . --- windows/deploy/windows-10-poc-mdt.md | 1 - 1 file changed, 1 deletion(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index a1190baf15..0f81aea572 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -113,7 +113,6 @@ A reference image serves as the foundation for Windows 10 devices in your organi - Progress: wait for files to be copied - Confirmation: click **Finish** - >For purposes of this test lab, we will only add the prerequisite .NET Framework feature. Commerical applications (ex: Microsoft Office) will not be added to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. 11. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: From a3a1d7493ccf9b7b3db07c4cfc12707b3f4ec4f7 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 20 Dec 2016 12:25:59 -0800 Subject: [PATCH 067/233] . --- windows/deploy/windows-10-poc-mdt.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 0f81aea572..3bab678592 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -207,8 +207,7 @@ A reference image serves as the foundation for Windows 10 devices in your organi 26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: - -
    +    
         New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB 
         Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
         Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
    
    From 48b379af45ef8295bb725dd70415e437f1289bd3 Mon Sep 17 00:00:00 2001
    From: Greg Lindsay 
    Date: Tue, 20 Dec 2016 12:35:49 -0800
    Subject: [PATCH 068/233] .
    
    ---
     windows/deploy/windows-10-poc-mdt.md | 8 ++++++--
     1 file changed, 6 insertions(+), 2 deletions(-)
    
    diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md
    index 3bab678592..68dc947c1f 100644
    --- a/windows/deploy/windows-10-poc-mdt.md
    +++ b/windows/deploy/windows-10-poc-mdt.md
    @@ -129,6 +129,7 @@ A reference image serves as the foundation for Windows 10 devices in your organi
         - Summary: click **Next**
         - Confirmation: click **Finish**
     
    +
     12. Edit the task sequence to add the Microsoft NET Framework 3.5, which is required by many applications. To edit the task sequence, double-click **Windows 10 Enterprise x64 Default Image** that was created in the previous step.
     
     13. Click the **Task Sequence** tab. Under **State Restore** click **Tatto** to highlight it, then click **Add** and choose **New Group**.
    @@ -207,13 +208,13 @@ A reference image serves as the foundation for Windows 10 devices in your organi
     
     26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands:
     
    -    
    +    ```
         New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB 
         Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
         Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
         Start-VM REFW10X64-001
         vmconnect localhost REFW10X64-001
    -    
    + ``` The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. @@ -231,6 +232,7 @@ A reference image serves as the foundation for Windows 10 devices in your organi - Capture the installation to a Windows Imaging (WIM) file. - Turn off the virtual machine. + This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server (SRV1). The file name is **REFW10X64-001.wim**. ## Deploy a Windows 10 image using MDT @@ -243,6 +245,7 @@ This procedure will demonstrate how to deploy the reference image to the PoC env - **Deployment share description**: MDT Production - **Options**: accept the default + 2. Click **Next**, verify the new deployment share was added successfully, then click **Finish**. 3. In the Deployment Workbench console, expand the MDT Production deployment share, right-click **Operating Systems**, and then click **New Folder**. Name the new folder **Windows 10** and complete the wizard using default values. @@ -263,6 +266,7 @@ This procedure will demonstrate how to deploy the reference image to the PoC env ![custom image](images/image.png) + ### Create the deployment task sequence 1. Using the Deployment Workbench, right-click **Task Sequences** under the **MDT Production** node, click **New Folder** and create a folder with the name: **Windows 10**. From 98ae6acebaa9816996314d2319e1873649272f7a Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 20 Dec 2016 12:54:43 -0800 Subject: [PATCH 069/233] . --- windows/deploy/windows-10-poc-mdt.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 68dc947c1f..d729eb8663 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -8,6 +8,20 @@ ms.pagetype: deploy author: greg-lindsay --- + + # Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit **Applies to** @@ -208,13 +222,16 @@ A reference image serves as the foundation for Windows 10 devices in your organi 26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: - ``` + +
         New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB 
         Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
         Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
         Start-VM REFW10X64-001
         vmconnect localhost REFW10X64-001
    -    ```
    +    
    + + The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. From 720f7be0612bdcf121a917f6dc1973ff6199437a Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 20 Dec 2016 14:50:37 -0800 Subject: [PATCH 070/233] . --- windows/deploy/windows-10-poc-mdt.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index d729eb8663..278b1daacd 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -223,14 +223,13 @@ A reference image serves as the foundation for Windows 10 devices in your organi 26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: -
    +    ```
         New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB 
         Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
         Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
         Start-VM REFW10X64-001
         vmconnect localhost REFW10X64-001
    -    
    - + ``` The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. From 09efffc34eebe9510f5b62d2091800f868128187 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 20 Dec 2016 15:02:09 -0800 Subject: [PATCH 071/233] . --- windows/deploy/windows-10-poc-mdt.md | 1 - 1 file changed, 1 deletion(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 278b1daacd..70ea6d65c0 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -231,7 +231,6 @@ A reference image serves as the foundation for Windows 10 devices in your organi vmconnect localhost REFW10X64-001 ``` - The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. 27. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. From 12690fe446191fec4f329f46e1f1971d5090f159 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 20 Dec 2016 15:11:26 -0800 Subject: [PATCH 072/233] . --- windows/deploy/windows-10-poc-mdt.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 70ea6d65c0..0bc8e7bd20 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -223,13 +223,13 @@ A reference image serves as the foundation for Windows 10 devices in your organi 26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: - ``` +
         New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB 
         Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
         Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
         Start-VM REFW10X64-001
         vmconnect localhost REFW10X64-001
    -    ```
    +    
    The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. From 5aa860f24adbe43bb1722b579e892830d92d7a36 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 20 Dec 2016 15:25:01 -0800 Subject: [PATCH 073/233] . --- windows/deploy/windows-10-poc-mdt.md | 35 ++++++++++++++-------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 0bc8e7bd20..14b6fecc0a 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -223,32 +223,33 @@ A reference image serves as the foundation for Windows 10 devices in your organi 26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: -
    -    New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB 
    -    Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
    -    Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
    -    Start-VM REFW10X64-001
    -    vmconnect localhost REFW10X64-001
    -    
    +
    +	New-VM -Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB 
    +	Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
    +	Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
    +	Start-VM REFW10X64-001
    +	vmconnect localhost REFW10X64-001
    +	
    - The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. + The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. 27. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. 28. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes, and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. - Additional system restarts will occur to complete updating and preparing the operating system. Setup will complete the following procedures: + Additional system restarts will occur to complete updating and preparing the operating system. Setup will complete the following procedures: - - Install the Windows 10 Enterprise operating system. - - Install added applications, roles, and features. - - Update the operating system using Windows Update (or WSUS if optionally specified). - - Stage Windows PE on the local disk. - - Run System Preparation (Sysprep) and reboot into Windows PE. - - Capture the installation to a Windows Imaging (WIM) file. - - Turn off the virtual machine. + - Install the Windows 10 Enterprise operating system. + - Install added applications, roles, and features. + - Update the operating system using Windows Update (or WSUS if optionally specified). + - Stage Windows PE on the local disk. + - Run System Preparation (Sysprep) and reboot into Windows PE. + - Capture the installation to a Windows Imaging (WIM) file. + - Turn off the virtual machine. - This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server (SRV1). The file name is **REFW10X64-001.wim**. + This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server (SRV1). The file name is **REFW10X64-001.wim**. + ## Deploy a Windows 10 image using MDT From 7f90c71f372f1f598fccd71e871b99c486f16def Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 20 Dec 2016 15:31:39 -0800 Subject: [PATCH 074/233] I hate this publishing system --- windows/deploy/windows-10-poc-mdt.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 14b6fecc0a..452c7d2b5c 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -224,14 +224,14 @@ A reference image serves as the foundation for Windows 10 devices in your organi
    -	New-VM -Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB 
    -	Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
    -	Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
    -	Start-VM REFW10X64-001
    -	vmconnect localhost REFW10X64-001
    +    New-VM -Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB
    +    Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
    +    Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
    +    Start-VM REFW10X64-001
    +    vmconnect localhost REFW10X64-001
     	
    - - The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. + + The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. 27. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. @@ -246,9 +246,8 @@ A reference image serves as the foundation for Windows 10 devices in your organi - Run System Preparation (Sysprep) and reboot into Windows PE. - Capture the installation to a Windows Imaging (WIM) file. - Turn off the virtual machine. - - - This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server (SRV1). The file name is **REFW10X64-001.wim**. + + This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server (SRV1). The file name is **REFW10X64-001.wim**. ## Deploy a Windows 10 image using MDT From d425c9fdb064e0176071d404139760dbcb4be457 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 20 Dec 2016 15:35:31 -0800 Subject: [PATCH 075/233] trying again to get formatting right --- windows/deploy/windows-10-poc-mdt.md | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 452c7d2b5c..9dad69d8fb 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -8,19 +8,6 @@ ms.pagetype: deploy author: greg-lindsay --- - # Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit @@ -222,6 +209,7 @@ A reference image serves as the foundation for Windows 10 devices in your organi 26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: +
         New-VM -Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB
    @@ -230,6 +218,8 @@ A reference image serves as the foundation for Windows 10 devices in your organi
         Start-VM REFW10X64-001
         vmconnect localhost REFW10X64-001
     	
    + +
    The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. From 8a313d65ecad660ae9c42bebb3903f50c92960b1 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 20 Dec 2016 16:10:58 -0800 Subject: [PATCH 076/233] trying again to get formatting right --- windows/deploy/windows-10-poc-mdt.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 9dad69d8fb..7bfe888c67 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -209,17 +209,15 @@ A reference image serves as the foundation for Windows 10 devices in your organi 26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: -
    - -
    +    
    +
         New-VM -Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB
         Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
         Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
         Start-VM REFW10X64-001
         vmconnect localhost REFW10X64-001
     	
    - -
    +
    The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. From a3bf6c6be9e96aba4525316b50c6dfd01742b3c6 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 20 Dec 2016 16:22:40 -0800 Subject: [PATCH 077/233] trying --- windows/deploy/windows-10-poc-mdt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 7bfe888c67..f17dc17b46 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -209,7 +209,7 @@ A reference image serves as the foundation for Windows 10 devices in your organi 26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: -
    +
         New-VM -Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB
         Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
    
    From 57583442a931b101dac22398d8dfe9f9414f80c4 Mon Sep 17 00:00:00 2001
    From: Greg Lindsay 
    Date: Tue, 20 Dec 2016 16:25:18 -0800
    Subject: [PATCH 078/233] trying
    
    ---
     windows/deploy/windows-10-poc-mdt.md | 3 +++
     1 file changed, 3 insertions(+)
    
    diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md
    index f17dc17b46..abe4fb20bc 100644
    --- a/windows/deploy/windows-10-poc-mdt.md
    +++ b/windows/deploy/windows-10-poc-mdt.md
    @@ -235,6 +235,7 @@ A reference image serves as the foundation for Windows 10 devices in your organi
     	- Capture the installation to a Windows Imaging (WIM) file.
     	- Turn off the virtual machine.
         
    +    
         This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server (SRV1). The file name is **REFW10X64-001.wim**.
     
     
    @@ -424,8 +425,10 @@ This procedure will demonstrate how to deploy the reference image to the PoC env
     7. On SRV1, in the Deployment Workbench console, click on **Monitoring** and view the status of installation. Right-click **Monitoring** and click **Refresh** if no data is displayed.
     8. OS installation requires about 10 minutes. When the installation is complete, the system will reboot automatically, configure devices, and install updates, requiring another 10-20 minutes.  When the new client computer is finished updating, click **Finish**. You will be automatically signed in to the local computer as administrator. 
     
    +
         ![finish](images/deploy-finish.png)
     
    +
     This completes the demonstration of how to deploy a reference image to the network. To conserve resources, turn off the PC2 VM before starting the next section.
     
     ## Refresh a computer with Windows 10
    
    From 1a1b0f823810f432d2a0a035b3e6274b813a78c6 Mon Sep 17 00:00:00 2001
    From: Greg Lindsay 
    Date: Tue, 20 Dec 2016 16:38:57 -0800
    Subject: [PATCH 079/233] trying
    
    ---
     windows/deploy/windows-10-poc-mdt.md | 9 ++++-----
     1 file changed, 4 insertions(+), 5 deletions(-)
    
    diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md
    index abe4fb20bc..9ef23ed45d 100644
    --- a/windows/deploy/windows-10-poc-mdt.md
    +++ b/windows/deploy/windows-10-poc-mdt.md
    @@ -211,8 +211,9 @@ A reference image serves as the foundation for Windows 10 devices in your organi
     
         
    -    New-VM -Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB
    -    Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
    +
    +    New-VM REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB
    +    Set-VMMemory REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
         Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
         Start-VM REFW10X64-001
         vmconnect localhost REFW10X64-001
    @@ -234,10 +235,8 @@ A reference image serves as the foundation for Windows 10 devices in your organi
     	- Run System Preparation (Sysprep) and reboot into Windows PE.
     	- Capture the installation to a Windows Imaging (WIM) file.
     	- Turn off the virtual machine.
    -    
    -    
    -    This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server (SRV1). The file name is **REFW10X64-001.wim**.
     
    +    This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server (SRV1). The file name is **REFW10X64-001.wim**.
     
     ## Deploy a Windows 10 image using MDT
     
    
    From fbbf03a34c391f79e04661e202478bb4d354aeb7 Mon Sep 17 00:00:00 2001
    From: Greg Lindsay 
    Date: Tue, 20 Dec 2016 16:47:38 -0800
    Subject: [PATCH 080/233] trying
    
    ---
     windows/deploy/windows-10-poc-mdt.md | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md
    index 9ef23ed45d..af78f7a17f 100644
    --- a/windows/deploy/windows-10-poc-mdt.md
    +++ b/windows/deploy/windows-10-poc-mdt.md
    @@ -214,7 +214,7 @@ A reference image serves as the foundation for Windows 10 devices in your organi
     
         New-VM REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB
         Set-VMMemory REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
    -    Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
    +    Set-VMDvdDrive REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
         Start-VM REFW10X64-001
         vmconnect localhost REFW10X64-001
     	
    @@ -234,7 +234,7 @@ A reference image serves as the foundation for Windows 10 devices in your organi - Stage Windows PE on the local disk. - Run System Preparation (Sysprep) and reboot into Windows PE. - Capture the installation to a Windows Imaging (WIM) file. - - Turn off the virtual machine. + - Turn off the virtual machine.

    This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server (SRV1). The file name is **REFW10X64-001.wim**. From 792da4353d0de79789d6e80af015a0160d2f97ae Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Dec 2016 13:00:43 -0800 Subject: [PATCH 081/233] Merry Christmas --- windows/deploy/windows-10-poc-mdt.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index af78f7a17f..2062208b12 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -390,7 +390,7 @@ This procedure will demonstrate how to deploy the reference image to the PoC env 1. Before using WDS to deploy a client image, you must temporarily disable the external network adapter on SRV1. This is just an artifact of the lab environment. In a typical deployment environment WDS would not be installed on the default gateway. - >**Note**: Do not disable the *internal* network interface. To quickly view IP addresses and interface names configured on the VM, **type Get-NetIPAddress | ft interfacealias, ipaddress** + >**Note**: Do not disable the *internal* network interface. To quickly view IP addresses and interface names configured on the VM, type **Get-NetIPAddress | ft interfacealias, ipaddress** Assuming the external interface is named "Ethernet 2", to disable the *external* interface on SRV1, open a Windows PowerShell prompt on SRV1 and type the following command: @@ -422,9 +422,8 @@ This procedure will demonstrate how to deploy the reference image to the PoC env Enable-NetAdapter "Ethernet 2" ``` 7. On SRV1, in the Deployment Workbench console, click on **Monitoring** and view the status of installation. Right-click **Monitoring** and click **Refresh** if no data is displayed. -8. OS installation requires about 10 minutes. When the installation is complete, the system will reboot automatically, configure devices, and install updates, requiring another 10-20 minutes. When the new client computer is finished updating, click **Finish**. You will be automatically signed in to the local computer as administrator. - - +8. OS installation requires about 10 minutes. When the installation is complete, the system will reboot automatically, configure devices, and install updates, requiring another 10-20 minutes. When the new client computer is finished updating, click **Finish**. You will be automatically signed in to the local computer as administrator. + ![finish](images/deploy-finish.png) From eccae322966671d5fcbfbb0121d2896595c64612 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 3 Jan 2017 13:02:18 -0800 Subject: [PATCH 082/233] I think I have it now --- windows/deploy/windows-10-poc-mdt.md | 29 +++++++++++ windows/deploy/windows-10-poc.md | 72 +++++++++++++++++----------- 2 files changed, 73 insertions(+), 28 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 2062208b12..3ae6e6e6a9 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -433,6 +433,8 @@ This completes the demonstration of how to deploy a reference image to the netwo This section will demonstrate how to export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings. The scenario will use PC1, a computer that was cloned from a physical device to a VM, as described in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md). +>**Important**: If the client computer that was cloned to a VM is a Windows 7 PC with a GPT-formatted OS drive, and you used the procedure [prepare a generation 1 VM from a GPT disk](#windows-10-poc?branch=vso-7992313a#prepare-a-generation-1-vm-from-a-gpt-disk) to create a bootable VM, the VM must be recreated before proceeding. We can do this using DISM which is installed on SRV1. To recreate the PC1 VM, see [Migrate GPT to MBR](#migrate-gpt-to-mbr). If PC1 is running Windows 8 or later, or has a GPT-formatted OS drive, you do not need to perform the GPT to MBR migration and can continue with the current procedure. + 1. Create a checkpoint for the PC1 VM so that it can easily be reverted to its current state for troubleshooting purposes and to perform additional scenarios. Checkpoints are also known as snapshots. To create a checkpoint for the PC1 VM, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: ``` @@ -575,6 +577,33 @@ At a high level, the computer replace process consists of:
    ``` 7. Setup will install the Windows 10 Enterprise operating system, update via Windows Update, and restore the user settings and data from PC1. +## Migrate GPT to MBR + +You can use this procedure to convert a GPT-formatted OS drive to an MBR-formatted one. This procedure is only necessary if the client computer (PC1) is running Windows 7 and has a GPT-formatted partition table. To migrate the GPT-formated VHD to an MBR-formatted one: + +1. Verify that the PC1 VM is turned OFF on the Hyper-V host. The disk cannot be in use while performing the migration. + + >In its current configuration, PC1 has two attached VHDs: c:\vhd\s.vhd (the boot disk) and c:\vhd\w7.vhd (the OS disk). The VM will be migrated to have a single boot/OS disk. + +2. On the Hyper-V host, type the following commands: + +cmd /c "icacls c:\vhd\w7.vhd /grant Everyone:(OI)(CI)F" + + + + + + +2. On the Hyper-V host, type the following commands: + +Stop-VM SRV1 +Add-VMHardDiskDrive SRV1 -Path c:\vhd\w7.vhd +Start-VM SRV1 +vmconnect localhost SRV1 + +3. Sign in to SRV1 using the CONTOSO\Administrator account. +4. + ## Troubleshooting logs, events, and utilities Deployment logs are available on the client computer in the following locations: diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 6bcdaff0d0..f65acf2828 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -14,7 +14,7 @@ author: greg-lindsay - Windows 10 -This guide contains instructions to configure a proof of concept (PoC) environment using Hyper-V that requires a minimum amount of resources. Subsequent companion guides contain steps to deploy Windows 10 using the PoC environment. After completing this guide, also see the following guides: +This guide contains instructions to configure a proof of concept (PoC) environment using Hyper-V that requires a minimum amount of resources. Subsequent companion guides contain steps to deploy Windows 10 using the PoC environment. After completing this guide, see the following guides: - [Step by step: Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md).
    - [Step by step: Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md).
    @@ -301,7 +301,7 @@ When creating a VM in Hyper-V, you must specify either generation 1 or generatio
    -To determine the OS and architecture of a PC, type **systeminfo** at a command prompt and review the output next to **OS Name** and **System Type**. +In summary, if the PC is running a 32-bit OS or the OS is Windows 7, it must be converted to a generation 1 VM. Otherwise, it can be converted to a generation 2 VM. To determine the OS and architecture of a PC, type **systeminfo** at a command prompt and review the output next to **OS Name** and **System Type**. To determine the partition style, open a Windows PowerShell prompt on the PC and type the following command: @@ -588,27 +588,25 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to To create a generation 1 VM from a GPT disk (using c:\vhd\w7.vhd): - Type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host. Do not forget to include the pipe "|" at the end of the first five commands: + >Note: The following procedure is longer because it includes steps to convert the OS partition from GPT to MBR format. A temporary, blank VHD is created, the OS image is saved to this drive, the OS drive is reformatted to MBR, the OS image restored, and then the temporary drive is removed. + + First, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host to create a temporary VHD that will be used to save the OS image. Do not forget to include a pipe (|) at the end of the first five commands:
    -    New-VHD -Path c:\vhd\s.vhd -SizeBytes 100MB |
    +    New-VHD -Path c:\vhd\d.vhd -SizeBytes 1TB |
         Mount-VHD -Passthru |
         Get-Disk -Number {$_.DiskNumber} |
         Initialize-Disk -PartitionStyle MBR -PassThru |
    -    New-Partition -UseMaximumSize -IsActive |
    +    New-Partition -UseMaximumSize |
         Format-Volume -Confirm:$false -FileSystem NTFS -force
    -    Dismount-VHD -Path c:\vhd\s.vhd
    +    Dismount-VHD -Path c:\vhd\d.vhd
         
    - The previous set of commands creates a VHD with an MBR formatted system partition. System files are not yet copied to the partition. - - >It is possible to copy system files directly onto this partition by mounting the OS partition (w7.vhd) and using the bcdboot tool. However, this approach is not as safe as running bcdboot by accessing OS repair options for the VM. The following steps use this safer method. - - Type the following command at an elevated Windows PowerShell prompt ($maxram was defined previously): + Next, create the PC1 VM with two attached VHDs, and boot to DVD ($maxram must be defined previously using the same Windows PowerShell promt):
    -    New-VM -Name "PC1" -VHDPath c:\vhd\s.vhd -SwitchName poc-internal
    -    Add-VMHardDiskDrive -VMName PC1 -Path c:\vhd\w7.vhd
    +    New-VM -Name "PC1" -VHDPath c:\vhd\w7.vhd -SwitchName poc-internal
    +    Add-VMHardDiskDrive -VMName PC1 -Path c:\vhd\d.vhd
         Set-VMDvdDrive -VMName PC1 -Path c:\vhd\w10-enterprise.iso
         Set-VMMemory -VMName "PC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20
         Enable-VMIntegrationService -Name "Guest Service Interface" -VMName PC1
    @@ -616,33 +614,51 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
         vmconnect localhost PC1
         
    - In the PC1 window, press a key to boot from DVD. The VM will boot into Windows Setup. + The VM will automatically boot into Windows Setup. In the PC1 window: 1. Click **Next**. 2. Click **Repair your computer**. 3. Click **Troubleshoot**. 4. Click **Command Prompt**. - 5. Type **bootrec /scanos** and verify that **D:\Windows** is found. - 6. Type **bcdboot D:\Windows** and verify that **Boot files successfully created** is displayed. See the following example: + 5. Type the following command to save an image of the OS drive: - ![scanos](images/scanos.png) +
    +    dism /Capture-Image /ImageFile:D:\c.wim /CaptureDir:C:\ /Name:Drive-C
    +    
    - >If there is an error at this stage, ensure that the system partition VHD (c:\vhd\s.vdh) is correctly formatted, marked as active, and attached to the VM. Note: the OS drive is only temporarily assigned a letter of D. - - 7. Next, automounting of new volumes needs to be disabled so that the GPT system volume is not assigned a drive letter after rebooting. To disable automounting, type the following commands at the current command prompt: + 6. Wait for the OS image to complete saving, and then type the following commands to convert the C: drive to MBR:
         diskpart
    -    automount disable
    -    automount scrub
    +    select disk 0
    +    clean
    +    convert MBR
    +    create partition primary size=100
    +    format fs=ntfs quick
    +    active
    +    create partition primary
    +    format fs=ntfs quick label=OS
    +    assign letter=c
         exit
    -    
    +
    + + 7. Type the following commands to restore the OS image and boot files: + +
    +    dism /Apply-Image /ImageFile:D:\c.wim /Index:1 /ApplyDir:C:\
    +    bcdboot c:\windows
    +    exit
    +    
    + + 8. Click **Continue** and verify the VM boots successfully (do not boot from DVD). + 9. Click **Ctrl+Alt+Del**, and then in the bottom right corner, click **Shut down**. + 10. Type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host to remove the temporary disks and drives from PC1: + +
    +    Remove-VMHardDiskDrive -VMName PC1 -ControllerType IDE -ControllerNumber 0 -ControllerLocation 1
    +    Set-VMDvdDrive -VMName PC1 -Path $null
    +    
    - 8. Type **exit** to quit the command prompt. - 9. Click **Continue**. Do not press a key to boot from the DVD again. The VM will boot into the OS partition that was exported to c:\vhd\w7.vhd. - 10. On the PC1 virtual machine connection menu, click **Media**, point to **DVD drive**, and then click **Eject w10-enterprise.iso**. - 11. In the upper left corner click **Ctrl+Alt+Del** and then in the bottom right corner click **Shut down**. - ### Configure VMs 1. At an elevated Windows PowerShell prompt on the Hyper-V host, start the first Windows Server VM and connect to it by typing the following commands: From 44dc91fc1a3379b36956a0587ed21252638097a5 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Tue, 3 Jan 2017 13:43:34 -0800 Subject: [PATCH 083/233] again --- windows/deploy/windows-10-poc.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index f65acf2828..5f2c3639f4 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -14,20 +14,22 @@ author: greg-lindsay - Windows 10 -This guide contains instructions to configure a proof of concept (PoC) environment using Hyper-V that requires a minimum amount of resources. Subsequent companion guides contain steps to deploy Windows 10 using the PoC environment. After completing this guide, see the following guides: +This guide contains instructions to configure a proof of concept (PoC) environment requiring a minimum amount of resources. The guide makes extensive use of Windows PowerShell and Hyper-V. Subsequent companion guides contain steps to deploy Windows 10 using the PoC environment. After completing this guide, see the following Windows 10 deployment guides: - [Step by step: Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md).
    - [Step by step: Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md).
    Approximately 3 hours are required to configure the PoC environment. You will need a Hyper-V capable computer running Windows 8.1 or later with at least 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. -Windows PowerShell commands are provided to set up the PoC environment quickly. You do not need to be an expert in Windows PowerShell to complete the steps in the guide, however you are required to customize some commands to fit your environment. Instructions to "type" Windows PowerShell commands provided in this guide can be followed literally by typing the commands, but when it is possible the preferred method is to copy and paste these commands. +Windows PowerShell commands are provided to set up the PoC environment quickly. You do not need to be an expert in Windows PowerShell to complete the steps in the guide, however you are required to customize some commands to your environment. + +>Instructions to "type" Windows PowerShell commands provided in this guide can be followed literally by typing the commands, but the preferred method is to copy and paste these commands. Hyper-V is installed, configured and used extensively in this guide. If you are not familiar with Hyper-V, review the [terminology](#appendix-b-terminology-in-this-guide) used in this guide before starting. ## In this guide -This guide contains instructions for three general procedures: Install Hyper-V, configure Hyper-V, and configure VMs. If you already have a computer running Hyper-V, you can use this computer and skip the first procedure. In this case, virtual switch settings must be modified to match those used in this guide, or the steps can be modified to use your existing Hyper-V settings. +This guide contains instructions for three general procedures: Install Hyper-V, configure Hyper-V, and configure VMs. If you already have a computer running Hyper-V, you can use this computer and skip the first procedure. In this case, your virtual switch settings must be modified to match those used in this guide, or the steps in this guide can be modified to use your existing Hyper-V settings. After completing the instructions in this guide, you will have a PoC environment that enables you to test Windows 10 deployment procedures with current tools, as documented in subsequent guides. Links are provided to download trial versions of Windows Server 2012, Windows 10 Enterprise, and all deployment tools necessary to complete the lab. @@ -209,7 +211,7 @@ Starting with Windows 8, the host computer’s microprocessor must support secon ### Download VHD and ISO files -When you have completed installation of Hyper-V on the host computer, begin configuration of Hyper-V by downloading VHD and ISO files to the computer. These files will be used to create the VMs used in the lab. Before you can download VHD and ISO files, you will need to register and sign in to the [TechNet Evaluation Center](https://www.microsoft.com/en-us/evalcenter/) using your Microsoft account. +When you have completed installation of Hyper-V on the host computer, begin configuration of Hyper-V by downloading VHD and ISO files to the Hyper-V host. These files will be used to create the VMs used in the lab. Before you can download VHD and ISO files, you will need to register and sign in to the [TechNet Evaluation Center](https://www.microsoft.com/en-us/evalcenter/) using your Microsoft account. 1. Create a directory on your Hyper-V host named **C:\VHD** and download a single [Windows Server 2012 R2 VHD](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2012-r2) from the TechNet Evaluation Center to the **C:\VHD** directory. @@ -301,9 +303,10 @@ When creating a VM in Hyper-V, you must specify either generation 1 or generatio
    -In summary, if the PC is running a 32-bit OS or the OS is Windows 7, it must be converted to a generation 1 VM. Otherwise, it can be converted to a generation 2 VM. To determine the OS and architecture of a PC, type **systeminfo** at a command prompt and review the output next to **OS Name** and **System Type**. +If the PC is running a 32-bit OS or the OS is Windows 7, it must be converted to a generation 1 VM. Otherwise, it can be converted to a generation 2 VM. -To determine the partition style, open a Windows PowerShell prompt on the PC and type the following command: +- To determine the OS and architecture of a PC, type **systeminfo** at a command prompt and review the output next to **OS Name** and **System Type**. +- To determine the partition style, open a Windows PowerShell prompt on the PC and type the following command:
     Get-WmiObject -Class Win32_DiskPartition | Select-Object -Property SystemName,Caption,Type
    @@ -541,7 +544,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
         (Get-VMHostNumaNode).MemoryAvailable
         
    - This command will display the megabytes of RAM available. On a Hyper-V host computer with 16 GB of physical RAM installed, 10,000 MB of RAM or greater should be available if the computer is not also running other applications. On a computer with 8 GB of physical RAM installed, at least 4000 MB should be available. If the computer has less RAM available than this, try closing applications to free up more memory. + This command will display the megabytes of RAM available for VMs. On a Hyper-V host computer with 16 GB of physical RAM installed, 10,000 MB of RAM or greater should be available if the computer is not also running other applications. On a computer with 8 GB of physical RAM installed, at least 4000 MB should be available. If the computer has less RAM available than this, try closing applications to free up more memory. 3. Determine the available memory for VMs by dividing the available RAM by 4. For example: @@ -588,7 +591,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to To create a generation 1 VM from a GPT disk (using c:\vhd\w7.vhd): - >Note: The following procedure is longer because it includes steps to convert the OS partition from GPT to MBR format. A temporary, blank VHD is created, the OS image is saved to this drive, the OS drive is reformatted to MBR, the OS image restored, and then the temporary drive is removed. + >Note: The following procedure is more complex because it includes steps to convert the OS partition from GPT to MBR format. Steps are included to create a temporary VHD and attach it to the VM, the OS image is saved to this drive, the OS drive is then reformatted to MBR, the OS image restored, and the temporary drive is removed. First, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host to create a temporary VHD that will be used to save the OS image. Do not forget to include a pipe (|) at the end of the first five commands: @@ -681,7 +684,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to >The default gateway at 192.168.0.2 will be configured later in this guide. - >Note: A list of available tasks for an app will be populated the first time you run it on the taskbar. Because these tasks aren't available until the App has been run, you will not see the Run as Administrator task until you have left-clicked Windows PowerShell for the first time. In this newly created VM, you will need to left-click Windows PowerShell one time, and then you can right-click and choose Run as Administrator to open an elevated Windows PowerShell prompt. + >Note: A list of available tasks for an app will be populated the first time you run it on the taskbar. Because these tasks aren't available until the App has been run, you will not see the **Run as Administrator** task until you have left-clicked Windows PowerShell for the first time. In this newly created VM, you will need to left-click Windows PowerShell one time, and then you can right-click and choose Run as Administrator to open an elevated Windows PowerShell prompt. 6. Install the Active Directory Domain Services role by typing the following command at an elevated Windows PowerShell prompt: From ffac904057bb86124e3cae4157dacf3260c4e608 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 4 Jan 2017 12:39:47 -0800 Subject: [PATCH 084/233] done? --- windows/deploy/windows-10-poc-mdt.md | 65 +++++++++++++--------------- windows/deploy/windows-10-poc.md | 10 +++-- 2 files changed, 35 insertions(+), 40 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 3ae6e6e6a9..d34e56bbdd 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -39,8 +39,8 @@ Topics and procedures in this guide are summarized in the following table. An es
    [Install MDT](#install-mdt)Download and install MDT.40 minutes
    [Create a deployment share and reference image](#create-a-deployment-share-and-reference-image)A reference image is created to serve as the template for deploying new images.90 minutes
    [Deploy a Windows 10 image using MDT](#deploy-a-windows-10-image-using-mdt)The reference image is deployed in the PoC environment.60 minutes -
    [Refresh a computer with Windows 10](#refresh-a-computer-with-windows-10)Export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings.30 minutes -
    [Replace a computer with Windows 10](#replace-a-computer-with-windows-10)Back up an existing client computer, then restore this backup to a new computer.30 minutes +
    [Refresh a computer with Windows 10](#refresh-a-computer-with-windows-10)Export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings.60 minutes +
    [Replace a computer with Windows 10](#replace-a-computer-with-windows-10)Back up an existing client computer, then restore this backup to a new computer.60 minutes
    [Troubleshooting logs, events, and utilities](#troubleshooting-logs-events-and-utilities)Log locations and troubleshooting hints.Informational
    @@ -338,6 +338,20 @@ This procedure will demonstrate how to deploy the reference image to the PoC env >In this example a **MachineObjectOU** entry is not provided. Normally this entry describes the specific OU where new client computer objects are created in Active Directory. However, for the purposes of this test lab clients are added to the default computers OU, which requires that this parameter be unspecified. + If desired, edit the follow line to include or exclude other users when migrating settings. Currently, the command is set to user exclude (ue) all users except for CONTOSO users specified by the user include option (ui): + + ``` + ScanStateArgs=/ue:*\* /ui:CONTOSO\* + ``` + + For example, to migrate **all** users on the computer, replace this line with the following: + + ``` + ScanStateArgs=/all + ``` + + For more information, see [ScanState Syntax](https://technet.microsoft.com/library/cc749015.aspx). + 4. Click **Edit Bootstap.ini** and replace text in the file with the following text: ``` @@ -433,13 +447,18 @@ This completes the demonstration of how to deploy a reference image to the netwo This section will demonstrate how to export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings. The scenario will use PC1, a computer that was cloned from a physical device to a VM, as described in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md). ->**Important**: If the client computer that was cloned to a VM is a Windows 7 PC with a GPT-formatted OS drive, and you used the procedure [prepare a generation 1 VM from a GPT disk](#windows-10-poc?branch=vso-7992313a#prepare-a-generation-1-vm-from-a-gpt-disk) to create a bootable VM, the VM must be recreated before proceeding. We can do this using DISM which is installed on SRV1. To recreate the PC1 VM, see [Migrate GPT to MBR](#migrate-gpt-to-mbr). If PC1 is running Windows 8 or later, or has a GPT-formatted OS drive, you do not need to perform the GPT to MBR migration and can continue with the current procedure. +If the PC1 VM is not already running, then start and connect to it: -1. Create a checkpoint for the PC1 VM so that it can easily be reverted to its current state for troubleshooting purposes and to perform additional scenarios. Checkpoints are also known as snapshots. To create a checkpoint for the PC1 VM, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: +
    +    Start-VM PC1
    +    vmconnect localhost PC1
    +    
    - ``` +1. Switch back to the Hyper-V host and create a checkpoint for the PC1 VM so that it can easily be reverted to its current state for troubleshooting purposes and to perform additional scenarios. Checkpoints are also known as snapshots. To create a checkpoint for the PC1 VM, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: + +
         Checkpoint-VM -Name PC1 -SnapshotName BeginState
    -    ```
    +    
    2. Sign on to PC1 using the CONTOSO\Administrator account. @@ -466,7 +485,7 @@ This section will demonstrate how to export user data from an existing client co You can review the progress of installation on SRV1 by clicking on the **Monitoring** node in the deployment workbench. When OS installation is complete, the computer will restart, set up devices, and configure settings. -7. Sign in with the CONTOSO\Administrator account and verify that all CONTOSO domain user accounts and data have been migrated to the new operating system. +7. Sign in with the CONTOSO\Administrator account and verify that all CONTOSO domain user accounts and data have been migrated to the new operating system, or other user accounts as specified [previously](#configure-the-mdt-production-deployment-share). 8. Create another checkpoint for the PC1 VM so that you can review results of the computer refresh later. To create a checkpoint, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: @@ -504,8 +523,8 @@ At a high level, the computer replace process consists of:
    6. Right-click the **Other** folder and then click **New Task Sequence**. Use the following values in the wizard: - **Task sequence ID**: REPLACE-001 - **Task sequence name**: Backup Only Task Sequence - - **Task sequence comments**: Run USMT to backup user data and settings - - **Template**: Standard Client Replace Task Sequence + - **Task sequence comments**: Run USMT to back up user data and settings + - **Template**: Standard Client Replace Task Sequence (note: this is not the default template) 7. Accept defaults for the rest of the wizard and then click **Finish**. The replace task sequence will skip OS selection and settings. 8. Open the new task sequence that was created and review it. Note the type of capture and backup tasks that are present. Click **OK** when you are finished reviewing the task sequence. @@ -516,7 +535,7 @@ At a high level, the computer replace process consists of:
    ``` whoami ``` -2. To ensure a clean environment before running the backup task sequence, type the following at an elevated Windows PowerShell prompt: +2. To ensure a clean environment before running the backup task sequence, type the following at an elevated Windows PowerShell prompt on PC1: ``` Remove-Item c:\minint -recurse @@ -577,32 +596,6 @@ At a high level, the computer replace process consists of:
    ``` 7. Setup will install the Windows 10 Enterprise operating system, update via Windows Update, and restore the user settings and data from PC1. -## Migrate GPT to MBR - -You can use this procedure to convert a GPT-formatted OS drive to an MBR-formatted one. This procedure is only necessary if the client computer (PC1) is running Windows 7 and has a GPT-formatted partition table. To migrate the GPT-formated VHD to an MBR-formatted one: - -1. Verify that the PC1 VM is turned OFF on the Hyper-V host. The disk cannot be in use while performing the migration. - - >In its current configuration, PC1 has two attached VHDs: c:\vhd\s.vhd (the boot disk) and c:\vhd\w7.vhd (the OS disk). The VM will be migrated to have a single boot/OS disk. - -2. On the Hyper-V host, type the following commands: - -cmd /c "icacls c:\vhd\w7.vhd /grant Everyone:(OI)(CI)F" - - - - - - -2. On the Hyper-V host, type the following commands: - -Stop-VM SRV1 -Add-VMHardDiskDrive SRV1 -Path c:\vhd\w7.vhd -Start-VM SRV1 -vmconnect localhost SRV1 - -3. Sign in to SRV1 using the CONTOSO\Administrator account. -4. ## Troubleshooting logs, events, and utilities diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index 5f2c3639f4..f364f7936f 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -726,10 +726,12 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
    >The -Force option is necessary when adding scope options to skip validation of 192.168.0.2 as a DNS server because we have not configured it yet. The scope should immediately begin issuing leases on the PoC network. The first DHCP lease that will be issued is to vEthernet interface on the Hyper-V host, which is a member of the internal network. You can verify this by using the command: Get-DhcpServerv4Lease -ScopeId 192.168.0.0. -11. Add a user account to the contoso.com domain that can be used with client computers: +11. Add a user account to the contoso.com domain that can be used with client computers, and set passwords to never expire:
         New-ADUser -Name "User1" -UserPrincipalName user1 -AccountPassword (ConvertTo-SecureString "pass@word1" -AsPlainText -Force) -ChangePasswordAtLogon $false -Enabled $true
    +    Set-ADUser -Identity user1 -PasswordNeverExpires $true
    +    Set-ADUser -Identity administrator -PasswordNeverExpires $true
         
    12. The DNS server role will also be installed on the member server, SRV1, at 192.168.0.2 so that we can forward DNS queries from DC1 to SRV1 to resolve Internet names without having to configure a forwarder outside the PoC network. Since the IP address of SRV1 already exists on DC1's network adapter, it will be automatically added during the DCPROMO process. To verify this server-level DNS forwarder on DC1, type the following command at an elevated Windows PowerShell prompt on DC1: @@ -838,7 +840,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to Copy-VMFile "PC1" –SourcePath "C:\VHD\pc1.ps1" –DestinationPath "C:\pc1.ps1" –CreateFullPath –FileSource Host - >In order for this command to work properly, PC1 must be running the vmicguestinterface (Hyper-V Guest Service Interface) service. If this service is not installed, you can try updating integration services on the VM. This can be done by mounting the Hyper-V Integration Services Setup (vmguest.iso), which is located in C:\Windows\System32 on Windows Server operating systems that are running the Hyper-V role service. Otherwise, just create the file c:\pc1.ps1 on the VM and type the commands into this file manually. Be sure to save the file as a Windows PowerShell script file with the .ps1 extension and not as a text (.txt) file. + >In order for this command to work properly, PC1 must be running the vmicguestinterface (Hyper-V Guest Service Interface) service. If this service is not installed, you can try updating integration services on the VM. This can be done by mounting the Hyper-V Integration Services Setup (vmguest.iso), which is located in C:\Windows\System32 on Windows Server operating systems that are running the Hyper-V role service. Otherwise, just create the file c:\pc1.ps1 on the VM by typing the commands into this file manually. Be sure to save the file as a Windows PowerShell script file with the .ps1 extension and not as a text (.txt) file. 22. On PC1, type the following commands at an elevated Windows PowerShell prompt: @@ -846,9 +848,9 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to Get-Content c:\pc1.ps1 | powershell.exe -noprofile - - >The commands might take a few moments to complete. If an error is displayed, check that you typed the command correctly, paying close attention to spaces. PC1 is removed from its domain in this step while not connected to the corporate network so as to ensure the computer object in the corporate domain is unaffected. PC1 is also not renamed to "PC1" in system properties so that it maintains some of its mirrored identity. However, if desired you can also rename the computer. + >The commands in this script might take a few moments to complete. If an error is displayed, check that you typed the command correctly, paying close attention to spaces. PC1 is removed from its domain in this step while not connected to the corporate network so as to ensure the computer object in the corporate domain is unaffected. PC1 is also not renamed to "PC1" in system properties so that it maintains some of its mirrored identity. However, if desired you can also rename the computer. -23. After PC1 restarts, sign in to the contoso.com domain using the **Switch User** option, with the **user1** account you created in step 11 of this section. +23. Upon completion of the script, PC1 will automatically restart. When it has restarted, sign in to the contoso.com domain using the **Switch User** option, with the **user1** account you created in step 11 of this section. >The settings that will be used to migrate user data specifically select only accounts that belong to the CONTOSO domain. If you wish to test migration of user data and settings with an account other than the user1 account, you must copy this account's profile to the user1 profile. 24. Minimize the PC1 window but do not turn it off while the second Windows Server 2012 R2 VM (SRV1) is configured. This verifies that the Hyper-V host has enough resources to run all VMs simultaneously. Next, SRV1 will be started, joined to the contoso.com domain, and configured with RRAS and DNS services. 25. On the Hyper-V host computer, at an elevated Windows PowerShell prompt, type the following commands: From 873af7c2a2d72a20fe85d0e0344e008536669483 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 4 Jan 2017 14:52:59 -0800 Subject: [PATCH 085/233] #3 --- windows/deploy/windows-10-poc-mdt.md | 9 ++++++--- windows/deploy/windows-10-poc-sc-config-mgr.md | 4 +--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index d34e56bbdd..7536439af4 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -507,7 +507,7 @@ At a high level, the computer replace process consists of:
    - A special replace task sequence that runs the USMT backup and an optional full Window Imaging (WIM) backup.
    - A standard OS deployment on a new computer. At the end of the deployment, the USMT backup from the old computer is restored. -#### Create a backup-only task sequence +### Create a backup-only task sequence 1. On SRV1, in the deployment workbench console, right-click the MDT Production deployment share, click **Properties**, click the **Rules** tab, and change the line **SkipUserData=YES** to **SkipUserData=NO**. 2. Click **OK**, right-click **MDT Production**, click **Update Deployment Share** and accept the default options in the wizard to update the share. @@ -528,7 +528,7 @@ At a high level, the computer replace process consists of:
    7. Accept defaults for the rest of the wizard and then click **Finish**. The replace task sequence will skip OS selection and settings. 8. Open the new task sequence that was created and review it. Note the type of capture and backup tasks that are present. Click **OK** when you are finished reviewing the task sequence. -#### Run the backup-only task sequence +### Run the backup-only task sequence 1. If you are not already signed on to PC1 as **contoso\administrator**, sign in using this account. To verify the currently signed in account, type the following command at an elevated command prompt: @@ -564,7 +564,7 @@ At a high level, the computer replace process consists of:
    ---- ------------- ------ ---- -a--- 9/6/2016 11:34 AM 14248685 USMT.MIG ``` -#### Deploy PC3 +### Deploy PC3 1. On the Hyper-V host, type the following commands at an elevated Windows PowerShell prompt: @@ -596,6 +596,9 @@ At a high level, the computer replace process consists of:
    ``` 7. Setup will install the Windows 10 Enterprise operating system, update via Windows Update, and restore the user settings and data from PC1. +8. When PC3 has completed installing the OS, sign in to PC3 using the contoso\administrator account. When the PC completes updating, click **Finish**. + +9. Verify that settings have been migrated from PC1, and then shut down PC3 in preparation for the next procedure. ## Troubleshooting logs, events, and utilities diff --git a/windows/deploy/windows-10-poc-sc-config-mgr.md b/windows/deploy/windows-10-poc-sc-config-mgr.md index 9f6e7605fb..68c3dc597f 100644 --- a/windows/deploy/windows-10-poc-sc-config-mgr.md +++ b/windows/deploy/windows-10-poc-sc-config-mgr.md @@ -14,9 +14,7 @@ author: greg-lindsay - Windows 10 -**Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md). Please complete all steps in the prerequisite guide before attempting the procedures in this guide. - -If you have already completed [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md), you can skip some steps of this guide, such as installation of MDT. +**Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md) and requires that you have completed completed procedures in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md). Please complete all steps in these guides before attempting the procedures in this guide. The PoC environment is a virtual network running on Hyper-V with three virtual machines (VMs): - **DC1**: A contoso.com domain controller, DNS server, and DHCP server. From f2a667e27780f77cd0db157d3ab2b4abf80c08f3 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 4 Jan 2017 16:18:52 -0800 Subject: [PATCH 086/233] yay I got the schema extended and site server perms --- .../deploy/windows-10-poc-sc-config-mgr.md | 75 ++++++++++++++----- 1 file changed, 56 insertions(+), 19 deletions(-) diff --git a/windows/deploy/windows-10-poc-sc-config-mgr.md b/windows/deploy/windows-10-poc-sc-config-mgr.md index 68c3dc597f..fb73ead309 100644 --- a/windows/deploy/windows-10-poc-sc-config-mgr.md +++ b/windows/deploy/windows-10-poc-sc-config-mgr.md @@ -1,5 +1,5 @@ --- -title: Placeholder (Windows 10) +title: Deploy Windows 10 using System Center Configuration Manager description: Deploy Windows 10 in a test lab using System Center Configuration Manager ms.prod: w10 ms.mktglfcycl: deploy @@ -14,7 +14,7 @@ author: greg-lindsay - Windows 10 -**Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md) and requires that you have completed completed procedures in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md). Please complete all steps in these guides before attempting the procedures in this guide. +**Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md) and requires that you have completed completed procedures in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md). Please complete all steps in these guides before attempting the procedures in this guide. If you wish to skip the Windows 10 deployment procedures in the MDT guide and move directly to this guide, you must at least install MDT and the Windows ADK before performing procedures in this guide. The PoC environment is a virtual network running on Hyper-V with three virtual machines (VMs): - **DC1**: A contoso.com domain controller, DNS server, and DHCP server. @@ -53,20 +53,23 @@ Description here. ``` D:\setup.exe /q /ACTION=Install /ERRORREPORTING="False" /FEATURES=SQLENGINE,RS,IS,SSMS,TOOLS,ADV_SSMS,CONN /INSTANCENAME=MSSQLSERVER /INSTANCEDIR="C:\Program Files\Microsoft SQL Server" /SQLSVCACCOUNT="NT AUTHORITY\System" /SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS" /SQLSVCSTARTUPTYPE=Automatic /AGTSVCACCOUNT="NT AUTHORITY\SYSTEM" /AGTSVCSTARTUPTYPE=Automatic /RSSVCACCOUNT="NT AUTHORITY\System" /RSSVCSTARTUPTYPE=Automatic /ISSVCACCOUNT="NT AUTHORITY\System" /ISSVCSTARTUPTYPE=Disabled /ASCOLLATION="Latin1_General_CI_AS" /SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS" /TCPENABLED="1" /NPENABLED="1" /IAcceptSQLServerLicenseTerms ``` - Installation might take several minutes. When installation is complete, the following output will be displayed: + Installation will take several minutes. When installation is complete, the following output will be displayed: ``` Microsoft (R) SQL Server 2014 12.00.5000.00 Copyright (c) Microsoft Corporation. All rights reserved. - + Microsoft (R) .NET Framework CasPol 2.0.50727.7905 Copyright (c) Microsoft Corporation. All rights reserved. - + Success Microsoft (R) .NET Framework CasPol 2.0.50727.7905 Copyright (c) Microsoft Corporation. All rights reserved. - + Success + One or more affected files have operations pending. + You should restart your computer to complete this process. + PS C:\> ``` 5. Type the following commands at an elevated Windows PowerShell prompt on SRV1: @@ -77,20 +80,22 @@ Description here. New-NetFirewallRule -DisplayName “SQL Service Broker” -Direction Inbound –Protocol TCP –LocalPort 4022 -Action allow New-NetFirewallRule -DisplayName “SQL Debugger/RPC” -Direction Inbound –Protocol TCP –LocalPort 135 -Action allow ``` -6. On SRV1, temporarily disable IE Enhanced Security Configuration for Administrators by typing the following commands at an elevated Windows PowerShell prompt: + +7. Download and install the latest [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit) on SRV1 using the default installation settings. The current version is the ADK for Windows 10, version 1607. Installation might require several minutes to acquire all components. + +## Install System Center Configuration Manager + +1. On SRV1, temporarily disable IE Enhanced Security Configuration for Administrators by typing the following commands at an elevated Windows PowerShell prompt: ``` $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 0 Stop-Process -Name Explorer ``` -7. Download and install the latest [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit) on SRV1 using the default installation settings. The current version is the ADK for Windows 10, version 1607. Installation might require several minutes to acquire all components. -## Install System Center Configuration Manager +2. Download [System Center Configuration Manager and Endpoint Protection](https://www.microsoft.com/en-us/evalcenter/evaluate-system-center-configuration-manager-and-endpoint-protection) on SRV1 (download the executable file anywhere on SRV1), double-click the file, enter **C:\configmgr** for **Unzip to folder**, and click **Unzip**. The C:\configmgr directory will be automatically created. Click **OK** and then close the **WinZip Self-Extractor** dialog box when finished. -1. Download [System Center Configuration Manager and Endpoint Protection](https://www.microsoft.com/en-us/evalcenter/evaluate-system-center-configuration-manager-and-endpoint-protection) on SRV1, double-click the file, enter **C:\configmgr** for **Unzip to folder**, and click **Unzip**. The C:\configmgr directory will be automatically created. Click **OK** and then close the **WinZip Self-Extractor** dialog box when finished. - -2. Before starting the installation, verify that WMI is working on SRV1. See the following examples. Verify that **Running** is displayed under **Status** and **True** is displayed next to **TcpTestSucceeded**: +3. Before starting the installation, verify that WMI is working on SRV1. See the following examples. Verify that **Running** is displayed under **Status** and **True** is displayed next to **TcpTestSucceeded**: ``` Get-Service Winmgmt @@ -118,12 +123,46 @@ Description here. If the WMI service is not started, attempt to start it or reboot the computer. If WMI is running but errors are present, see [WMIDiag](https://blogs.technet.microsoft.com/askperf/2015/05/12/wmidiag-2-2-is-here/) for troubleshooting information. -2. To start Configuration Manager installation, type the following command at an elevated Windows PowerShell prompt: +4. To extend the Active Directory schema, type the following command at an elevated Windows PowerShell prompt: + + ``` + cmd /c C:\configmgr\SMSSETUP\BIN\X64\extadsch.exe + ``` + +5. Temporarily switch to the DC1 VM, and type the following command at an elevated command prompt on DC1: + + ``` + adsiedit.msc + ``` + +6. Right-click **ADSI Edit**, click **Connect to**, select **Default** under **Computer** and then click **OK**. + +7. Expand **Default naming context**>**DC=contoso,DC=com**, right-click **CN=System**, point to **New**, and then click **Object**. + +8. Click **container** and then click **Next**. + +9. Next to **Value**, type **System Management**, click **Next**, and then click **Finish**. + +10. Right-click **CN=system Management** and then click **Properties**. + +11. On the **Security** tab, click **Add**, click **Object Types**, select **Computers**, and click **OK**. + +12. Under **Enter the object names to select**, type **SRV1** and click **OK**. + +13. The **SRV1** computer account will be highlighted, select **Allow** next to **Full control**. + +14. Click **Advanced**, click **SRV1 (CONTOSO\SRV1$)** and click **Edit**. + +15. Next to **Applies to**, choose **This object and all descendant objects**, and then click **OK** three times. + +16. Close the ADSI Edit console and switch back to SRV1. + +17. To start Configuration Manager installation, type the following command at an elevated Windows PowerShell prompt on SRV1: ``` cmd /c C:\configmgr\SMSSETUP\BIN\X64\Setup.exe ``` -3. Provide the following in the System Center Configuration Manager Setup Wizard: +18. Provide the following in the System Center Configuration Manager Setup Wizard: - **Before You Begin**: Read the text and click *Next*. - **Getting Started**: Choose **Install a Configuration Manager primary site** and select the **Use typical installation options for a stand-alone primary site** checkbox. - Click **Yes** in response to the popup window. @@ -138,13 +177,11 @@ Description here. - **Settings Summary**: Review settings and click **Next**. - **Prerequisite Check**: No failures should be listed. Ignore any warnings and click **Begin Install**. + >There should be at most three warnings present: WSUS on site server, configuration for SQL Server memory usage, and SQL Server process memory allocation. + Depending on the speed of the Hyper-V host and resources allocated to SRV1, installation can require approximately one hour. Click **Close** when installation is complete. -## Download and install MDT - -1. Download and install the 64-bit version of [Microsoft Deployment Toolkit (MDT) 2013 Update 2](https://www.microsoft.com/en-us/download/details.aspx?id=50407) on SRV1 using the default options. - -2. If desired, re-enable IE Enhanced Security Configuration at this time on SRV1: +19. If desired, re-enable IE Enhanced Security Configuration at this time on SRV1: ``` Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 1 From 8e502d286562055dc3ddcb97353ca11adb62be01 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 5 Jan 2017 12:16:05 -0800 Subject: [PATCH 087/233] #3 --- windows/deploy/windows-10-poc-sc-config-mgr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deploy/windows-10-poc-sc-config-mgr.md b/windows/deploy/windows-10-poc-sc-config-mgr.md index fb73ead309..b26acbc9eb 100644 --- a/windows/deploy/windows-10-poc-sc-config-mgr.md +++ b/windows/deploy/windows-10-poc-sc-config-mgr.md @@ -177,7 +177,7 @@ Description here. - **Settings Summary**: Review settings and click **Next**. - **Prerequisite Check**: No failures should be listed. Ignore any warnings and click **Begin Install**. - >There should be at most three warnings present: WSUS on site server, configuration for SQL Server memory usage, and SQL Server process memory allocation. + >There should be at most three warnings present: WSUS on site server, configuration for SQL Server memory usage, and SQL Server process memory allocation. These warnings can safely be ignored. Depending on the speed of the Hyper-V host and resources allocated to SRV1, installation can require approximately one hour. Click **Close** when installation is complete. From ade2de217ee791aca3ad8789b514b632419bdba6 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 5 Jan 2017 13:28:05 -0800 Subject: [PATCH 088/233] more --- windows/deploy/images/sccm-pxe.PNG | Bin 0 -> 32220 bytes .../deploy/windows-10-poc-sc-config-mgr.md | 18 +++++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 windows/deploy/images/sccm-pxe.PNG diff --git a/windows/deploy/images/sccm-pxe.PNG b/windows/deploy/images/sccm-pxe.PNG new file mode 100644 index 0000000000000000000000000000000000000000..39cb22c075bbe28b681e5b45d1e54c622e8623dc GIT binary patch literal 32220 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 z za7@o)dpDStfg_lSxo@9~&0h2e%Dmkd*;WkmT_T*}EM~!`C9O;0BekxcujcCpj)ueQ z-8j?(KxCE85+|(I=`6dfKOrsN;k-u5J=MFn#ahYhQ1pz?AgSsYR&2x!b+mcZG13=* z$Z@fWG4bZrV+G6(&?SaUnKJ=BRNsWT7!a?FtI*szzuKI^6w@LEJx~#u{r#o>=Xdk8 zDhE^*I#{!YI{G9+hgnqbVf4G)e6I4$PetZx8|gtbuXlv0EvE+f7GNjXnORSMK6=X8 zuAL1j8>-_U9%~OtKBbQF+rBcovD)Nladh(?#K1;%@0O}?>haCHhu(LuO5}TRdf3Z6JArA zoCevQ4a1~p&Q@kLyc$^RGoI5TqtY@sBfcGThqAF@XsT(`#@8H?>I@Tlm}bOTPwhFx zjJ3mNvChhhKC?Q)qx|~Td7oAX^O}(fZF~NQ^~o)+D!O-;)VdbF4>EDNc8)%yM)nZS zcg$LuSnqfx0-2?m(~Q>8>({JxD9U$fKcSd z=n33F-Ps@oJ4H!$6NkiXpPpx=jR@Xl9u8iqqGLMhR$5h47fr-&s zIEj4V8Pr?uIX$OEnjj+EjR|#KG91bEi02veCG<8`NT9=r7u~=O_Pb!~OVH4er@H4r zP?^o>qxq_cN~i^2j1$HU>f`S`xyQlxxq0<;oCp6w6}JJ0>6XDn0sio+9EYhY!LiFC zcBI^IIX{-5(>j=S$~nzbo9sLfvY|5UM%<~fjW<1h#$C!wV;WU;v8`Zu@2l;V= zuSvfWl|M^xy85BMp{=H?5Y+9h6#7M;e(77PI`0PbP}yCxHp*3MMfuGh1~hs)%7qXA`_ z2DG|nv-hAf&oLUMC{8BgP8>l${7xJx$7HaL{zpSyHQ_4MLf%pF4ar&Pu4>I`tLcfr ziVJj6{KEu;VQ!GJ#|Yjl&db@6T2192Il)QHFhnO9)TjNzD{6a;kP9A z!}SE7FFj!Y`mP$q1`;>N7&e+)2dar0+8*h zED}8tSWsI@k#m{e zh~ni)utEXuUssn)mF5|j!#7L>l21F$2kU-a!3Zk~T-=2|-e%YbSsf|C z2((2PfNxK{Q*OE<_iIs2T=axz07­2N2FdeR0=B>fN0~C3L?i`akVqbT7u_isGf?!}3 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 NHZZ+Vrg!7v{{W-q36KB) literal 0 HcmV?d00001 diff --git a/windows/deploy/windows-10-poc-sc-config-mgr.md b/windows/deploy/windows-10-poc-sc-config-mgr.md index b26acbc9eb..edad111c16 100644 --- a/windows/deploy/windows-10-poc-sc-config-mgr.md +++ b/windows/deploy/windows-10-poc-sc-config-mgr.md @@ -227,16 +227,16 @@ Description here. ## Enable MDT ConfigMgr integration -1. Click **Start**, type **configmgr**, and then click **Configure ConfigMgr Integration**. +1. On SRV1, click **Start**, type **configmgr**, and then click **Configure ConfigMgr Integration**. 2. Type **PS1** next to **Site code**, and then click **Next**. 3. Verify **The process completed successfully** is displayed, and then click **Finish**. ## Configure client settings -1. Click **Start**, type **configuration manager**, right-click **Configuration Manager Console**, and then click **Pin to Taskbar**. +1. On SRV1, click **Start**, type **configuration manager**, right-click **Configuration Manager Console**, and then click **Pin to Taskbar**. 2. Click **Desktop**, and then launch the Configuration Manager console from the taskbar. 3. If the console notifies you that an update is available, click **OK**. It is not necessary to install updates to complete this lab. -4. In the console tree, open the **Administration** workspace and click **Client Settings**. +4. In the console tree, open the **Administration** workspace (in the lower left corner) and click **Client Settings**. 5. In the display pane, double-click **Default Client Settings**. 6. Click **Computer Agent**, next to **Organization name displayed in Software Center** type **Contoso**, and then click **OK**. @@ -247,7 +247,7 @@ Description here. ``` (Get-NetAdapter "Ethernet").MacAddress ``` - >If the internal network adapter, assigned an IP address of 192.168.0.2, is not named "Ethernet" then replace the name "Ethernet" in the previous command with the name of this network adapter. + >If the internal network adapter, assigned an IP address of 192.168.0.2, is not named "Ethernet" then replace the name "Ethernet" in the previous command with the name of this network adapter. You can review the names of network adapters and the IP addresses assigned to them by typing **ipconfig**. 2. In the System Center Configuration Manager console, in the **Administration** workspace, click **Distribution Points**. 3. In the display pane, right-click **SRV1.CONTOSO.COM** and then click **Properties**. @@ -258,6 +258,11 @@ Description here. - Require a password when computers use PXE - Password and Confirm password: pass@word1 - Respond to PXE requests on specific network interfaces: Enter the MAC address determined in the first step of this procedure. + + See the following example: + + Config Mgr PXE + 5. Click **OK**. 6. Type the following command at an elevated Windows PowerShell prompt on SRV1, and verify that the files displayed are present: @@ -278,6 +283,9 @@ Description here. Invoke-Item 'C:\Program Files\Microsoft Configuration Manager\tools\cmtrace.exe' ``` + The log file will updated continuously while Configuration Manager is running. Wait for Configuration Manager to repair any issues that are present, and periodically re-check that the files are present in the C:\RemoteInstall\SMSBoot\x64 directory. Close the Configuration Manager Trace Log Tool when done. + + ## Create a branding image file 1. If you have a bitmap (.BMP) image for suitable use as a branding image, copy it to the C:\Sources\OSD\Branding folder on SRV1. Otherwise, use the following step to copy a simple branding image. @@ -290,7 +298,7 @@ Description here. ## Create a boot image for Configuration Manager -1. In the Configuration Manager console, in the Software Library workspace, expand **Operating Systems**, right-click **Boot Images**, and then click **Create Boot Image using MDT**. +1. In the Configuration Manager console, in the **Software Library** workspace, expand **Operating Systems**, right-click **Boot Images**, and then click **Create Boot Image using MDT**. 2. On the Package Source page, under **Package source folder to be created (UNC Path):**, type **\\SRV1\Sources$\OSD\Boot\Zero Touch WinPE x64**, and then click **Next**. - The Zero Touch WinPE x64 folder does not yet exist. The folder will be created later. 3. On the General Settings page, type **Zero Touch WinPE x64** next to **Name**, and click **Next**. From 810ed85135a6b76c52a7203e4f57ff247a52bf44 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 9 Jan 2017 09:58:28 -0800 Subject: [PATCH 089/233] bbb --- .../deploy/windows-10-poc-sc-config-mgr.md | 58 +++++++++++-------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/windows/deploy/windows-10-poc-sc-config-mgr.md b/windows/deploy/windows-10-poc-sc-config-mgr.md index edad111c16..5d5eaf5c1f 100644 --- a/windows/deploy/windows-10-poc-sc-config-mgr.md +++ b/windows/deploy/windows-10-poc-sc-config-mgr.md @@ -318,7 +318,7 @@ Description here. ``` STATMSG: ID=2301 SEV=I LEV=M SOURCE="SMS Server" COMP="SMS_DISTRIBUTION_MANAGER" SYS=SRV1.CONTOSO.COM SITE=PS1 PID=2476 TID=4636 GMTDATE=Wed Sep 14 22:11:09.363 2016 ISTR0="Configuration Manager Client Upgrade Package" ISTR1="PS100003" ISTR2="" ISTR3="" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=1 AID0=400 AVAL0="PS100003" SMS_DISTRIBUTION_MANAGER 9/14/2016 3:11:09 PM 4636 (0x121C) ``` -11. You can also review status by clicking the **Zero Touch WinPE x64** image, and then clicking **Content Status** under **Related Objects**, or by entering **\Monitoring\Overview\Distribution Status\Content Status** on the location bar in the console. Click **Zero Touch WinPE x64** under **Content Status** in the console tree and verify that a status of **Successfully distributed content** is displayed on the **Success** tab. +11. You can also review status by clicking the **Zero Touch WinPE x64** image, and then clicking **Content Status** under **Related Objects** in the bottom right-hand corner of the console, or by entering **\Monitoring\Overview\Distribution Status\Content Status** on the location bar in the console. Doublt-click **Zero Touch WinPE x64** under **Content Status** in the console tree and verify that a status of **Successfully distributed content** is displayed on the **Success** tab. 12. In the **Software Library** workspace, double-click **Zero Touch WinPE x64** and then click the **Data Source** tab. 13. Select the **Deploy this boot image from the PXE-enabled distribution point** checkbox, and click **OK**. 14. Review the distmgr.log file again for "**STATMSG: ID=2301**" and verify that there are three folders under **C:\RemoteInstall\SMSImages** with boot images. See the following example: @@ -338,9 +338,7 @@ Description here. ## Create a Windows 10 reference image -If you have already completed steps in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) then you have already created a Windows 10 reference image. Copy the reference image file (REFW10-X64-001.wim) from C:\MDTBuildLab\Captures\REFW10X64-001.wim to C:\Sources\OSD\OS\Windows 10 Enterprise x64\REFW10X64-001.wim. - -If you have not yet created a Windows 10 reference image, complete the following steps. +If you have already completed steps in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) then you have already created a Windows 10 reference image. In this case, skip to the next procedure in this guide: [Add a Windows 10 operating system image](#add-a-windows-10-operating-system-image). If you have not yet created a Windows 10 reference image, complete the steps in this section. 1. In [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md) the Windows 10 Enterprise .iso file was saved to the c:\VHD directory as **c:\VHD\w10-enterprise.iso**. The first step in creating a deployment share is to mount this file on SRV1. To mount the Windows 10 Enterprise DVD on SRV1, open an elevated Windows PowerShell prompt on the Hyper-V host computer and type the following command: @@ -502,7 +500,7 @@ If you have not yet created a Windows 10 reference image, complete the following 2. In the Configuration Manager console, in the **Software Library** workspace, expand **Operating Systems**, right-click **Operating System Images**, and then click **Add Operating System Image**. -3. On the Data Source page, under **Path:**, type **\\SRV1\Sources$\OSD\OS\Windows 10 Enterprise x64\REFW10X64-001.wim**, and click **Next**. +3. On the Data Source page, under **Path:**, type or browse to **\\SRV1\Sources$\OSD\OS\Windows 10 Enterprise x64\REFW10X64-001.wim**, and click **Next**. 4. On the General page, next to **Name:**, type **Windows 10 Enterprise x64**, click **Next** twice, and then click **Close**. @@ -510,10 +508,14 @@ If you have not yet created a Windows 10 reference image, complete the following 6. In the Distribute Content Wizard, click **Next**, click **Add**, click **Distribution Point**, add the **SRV1.CONTOSO.COM** distribution point, click **OK**, click **Next** twice and then click **Close**. -7. Enter **\Monitoring\Overview\Distribution Status\Content Status** on the location bar, click **Windows 10 Enterprise x64**, and monitor the status of content distribution until it is successful and no longer in progress. Refresh the view with the F5 key or by right-clicking **Windows 10 Enterprise x64** and clicking **Refresh**. +7. Enter **\Monitoring\Overview\Distribution Status\Content Status** on the location bar, click **Windows 10 Enterprise x64**, and monitor the status of content distribution until it is successful and no longer in progress. Refresh the view with the F5 key or by right-clicking **Windows 10 Enterprise x64** and clicking **Refresh**. Processing of the image on the site server can take several minutes. + + >If content distribution is not successful, verify that sufficient disk space is available. ## Create a task sequence +>Complete this section slowly. There are a large number of similar settings from which to choose. + 1. In the Configuration Manager console, in the **Software Library** workspace expand **Operating Systems**, right-click **Task Sequences**, and then click **Create MDT Task Sequence**. 2. On the Choose Template page, select the **Client Task Sequence** template and click **Next**. @@ -546,13 +548,13 @@ If you have not yet created a Windows 10 reference image, complete the following 9. On the OS Image page, browse and select the **Windows 10 Enterprise x64** package, and then click **Next**. -10. On the Deployment Method page, accept the default settings and click **Next**. +10. On the Deployment Method page, accept the default settings for **Zero Touch Installation** and click **Next**. 11. On the Client Package page, browse and select the **Microsoft Corporation Configuration Manager Client package** and then click **Next**. 12. On the USMT Package page, browse and select the **Microsoft Corporation User State Migration Tool for Windows 8 10.0.14393.0** package, and then click **Next**. -13. On the Settings Package page, select **Create a new settings package**, and under **Package source folder to be created (UNC Path):**, type \\SRV1\Sources$\OSD\Settings\Windows 10 x64 Settings, and then click **Next**. +13. On the Settings Package page, select **Create a new settings package**, and under **Package source folder to be created (UNC Path):**, type **\\SRV1\Sources$\OSD\Settings\Windows 10 x64 Settings**, and then click **Next**. 14. On the Settings Details page, next to **Name:**, type **Windows 10 x64 Settings**, and click **Next**. @@ -562,13 +564,13 @@ If you have not yet created a Windows 10 reference image, complete the following ## Edit the task sequence -1. In the Configuration Manager console, in the Software Library workspace, click Task Sequences, right-click Windows 10 Enterprise x64, and then click Edit. +1. In the Configuration Manager console, in the **Software Library** workspace, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Edit**. -2. Scroll down to the Install group and click Set Variable for Drive Letter. +2. Scroll down to the **Install** group and click the **Set Variable for Drive Letter** action. -3. Change the Value under OSDPreserveDriveLetter from False to True, and click Apply. +3. Change the Value under **OSDPreserveDriveLetter** from **False** to **True**, and then click **Apply**. -4. In the **State Restore** group, click **Set Status 5**, click **Add**, point to **User State**, and click **Request State Store**. This adds a new action immediately after **Set Status 5**. +4. In the **State Restore** group, click the **Set Status 5** action, click **Add** in the upper left corner, point to **User State**, and click **Request State Store**. This adds a new action immediately after **Set Status 5**. 5. Configure the **Request State Store** action that was just added with the following settings:
    - Request state storage location to: **Restore state from another computer**
    @@ -595,6 +597,8 @@ If you have not yet created a Windows 10 reference image, complete the following ## Finalize the operating system configuration +>If you completed all procedures in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) then the MDT deployment share is already present on SRV1. In this case, skip the first four steps below and begin with step 5 to edit CustomSettings.ini. + 1. In the MDT deployment workbench on SRV1, right-click **Deployment Shares** and then click **New Deployment Share**. 2. Use the following settings for the New Deployment Share Wizard: @@ -615,7 +619,7 @@ If you have not yet created a Windows 10 reference image, complete the following ``` notepad "C:\Sources\OSD\Settings\Windows 10 x64 Settings\CustomSettings.ini" ``` -6. Replace the contents of the file with the following text: +6. Replace the contents of the file with the following text, and then save the file: ``` [Settings] @@ -625,7 +629,6 @@ If you have not yet created a Windows 10 reference image, complete the following [Default] DoCapture=NO ComputerBackupLocation=NONE - MachineObjectOU=ou=Workstations,ou=Computers,ou=Contoso,dc=contoso,dc=com OSDMigrateMode=Advanced OSDMigrateAdditionalCaptureOptions=/ue:*\* /ui:CONTOSO\* OSDMigrateConfigFiles=Miguser.xml,Migapp.xml @@ -633,24 +636,24 @@ If you have not yet created a Windows 10 reference image, complete the following EventService=http://SRV1:9800 ApplyGPOPack=NO ``` -7. In the Software Library workspace, expand **Application Management**, click **Packages**, right-click **Windows 10 x64 Settings**, and then click **Update Distribution Points**. Click **OK** in the popup that appears. +7. Return to the Configuration Manager console, and in the Software Library workspace, expand **Application Management**, click **Packages**, right-click **Windows 10 x64 Settings**, and then click **Update Distribution Points**. Click **OK** in the popup that appears. 8. In the Software Library workspace, expand **Operating Systems**, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Distribute Content**. -9. In the Distribute Content Wizard, click **Next**, click **Add**, click **Distribution Point**, add the **SRV1.CONTOSO.COM** distribution point, click **OK**, click **Next** twice and then click **Close**. +9. In the Distribute Content Wizard, click **Next** twice, click **Add**, click **Distribution Point**, select the **SRV1.CONTOSO.COM** distribution point, click **OK**, click **Next** twice and then click **Close**. -10. Enter **\Monitoring\Overview\Distribution Status\Content Status** on the location bar, click **Windows 10 Enterprise x64**, and monitor the status of content distribution until it is successful and no longer in progress. Refresh the view with the F5 key or by right-clicking **Windows 10 Enterprise x64** and clicking **Refresh**. +10. Enter **\Monitoring\Overview\Distribution Status\Content Status\Windows 10 Enterprise x64** on the location bar, double-click **Windows 10 Enterprise x64**, and monitor the status of content distribution until it is successful and no longer in progress. Refresh the view with the F5 key or by right-clicking **Windows 10 Enterprise x64** and clicking **Refresh**. ## Create a deployment for the task sequence 1. In the Software Library workspace, expand **Operating Systems**, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Deploy**. -2. On the General page, next to **Collection**, click **Browse** and select the **All Unknown Computers** collection, then click **Next**. +2. On the General page, next to **Collection**, click **Browse**, select the **All Unknown Computers** collection, click **OK**, and then click **Next**. 3. On the Deployment Settings page, use the following settings:
    - - Purpose: Available
    - - Make available to the following: Only media and PXE
    - - Click Next.
    + - Purpose: **Available**
    + - Make available to the following: **Only media and PXE**
    + - Click **Next**.
    4. Click **Next** five times to accept defaults on the Scheduling, User Experience, Alerts, and Distribution Points pages. 5. Click **Close**. @@ -660,11 +663,16 @@ If you have not yet created a Windows 10 reference image, complete the following 1. Type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: ``` - New-VM –Name "PC3" –NewVHDPath "c:\vhd\pc3.vhdx" -NewVHDSizeBytes 40GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 - Set-VMMemory -VMName "PC3" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 - Start-VM PC3 - vmconnect localhost PC3 + New-VM –Name "PC4" –NewVHDPath "c:\vhd\pc4.vhdx" -NewVHDSizeBytes 40GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 + Set-VMMemory -VMName "PC4" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 + Start-VM PC4 + vmconnect localhost PC4 ``` + +Problems here, first I got UEFI compatible not found +I tried stopping WDSServer and this caused nothing to be found +Now I'm having difficulty starting WDSServer again... + 2. Press ENTER when prompted to start the network boot service. 3. In the Task Sequence Wizard, provide the password: pass@word1, and then click Next. From cda2700ce55d979ac7c430e597958a8e4df5337a Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 9 Jan 2017 12:15:45 -0800 Subject: [PATCH 090/233] bbb --- windows/deploy/windows-10-poc-sc-config-mgr.md | 5 +++++ windows/deploy/windows-10-poc.md | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/windows/deploy/windows-10-poc-sc-config-mgr.md b/windows/deploy/windows-10-poc-sc-config-mgr.md index 5d5eaf5c1f..2b91d63262 100644 --- a/windows/deploy/windows-10-poc-sc-config-mgr.md +++ b/windows/deploy/windows-10-poc-sc-config-mgr.md @@ -673,6 +673,11 @@ Problems here, first I got UEFI compatible not found I tried stopping WDSServer and this caused nothing to be found Now I'm having difficulty starting WDSServer again... +If I change to gen 1, it is loading PS100006.wim but I must press F12 +Seems to be the correct image +And it popped up with contoso and asked me for the password +Ugh.. I got program files for PS100001 cannot be located on a distribution point again. + 2. Press ENTER when prompted to start the network boot service. 3. In the Task Sequence Wizard, provide the password: pass@word1, and then click Next. diff --git a/windows/deploy/windows-10-poc.md b/windows/deploy/windows-10-poc.md index f364f7936f..240a25cd00 100644 --- a/windows/deploy/windows-10-poc.md +++ b/windows/deploy/windows-10-poc.md @@ -16,8 +16,8 @@ author: greg-lindsay This guide contains instructions to configure a proof of concept (PoC) environment requiring a minimum amount of resources. The guide makes extensive use of Windows PowerShell and Hyper-V. Subsequent companion guides contain steps to deploy Windows 10 using the PoC environment. After completing this guide, see the following Windows 10 deployment guides: -- [Step by step: Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md).
    -- [Step by step: Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md).
    +- [Step by step: Deploy Windows 10 in a test lab using MDT](windows-10-poc-mdt.md)
    +- [Step by step: Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md)
    Approximately 3 hours are required to configure the PoC environment. You will need a Hyper-V capable computer running Windows 8.1 or later with at least 16GB of RAM. Detailed [requirements](#hardware-and-software-requirements) are provided below. You will also need to have a [Microsoft account](https://www.microsoft.com/account) to use for downloading evaluation software. From 4cb4d48475d483ed96620e2e940bf8c065496b0e Mon Sep 17 00:00:00 2001 From: Trudy Hakala Date: Tue, 10 Jan 2017 13:36:42 -0800 Subject: [PATCH 091/233] invoicing updates --- .../windows/images/mcee-add-payment-method.png | Bin 0 -> 20532 bytes education/windows/school-get-minecraft.md | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 education/windows/images/mcee-add-payment-method.png diff --git a/education/windows/images/mcee-add-payment-method.png b/education/windows/images/mcee-add-payment-method.png new file mode 100644 index 0000000000000000000000000000000000000000..7d903277fefcce72a0ad616188f4b2748d0d68d0 GIT binary patch literal 20532 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 literal 0 HcmV?d00001 diff --git a/education/windows/school-get-minecraft.md b/education/windows/school-get-minecraft.md index 325067f303..284ea49e27 100644 --- a/education/windows/school-get-minecraft.md +++ b/education/windows/school-get-minecraft.md @@ -69,9 +69,11 @@ During the purchase, click **Get started! Add a way to pay.** Provide the info n Invoices are now a supported payment method for Minecraft: Education Edition. There are a few requirements: - Admins only (not supported for Teachers) -- $500 invoice minimum +- $500 invoice minimum for your initial purchase - $15,000 invoice maximum (for all invoices within your organization) +**Finding your invoice** + ## Distribute Minecraft After Minecraft: Education Edition is added to your Windows Store for Business inventory, you have three options: From a85729e8fd8bfeb4666fab89d7c07db61b768b80 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 11 Jan 2017 12:11:49 -0800 Subject: [PATCH 092/233] comment --- windows/deploy/windows-10-poc-mdt.md | 2 +- windows/deploy/windows-10-poc-sc-config-mgr.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md index 7536439af4..68f5a90b1b 100644 --- a/windows/deploy/windows-10-poc-mdt.md +++ b/windows/deploy/windows-10-poc-mdt.md @@ -62,7 +62,7 @@ MDT performs deployments by using the Lite Touch Installation (LTI), Zero Touch Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 0 Stop-Process -Name Explorer ``` -2. Download and install the 64-bit version of [Microsoft Deployment Toolkit (MDT) 2013 Update 2](https://www.microsoft.com/en-us/download/details.aspx?id=50407) on SRV1 using the default options. +2. Download and install the 64-bit version of [Microsoft Deployment Toolkit (MDT)](https://www.microsoft.com/en-us/download/details.aspx?id=54259) on SRV1 using the default options. As of the writing of this guide, the latest version of MDT was 8443. 3. Download and install the latest [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit) on SRV1 using the default installation settings. The current version is the ADK for Windows 10, version 1607. Installation might require several minutes to acquire all components. diff --git a/windows/deploy/windows-10-poc-sc-config-mgr.md b/windows/deploy/windows-10-poc-sc-config-mgr.md index 2b91d63262..91953dba22 100644 --- a/windows/deploy/windows-10-poc-sc-config-mgr.md +++ b/windows/deploy/windows-10-poc-sc-config-mgr.md @@ -299,12 +299,12 @@ Description here. ## Create a boot image for Configuration Manager 1. In the Configuration Manager console, in the **Software Library** workspace, expand **Operating Systems**, right-click **Boot Images**, and then click **Create Boot Image using MDT**. -2. On the Package Source page, under **Package source folder to be created (UNC Path):**, type **\\SRV1\Sources$\OSD\Boot\Zero Touch WinPE x64**, and then click **Next**. +2. On the Package Source page, under **Package source folder to be created (UNC Path):**, type **\\\SRV1\Sources$\OSD\Boot\Zero Touch WinPE x64**, and then click **Next**. - The Zero Touch WinPE x64 folder does not yet exist. The folder will be created later. 3. On the General Settings page, type **Zero Touch WinPE x64** next to **Name**, and click **Next**. 4. On the Options page, under **Platform** choose **x64**, and click **Next**. 5. On the Components page, in addition to the default selection of **Microsoft Data Access Components (MDAC/ADO) support**, select the **Microsoft Diagnostics and Recovery Toolkit (DaRT)** checkbox, and click **Next**. -6. On the Customization page, select the **Use a custom background bitmap file** checkbox, and under **UNC path**, type or browse to **\\SRV1\Sources$\OSD\Branding\contoso.bmp**, and then click **Next** twice. It will take a few minutes to generate the boot image. +6. On the Customization page, select the **Use a custom background bitmap file** checkbox, and under **UNC path**, type or browse to **\\\SRV1\Sources$\OSD\Branding\contoso.bmp**, and then click **Next** twice. It will take a few minutes to generate the boot image. 7. Click **Finish**. 8. Right-click the **Zero Touch WinPE x64** boot image, and then click **Distribute Content**. 9. In the Distribute Content Wizard, click **Next**, click **Add** and select **Distribution Point**, select the **SRV1.CONTOSO.COM** checkbox, click **OK**, click **Next** twice, and then click **Close**. @@ -500,7 +500,7 @@ If you have already completed steps in [Deploy Windows 10 in a test lab using Mi 2. In the Configuration Manager console, in the **Software Library** workspace, expand **Operating Systems**, right-click **Operating System Images**, and then click **Add Operating System Image**. -3. On the Data Source page, under **Path:**, type or browse to **\\SRV1\Sources$\OSD\OS\Windows 10 Enterprise x64\REFW10X64-001.wim**, and click **Next**. +3. On the Data Source page, under **Path:**, type or browse to **\\\SRV1\Sources$\OSD\OS\Windows 10 Enterprise x64\REFW10X64-001.wim**, and click **Next**. 4. On the General page, next to **Name:**, type **Windows 10 Enterprise x64**, click **Next** twice, and then click **Close**. From a357dcec225fc88d09355186a7d6fcbe64d147a3 Mon Sep 17 00:00:00 2001 From: Trudy Hakala Date: Wed, 11 Jan 2017 13:24:26 -0800 Subject: [PATCH 093/233] adding content - mcee invoice support --- .../images/mcee-add-payment-method.png | Bin 20532 -> 14594 bytes .../windows/images/mcee-invoice-info.png | Bin 0 -> 14042 bytes education/windows/school-get-minecraft.md | 21 +++++++++++++++--- 3 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 education/windows/images/mcee-invoice-info.png diff --git a/education/windows/images/mcee-add-payment-method.png b/education/windows/images/mcee-add-payment-method.png index 7d903277fefcce72a0ad616188f4b2748d0d68d0..e583b4eccc47e74fcd9e68a5fd4940a4528450c9 100644 GIT binary patch literal 14594 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 diff --git a/education/windows/images/mcee-invoice-info.png b/education/windows/images/mcee-invoice-info.png new file mode 100644 index 0000000000000000000000000000000000000000..f4bf29f8b2962e9fdcdfda95965b299d788fde04 GIT binary patch literal 14042 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 IaMPgw1x|#F)c^nh literal 0 HcmV?d00001 diff --git a/education/windows/school-get-minecraft.md b/education/windows/school-get-minecraft.md index 284ea49e27..7ed0e80039 100644 --- a/education/windows/school-get-minecraft.md +++ b/education/windows/school-get-minecraft.md @@ -61,18 +61,33 @@ Qualified education institutions can purchase Minecraft: Education Edition licen ## Minecraft: Education Edition payment options You can pay for Minecraft: Education Edition with a debit or credit card, or with an invoice. -**Debit or credit cards** +## Debit or credit cards During the purchase, click **Get started! Add a way to pay.** Provide the info needed for your debit or credit card. -**Invoices** +## Invoices Invoices are now a supported payment method for Minecraft: Education Edition. There are a few requirements: - Admins only (not supported for Teachers) - $500 invoice minimum for your initial purchase - $15,000 invoice maximum (for all invoices within your organization) -**Finding your invoice** +During the purchase, click **Get started! Add a way to pay.** + +![Invoice ](images/mcee-add-payment-method.png) + +Select the Invoice option, and provide the info needed for an invoice. + +![Invoice ](images/mcee-invoice-info.png) + +The **PO number** item allows you to add a tracking number or info that is meaningful to your organization. + +## Find your invoice + +After you've finised the purchase, you can find your bill by checking Minecraft: Education Edition in your inventory. + +> **Note**: After you complete a purchase, it can take up to twenty-four hours for the app to appear in **Inventory**. + ## Distribute Minecraft From c1ffb6586860788ff537dad5d69607e229108a95 Mon Sep 17 00:00:00 2001 From: LizRoss Date: Wed, 11 Jan 2017 14:07:58 -0800 Subject: [PATCH 094/233] Updated name in policy descriptions to Windows Defender SmartScreen --- browsers/edge/available-policies.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/browsers/edge/available-policies.md b/browsers/edge/available-policies.md index 680e73b52a..1628bff940 100644 --- a/browsers/edge/available-policies.md +++ b/browsers/edge/available-policies.md @@ -40,11 +40,11 @@ Microsoft Edge works with these Group Policy settings (`Computer Configuration\A |Configure Password Manager |Windows 10 or later |This policy setting lets you decide whether employees can save their passwords locally, using Password Manager. By default, Password Manager is turned on.

    If you enable this setting, employees can use Password Manager to save their passwords locally.

    If you disable this setting, employees can’t use Password Manager to save their passwords locally.

    If you don’t configure this setting, employees can choose whether to use Password Manager to save their passwords locally. |**Not configured:** Employees can choose whether to use Password Manager.

    **Enabled (default):** Employees can use Password Manager to save passwords locally.

    **Disabled:** Employees can't use Password Manager to save passwords locally. | |Configure Pop-up Blocker |Windows 10 or later |This policy setting lets you decide whether to turn on Pop-up Blocker. By default, Pop-up Blocker is turned on.

    If you enable this setting, Pop-up Blocker is turned on, stopping pop-up windows from appearing.

    If you disable this setting, Pop-up Blocker is turned off, letting pop-ups windows appear.

    If you don’t configure this setting, employees can choose whether to use Pop-up Blocker. |**Enabled or not configured (default):** Turns on Pop-up Blocker, stopping pop-up windows.

    **Disabled:** Turns off Pop-up Blocker, allowing pop-up windows. | |Configure search suggestions in Address bar |Windows 10 or later |This policy setting lets you decide whether search suggestions appear in the Address bar of Microsoft Edge. By default, employees can choose whether search suggestions appear in the Address bar of Microsoft Edge.

    If you enable this setting, employees can see search suggestions in the Address bar of Microsoft Edge.

    If you disable this setting, employees can't see search suggestions in the Address bar of Microsoft Edge.

    If you don’t configure this setting, employees can choose whether search suggestions appear in the Address bar of Microsoft Edge. |**Not configured (default):** Employees can choose whether search suggestions appear in the Address bar of Microsoft Edge.

    **Enabled:** Employees can see search suggestions in the Address bar of Microsoft Edge.

    **Disabled:** Employees can’t see search suggestions in the Address bar of Microsoft Edge. | -|Configure SmartScreen Filter |Windows 10 or later |This policy setting lets you configure whether to turn on SmartScreen Filter. SmartScreen Filter provides warning messages to help protect your employees from potential phishing scams and malicious software. By default, SmartScreen Filter is turned on.

    If you enable this setting, SmartScreen Filter is turned on and employees can’t turn it off.

    If you disable this setting, SmartScreen Filter is turned off and employees can’t turn it on.

    If you don’t configure this setting, employees can choose whether to use SmartScreen Filter. |**Not configured (default):** Employees can choose whether to use SmartScreen Filter.

    **Enabled:** Turns on SmartScreen Filter, providing warning messages to your employees about potential phishing scams and malicious software.

    **Disabled:** Turns off SmartScreen Filter. | +|Configure SmartScreen Filter |Windows 10 or later |This policy setting lets you configure whether to turn on Windows Defender SmartScreen. Windows Defender SmartScreen provides warning messages to help protect your employees from potential phishing scams and malicious software. By default, Windows Defender SmartScreen is turned on.

    If you enable this setting, Windows Defender SmartScreen is turned on and employees can’t turn it off.

    If you disable this setting, Windows Defender SmartScreen is turned off and employees can’t turn it on.

    If you don’t configure this setting, employees can choose whether to use Windows Defender SmartScreen. |**Not configured (default):** Employees can choose whether to use Windows Defender SmartScreen.

    **Enabled:** Turns on Windows Defender SmartScreen, providing warning messages to your employees about potential phishing scams and malicious software.

    **Disabled:** Turns off Windows Defender SmartScreen. | |Configure the Enterprise Mode Site List |Windows 10 or later| This policy setting lets you configure whether to use Enterprise Mode and the Enterprise Mode Site List to address common compatibility problems with legacy apps.

    If you enable this setting, Microsoft Edge looks for the Enterprise Mode Site List XML file. This file includes the sites and domains that need to be viewed using Internet Explorer 11 and Enterprise Mode.

    If you disable or don’t configure this setting, Microsoft Edge won’t use the Enterprise Mode Site List XML file. In this case, employees might experience compatibility problems while using legacy apps.

    **Note**
    If there’s an .xml file in the cache container, IE waits 65 seconds and then checks the local cache for a newer version of the file from the server, based on standard caching rules. If the server file has a different version number than the version in the cache container, the server file is used and stored in the cache container.

    If you’re already using a site list, enterprise mode continues to work during the 65 second wait; it just uses your existing site list instead of your new one.|**Enabled:** Lets you use the Enterprise Mode Site List to address common compatibility problems with legacy apps, if it’s configured.

    If you use this option, you must also add the location to your site list in the `{URI}` box. When configured, any site on the list will always open in Internet Explorer 11.

    **Disabled or not configured (default):** You won't be able to use the Enterprise Mode Site List.| |Prevent access to the about:flags page |Windows 10, Version 1607 or later|This policy setting lets you decide whether employees can access the about:flags page, which is used to change developer settings and to enable experimental features.

    If you enable this policy setting, employees can’t access the about:flags page.

    If you disable or don’t configure this setting, employees can access the about:flags page. |**Enabled:** Stops employees from using the about:flags page.

    **Disabled or not configured (default):** Lets employees use the about:flags page. | -|Prevent bypassing SmartScreen prompts for files |Windows 10, Version 1511 or later |This policy setting lets you decide whether employees can override the SmartScreen Filter warnings about downloading unverified files.

    If you enable this setting, employees can’t ignore SmartScreen Filter warnings and they’re blocked from downloading the unverified files.

    If you disable or don’t configure this setting, employees can ignore SmartScreen Filter warnings and continue the download process. |**Enabled:** Stops employees from ignoring the SmartScreen Filter warnings about unverified files.

    **Disabled or not configured (default):** Lets employees ignore the SmartScreen Filter warnings about unverified files and lets them continue the download process. | -|Prevent bypassing SmartScreen prompts for sites |Windows 10, Version 1511 or later |This policy setting lets you decide whether employees can override the SmartScreen Filter warnings about potentially malicious websites.

    If you enable this setting, employees can’t ignore SmartScreen Filter warnings and they’re blocked from continuing to the site.

    If you disable or don’t configure this setting, employees can ignore SmartScreen Filter warnings and continue to the site. |**Enabled:** Stops employees from ignoring the SmartScreen Filter warnings about potentially malicious sites.

    **Disabled or not configured (default):** Lets employees ignore the SmartScreen Filter warnings about potentially malicious sites and continue to the site. | +|Prevent bypassing SmartScreen prompts for files |Windows 10, Version 1511 or later |This policy setting lets you decide whether employees can override the Windows Defender SmartScreen warnings about downloading unverified files.

    If you enable this setting, employees can’t ignore Windows Defender SmartScreen warnings and they’re blocked from downloading the unverified files.

    If you disable or don’t configure this setting, employees can ignore Windows Defender SmartScreen warnings and continue the download process. |**Enabled:** Stops employees from ignoring the Windows Defender SmartScreen warnings about unverified files.

    **Disabled or not configured (default):** Lets employees ignore the Windows Defender SmartScreen warnings about unverified files and lets them continue the download process. | +|Prevent bypassing SmartScreen prompts for sites |Windows 10, Version 1511 or later |This policy setting lets you decide whether employees can override the Windows Defender SmartScreen warnings about potentially malicious websites.

    If you enable this setting, employees can’t ignore Windows Defender SmartScreen warnings and they’re blocked from continuing to the site.

    If you disable or don’t configure this setting, employees can ignore Windows Defender SmartScreen warnings and continue to the site. |**Enabled:** Stops employees from ignoring the Windows Defender SmartScreen warnings about potentially malicious sites.

    **Disabled or not configured (default):** Lets employees ignore the Windows Defender SmartScreen warnings about potentially malicious sites and continue to the site. | |Prevent using Localhost IP address for WebRTC |Windows 10, Version 1511 or later |This policy setting lets you decide whether an employee’s Localhost IP address shows while making calls using the WebRTC protocol. By default, this setting is turned off.

    If you enable this setting, Localhost IP addresses are hidden while making calls using the WebRTC protocol.

    If you disable or don’t configure this setting, Localhost IP addresses are shown while making calls using the WebRTC protocol. |**Enabled:** Hides the Localhost IP address during calls using the WebRTC protocol.

    **Disabled or not configured (default):** Shows the Localhost IP address during phone calls using the WebRTC protocol. | |Send all intranet sites to Internet Explorer 11 |Windows 10 or later |This policy setting lets you decide whether your intranet sites should all open using Internet Explorer 11. This setting should only be used if there are known compatibility problems with Microsoft Edge.

    If you enable this setting, all intranet sites are automatically opened using Internet Explorer 11.

    If you disable or don’t configure this setting, all websites, including intranet sites, are automatically opened using Microsoft Edge. |**Enabled:** Automatically opens all intranet sites using Internet Explorer 11.

    **Disabled or not configured (default):** Automatically opens all websites, including intranet sites, using Microsoft Edge. | |Show message when opening sites in Internet Explorer |Windows 10, Version 1607 and later |This policy setting lets you decide whether employees see an additional page in Microsoft Edge, stating that a site has been opened using Internet Explorer 11.

    If you enable this setting, employees see an additional page in Microsoft Edge, stating that a site has been opened using Internet Explorer 11.

    If you disable or don’t configure this setting, the default app behavior occurs and no additional page appears. |**Enabled:** Shows an additional page in Microsoft Edge, stating that a site has been opened using Internet Explorer 11.

    **Disabled or not configured (default):** Doesn’t show an additional page in Microsoft Edge, stating that a site has been opened using Internet Explorer 11. | @@ -75,14 +75,14 @@ All devices must be enrolled with Intune if you want to use the Windows Custom U |AllowPasswordManager |Windows 10 or later |Both |

    • **URI full path.** ./Vendor/MSFT/Policy/Config/Browser/AllowPasswordManager
    • **Data type.** Integer
    • **Allowed values:**
      • **0 (default).** Employees can't use Password Manager to save passwords locally.
      • **1.** Employees can use Password Manager to save passwords locally.
    | |AllowPopups |Windows 10 or later |Desktop |
    • **URI full path.** ./Vendor/MSFT/Policy/Config/Browser/AllowPopups
    • **Data type.** Integer
    • **Allowed values:**
      • **0 (default).** Turns off Pop-up Blocker, allowing pop-up windows.
      • **1.** Turns on Pop-up Blocker, stopping pop-up windows.
    | |AllowSearchSuggestions
    inAddressBar |Windows 10 or later |Both |
    • **URI full path.** ./Vendor/MSFT/Policy/Config/Browser/AllowSearchSuggestionsinAddressBar
    • **Data type.** Integer
    • **Allowed values:**
      • **0 (default).** Employees can’t see search suggestions in the Address bar of Microsoft Edge.
      • **1.** Employees can see search suggestions in the Address bar of Microsoft Edge.
    | -|AllowSmartScreen |Windows 10 or later |Both |
    • **URI full path.** ./Vendor/MSFT/Policy/Config/Browser/AllowSmartScreen
    • **Data type.** Integer
    • **Allowed values:**
      • **0 (default).** Turns off SmartScreen Filter.
      • **1.** Turns on SmartScreen Filter, providing warning messages to your employees about potential phishing scams and malicious software.
    | +|AllowSmartScreen |Windows 10 or later |Both |
    • **URI full path.** ./Vendor/MSFT/Policy/Config/Browser/AllowSmartScreen
    • **Data type.** Integer
    • **Allowed values:**
      • **0 (default).** Turns off Windows Defender SmartScreen.
      • **1.** Turns on Windows Defender SmartScreen, providing warning messages to your employees about potential phishing scams and malicious software.
    | |EnterpriseModeSiteList |Windows 10 or later |Desktop |
    • **URI full path.** ./Vendor/MSFT/Policy/Config/Browser/EnterpriseModeSiteList
    • **Data type.** String
    • **Allowed values:**
      • Not configured.
      • **1 (default).** Use the Enterprise Mode Site List, if configured.
      • **2.** Specify the location to the site list.

      **Note**
      If there’s an .xml file in the cache container, IE waits 65 seconds and then checks the local cache for a newer version of the file from the server, based on standard caching rules. If the server file has a different version number than the version in the cache container, the server file is used and stored in the cache container.

      If you’re already using a site list, enterprise mode continues to work during the 65 second wait; it just uses your existing site list instead of your new one.

    | |Favorites |Windows 10, Version 1511 or later |Both |
    - ## ![Deploy Windows 10 for education](images/windows.png) Upgrade - -
    -

    [Upgrade Windows 10 Pro to Pro Education from Windows Store for Business](windows-10-pro-to-pro-edu-upgrade.md)
    If you have an education tenant and use Windows 10 Pro in your schools now, find out how you can opt-in to a free upgrade to Windows 10 Pro Education.

    -
    - - ## Related topics - [Try it out: virtual labs and how-to videos for Windows 10 Education](https://technet.microsoft.com/en-us/windows/dn610356) diff --git a/education/windows/school-get-minecraft.md b/education/windows/school-get-minecraft.md index 8668054826..0adea43fb7 100644 --- a/education/windows/school-get-minecraft.md +++ b/education/windows/school-get-minecraft.md @@ -58,51 +58,6 @@ Qualified education institutions can purchase Minecraft: Education Edition licen - You’ll receive an email with a link to Windows Store for Business. - Sign in to [Windows Store for Business](https://www.microsoft.com/business-store) to distribute and manage the Minecraft: Education Edition licenses. For more information on distribution options, see [Distribute Minecraft](#distribute-minecraft) -## Minecraft: Education Edition payment options -You can pay for Minecraft: Education Edition with a debit or credit card, or with an invoice. - - -### Debit or credit cards - -During the purchase, click **Get started! Add a way to pay.** Provide the info needed for your debit or credit card. - -### Invoices - -Invoices are now a supported payment method for Minecraft: Education Edition. There are a few requirements: -- Admins only (not supported for Teachers) -- $500 invoice minimum for your initial purchase -- $15,000 invoice maximum (for all invoices within your organization) - -**To pay with an invoice** - -1. During the purchase, click **Get started! Add a way to pay.** - - ![Buy page for an app, showing the link for Get started! Add a way to pay.](images/mcee-add-payment-method.png) - -2. Select the Invoice option, and provide the info needed for an invoice. The **PO number** item allows you to add a tracking number or info that is meaningful to your organization. - - ![Invoice Details page showing items that need to be completed for an invoice. PO number is highlighted.](images/mcee-invoice-info.png) - -### Find your invoice - -After you've finished the purchase, you can find your invoice by checking **Minecraft: Education Edition** in your **Inventory**. - -> **Note**: After you complete a purchase, it can take up to twenty-four hours for the app to appear in **Inventory**. - -**To view your invoice** -1. In Windows Store for Business, click **Manage** and then click **Inventory**. -2. Click **Minecraft: Education Edition** in the list of apps. -3. On **Minecraft: Education Edition**, click **View Bills**. - - ![Minecraft: Education Edition app details page with view bills link highlighted](images/mcee-view-bills.png) - -4. On **Invoice Bills**, click the invoice number to view and download your invoice. It downloads as a .pdf. - - ![Minecraft: Education Edition app details page with view bills link highlighted](images/mcee-invoice-bills.png) - -The **Payment Instructions** section on the first page of the invoice has information on invoice amount, due date, and how to pay with electronic funds transfer, or with a check. - - ## Distribute Minecraft After Minecraft: Education Edition is added to your Windows Store for Business inventory, you have three options: diff --git a/education/windows/take-a-test-multiple-pcs.md b/education/windows/take-a-test-multiple-pcs.md index 2eb0b2849a..7d5f5d6c0e 100644 --- a/education/windows/take-a-test-multiple-pcs.md +++ b/education/windows/take-a-test-multiple-pcs.md @@ -17,8 +17,8 @@ author: jdeckerMS Many schools use online testing for formative and summative assessments. It's critical that students use a secure browser that prevents them from using other computer or Internet resources during the test. The **Take a Test** app in Windows 10, Version 1607, creates the right environment for taking a test: -- Take a Test shows just the test and nothing else. -- Take a Test clears the clipboard. +- A Microsoft Edge browser window opens, showing just the test and nothing else. +- The clipboard is cleared. - Students aren’t able to go to other websites. - Students can’t open or access other apps. - Students can't share, print, or record their screens. diff --git a/education/windows/take-a-test-single-pc.md b/education/windows/take-a-test-single-pc.md index 5b6d36d46b..92667b4abd 100644 --- a/education/windows/take-a-test-single-pc.md +++ b/education/windows/take-a-test-single-pc.md @@ -9,7 +9,7 @@ ms.pagetype: edu author: jdeckerMS --- -# Set up Take a Test on a single PC +# Set up Take a Test on a single PC **Applies to:** - Windows 10 @@ -17,8 +17,8 @@ author: jdeckerMS The **Take a Test** app in Windows 10, Version 1607, creates the right environment for taking a test: -- Take a Test shows just the test and nothing else. -- Take a Test clears the clipboard. +- A Microsoft Edge browser window opens, showing just the test and nothing else. +- The clipboard is cleared. - Students aren’t able to go to other websites. - Students can’t open or access other apps. - Students can't share, print, or record their screens. @@ -28,7 +28,6 @@ The **Take a Test** app in Windows 10, Version 1607, creates the right environme > [!TIP] > To exit **Take a Test**, press Ctrl+Alt+Delete. - ## How you use Take a Test ![Use test account or test url in Take a Test](images/take-a-test-flow.png) @@ -39,7 +38,7 @@ The **Take a Test** app in Windows 10, Version 1607, creates the right environme ## Set up a dedicated test account - + @@ -61,10 +60,10 @@ The **Take a Test** app in Windows 10, Version 1607, creates the right environme ## Provide link to test -Anything hosted on the web can be presented in a locked down manner, not just assessments. To lock down online content, just embed a URL with a specific prefix and devices will be locked down when users follow the link. We recommend using this method for lower stakes assessments. +Anything hosted on the web can be presented in a locked down manner, not just assessments. To lock down online content, just embed a URL with a specific prefix and devices will be locked down when users follow the link. We recommend using this method for lower stakes assessments. 1. Create a link to the test URL. Use **ms-edu-secureassessment:** before the URL and **!enforceLockdown** after the URL. -``` +``` ms-edu-secureassessment:!enforceLockdown ``` > [!NOTE] @@ -80,3 +79,9 @@ ms-edu-secureassessment:!enforceLockdown [Set up Take a Test on multiple PCs](take-a-test-multiple-pcs.md) [Take a Test app technical reference](take-a-test-app-technical.md) + + + + + + diff --git a/education/windows/windows-10-pro-to-pro-edu-upgrade.md b/education/windows/windows-10-pro-to-pro-edu-upgrade.md deleted file mode 100644 index cb88389ec9..0000000000 --- a/education/windows/windows-10-pro-to-pro-edu-upgrade.md +++ /dev/null @@ -1,259 +0,0 @@ ---- -title: Windows 10 Pro to Pro Education upgrade -description: Describes how IT Pros can opt into a Windows 10 Pro Education upgrade from the Windows Store for Business. -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: edu -author: CelesteDG ---- - -# Upgrade Windows 10 Pro to Pro Education from Windows Store for Business - -Windows 10 Pro Education is a new offering in Windows 10 Anniversary Update (Windows 10, version 1607). This edition builds on the commercial version of Windows 10 Pro and provides important management controls needed in schools by providing education-specific default settings. - -If you have an education tenant and use Windows 10 Pro in your schools now, global administrators can opt-in to a free upgrade to Windows 10 Pro Education through the Windows Store for Business. To take advantage of this offering, make sure you meet the [requirements for upgrade](#requirements-for-upgrade). - -Starting with Windows 10, version 1607, academic institutions can easily move from Windows 10 Pro to Windows 10 Pro Education—no keys and no reboots. After one of your users enters the Azure AD credentials associated with a Windows 10 Pro Education license, the operating system turns from Windows 10 Pro to Windows 10 Pro Education and all the appropriate Windows 10 Pro Education features are unlocked. When a license expires or is transferred to another user, the Windows 10 Pro Education device seamlessly steps back down to Windows 10 Pro. - -Previously, only schools or organizations purchasing devices as part of the Shape the Future K-12 program or with a Microsoft Volume Licensing Agreement could deploy Windows 10 Pro Education to their users. Now, if you have a Azure AD for your organization, you can take advantage of the Windows 10 Pro Education features. - -When you upgrade to Windows 10 Pro Education, you get the following benefits: - -- **Windows 10 Pro Education edition**. Devices currently running Windows 10 Pro, version 1607 can get Windows 10 Pro Education Current Branch (CB). This benefit does not include Long Term Service Branch (LTSB). -- **Support from one to hundreds of users**. The Windows 10 Pro Education program does not have a limitation on the number of licenses an organization can have. -- **Roll back to Windows 10 Pro at any time**. When a user leaves the domain or you turn off the setting to automatic upgrade to Windows 10 Pro Education, the device reverts seamlessly to Windows 10 Pro edition (after a grace period of up to 30 days). - -In summary, the Windows 10 Pro Education free upgrade through the Windows Store for Business is an upgrade offering that provides organizations easier, more flexible access to the benefits of Windows 10 Pro Education edition. - -## Compare Windows 10 Pro and Pro Education editions - -In Windows 10, version 1607, the Windows 10 Pro Education edition contains the same features as the Windows 10 Pro edition except for the following differences: - -- Cortana is removed from Windows 10 Pro Education -- Options to manage Windows 10 tips and tricks and Windows Store suggestions - -See [Windows 10 editions for education customers](windows-editions-for-education-customers.md) for more info about Windows 10 Pro Education and you can also [Compare Windows 10 Editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare) to find out more about the features we support in other editions of Windows 10. - -## Requirements for upgrade - -Before you upgrade from Windows 10 Pro to Windows 10 Pro Education, make sure you meet these requirements: -- Devices must be: - - Running Windows 10 Pro, version 1607 - - Must be Azure Active Directory joined, or domain joined with Azure AD Connect. Customers who are federated with Azure Active Directory are also eligible. For more information, see [Review requirements on devices](#review-requirements-on-devices). - - If you haven't domain joined your devices already, [prepare for deployment of Windows 10 Pro Education licenses](#preparing-for-deployment-of-windows-10-pro-education-licenses). -- The user making the changes must be a member of the Azure AD global administrator group. -- The Azure AD tenant must be recognized as an education approved tenant. -- You must have a Windows Store for Business account. - -## Upgrade from Windows 10 Pro to Windows 10 Pro Education -Once you enable the setting to upgrade Windows 10 Pro to Windows 10 Pro Education, the upgrade will begin only after a user signs in to their device. The setting applies to the entire organization so you cannot select which users will receive the upgrade. - -**To turn on the automatic upgrade from Windows 10 Pro to Windows 10 Pro Education** -1. Sign in to [Windows Store for Business](https://businessstore.microsoft.com/en-us/Store/Apps) with your work or school account. - - If this is the first time you're signing into the Store, you'll be prompted to accept the Windows Store for Business Terms of Use. -2. Go to **Manage > Account information**. -3. In the **Account information** page, look for the **Automatic Windows 10 Pro Education upgrade** section and follow the link. - - You will see the following page informing you that your school is eligible for a free automatic upgrade from Windows 10 Pro to Windows 10 Pro Education. - - ![Eligible for free Windows 10 Pro to Windows 10 Pro Education upgrade](images/wsfb_win10_pro_to proedu_upgrade_eligibility_page.png) - - **Figure 1** - Upgrade Windows 10 Pro to Windows 10 Pro Education - -4. Select **I understand enabling this setting will impact all devices running Windows 10 Pro in my organization**. -5. Click **Send me email with a link to enable this upgrade** to receive an email with a link to the upgrade. - - ![Email with Windows 10 Pro to Pro Education upgrade link](images/wsfb_win10_pro_to_proedu_email_upgrade_link.png) - - **Figure 2** - Email notification with a link to enable the upgrade - -6. Click **Enable the automatic upgrade now** to turn on automatic upgrades. - - ![Enable the automatic upgrade](images/wsfb_win10_pro_to proedu_upgrade_enable.png). - - **Figure 3** - Enable the automatic upgrade - - Enabling the automatic upgrade also triggers an email message notifying all global administrators in your organization about the upgrade. It also contains a link that enables any global administrators to cancel the upgrade, if they choose. For more info about rolling back or canceling the upgrade, see [Roll back Windows 10 Pro Education to Windows 10 Pro](#roll-back-windows-10-pro-education-to-windows-10-pro). - - ![Email informing other global admins about the upgrade](images/wsfb_win10_pro_to proedu_upgrade_email_global_admins.png). - - **Figure 4** - Notification email sent to all global administrators - -7. Click **Close** in the **Success** page. - - In the **Upgrade Windows 10 Pro to Windows 10 Pro Education** page, you will see a message informing you when the upgrade was enabled and the name of the admin who enabled the upgrade. - - ![Summary page about the upgrade](images/wsfb_win10_pro_to proedu_upgrade_summary.png) - - **Figure 5** - Details about the automatic upgrade - - -## Explore the upgrade experience - -So what will the users experience? How will they upgrade their devices? - -### For existing Azure AD domain joined devices -Existing Azure AD domain joined devices will be upgraded from Windows 10 Pro to Windows 10 Pro Education the next time the user logs in. That's it! No additional steps are needed. - -### For new devices that are not Azure AD domain joined -Now that you've turned on the setting to automatically upgrade Windows 10 Pro to Windows 10 Pro Education, the users are ready to upgrade their devices running Windows 10 Pro, version 1607 edition to Windows 10 Pro Education edition. - -#### Step 1: Join users’ devices to Azure AD - -Users can join a device to Azure AD the first time they start the device (during setup), or they can join a device that they already use running Windows 10 Pro, version 1607. - -**To join a device to Azure AD the first time the device is started** - -1. During the initial setup, on the **Who owns this PC?** page, select **My organization**, and then click **Next**, as illustrated in **Figure 6**. - - Who owns this PC? page in Windows 10 setup - - **Figure 6** - The “Who owns this PC?” page in initial Windows 10 setup - -2. On the **Choose how you’ll connect** page, select **Join Azure AD**, and then click **Next**, as illustrated in **Figure 7**. - - Choose how you'll connect - page in Windows 10 setup - - **Figure 7** - The “Choose how you’ll connect” page in initial Windows 10 setup - -3. On the **Let’s get you signed in** page, enter the Azure AD credentials, and then click **Sign in**, as illustrated in **Figure 8**. - - Let's get you signed in - page in Windows 10 setup - - **Figure 8** - The “Let’s get you signed in” page in initial Windows 10 setup - -Now the device is Azure AD joined to the company’s subscription. - -**To join a device to Azure AD when the device already has Windows 10 Pro, version 1607 installed and set up** - -1. Go to **Settings > Accounts > Access work or school**, as illustrated in **Figure 9**. - - Connect to work or school configuration - - **Figure 9** - Connect to work or school configuration in Settings - -2. In **Set up a work or school account**, click **Join this device to Azure Active Directory**, as illustrated in **Figure 10**. - - Set up a work or school account - - **Figure 10** - Set up a work or school account - -3. On the **Let’s get you signed in** page, enter the Azure AD credentials, and then click **Sign in**, as illustrated in **Figure 11**. - - Let's get you signed in - dialog box - - **Figure 11** - The “Let’s get you signed in” dialog box - -Now the device is Azure AD joined to the company’s subscription. - -#### Step 2: Sign in using Azure AD account - -Once the device is joined to your Azure AD subscription, the user will sign in by using his or her Azure AD account, as illustrated in **Figure 12**. The Windows 10 Pro Education license associated with the user will enable Windows 10 Pro Education edition capabilities on the device. - -Sign in, Windows 10 - -**Figure 12** - Sign in by using Azure AD account - -#### Step 3: Verify that Pro Education edition is enabled - -You can verify the Windows 10 Pro Education in **Settings > Update & Security > Activation**, as illustrated in **Figure 13**. - - - -**Figure 13** - Windows 10 Pro Education in Settings - -Windows 10 activated and subscription active - -If there are any problems with the Windows 10 Pro Education license or the activation of the license, the **Activation** panel will display the appropriate error message or status. You can use this information to help you diagnose the licensing and activation process. - -## Troubleshoot the user experience - -In some instances, users may experience problems with the Windows 10 Pro Education upgrade. The most common problems that users may experience are as follows: - -- The existing Windows 10 Pro, version 1607 operating system is not activated. - -- The Windows 10 Pro Education upgrade has lapsed or has been removed. - -Use the following figures to help you troubleshoot when users experience these common problems: - - - -**Figure 13** - Illustrates a device in a healthy state, where Windows 10 Pro, version 1607 is activated and the Windows 10 Pro Education upgrade is active. - -Windows 10 activated and subscription active - - - -**Figure 14** - Illustrates a device on which Windows 10 Pro, version 1607 is not activated, but the Windows 10 Pro Education upgrade is active. - -Windows 10 not activated and subscription active

    - - -### Review requirements on devices - -Devices must be running Windows 10 Pro, version 1607, and be Azure Active Directory joined, or domain joined with Azure AD Connect. Customers who are federated with Azure Active Directory are also eligible. You can use the following procedures to review whether a particular device meets requirements. - -**To determine if a device is Azure Active Directory joined** - -1. Open a command prompt and type **dsregcmd /status**. - -2. Review the output under Device State. If the **AzureAdJoined** status is YES, the device is Azure Active Directory joined. - -**To determine the version of Windows 10** - -- At a command prompt, type: - **winver** - - A popup window will display the Windows 10 version number and detailed OS build information. - - If a device is running a previous version of Windows 10 Pro (for example, version 1511), it will not be upgraded to Windows 10 Pro Education when a user signs in, even if the user has been assigned a license. - -## Roll back Windows 10 Pro Education to Windows 10 Pro - -If your organization has the Windows 10 Pro to Windows 10 Pro Education upgrade enabled, and you decide to roll back to Windows 10 Pro or to cancel the upgrade, you can do this by: -- Logging into Windows Store for Business page and turning off the automatic upgrade. -- Selecting the link to turn off the automatic upgrade from the notification email sent to all global administrators. - -Once the automatic upgrade to Windows 10 Pro Education is turned off, the change is effective immediately. Devices that were upgraded will revert to Windows 10 Pro only after the license has been refreshed (every 30 days) and the next time the user signs in. This means that a user whose device was upgraded may not immediately see Windows 10 Pro Education rolled back to Windows 10 Pro for up to 30 days. However, users who haven't signed in during the time that an upgrade was enabled and then turned off will never see their device change from Windows 10 Pro. - -**To roll back Windows 10 Pro Education to Windows 10 Pro** -1. Log in to [Windows Store for Business](https://businessstore.microsoft.com/en-us/Store/Apps) with your school or work account, or follow the link from the notification email to turn off the automatic upgrade. -2. Select **Manage > Account information** and locate the section **Automatic Windows 10 Pro Education upgrade** and follow the link. -3. In the **Upgrade Windows 10 Pro to Windows 10 Pro Education** page, select **Turn off the automatic upgrade to Windows 10 Pro Education**. - - ![Turn off automatic upgrade to Windows 10 Pro Education](images/wsfb_win10_pro_to proedu_upgrade_disable.png) - - **Figure 15** - Link to turn off the automatic upgrade - -4. You will be asked if you're sure that you want to turn off automatic upgrades to Windows 10 Pro Education. Click **Yes**. -5. Click **Close** in the **Success** page. -6. In the **Upgrade Windows 10 Pro to Windows 10 Pro Education** page, you will see information on when the upgrade was disabled. - - If you decide later that you want to turn on automatic upgrades again, you can do this from the **Upgrade Windows 10 Pro to Windows 10 Pro Education**. - -## Preparing for deployment of Windows 10 Pro Education licenses - -If you have on-premises Active Directory Domain Services (AD DS) domains, users will use their domain-based credentials to sign in to the AD DS domain. Before you start deploying Windows 10 Pro Education to users, you need to synchronize the identities in the on-premises AD DS domain with Azure AD. - -You need to synchronize these identities so that users will have a *single identity* that they can use to access their on-premises apps and cloud services that use Azure AD (such as Windows 10 Pro Education). This means that users can use their existing credentials to sign in to Azure AD and access the cloud services that you provide and manage for them. - -**Figure 16** illustrates the integration between the on-premises AD DS domain with Azure AD. [Microsoft Azure Active Directory Connect](http://www.microsoft.com/en-us/download/details.aspx?id=47594) (Azure AD Connect) is responsible for synchronization of identities between the on-premises AD DS domain and Azure AD. Azure AD Connect is a service that you can install on-premises or in a virtual machine in Azure. - -![Illustration of Azure Active Directory Connect](images/windows-ad-connect.png) - -**Figure 16** - On-premises AD DS integrated with Azure AD - -For more information about integrating on-premises AD DS domains with Azure AD, see these resources: -- [Integrating your on-premises identities with Azure Active Directory](http://azure.microsoft.com/en-us/documentation/articles/active-directory-aadconnect/) -- [Azure AD + Domain Join + Windows 10](https://blogs.technet.microsoft.com/enterprisemobility/2016/02/17/azure-ad-domain-join-windows-10/) - -## Related topics - -[Deploy Windows 10 in a school](deploy-windows-10-in-a-school.md) - -[Deploy Windows 10 in a school district](deploy-windows-10-in-a-school-district.md) - -[Compare Windows 10 editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare) diff --git a/windows/deploy/TOC.md b/windows/deploy/TOC.md index 906b45e238..4fed1981ec 100644 --- a/windows/deploy/TOC.md +++ b/windows/deploy/TOC.md @@ -11,9 +11,6 @@ #### [Deploy Windows](upgrade-analytics-deploy-windows.md) #### [Review site discovery](upgrade-analytics-review-site-discovery.md) ### [Troubleshoot Upgrade Analytics](troubleshoot-upgrade-analytics.md) -## [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md) -### [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) -### [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) ## [Deploy Windows 10 with the Microsoft Deployment Toolkit](deploy-windows-10-with-the-microsoft-deployment-toolkit.md) ### [Get started with the Microsoft Deployment Toolkit (MDT)](get-started-with-the-microsoft-deployment-toolkit.md) #### [Key features in MDT 2013 Update 2](key-features-in-mdt-2013.md) @@ -53,17 +50,8 @@ ## [Windows 10 upgrade paths](windows-10-upgrade-paths.md) ## [Windows 10 edition upgrade](windows-10-edition-upgrades.md) ## [Provisioning packages for Windows 10](provisioning-packages.md) -### [How provisioning works in Windows 10](provisioning-how-it-works.md) -### [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) -### [Create a provisioning package](provisioning-create-package.md) -### [Apply a provisioning package](provisioning-apply-package.md) -### [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) -### [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) -### [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) -### [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) -### [NFC-based device provisioning](provisioning-nfc.md) -### [Windows ICD command-line interface (reference)](provisioning-command-line.md) -### [Create a provisioning package with multivariant settings](provisioning-multivariant.md) +### [Provision PCs with common settings for initial deployment](provision-pcs-for-initial-deployment.md) +### [Provision PCs with apps and certificates for initial deployments](provision-pcs-with-apps-and-certificates.md) ## [Deploy Windows To Go in your organization](deploy-windows-to-go.md) ## [Upgrade a Windows Phone 8.1 to Windows 10 Mobile with Mobile Device Management](upgrade-windows-phone-8-1-to-10.md) ## [Sideload apps in Windows 10](sideload-apps-in-windows-10.md) diff --git a/windows/deploy/assign-applications-using-roles-in-mdt-2013.md b/windows/deploy/assign-applications-using-roles-in-mdt-2013.md index d8b4505c51..a6e7d69377 100644 --- a/windows/deploy/assign-applications-using-roles-in-mdt-2013.md +++ b/windows/deploy/assign-applications-using-roles-in-mdt-2013.md @@ -122,11 +122,11 @@ Figure 14. ZTIGather.log displaying the application GUID belonging to the Adobe ## Related topics [Set up MDT for BitLocker](set-up-mdt-2013-for-bitlocker.md) -
    [Configure MDT deployment share rules](configure-mdt-deployment-share-rules.md) -
    [Configure MDT for UserExit scripts](configure-mdt-2013-for-userexit-scripts.md) -
    [Simulate a Windows 10 deployment in a test environment](simulate-a-windows-10-deployment-in-a-test-environment.md) -
    [Use the MDT database to stage Windows 10 deployment information](use-the-mdt-database-to-stage-windows-10-deployment-information.md) -
    [Use web services in MDT](use-web-services-in-mdt-2013.md) -
    [Use Orchestrator runbooks with MDT](use-orchestrator-runbooks-with-mdt-2013.md) +[Configure MDT deployment share rules](configure-mdt-deployment-share-rules.md) +[Configure MDT for UserExit scripts](configure-mdt-2013-for-userexit-scripts.md) +[Simulate a Windows 10 deployment in a test environment](simulate-a-windows-10-deployment-in-a-test-environment.md) +[Use the MDT database to stage Windows 10 deployment information](use-the-mdt-database-to-stage-windows-10-deployment-information.md) +[Use web services in MDT](use-web-services-in-mdt-2013.md) +[Use Orchestrator runbooks with MDT](use-orchestrator-runbooks-with-mdt-2013.md)     diff --git a/windows/deploy/change-history-for-deploy-windows-10.md b/windows/deploy/change-history-for-deploy-windows-10.md index 88557fd56f..f7e67993e5 100644 --- a/windows/deploy/change-history-for-deploy-windows-10.md +++ b/windows/deploy/change-history-for-deploy-windows-10.md @@ -11,26 +11,6 @@ author: greg-lindsay # Change history for Deploy Windows 10 This topic lists new and updated topics in the [Deploy Windows 10](index.md) documentation for [Windows 10 and Windows 10 Mobile](../index.md). -## January 2017 -| New or changed topic | Description | -|----------------------|-------------| -| [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md) | New | -| [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) | New | -| [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) | New | -| [Apply a provisioning package](provisioning-apply-package.md) | New (previously published in other topics) | -| [Create a provisioning package for Windows 10](provisioning-create-package.md) | New (previously published in Hardware Dev Center on MSDN) | -| [Create a provisioning package with multivariant settings](provisioning-multivariant.md) | New (previously published in Hardware Dev Center on MSDN) | -| [How provisioning works in Windows 10](provisioning-how-it-works.md) | New (previously published in Hardware Dev Center on MSDN) | -| [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) | New (previously published in Hardware Dev Center on MSDN) | -| [NFC-based device provisioning](provisioning-nfc.md) | New (previously published in Hardware Dev Center on MSDN) | -| [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) | New (previously published in Hardware Dev Center on MSDN) | -| [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) | New (previously published in Hardware Dev Center on MSDN) | -| [Windows ICD command-line interface (reference)](provisioning-command-line.md) | New (previously published in Hardware Dev Center on MSDN) | -| [Get started with Upgrade Analytics](upgrade-analytics-get-started.md) | Updated exit code table with suggested fixes, and added link to the Upgrade Analytics blog | -| [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) | Instructions for applying the provisioning package moved to [Apply a provisioning package](provisioning-apply-package.md) | -| [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) | Instructions for applying the provisioning package moved to [Apply a provisioning package](provisioning-apply-package.md) | - - ## October 2016 | New or changed topic | Description | |----------------------|-------------| diff --git a/windows/deploy/create-a-windows-10-reference-image.md b/windows/deploy/create-a-windows-10-reference-image.md index 7f4671ccf1..4954dd3dcd 100644 --- a/windows/deploy/create-a-windows-10-reference-image.md +++ b/windows/deploy/create-a-windows-10-reference-image.md @@ -167,7 +167,7 @@ If you need to add many applications, you can take advantage of the PowerShell s 2. Import the snap-in and create the PSDrive by running the following commands in an elevated PowerShell prompt: ``` syntax - Import-Module "C:\Program Files\Microsoft Deployment Toolkit\bin\MicrosoftDeploymentToolkit.psd1" + Import-Topic "C:\Program Files\Microsoft Deployment Toolkit\bin\MicrosoftDeploymentToolkit.psd1" New-PSDrive -Name "DS001" -PSProvider MDTProvider -Root "E:\MDTBuildLab" ``` diff --git a/windows/deploy/images/PoC.png b/windows/deploy/images/PoC.png index 6d7b7eb5afa6b48cb34df12dd0b44be230fd3c5f..de735060713214af014b38b0b9fd530ff38203d8 100644 GIT binary patch literal 97482 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%0A{co3N_^dbY)h)$$tN*pT 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 mh(A9Yf+7flAPB4Y~bm`Kq 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 literal 27557 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 [!IMPORTANT] > When you build a provisioning package, you may include sensitive information in the project files and in the provisioning package (.ppkg) file. Although you have the option to encrypt the .ppkg file, project files are not encrypted. You should store the project files in a secure location and delete the project files when they are no longer needed. +## Apply package - **Next step**: [How to apply a provisioning package](provisioning-apply-package.md) +1. Start with a computer on the first-run setup screen. If the PC has gone past this screen, reset the PC to start over. To reset the PC, go to **Settings** > **Update & security** > **Recovery** > **Reset this PC**. + + ![The first screen to set up a new PC](images/oobe.jpg) + +2. Insert the USB drive. Windows Setup will recognize the drive and ask if you want to set up the device. Select **Set up**. + + ![Set up device?](images/setupmsg.jpg) + +3. The next screen asks you to select a provisioning source. Select **Removable Media** and tap **Next**. + + ![Provision this device](images/prov.jpg) + +4. Select the provisioning package (\*.ppkg) that you want to apply, and tap **Next**. + + ![Choose a package](images/choose-package.png) + +5. Select **Yes, add it**. + + ![Do you trust this package?](images/trust-package.png) + ## Learn more +- [Build and apply a provisioning package]( https://go.microsoft.com/fwlink/p/?LinkId=629651) - Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) - Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922)   -## Related topics -- [Provisioning packages for Windows 10](provisioning-packages.md) -- [How provisioning works in Windows 10](provisioning-how-it-works.md) -- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) -- [Create a provisioning package](provisioning-create-package.md) -- [Apply a provisioning package](provisioning-apply-package.md) -- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) -- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) -- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) -- [NFC-based device provisioning](provisioning-nfc.md) -- [Windows ICD command-line interface (reference)](provisioning-command-line.md) -- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) +  diff --git a/windows/deploy/provision-pcs-with-apps-and-certificates.md b/windows/deploy/provision-pcs-with-apps-and-certificates.md index 6e4614a977..2a918f8202 100644 --- a/windows/deploy/provision-pcs-with-apps-and-certificates.md +++ b/windows/deploy/provision-pcs-with-apps-and-certificates.md @@ -4,7 +4,7 @@ description: Create a provisioning package to apply settings to a PC running Win ms.assetid: 66D14E97-E116-4218-8924-E2A326C9367E keywords: ["runtime provisioning", "provisioning package"] ms.prod: W10 -ms.mktglfcycl: deploy +ms.mktglfcycl: manage ms.sitesec: library author: jdeckerMS localizationpriority: high @@ -57,7 +57,7 @@ Use the Windows Imaging and Configuration Designer (ICD) tool included in the Wi 3. Go to **Runtime settings** > **ProvisioningCommands** > **DeviceContext** > **CommandLine** and specify the command line that needs to be executed to install the app. This is a single command line (such as a script, executable, or msi) that triggers a silent install of your CommandFiles. Note that the install must execute silently (without displaying any UI). For MSI installers use, the `msiexec /quiet` option. > [!NOTE] -> If you are installing more than one app, then use `CommandLine` to invoke the script or batch file that orchestrates installation of the files. For more information, see [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md). +> If you are installing more than one app, then use CommandLine to invoke the script or batch file that orchestrates installation of the files. For more information, see [Install a Win32 app using a provisioning package](https://msdn.microsoft.com/library/windows/hardware/mt703295%28v=vs.85%29.aspx). ### Add a universal app to your package @@ -170,27 +170,66 @@ If your build is successful, the name of the provisioning package, output direct -**Next step**: [How to apply a provisioning package](provisioning-apply-package.md) +## Apply package + +### During initial setup, from a USB drive + +1. Start with a computer on the first-run setup screen. If the PC has gone past this screen, reset the PC to start over. To reset the PC, go to **Settings** > **Update & security** > **Recovery** > **Reset this PC**. + + ![The first screen to set up a new PC](images/oobe.jpg) + +2. Insert the USB drive. Windows Setup will recognize the drive and ask if you want to set up the device. Select **Set up**. + + ![Set up device?](images/setupmsg.jpg) + +3. The next screen asks you to select a provisioning source. Select **Removable Media** and tap **Next**. + + ![Provision this device](images/prov.jpg) + +4. Select the provisioning package (\*.ppkg) that you want to apply, and tap **Next**. + + ![Choose a package](images/choose-package.png) + +5. Select **Yes, add it**. + + ![Do you trust this package?](images/trust-package.png) + +6. Read and accept the Microsoft Software License Terms. + + ![Sign in](images/license-terms.png) + +7. Select **Use Express settings**. + + ![Get going fast](images/express-settings.png) + +8. If the PC doesn't use a volume license, you'll see the **Who owns this PC?** screen. Select **My work or school owns it** and tap **Next**. + + ![Who owns this PC?](images/who-owns-pc.png) + +9. On the **Choose how you'll connect** screen, select **Join Azure AD** or **Join a domain** and tap **Next**. + + ![Connect to Azure AD](images/connect-aad.png) + +10. Sign in with your domain, Azure AD, or Office 365 account and password. When you see the progress ring, you can remove the USB drive. + + ![Sign in](images/sign-in-prov.png) + + +### After setup, from a USB drive, network folder, or SharePoint site + +On a desktop computer, navigate to **Settings** > **Accounts** > **Work access** > **Add or remove a management package** > **Add a package**, and select the package to install. + +![add a package option](images/package.png) ## Learn more +- [Build and apply a provisioning package]( https://go.microsoft.com/fwlink/p/?LinkId=629651) - Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) - Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922)   -## Related topics - -- [Provisioning packages for Windows 10](provisioning-packages.md) -- [How provisioning works in Windows 10](provisioning-how-it-works.md) -- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) -- [Create a provisioning package](provisioning-create-package.md) -- [Apply a provisioning package](provisioning-apply-package.md) -- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) -- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) -- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) -- [NFC-based device provisioning](provisioning-nfc.md) -- [Windows ICD command-line interface (reference)](provisioning-command-line.md) -- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) + + diff --git a/windows/deploy/provisioning-apply-package.md b/windows/deploy/provisioning-apply-package.md deleted file mode 100644 index 417c9e9e75..0000000000 --- a/windows/deploy/provisioning-apply-package.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: Apply a provisioning package (Windows 10) -description: Provisioning packages can be applied to a device during the first-run experience (OOBE) and after ("runtime"). -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -author: jdeckerMS -localizationpriority: high ---- - -# Apply a provisioning package - - -**Applies to** - -- Windows 10 -- Windows 10 Mobile - -Provisioning packages can be applied to a device during the first-run experience (out-of-box experience or "OOBE") and after ("runtime"). - -## Desktop editions - -### During initial setup, from a USB drive - -1. Start with a computer on the first-run setup screen. If the PC has gone past this screen, reset the PC to start over. To reset the PC, go to **Settings** > **Update & security** > **Recovery** > **Reset this PC**. - - ![The first screen to set up a new PC](images/oobe.jpg) - -2. Insert the USB drive. Windows Setup will recognize the drive and ask if you want to set up the device. Select **Set up**. - - ![Set up device?](images/setupmsg.jpg) - -3. The next screen asks you to select a provisioning source. Select **Removable Media** and tap **Next**. - - ![Provision this device](images/prov.jpg) - -4. Select the provisioning package (\*.ppkg) that you want to apply, and tap **Next**. - - ![Choose a package](images/choose-package.png) - -5. Select **Yes, add it**. - - ![Do you trust this package?](images/trust-package.png) - -6. Read and accept the Microsoft Software License Terms. - - ![Sign in](images/license-terms.png) - -7. Select **Use Express settings**. - - ![Get going fast](images/express-settings.png) - -8. If the PC doesn't use a volume license, you'll see the **Who owns this PC?** screen. Select **My work or school owns it** and tap **Next**. - - ![Who owns this PC?](images/who-owns-pc.png) - -9. On the **Choose how you'll connect** screen, select **Join Azure AD** or **Join a domain** and tap **Next**. - - ![Connect to Azure AD](images/connect-aad.png) - -10. Sign in with your domain, Azure AD, or Office 365 account and password. When you see the progress ring, you can remove the USB drive. - - ![Sign in](images/sign-in-prov.png) - -### After setup, from a USB drive, network folder, or SharePoint site - -On a desktop computer, navigate to **Settings** > **Accounts** > **Access work or school** > **Add or remove a provisioning package** > **Add a package**, and select the package to install. - -![add a package option](images/package.png) - -## Mobile editions - -### Using removable media - -1. Insert an SD card containing the provisioning package into the device. -2. Navigate to **Settings** > **Accounts** > **Access work or school** > **Add or remove a provisioning package** > **Add a package**, and select the package to install. - - ![add a package option](images/packages-mobile.png) - -3. Click **Add**. - -4. On the device, the **Is this package from a source you trust?** message will appear. Tap **Yes, add it**. - - ![Is this package from a source you trust](images/package-trust.png) - -### Copying the provisioning package to the device - -1. Connect the device to your PC through USB. - -2. On the PC, select the provisioning package that you want to use to provision the device and then drag and drop the file to your device. - -3. On the device, the **Is this package from a source you trust?** message will appear. Tap **Yes, add it**. - - ![Is this package from a source you trust](images/package-trust.png) - - -# - - -## Learn more - -- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) - -- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) - - -## Related topics - -- [Provisioning packages for Windows 10](provisioning-packages.md) -- [How provisioning works in Windows 10](provisioning-how-it-works.md) -- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) -- [Create a provisioning package](provisioning-create-package.md) -- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) -- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) -- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) -- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) -- [NFC-based device provisioning](provisioning-nfc.md) -- [Windows ICD command-line interface (reference)](provisioning-command-line.md) -- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) \ No newline at end of file diff --git a/windows/deploy/provisioning-command-line.md b/windows/deploy/provisioning-command-line.md deleted file mode 100644 index d5c52aabac..0000000000 --- a/windows/deploy/provisioning-command-line.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Windows ICD command-line interface (Windows 10) -description: -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -author: jdeckerMS -localizationpriority: high ---- - -# Windows ICD command-line interface (reference) - - -**Applies to** - -- Windows 10 -- Windows 10 Mobile - -You can use the Windows Imaging and Configuration Designer (ICD) command-line interface (CLI) to automate the building of provisioning packages and Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) and Windows 10 Mobile or Windows 10 IoT Core (IoT Core) images. - -- IT pros can use the Windows ICD CLI to require less re-tooling of existing processes. You must run the Windows ICD CLI from a command window with administrator privileges. - -- You must use the Windows ICD CLI and edit the customizations.xml sources to create an image and/or provisioning package with multivariant support. You need the customizations.xml file as one of the inputs to the Windows ICD CLI to build a provisioning package. For more information, see [Create a provisioning package with multivariant settings](provisioning-multivariant.md). - - - -## Syntax - -``` -icd.exe /Build-ProvisioningPackage /CustomizationXML: /PackagePath: -[/StoreFile:] [/MSPackageRoot:] [/OEMInputXML:] -[/ProductName:] [/Variables::] [[+|-]Encrypted] [[+|-]Overwrite] [/?] -``` - -## Switches and arguments - -| Switch | Required? | Arguments | -| --- | --- | --- | -| /CustomizationXML | No | Specifies the path to a Windows provisioning XML file that contains the customization assets and settings. For more information, see Windows provisioning answer file. | -| /PackagePath | Yes | Specifies the path and the package name where the built provisioning package will be saved. | -| /StoreFile | No


    See Important note. | For partners using a settings store other than the default store(s) used by Windows ICD, use this parameter to specify the path to one or more comma-separated Windows settings store file. By default, if you don't specify a settings store file, the settings store that's common to all Windows editions will be loaded by Windows ICD.


    **Important** If you use this parameter, you must not use /MSPackageRoot or /OEMInputXML. | -| /Variables | No | Specifies a semicolon separated and macro pair. The format for the argument must be =. | -| Encrypted | No | Denotes whether the provisioning package should be built with encryption. Windows ICD auto-generates the decryption password and includes this information in the output.


    Precede with + for encryption or - for no encryption. The default is no encryption. | -| Overwrite | No | Denotes whether to overwrite an existing provisioning package.


    Precede with + to overwrite an existing package or - if you don't want to overwrite an existing package. The default is false (don't overwrite). | -| /? | No | Lists the switches and their descriptions for the command-line tool or for certain commands. | - - - - -## Related topics - -- [Provisioning packages for Windows 10](provisioning-packages.md) -- [How provisioning works in Windows 10](provisioning-how-it-works.md) -- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) -- [Create a provisioning package](provisioning-create-package.md) -- [Apply a provisioning package](provisioning-apply-package.md) -- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) -- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) -- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) -- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) -- [NFC-based device provisioning](provisioning-nfc.md) -- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) -  - - - - - diff --git a/windows/deploy/provisioning-create-package.md b/windows/deploy/provisioning-create-package.md deleted file mode 100644 index 51b609a8ea..0000000000 --- a/windows/deploy/provisioning-create-package.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -title: Create a provisioning package (Windows 10) -description: With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -author: jdeckerMS -localizationpriority: high ---- - -# Create a provisioning package for Windows 10 - - -**Applies to** - -- Windows 10 -- Windows 10 Mobile - -You use Windows Imaging and Configuration Designer (ICD) to create a provisioning package (.ppkg) that contains customization settings. You can apply the provisioning package to a device running Windows 10. - ->[Learn how to install Windows ICD.](provisioning-install-icd.md) - -## Start a new project - -1. Open Windows ICD: - - From either the Start screen or Start menu search, type 'Imaging and Configuration Designer' and click on the Windows ICD shortcut, - - or - - - Navigate to `C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Imaging and Configuration Designer\x86` (on an x64 computer) or `C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Imaging and Configuration Designer\x86\ICD.exe` (on an x86 computer), and then double-click **ICD.exe**. - -2. Select your desired option on the **Start** page, which offers three options for creating a provisioning package, as shown in the following image: - - ![Simple provisioning or provision school devices or advanced provisioning](images/icd-create-options.png) - - - The **Simple provisioning** and **Provision school devices** options provide wizard-style walkthroughs for creating a provisioning package based on a set of common settings. - - The **Advanced provisioning** option opens a new project with all **Runtime settings** available. - >[!TIP] - >You can start a project in the simple editor and then switch the project to the advanced editor. - > - >![Switch to advanced editor](images/icd-switch.png) - -3. Enter a name for your project, and then click **Next**. - -4. Select the settings you want to configure, based on the type of device, and then click **Next**. The following table describes the options. - - | Windows edition | Settings available for customization | Provisioning package can apply to | - | --- | --- | --- | - | All Windows editions | Common settings | All Windows 10 devices | - | All Windows desktop editions | Common settings and settings specific to desktop devices | All Windows 10 desktop editions (Home, Pro, Enterprise, Pro Education, Enterprise Education) | - | All Windows mobile editions | Common settings and settings specific to mobile devices | All Windows 10 Mobile devices | - | Windows 10 IoT Core | Common settings and settings specific to Windows 10 IoT Core | All Windows 10 IoT Core devices | - | Windows 10 Holographic | Common settings and settings specific to Windows 10 Holographic | [Microsoft HoloLens](https://technet.microsoft.com/itpro/hololens/hololens-provisioning) | - | Common to Windows 10 Team edition | Common settings and settings specific to Windows 10 Team | [Microsoft Surface Hub](https://technet.microsoft.com/itpro/surface-hub/provisioning-packages-for-certificates-surface-hub) | - -5. On the **Import a provisioning package (optional)** page, you can click **Finish** to create your project, or browse to and select an existing provisioning packge to import to your project, and then click **Finish**. - ->[!TIP] ->**Import a provisioning package** can make it easier to create different provisioning packages that all have certain settings in common. For example, you could create a provisioning package that contains the settings for your organization's network, and then import it into other packages you create so you don't have to reconfigure those common settings repeatedly. - -After you click **Finish**, Windows ICD will open the appropriate walkthrough page if you selected **Simple provisioning** or **Provision school devices**, or the **Available customizations** pane if you selected **Advanced provisioning**. The remainder of this topic will explain the **Advanced provisioning scenario**. - -- For instructions on **Simple provisioning**, see [Provision PCs with common settings](provision-pcs-for-initial-deployment.md). -- For instructions on **Provision school devices**, see [Set up student PCs to join domain](https://technet.microsoft.com/edu/windows/set-up-students-pcs-to-join-domain). - - -## Configure settings - -For an advanced provisioning project, Windows ICD opens the **Available customizations** pane. The example in the following image is based on **All Windows desktop editions** settings. - -![What the ICD interface looks like](images/icd-runtime.png) - -The settings in Windows ICD are based on Windows 10 configuration service providers (CSPs). To learn more about CSPs, see [Introduction to configuration service providers (CSPs) for IT pros](https://technet.microsoft.com/itpro/windows/manage/how-it-pros-can-use-configuration-service-providers). - -The process for configuring settings is similar for all settings. The following table shows an example. - - - - - - - -
    ![step one](images/one.png)
    Expand a category.
    ![Expand Certificates category](images/icd-step1.png)
    ![step two](images/two.png)
    Select a setting.
    ![Select ClientCertificates](images/icd-step2.png)
    ![step three](images/three.png)
    Enter a value for the setting. Click **Add** if the button is displayed.
    ![Enter a name for the certificate](images/icd-step3.png)
    ![step four](images/four.png)
    Some settings, such as this example, require additional information. In **Available customizations**, select the value you just created, and additional settings are displayed.
    ![Additional settings for client certificate](images/icd-step4.png)
    ![step five](images/five.png)
    When the setting is configured, it is displayed in the **Selected customizations** pane.
    ![Selected customizations pane](images/icd-step5.png)
    - -For details on each specific setting, see [Windows Provisioning settings reference](https://msdn.microsoft.com/library/windows/hardware/dn965990.aspx). The reference topic for a setting is also displayed in Windows ICD when you select the setting, as shown in the following image. - -![Windows ICD opens the reference topic when you select a setting](images/icd-setting-help.png) - - - ## Build package - -1. After you're done configuring your customizations, click **Export** and select **Provisioning Package**. - - ![Export on top bar](images/icd-export-menu.png) - -2. In the **Describe the provisioning package** window, enter the following information, and then click **Next**: - - **Name** - This field is pre-populated with the project name. You can change this value by entering a different name in the **Name** field. - - **Version (in Major.Minor format** - - Optional. You can change the default package version by specifying a new value in the **Version** field. - - **Owner** - Select **IT Admin**. For more information, see [Precedence for provisioning packages](provisioning-how-it-works.md#precedence-for-provisioning-packages). - - **Rank (between 0-99)** - Optional. You can select a value between 0 and 99, inclusive. The default package rank is 0. - -3. In the **Select security details for the provisioning package** window, you can select to encrypt and/or sign a provisioning package with a selected certificate. Both selections are optional. Click **Next** after you make your selections. - - - **Encrypt package** - If you select this option, an auto-generated password will be shown on the screen. - - **Sign package** - If you select this option, you must select a valid certificate to use for signing the package. You can specify the certificate by clicking **Select** and choosing the certificate you want to use to sign the package. - - >[!NOTE] - >You should only configure provisioning package security when the package is used for device provisioning and the package has contents with sensitive security data such as certificates or credentials that should be prevented from being compromised. When applying an encrypted and/or signed provisioning package, either during OOBE or through the setting UI, the package can be decrypted, and if signed, be trusted without explicit user consent. An IT administrator can set policy on a user device to restrict the removal of required packages from the device, or the provisioning of potentially harmful packages on the device. - > - >If a provisioning package is signed by a trusted provisioner, it can be installed on a device without a prompt for user consent. In order to enable trusted provider certificates, you must set the **TrustedProvisioners** setting prior to installing the trusted provisioning package. This is the only way to install a package without user consent. To provide additional security, you can also set **RequireProvisioningPackageSignature**, which prevents users from installing provisioning packages that are not signed by a trusted provisioner. - -4. In the **Select where to save the provisioning package** window, specify the output location where you want the provisioning package to go once it's built, and then click **Next**. By default, Windows ICD uses the project folder as the output location. - -5. In the **Build the provisioning package** window, click **Build**. The provisioning package doesn't take long to build. The project information is displayed in the build page and the progress bar indicates the build status. - - If you need to cancel the build, click Cancel. This cancels the current build process, closes the wizard, and takes you back to the Customizations Page. - -6. If your build fails, an error message will show up that includes a link to the project folder. You can scan the logs to determine what caused the error. Once you fix the issue, try building the package again. - - If your build is successful, the name of the provisioning package, output directory, and project directory will be shown. - - If you choose, you can build the provisioning package again and pick a different path for the output package. To do this, click **Back** to change the output package name and path, and then click **Next** to start another build. - -7. When you are done, click **Finish** to close the wizard and go back to the Customizations page. - -**Next step**: [How to apply a provisioning package](provisioning-apply-package.md) - -## Learn more - -- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) - -- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) - - - -## Related topics - -- [Provisioning packages for Windows 10](provisioning-packages.md) -- [How provisioning works in Windows 10](provisioning-how-it-works.md) -- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) -- [Apply a provisioning package](provisioning-apply-package.md) -- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) -- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) -- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) -- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) -- [NFC-based device provisioning](provisioning-nfc.md) -- [Windows ICD command-line interface (reference)](provisioning-command-line.md) -- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) \ No newline at end of file diff --git a/windows/deploy/provisioning-how-it-works.md b/windows/deploy/provisioning-how-it-works.md deleted file mode 100644 index 1f9b72eb6c..0000000000 --- a/windows/deploy/provisioning-how-it-works.md +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: How provisioning works in Windows 10 (Windows 10) -description: A provisioning package (.ppkg) is a container for a collection of configuration settings. -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -author: jdeckerMS -localizationpriority: high ---- - -# How provisioning works in Windows 10 - - -**Applies to** - -- Windows 10 -- Windows 10 Mobile - -Provisioning packages in Windows 10 provide IT administrators with a simplified way to apply configuration settings to Windows 10 devices. Windows Imaging and Configuration Designer (Windows ICD) is a tool that makes it easy to create a provisioning package. Windows ICD is contained in the [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit). - -## Provisioning packages - -A provisioning package contains specific configurations/settings and assets that can be provided through a removable media or simply downloaded to the device. - -To enable adding multiple sets of settings or configurations, the configuration data used by the provisioning engine is built out of multiple configuration sources that consist of separate provisioning packages. Each provisioning package contains the provisioning data from a different source. - -A provisioning package (.ppkg) is a container for a collection of configuration settings. The package has the following format: - -- Package metadata – The metadata contains basic information about the package such as package name, description, version, ranking, and so on. - -- XML descriptors – Each descriptor defines a customization asset or configuration setting included in the package. - -- Asset payloads – The payloads of a customization asset or a configuration setting associated with an app or data asset. - -You can use provisioning packages for runtime device provisioning by accessing the package on a removable media attached to the device, through near field communication (NFC), or by downloading from a remote source location. - -## Precedence for provisioning packages - -When multiple provisioning packages are available for device provisioning, the combination of package owner type and package rank level defined in the package manifest is used to resolve setting conflicts. The pre-defined package owner types are listed below in the order of lowest to highest owner type precedence: - -1. Microsoft - -2. Silicon Vender - -3. OEM - -4. System Integrator - -5. Mobile Operator - -6. IT Admin - -The valid value range of package rank level is 0 to 99. - -When setting conflicts are encountered, the final values provisioned on the device are determined by the owner type precedence and the rank level of the packages containing the settings. For example, the value of a setting in a package with owner **System Integrator** and rank level **3** takes precedence over the same setting in a package with owner **OEM** and rank level **4**. This is because the System Integrator owner type has the higher precedence over the OEM owner type. For packages with the same owner type, the package rank level determines the package from which the setting values get provisioned on the device. - -## Windows provisioning XML - -Windows provisioning XML is the framework that allows Microsoft and OEM components to declare end-user configurable settings and the on-device infrastructure for applying the settings with minimal work by the component owner. - -Settings for each component can be declared within that component's package manifest file. These declarations are turned into settings schema that are used by Windows ICD to expose the potential settings to users to create customizations in the image or in provisioning packages. Windows ICD translates the user configuration, which is declared through Windows provisioning answer file(s), into the on-device provisioning format. - -When the provisioning engine selects a configuration, the Windows provisioning XML is contained within the selected provisioning data and is passed through the configuration manager and then to the Windows provisioning CSP. The Windows provisioning CSP then takes and applies the provisioning to the proper location for the actual component to use. - -## Provisioning engine - -The provisioning engine is the core component for managing provisioning and configuration at runtime in a device running Windows 10. - -The provisioning engine provides the following functionality: - -- Provisioning configuration at any time when the device is running including first boot and setup or OOBE. It is also extensible to other points during the run-time of the device. -- Reading and combining settings from multiple sources of configuration that may be added to an image by Microsoft, the OEM, or system integrator, or added by IT/education administrators or users to the device at run-time. Configuration sources may be built into the image or from provisioning packages added to the device. -- Responding to triggers or events and initiating a provisioning stage. -- Authenticating the provisioning packages. -- Selecting a set of configuration based on the stage and a set of keys—such as the SIM, MCC/MNC, IMSI range, and so on—that map to a specific configuration then passing this configuration to the configuration management infrastructure to be applied. -- Working with OOBE and the control panel UI to allow user selection of configuration when a specific match cannot be determined. - -## Configuration manager - -The configuration manager provides the unified way of managing Windows 10 devices. Configuration is mainly done through the Open Mobile Alliance (OMA) Device Management (DM) and Client Provisioning (CP) protocols. The configuration manager handles and parses these protocol requests from different channels and passes them down to Configuration Service Providers (CSPs) to perform the specific management requests and settings. - -The provisioning engine relies on configuration manager for all of the actual processing and application of a chosen configuration. The provisioning engine determines the stage of provisioning and, based on a set of keys, determines the set of configuration to send to the configuration manager. The configuration manager in turn parses and calls into the CSPs for the setting to be applied. - -Underneath the configuration manager are the CSPs. Each section of configuration translates to a particular CSP to handle interpreting into an action on the device. Each CSP translates the instructions in the configuration and calls into the appropriate APIs and components to perform the requested provisioning actions. - -## Policy and resource manager - -The policy, resource, and context manager components manage the enrollment and unenrollment of devices into enterprise environments. The enrollment process into an enterprise is essentially the provisioning of configuration and device management policies that the enterprise wants to enforce on the device. This is usually done through the explicit signing up of the device to an enterprise's device management server over a network connection. This provides the user with the ability to access the enterprise's resources through the device and the enterprise with a means to manage and control access and manage and control the device itself. - -The key differences between enterprise enrollment and the configuration performed by the provisioning engine are: -- Enrollment enforces a limited and controlled set of policies on the device that the user may not have full control over. The provisioning engine exposes a larger set of settings that configure more aspects of the device and are generally user adjustable. -- The policy manager manages policy settings from multiple entities and performs a selection of the setting based on priority of the entities. The provisioning engine applies the settings and does not offer a means of prioritizing settings from different sources. The more specific provisioning is the last one applied and the one that is used. -- Individual policy settings applied from different enrollment entities are stored so they can be removed later during unenrollment. This enables the user to remove enterprise policy and return the device to a state without the enterprise restrictions and any sensitive data. The provisioning engine does not maintain individual provisioning settings or a means to roll back all applied settings. - -In Windows 10, the application of policy and enrollment through provisioning is required to support cases where an enterprise or educational institution does not have a DM server for full device management. The provisioning engine supports provisioning enrollment and policy through its configuration and integrates with the existing policy and resource manager components directly or through the configuration manager. - -## Triggers and stages - -Triggers are events during the lifetime of the system that start a provisioning stage. Some examples of triggers are: boot, OOBE, SIM change, user added, administrator added, user login, device update, and various manual triggers (such as deployment over USB or launched from an email attachment or USB flash drive). - -When a trigger occurs, provisioning is initiated for a particular provisioning stage. The stages are grouped into sets based on the scope of the settings: -- **Static**: First stage run for provisioning to apply configuration settings to the system to set up OOBE or apply device-wide settings that cannot be done when the image is being created. -- **System**: Run during OOBE and configure system-wide settings. -- **UICC**: UICC stages run for each new UICC in a device to handle configuration and branding based on the identity of the UICC or SIM card. This enables the runtime configuration scenarios where an OEM can maintain one image that can be configured for multiple operators. -- **Update**: Runs after an update to apply potential updated settings changes. -- **User**: runs during a user account first run to configure per-user settings. - - - - - - - - - -## Device provisioning during OOBE - -The provisioning engine always applies provisioning packages persisted in the C:\Recovery\Customizations folder on the OS partition. When the provisioning engine applies provisioning packages in the %ProgramData%\Microsoft\Provisioning folder, certain runtime setting applications, such as the setting to install and configure Windows apps, may be extended past the OOBE pass and continually be processed in the background when the device gets to the desktop. Settings for configuring policies and certain crucial system configurations are always be completed before the first point at which they must take effect. - -Device users can apply a provisioning package from a remote source when the device first boots to OOBE. The device provisioning during OOBE is only triggered after the language, locale, time zone, and other settings on the first OOBE UI page are configured. On all Windows devices, device provisioning during OOBE can be triggered by 5 fast taps on the Windows hardware key. When device provisioning is triggered, the provisioning UI is displayed in the OOBE page. The provisioning UI allows users to select a provisioning package acquired from a remote source, such as through NFC or a removable media. - -The following table shows how device provisioning can be initiated when a user first boots to OOBE. - - -| Package delivery | Initiation method | Supported device | -| --- | --- | --- | -| Removable media - USB drive or SD card
    (Packages must be placed at media root) | 5 fast taps on the Windows key to launch the provisioning UI |All Windows devices | -| From an administrator device through machine to machine NFC or NFC tag
    (The administrator device must run an app that can transfer the package over NFC) | 5 fast taps on the Windows key to launch the provisioning UI | Windows 10 Mobile devices and IoT Core devices | - -The provisioning engine always copies the acquired provisioning packages to the %ProgramData%\Microsoft\Provisioning folder before processing them during OOBE. The provisioning engine always applies provisioning packages embedded in the installed Windows image during Windows Setup OOBE pass regardless of whether the package is signed and trusted. When the provisioning engine applies an encrypted provisioning package on an end-user device during OOBE, users must first provide a valid password to decrypt the package. The provisioning engine also checks whether a provisioning package is signed and trusted; if it's not, the user must provide consent before the package is applied to the device. - -When the provisioning engine applies provisioning packages during OOBE, it applies only the runtime settings from the package to the device. Runtime settings can be system-wide configuration settings, including security policy, Windows app install/uninstall, network configuration, bootstrapping MDM enrollment, provisioning of file assets, account and domain configuration, Windows edition upgrade, and more. The provisioning engine also checks for the configuration settings on the device, such as region/locale or SIM card, and applies the multivariant settings with matching condition(s). - -## Device provisioning at runtime - -At device runtime, standalone provisioning packages can be applied by user initiation. Only runtime configuration settings including multivariant settings contained in a provisioning package can be applied at device runtime. - -The following table shows when provisioning at device runtime can be initiated. - -| Package delivery | Initiation method | Supported device | -| --- | --- | --- | -| Removable media - USB drive or SD card
    (Packages must be placed at media root) | **Settings** > **Accounts** > **Access work or school** > **Add or remove a provisioning package** | All Windows devices | -| Downloaded from a network connection and copied to a local folder | Double-click the package file | Windows 10 for desktop editions devices | -| From an administrator device connected to the target device through USB tethering | Drag and drop the package file onto the target device | Windows 10 Mobile devices and IoT Core devices | - -When applying provisioning packages from a removable media attached to the device, the Settings UI allows viewing contents of a package before selecting the package for provisioning. To minimize the risk of the device being spammed by applying provisioning packages from unknown sources, a provisioning package can be signed and encrypted. Partners can also set policies to limit the application of provisioning packages at device runtime. Applying provisioning packages at device runtime requires administrator privilege. If the package is not signed or trusted, a user must provide consent before the package is applied to the device. If the package is encrypted, a valid password is needed to decrypt the package before it can be applied to the device. - -When applying multiple provisioning packages to a device, the provisioning engine resolves settings with conflicting configuration values from different packages by evaluating the package ranking using the combination of package owner type and package rank level defined in the package metadata. A configuration setting applied from a provisioning package with the highest package ranking will be the final value applied to the device. - -After a standalone provisioning package is applied to the device, the package is persisted in the %ProgramData%\Microsoft\Provisioning folder on the device. Provisioning packages can be removed by an administrator by using the **Add or remove a provisioning package** available under **Settings** > **Accounts** > **Access work or school**. However, Windows 10 doesn't provide an uninstall option to revert runtime settings when removing a provisioning package from the device. - - -## Learn more - -- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) - -- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) - - -## Related topics - -- [Provisioning packages for Windows 10](provisioning-packages.md) -- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) -- [Create a provisioning package](provisioning-create-package.md) -- [Apply a provisioning package](provisioning-apply-package.md) -- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) -- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) -- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) -- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) -- [NFC-based device provisioning](provisioning-nfc.md) -- [Windows ICD command-line interface (reference)](provisioning-command-line.md) -- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) - - - - -  - -  - - - - - diff --git a/windows/deploy/provisioning-install-icd.md b/windows/deploy/provisioning-install-icd.md deleted file mode 100644 index 9727bc089d..0000000000 --- a/windows/deploy/provisioning-install-icd.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: Install Windows Imaging and Configuration Designer (Windows 10) -description: Learn how to install and run Windows ICD. -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -author: jdeckerMS -localizationpriority: high ---- - -# Install Windows Imaging and Configuration Designer (ICD) - - -**Applies to** - -- Windows 10 -- Windows 10 Mobile - -Use the Windows Imaging and Configuration Designer (ICD) tool in the Windows Assessment and Deployment Kit (ADK) to create provisioning packages to easily configure devices running Windows 10. Windows ICD is primarily designed for use by IT departments for business and educational institutions who need to provision bring-your-own-device (BYOD) and business-supplied devices. - -## Supported platforms - -Windows ICD can create provisioning packages for Windows 10 desktop and mobile editions, including Windows 10 IoT Core. You can run Windows ICD on the following operating systems: - -- Windows 10 - x86 and amd64 -- Windows 8.1 Update - x86 and amd64 -- Windows 8.1 - x86 and amd64 -- Windows 8 - x86 and amd64 -- Windows 7 - x86 and amd64 -- Windows Server 2016 -- Windows Server 2012 R2 Update -- Windows Server 2012 R2 -- Windows Server 2012 -- Windows Server 2008 R2 - -## Install Windows ICD - -1. Go to [Download the Windows ADK](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit) and select **Get Windows ADK** for the version of Windows 10 that you want to create provisioning packages for (version 1511 or version 1607). - - >[!NOTE] - >The rest of this procedure uses Windows ADK for Windows 10, version 1607 as an example. - -2. Save **adksetup.exe** and then run it. - -3. On the **Specify Location** page, select an installation path and then click **Next**. - >[!NOTE] - >The estimated disk space listed on this page applies to the full Windows ADK. If you only install Windows ICD, the space requirement is approximately 32 MB. -4. Make a selection on the **Windows Kits Privacy** page, and then click **Next**. - -5. Accept the **License Agreement**, and then click **Next**. - -6. On the **Select the features you want to install** page, clear all selections except **Configuration Designer**, and then click **Install**. - - ![Only Configuration Designer selected for installation](images/icd-install.png) - -## Current Windows ICD limitations - - -- You can only run one instance of Windows ICD on your computer at a time. - -- Be aware that when adding apps and drivers, all files stored in the same folder will be imported and may cause errors during the build process. - -- The Windows ICD UI does not support multivariant configurations. Instead, you must use the Windows ICD command-line interface to configure multivariant settings. For more information, see [Create a provisioning package with multivariant settings](provisioning-multivariant.md). - -- While you can open multiple projects at the same time within Windows ICD, you can only build one project at a time. - -- In order to enable the simplified authoring jscripts to work on a server SKU running Windows ICD, you need to explicitly enable **Allow websites to prompt for information using scripted windows**. Do this by opening Internet Explorer and then navigating to **Settings** > **Internet Options** > **Security** -> **Custom level** > **Allow websites to prompt for information using scripted windows**, and then choose **Enable**. - -- If you copy a Windows ICD project from one PC to another PC, make sure that all the associated files for the deployment assets, such as apps and drivers, are copied along with the project to the same path as it was on the original PC. - - For example, when you add a driver to a provisioned package, you must copy the .INF file to a local directory on the PC that is running Windows ICD. If you don't do this, and attempt to use a copied version of this project on a different PC, Windows ICD might attempt to resolve the path to the files that point to the original PC. - -- **Recommended**: Before starting, copy all source files to the PC running Windows ICD, rather than using external sources like network shares or removable drives. This reduces the risk of interrupting the build process from a temporary network issue or from disconnecting the USB device. - -**Next step**: [How to create a provisioning package](provisioning-create-package.md) - -## Learn more - -- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) - -- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) - -## Related topics - -- [Provisioning packages for Windows 10](provisioning-packages.md) -- [How provisioning works in Windows 10](provisioning-how-it-works.md) -- [Create a provisioning package](provisioning-create-package.md) -- [Apply a provisioning package](provisioning-apply-package.md) -- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) -- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) -- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) -- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) -- [NFC-based device provisioning](provisioning-nfc.md) -- [Windows ICD command-line interface (reference)](provisioning-command-line.md) -- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) - - - -  - -  - - - - - diff --git a/windows/deploy/provisioning-multivariant.md b/windows/deploy/provisioning-multivariant.md deleted file mode 100644 index 3bc7652233..0000000000 --- a/windows/deploy/provisioning-multivariant.md +++ /dev/null @@ -1,322 +0,0 @@ ---- -title: Create a provisioning package with multivariant settings (Windows 10) -description: Create a provisioning package with multivariant settings to customize the provisioned settings. -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -author: jdeckerMS -localizationpriority: high ---- - -# Create a provisioning package with multivariant settings - - -**Applies to** - -- Windows 10 -- Windows 10 Mobile - -Multivariant provisioning packages enable you to create a single provisioning package that can work for multiple locales. - -To provision multivariant settings, you must create a provisioning package with defined **Conditions** and **Settings** that are tied to these conditions. When you install this package on a Windows 10 device, the provisioning engine applies the matching condition settings at every event and triggers provisioning. - -The following events trigger provisioning on Windows 10 devices: - -| Event | Windows 10 Mobile | Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) | -| --- | --- | --- | -| System boot | Supported | Supported | -| Operating system update | Supported | Planned | -| Package installation during device first run experience | Supported | Supported | -| Detection of SIM presence or update | Supported | Not supported | -| Package installation at runtime | Supported | Supported | -| Roaming detected | Supported | Not supported | - -## Target, TargetState, Condition, and priorities - -Targets describe keying for a variant and must be described or pre-declared before being referenced by the variant. - -- You can define multiple **Target** child elements for each **Id** that you need for the customization setting. - -- Within a **Target** you can define multiple **TargetState** elements. - -- Within a **TargetState** element you can create multiple **Condition** elements. - -- A **Condition** element defines the matching type between the condition and the specified value. - -The following table shows the conditions supported in Windows 10 provisioning: - ->[!NOTE] ->You can use any of these supported conditions when defining your **TargetState**. - -| Condition Name | Condition priority | Windows 10 Mobile | Windows 10 for desktop editions | Value type | Value description | -| --- | --- | --- | --- | --- | --- | -| MNC | P0 | Supported | N/A | Digit string | Use to target settings based on the Mobile Network Code (MNC) value. | -| MCC | P0 | Supported | N/A | Digit string | Use to target settings based on the Mobile Country Code (MCC) value. | -| SPN | P0 | Supported | N/A | String | Use to target settings based on the Service Provider Name (SPN) value. | -| PNN | P0 | Supported | N/A | String | Use to target settings based on public land mobile network (PLMN) Network Name value. | -| GID1 | P0 | Supported | N/A | Digit string | Use to target settings based on the Group Identifier (level 1) value. | -| ICCID | P0 | Supported | N/A | Digit string | Use to target settings based on the Integrated Circuit Card Identifier (ICCID) value. | -| Roaming | P0 | Supported | N/A | Boolean | Use to specify roaming. Set the value to **1** (roaming) or **0** (non-roaming). | -| UICC | P0 | Supported | N/A | Enumeration | Use to specify the UICC state. Set the value to one of the following:


    - 0 - Empty
    - 1 - Ready
    - 2 - Locked | -| UICCSLOT | P0 | Supported | N/A | Digit string | Use to specify the UICC slot. Set the value one of the following:


    - 0 - Slot 0
    - 1 - Slot 1 | -| ProcessorType | P1 | Supported | Supported | String | Use to target settings based on the processor type. | -| ProcessorName | P1 | Supported | Supported | String | Use to target settings based on the processor name. | -| AoAc | P1 | Supported | Supported | Boolean | Set the value to 0 or 1. | -| PowerPlatformRole | P1 | Supported | Supported | Enumeration | Indicates the preferred power management profile. Set the value based on the POWER_PLATFORM_ROLE enumeration. | -| Architecture | P1 | Supported | Supported | String | Matches the PROCESSOR_ARCHITECTURE environment variable. | -| Server | P1 | Supported | Supported | Boolean | Set the value to 0 or 1. | -| Region | P1 | Supported | Supported | Enumeration | Use to target settings based on country/region. | -| Lang | P1 | Supported | Supported | Enumeration | Use to target settings based on language code. | -| ROMLANG | P1 | Supported | N/A | Digit string | Use to specify the PhoneROMLanguage that's set for DeviceTargeting. This condition is used primarily to detect variants for China. For example, you can use this condition and set the value to "0804". | - -The matching types supported in Windows 10 are: - -| Matching type | Syntax | Example | -| --- | --- | --- | -| Straight match | Matching type is specified as-is | <Condition Name="ProcessorName" Value="Barton" /> | -| Regex match | Matching type is prefixed by "Pattern:" | <Condition Name="ProcessorName" Value="Pattern:.*Celeron.*" /> | -| Numeric range match | Matching type is prefixed by "!Range:" | <Condition Name="MNC" Value="!Range:400, 550" /> | - - -- When all **Condition** elements are TRUE, **TargetState** is TRUE (**AND** logic). - -- If any of the **TargetState** elements is TRUE, **Target** is TRUE (**OR** logic), and **Id** can be used for the setting customization. - - -You can define more than one **TargetState** within a provisioning package to apply variant settings that match device conditions. When the provisioning engine evalues each **TargetState**, more than one **TargetState** may fit current device conditions. To determine the order in which the variant settings are applied, the system assigns a priority to every **TargetState**. - -A variant setting that matches a **TargetState** with a lower priority is applied before the variant that matches a **TargetState** with a higher priority. Variant settings that match more than one **TargetState** with equal priority are applied according to the order that each **TargetState** is defined in the provisioning package. - -The **TargetState** priority is assigned based on the conditions priority and the priority evaluation rules are as followed: - -1. **TargetState** with P0 conditions is higher than **TargetState** without P0 conditions. - - -2. **TargetState** with P1 conditions is higher than **TargetState** without P0 and P1 conditions. - - -3. If N₁>N₂>0, the **TargetState** priority with N₁ P0 conditions is higher than the **TargetState** with N₂ P1 conditions. - - -4. For **TargetState** without P0 conditions, if N₁>N₂>0 **TargetState** with N₁ P1 conditions is higher than the **TargetState** with N₂ P1 conditions. - - -5. For **TargetState** without P0 and P1 conditions, if N₁>N₂>0 **TargetState** priority with N₁ P2 conditions is higher than the **TargetState** with N₂ P2 conditions. - - -6. For rules 3, 4, and 5, if N₁=N₂, **TargetState** priorities are considered equal. - - -## Create a provisioning package with multivariant settings - -Follow these steps to create a provisioning package with multivariant capabilities. - - -1. Build a provisioning package and configure the customizations you need to apply during certain conditions. For more information, see [Create a provisioning package](provisioning-create-package.md). - - -2. After you've [configured the settings](provisioning-create-package.md#configure-settings), save the project. - - -3. Open the project folder and copy the customizations.xml file. - -4. Use an XML or text editor to open the customizations.xml file. - - The customizations.xml file holds the package metadata (including the package owner and rank) and the settings that you configured when you created your provisioning package. The Customizations node contains a Common section, which contains the customization settings. - - The following example shows the contents of a sample customizations.xml file. - - ```XML - - - - {6aaa4dfa-00d7-4aaa-8adf-73c6a7e2501e} - My Provisioning Package - 1.0 - OEM - 50 - - - - - - 0 - 0 - 0 - - - 0 - - - - - - ``` - -4. Edit the customizations.xml file and create a **Targets** section to describe the conditions that will handle your multivariant settings. - - The following example shows the customizations.xml, which has been modified to include several conditions including **ProcessorName**, **ProcessorType**, **MCC**, and **MNC**. - - ```XML - - - - {6aaa4dfa-00d7-4aaa-8adf-73c6a7e2501e} - My Provisioning Package - 1.0 - OEM - 50 - - - - - - 0 - 0 - 0 - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - ``` - -5. In the customizations.xml file, create a **Variant** section for the settings you need to customize. To do this: - - a. Define a child **TargetRefs** element. - - b. Within the **TargetRefs** element, define a **TargetRef** element. You can define multiple **TargetRef** elements for each **Id** that you need to apply to customized settings. - - c. Move compliant settings from the **Common** section to the **Variant** section. - - If any of the TargetRef elements matches the Target, all settings in the Variant are applied (OR logic). - - >[!NOTE] - >You can define multiple Variant sections. Settings that reside in the **Common** section are applied unconditionally on every triggering event. - - The following example shows the customizations.xml updated to include a **Variant** section and the moved settings that will be applied if the conditions for the variant are met. - - ```XML - - - - {6aaa4dfa-00d7-4aaa-8adf-73c6a7e2501e} - My Provisioning Package - 1.0 - OEM - 50 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 1 - 1 - - - 1 - - - - - - - ``` - -6. Save the updated customizations.xml file and note the path to this updated file. You will need the path as one of the values for the next step. - - -7. Use the [Windows ICD command-line interface](provisioning-command-line.md) to create a provisioning package using the updated customizations.xml. - - For example: - - ``` - icd.exe /Build-ProvisioningPackage /CustomizationXML:"C:\CustomProject\customizations.xml" /PackagePath:"C:\CustomProject\output.ppkg" /StoreFile:C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Imaging and Configuration Designer\x86\Microsoft-Common-Provisioning.dat" - ``` - - -In this example, the **StoreFile** corresponds to the location of the settings store that will be used to create the package for the required Windows edition. - ->[!NOTE] ->The provisioning package created during this step will contain the multivariant settings. You can use this package either as a standalone package that you can apply to a Windows device or use it as the base when starting another project. - - - - - - - - - - - - - - -## Related topics - -- [Provisioning packages for Windows 10](provisioning-packages.md) -- [How provisioning works in Windows 10](provisioning-how-it-works.md) -- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) -- [Create a provisioning package](provisioning-create-package.md) -- [Apply a provisioning package](provisioning-apply-package.md) -- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) -- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) -- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) -- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) -- [NFC-based device provisioning](provisioning-nfc.md) -- [Windows ICD command-line interface (reference)](provisioning-command-line.md) - -  - - - - - diff --git a/windows/deploy/provisioning-nfc.md b/windows/deploy/provisioning-nfc.md deleted file mode 100644 index 114e6d5545..0000000000 --- a/windows/deploy/provisioning-nfc.md +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: NFC-based device provisioning (Windows 10) -description: -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -author: jdeckerMS -localizationpriority: high ---- - -# NFC-based device provisioning - - -**Applies to** - -- Windows 10 Mobile - -Near field communication (NFC) enables Windows 10 Mobile Enterprise and Windows 10 Mobile devices to communicate with an NFC tag or another NFC-enabled transmitting device. Enterprises that do bulk provisioning can use NFC-based device provisioning to provide a provisioning package to the device that's being provisioned. NFC provisioning is simple and convenient and it can easily store an entire provisioning package. - -The NFC provisioning option enables the administrator to provide a provisioning package during initial device setup or the out-of-box experience (OOBE) phase. Administrators can use the NFC provisioning option to transfer provisioning information to persistent storage by tapping an unprovisioned mobile device to an NFC tag or NFC-enabled device. To use NFC for pre-provisioning a device, you must either prepare your own NFC tags by storing your provisioning package to a tag as described in this section, or build the infrastructure needed to transmit a provisioning package between an NFC-enabled device and a mobile device during OOBE. - -## Provisioning OOBE UI - -All Windows 10 Mobile Enterprise and Windows 10 Mobile images have the NFC provisioning capability incorporated into the operating system. On devices that support NFC and are running Windows 10 Mobile Enterprise or Windows 10 Mobile, NFC-based device provisioning provides an additional mechanism to provision the device during OOBE. - -On all Windows devices, device provisioning during OOBE can be triggered by 5 fast taps on the Windows hardware key, which shows the **Provision this device** screen. In the **Provision this device** screen, select **NFC** for NFC-based provisioning. - -![Example of Provision this device screen](images/nfc.png) - -If there is an error during NFC provisioning, the device will show a message if any of the following errors occur: - -- **NFC initialization error** - This can be caused by any error that occurs before data transfer has started. For example, if the NFC driver isn't enabled or there's an error communicating with the proximity API. -- **Interrupted download or incomplete package transfer** - This error can happen if the peer device is out of range or the transfer is aborted. This error can be caused whenever the device being provisioned fails to receive the provisioning package in time. -- **Incorrect package format** - This error can be caused by any protocol error that the operating system encounters during the data transfer between the devices. -- **NFC is disabled by policy** - Enterprises can use policies to disallow any NFC usage on the managed device. In this case, NFC functionality is not enabled. - -## NFC tag - -You can use an NFC tag for minimal provisioning and use an NFC-enabled device tag for larger provisioning packages. - -The protocol used for NFC-based device provisioning is similar to the one used for NFC provisioning on Windows Embedded 8.1 Handheld, which supported both single-chunk and multi-chunk transfer when the total transfer didn't fit in one NDEP message size. In Windows 10, the provisioning stack contains the following changes: - -- **Protocol namespace** - The protocol namespace has changed from Windows.WEH.PreStageProv.Chunk to Windows.ProvPlugins.Chunk. -- **Tag data type** - The tag data type has changed from UTF-8 into binary raw data. - - ->[!NOTE] ->The NFC tag doesn't go in the secondary device. You can transfer the NFC tag by using a provisioning package from device-to-device using the NFC radio or by re-reading the provisioning package from an NFC tag. - -### NFC tag components - -NFC tags are suitable for very light applications where minimal provisioning is required. The size of NFC tags that contain provisioning packages is typically 4 KB to 10 KB. - -To write to an NFC tag, you will need to use an NFC Writer tool, or you can use the [ProximityDevice class API](https://msdn.microsoft.com/library/windows/apps/windows.networking.proximity.proximitydevice.aspx) to write your own custom tool to transfer your provisioning package file to your NFC tag. The tool must publish a binary message (write) a Chunk data type to your NFC tag. - -The following table describes the information that is required when writing to an NFC tag. - -| Required field | Description | -| --- | --- | -| **Type** | Windows.ProvPlugins.Chunk

    The receiving device uses this information to understand information in the Data field. | -| **Data** | Tag data with small header in raw binary format that contains a chunk of the provisioning package to be transferred. | - - - -### NFC provisioning helper - -The NFC provisioning helper device must split the provisioning package raw content into multiple parts and publish these in order. Each part should follow the following format: - -
    **Version**
    (1 byte)
    **Leading**
    (1 byte)
    **Order**
    (1 byte)
    **Total**
    (1 byte)
    **Chunk payload**
    (N bytes)
    - -For each part: -- **Version** should always be 0x00. -- **Leading byte** should always be 0xFF. -- **Order** represents which message chunk (out of the whole message) the part belongs to. The Order begins with zero (0). -- **Total** represents the total number of chunks to be transferred for the whole message. -- **Chunk payload** represents each of the split parts. - -The NFC provisioning helper device must publish the record in a type of Windows.ProvPlugins.Chunk. - -**Code example** - -The following example shows how to write to an NFC tag. This example assumes that the tag is already in range of the writing device. - -``` - private async void WriteProvPkgToTag(IStorageFile provPkgFile) - { - var buffer = await FileIO.ReadBufferAsync(provPkgFile); - if (null == buffer) - { - return; - } - - var proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault(); - if (null == proximityDevice) - { - return; - } - - var dataWriter = new DataWriter(); - var header = new NfcProvHeader(); - - header.version = NFC_PROV_MESSAGE_CURRENT_VERSION; // Currently the supported version is 0x00. - header.leading = NFC_PROV_MESSAGE_LEADING_BYTE; // The leading byte should be always 0xFF. - header.index = 0; // Assume we only have 1 chunk. - header.total = 1; // Assume we only have 1 chunk. - - // Write the header first and then the raw data of the provisioning package. - dataWriter.WriteBytes(GetBytes(header)); - dataWriter.WriteBuffer(buffer); - - var chunkPubId = proximityDevice.PublishBinaryMessage( - "Windows:WriteTag.ProvPlugins.Chunk", - dataWriter.DetachBuffer()); - } -``` - - -### NFC-enabled device tag components - -Provisioning from an NFC-enabled source device allows for larger provisioning packages than can be transferred using an NFC tag. When provisioning from an NFC-enabled device, we recommend that the total file size not exceed 120 KB. Be aware that the larger the NFC file is, the longer it will take to transfer the provisioning file. Depending on your NFC hardware, the transfer time for a 120 KB file will vary between 2.5 seconds and 10 seconds. - -To provision from an NFC-enabled source device, use [ProximityDevice class API](https://msdn.microsoft.com/library/windows/apps/windows.networking.proximity.proximitydevice.aspx) to write your own custom tool that transfers your provisioning package in chunks to your target mobile device. The tool must publish binary messages (transmit) a Header message, followed by one or more Chunk messages. The Header specifies the total amount of data that will be transferred to the target device; the Chunks must contain binary raw data formatted provisioning data, as shown in the NFC tag components section. - -For detailed information and code samples on how to implement an NFC-enabled device tag, see **ConvertToNfcMessageAsync** in [this GitHub NfcProvisioner Universal Windows app example](https://github.com/Microsoft/Windows-universal-samples/blob/master/Samples/NfcProvisioner/cs/Scenario1.xaml.cs). The sample app shows you how to host the provisioning package on a master device so that you can transfer it to the receiving device. - - - - - - - -## Related topics - -- [Provisioning packages for Windows 10](provisioning-packages.md) -- [How provisioning works in Windows 10](provisioning-how-it-works.md) -- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) -- [Create a provisioning package](provisioning-create-package.md) -- [Apply a provisioning package](provisioning-apply-package.md) -- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) -- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) -- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) -- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) -- [Windows ICD command-line interface (reference)](provisioning-command-line.md) -- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) - -  - -  - - - - - diff --git a/windows/deploy/provisioning-packages.md b/windows/deploy/provisioning-packages.md index ebb4a064c3..47223a7427 100644 --- a/windows/deploy/provisioning-packages.md +++ b/windows/deploy/provisioning-packages.md @@ -3,8 +3,9 @@ title: Provisioning packages (Windows 10) description: With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. ms.assetid: 287706E5-063F-4AB5-902C-A0DF6D0730BC ms.prod: w10 -ms.mktglfcycl: deploy +ms.mktglfcycl: explore ms.sitesec: library +ms.pagetype: mobile author: jdeckerMS localizationpriority: high --- @@ -17,17 +18,15 @@ localizationpriority: high - Windows 10 - Windows 10 Mobile -Windows provisioning makes it easy for IT administrators to configure end-user devices without imaging. Using Windows provisioning, an IT administrator can easily specify desired configuration and settings required to enroll the devices into management and then apply that configuration to target devices in a matter of minutes. It is best suited for small- to medium-sized businesses with deployments that range from tens to a few hundred computers. +Windows provisioning makes it easy for IT administrators to configure end-user devices without imaging. Using Windows Provisioning, an IT administrator can easily specify desired configuration and settings required to enroll the devices into management (through a wizard-driven user interface) and then apply that configuration to target devices in a matter of minutes. It is best suited for small- to medium-sized businesses with deployments that range from tens to a few hundred computers. -A provisioning package (.ppkg) is a container for a collection of configuration settings. With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. +With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. Provisioning packages are simple enough that with a short set of written instructions, a student or non-technical employee can use them to configure their device. This can result in a significant reduction in the time required to configure multiple devices in your organization. -The [Windows Assessment and Deployment Kit (ADK) for Windows 10](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit) includes the Imaging and Configuration Designer (ICD), a tool for configuring provisioning packages. - ## New in Windows 10, Version 1607 -Windows ICD for Windows 10, Version 1607, simplifies common provisioning scenarios. +The Windows Assessment and Deployment Kit (ADK) for Windows 10 includes the Imaging and Configuration Designer (ICD), a tool for configuring images and runtime settings which are then built into provisioning packages. Windows ICD for Windows 10, Version 1607, simplifies common provisioning scenarios. ![Configuration Designer options](images/icd.png) @@ -75,7 +74,7 @@ Provisioning packages can be: ## What you can configure -The following table provides some examples of what you can configure using provisioning packages. +The following table provides some examples of what can be configured using provisioning packages. | Customization options | Examples | |--------------------------|-----------------------------------------------------------------------------------------------| @@ -93,26 +92,42 @@ The following table provides some examples of what you can configure using provi For details about the settings you can customize in provisioning packages, see [Windows Provisioning settings reference]( https://go.microsoft.com/fwlink/p/?LinkId=619012). +## Creating a provisioning package + + +With Windows 10, you can use the Windows Imaging and Configuration Designer (ICD) tool to create provisioning packages. To install Windows ICD and create provisioning packages, you must [install the Windows Assessment and Deployment Kit (ADK) for Windows 10](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit). + +When you run ADKsetup.exe for Windows 10, version 1607, select the following feature from the **Select the features you want to install** dialog box: + +- **Configuration Designer** + +![Choose Configuration Designer](images/adk-install.png) + +> [!NOTE] +> In previous versions of the Windows 10 ADK, you had to install additional features for Windows ICD to run. Starting in version 1607, you can install Windows ICD without other ADK features. + +After you install Windows ICD, you can use it to create a provisioning package. For detailed instructions on how to create a provisioning package, see [Build and apply a provisioning package](https://go.microsoft.com/fwlink/p/?LinkID=629651). + +## Applying a provisioning package to a device + + +Provisioning packages can be applied both during image deployment and during runtime. For information on how to apply a provisioning package to a Windows 10-based device, see [Build and apply a provisioning package](https://go.microsoft.com/fwlink/p/?LinkID=629651). + ## Learn more -- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) -- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) +[Windows 10: Deployment](https://go.microsoft.com/fwlink/p/?LinkId=533708) ## Related topics -- [How provisioning works in Windows 10](provisioning-how-it-works.md) -- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) -- [Create a provisioning package](provisioning-create-package.md) -- [Apply a provisioning package](provisioning-apply-package.md) -- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) -- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) -- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) -- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) -- [NFC-based device provisioning](provisioning-nfc.md) -- [Windows ICD command-line interface (reference)](provisioning-command-line.md) -- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) - +- [Provision PCs with common settings for initial deployment](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments](provision-pcs-with-apps-and-certificates.md) +- [Configure devices without MDM](../manage/configure-devices-without-mdm.md) +- [Set up a shared or guest PC with Windows 10](../manage/set-up-shared-or-guest-pc.md) +- [Configure devices without MDM](../manage/configure-devices-without-mdm.md) +- [Set up a device for anyone to use (kiosk mode)](../manage/set-up-a-device-for-anyone-to-use.md) +- [Customize Windows 10 Start and taskbar with ICD and provisioning packages](../manage/customize-windows-10-start-screens-by-using-provisioning-packages-and-icd.md) +- [Set up student PCs to join domain](https://technet.microsoft.com/edu/windows/set-up-students-pcs-to-join-domain) diff --git a/windows/deploy/provisioning-script-to-install-app.md b/windows/deploy/provisioning-script-to-install-app.md deleted file mode 100644 index 8754c66299..0000000000 --- a/windows/deploy/provisioning-script-to-install-app.md +++ /dev/null @@ -1,222 +0,0 @@ ---- -title: Use a script to install a desktop app in provisioning packages (Windows 10) -description: With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -author: jdeckerMS -localizationpriority: high ---- - -# Use a script to install a desktop app in provisioning packages - - -**Applies to** - -- Windows 10 -- Windows 10 Mobile - -This walkthrough describes how to leverage the ability to include scripts in a Windows 10 provisioning package to install Win32 applications. Scripted operations other than installing apps can also be performed, however, some care is needed in order to avoid unintended behavior during script execution (see Remarks below). - ->**Prerequisite**: [Windows Assessment and Deployment Kit (ADK) for Windows 10](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit), version 1511 or higher - ->[!NOTE] ->This scenario is only supported for installing applications on Windows 10 for desktop, version 1511 or higher. - -## Assemble the application assets - -1. On the device where you’re authoring the package, place all of your assets in a known location. Each asset must have a unique filename, because all files will be copied to the same temp directory on the device. It’s common for many apps to have an installer called ‘install.exe’ or similar, and there may be name overlap because of that. To fix this, you can use the technique described in the next step to include a complete directory structure that is then expanded into the temp directory on the device. The most common use for this would be to include a subdirectory for each application. - -2. If you need to include a directory structure of files, you will need to cab the assets for easy inclusion in the provisioning packages. - -## Cab the application assets - -1. Create a .DDF file as below, replacing *file1* and *file2* with the files you want to package, and adding the name of file/directory. - - ``` - ;*** MSDN Sample Source Code MakeCAB Directive file example - - ; - - .OPTION EXPLICIT ; Generate errors on variable typos - - .set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory - - .Set MaxDiskFileCount=1000; Limit file count per cabinet, so that - - ; scanning is not too slow - - .Set FolderSizeThreshold=200000 ; Aim for ~200K per folder - - .Set CompressionType=MSZIP - - ;** All files are compressed in cabinet files - - .Set Cabinet=on - - .Set Compress=on - - ;------------------------------------------------------------------- - - ;** CabinetNameTemplate = name of cab - - ;** DiskDirectory1 = output directory where cab will be created - - ;------------------------------------------------------------------- - - .Set CabinetNameTemplate=tt.cab - - .Set DiskDirectory1=. - - ;------------------------------------------------------------------- - - ; Replace with actual files you want to package - - ;------------------------------------------------------------------- - - - - - - ;*** - ``` - -2. Use makecab to create the cab files. - - ``` - Makecab -f - ``` - -## Create the script to install the application - -Create a script to perform whatever work is needed to install the application(s). The following examples are provided to help get started authoring the orchestrator script that will execute the required installers. In practice, the orchestrator script may reference many more assets than those in these examples. - ->[!NOTE] ->All actions performed by the script must happen silently, showing no UI and requiring no user interaction. -> ->The scripts will be run on the device in system context. - -### Debugging example - -Granular logging is not built in, so the logging must be built into the script itself. Here is an example script that logs ‘Hello World’ to a logfile. When run on the device, the logfile will be available after provisioning is completed. As you will see in the following examples, it’s recommended that you log each action that your script performs. - -``` -set LOGFILE=%SystemDrive%\HelloWorld.log -echo Hello, World >> %LOGFILE% -``` -### .exe example - -This example script shows how to create a log output file on the system drive, install an app from a .exe installer, and echo the results to the log file. - -``` -set LOGFILE=%SystemDrive%\Fiddler_install.log -echo Installing Fiddler.exe >> %LOGFILE% -fiddler4setup.exe /S >> %LOGFILE% -echo result: %ERRORLEVEL% >> %LOGFILE% -``` - -### .msi example - -This is the same as the previous installer, but installs the app from an MSI installer. Notice that msiexec is called with the /quiet flag in order to meet the silent requirement of scripts run from within a provisioning package. - -``` -set LOGFILE=%SystemDrive%\IPOverUsb_install.log -echo Installing IpOverUsbInstaller.msi >> %LOGFILE% -msiexec /i IpOverUsbInstaller.msi /quiet >> %LOGFILE% -echo result: %ERRORLEVEL% >> %LOGFILE% -``` - -### PowerShell example - -This is an example script with logging that shows how to run a powershell script from the provisioning commands setting. Note that the PowerShell script referenced from this example must also be included in the package, and obey the same requirements as all scripts run from within the provisioning package: it must execute silently, with no user interaction. - -``` -set LOGFILE=%SystemDrive%\my_powershell_script.log -echo Running my_powershell_script.ps1 in system context >> %LOGFILE% -echo Executing "PsExec.exe -accepteula -i -s cmd.exe /c powershell.exe my_powershell_script.ps1" >> %LOGFILE% -PsExec.exe -accepteula -i -s cmd.exe /c powershell.exe my_powershell_script.ps1' >> %LOGFILE% -echo result: %ERRORLEVEL% >> %LOGFILE% -``` - -### Extract from a .CAB example - -This example script shows expansion of a .cab from the provisioning commands script, as well as installation of the expanded setup.exe - -``` -set LOGFILE=%SystemDrive%\install_my_app.log -echo Expanding installer_assets.cab >> %LOGFILE% -expand -r installer_assets.cab -F:* . >> %LOGFILE% -echo result: %ERRORLEVEL% >> %LOGFILE% -echo Installing MyApp >> %LOGFILE% -setup.exe >> %LOGFILE% -echo result: %ERRORLEVEL% >> %LOGFILE% -``` - -### Calling multiple scripts in the package - -You are currently allowed one CommandLine per PPKG. The batch files shown above are orchestrator scripts that manage the installation and calls any other scripts included in the PPKG. The orchestrator script is what should be invoked from the CommandLine specified in the package. - -Here’s a table describing this relationship, using the PowerShell example from above: - - -|ICD Setting | Value | Description | -| --- | --- | --- | -| ProvisioningCommands/DeviceContext/CommandLine | cmd /c PowerShell_Example.bat | The command line needed to invoke the orchestrator script. | -| ProvisioningCommands/DeviceContext/CommandFiles | PowerShell_Example.bat | The single orchestrator script referenced by the command line that handles calling into the required installers or performing any other actions such as expanding cab files. This script must do the required logging. | -| ProvisioningCommands/DeviceContext/CommandFiles | my_powershell_script.ps1 | Other assets referenced by the orchestrator script. In this example there is only one, but there could be many assets referenced here. One common use case is using the orchestrator to call a series of install.exe or setup.exe installers to install several applications. Each of those installers must be included as an asset here. | - - -### Add script to provisioning package - -When you have the batch file written and the referenced assets ready to include, you can add them to a provisioning package in the Window Imaging and Configuration Designer (Windows ICD). - -Using ICD, specify the full details of how the script should be run in the CommandLine setting in the provisioning package. This includes flags or any other parameters that you would normally type on the command line. So for example if the package contained an app installer called install.exe and a script used to automate the install called InstallMyApp.bat, the `ProvisioningCommands/DeviceContext/CommandLine` setting should be configured to: - -``` -cmd /c InstallMyApp.bat -``` - -In ICD, this looks like: - -![Command line in Selected customizations](images/icd-script1.png) - -You also need to add the relevant assets for that command line including the orchestrator script and any other assets it references such as installers or .cab files. - -In ICD, that is done by adding files under the `ProvisioningCommands/DeviceContext/CommandFiles` setting. - -![Command files in Selected customizations](images/icd-script2.png) - -When you are done, [build the package](provisioning-create-package.md#build-package). - - -### Remarks -1. No user interaction or console output is supported via ProvisioningCommands. All work needs to be silent. If your script attempts to do any of the following it will cause undefined behavior, and could put the device in an unrecoverable state if executed during setup or the Out of Box Experience: - a. Echo to console - b. Display anything on the screen - c. Prompt the user with a dialog or install wizard -2. When applied at first boot, provisioning runs early in the boot sequence and before a user context has been established; care must be taken to only include installers that can run at this time. Other installers can be provisioned via a management tool. -3. If the device is put into an unrecoverable state because of a bad script, you can reset it using [recovery options in Windows 10](https://support.microsoft.com/help/12415/windows-10-recovery-options). -4. The CommandFile assets are deployed on the device to a temporary folder unique to each package. - a. For packages added during the out of box experience, this is usually in `%WINDIR%\system32\config\systemprofile\appdata\local\Temp\ProvisioningPkgTmp\<{PackageIdGuid}>\Commands` - b. For packages added by double-clicking on an already deployed device, this will be in the temp folder for the user executing the PPKG: `%TMP%\ProvisioningPkgTmp\<{PackageIdGuid}>\Commands` -5. The command line will be executed with the directory the CommandFiles were deployed to as the working directory. This means you do not need to specific the full path to assets in the command line or from within any script. -6. The runtime provisioning component will attempt to run the scripts from the PPKG at the earliest point possible, depending on the stage when the PPKG was added. For example, if the package was added during the Out-of-Box Experience, it will be run immediately after the package is applied, while the Out-of-Box Experience is still happening. This is before the user account configuration options are presented to the user. A spinning progress dialog will appear and “please wait” will be displayed on the screen. - - >[!NOTE] - >There is a timeout of 30 minutes for the provisioning process at this point. All scripts and installs need to complete within this time. -7. The scripts are executed in the background as the rest of provisioning continues to run. For packages added on existing systems using the double-click to install, there is no notification that provisioning or script execution has completed - - -## Related topics - -- [Provisioning packages for Windows 10](provisioning-packages.md) -- [How provisioning works in Windows 10](provisioning-how-it-works.md) -- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) -- [Create a provisioning package](provisioning-create-package.md) -- [Apply a provisioning package](provisioning-apply-package.md) -- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) -- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) -- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) -- [NFC-based device provisioning](provisioning-nfc.md) -- [Windows ICD command-line interface (reference)](provisioning-command-line.md) -- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) \ No newline at end of file diff --git a/windows/deploy/provisioning-uninstall-package.md b/windows/deploy/provisioning-uninstall-package.md deleted file mode 100644 index b3836ede88..0000000000 --- a/windows/deploy/provisioning-uninstall-package.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: Settings changed when you uninstall a provisioning package (Windows 10) -description: This topic lists the settings that are reverted when you uninstall a provisioning package. -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -author: jdeckerMS -localizationpriority: high ---- - -# Settings changed when you uninstall a provisioning package - - -**Applies to** - -- Windows 10 -- Windows 10 Mobile - -When you uninstall a provisioning package, only certain settings are revertible. This topic lists the settings that are reverted when you uninstall a provisioning package. - - -As an administrator, you can uninstall by using the **Add or remove a package for work or school** option available under **Settings** > **Accounts** > **Access work or school**. - -When a provisioning package is uninstalled, some of its settings are reverted, which means the value for the setting is changed to the next available or default value. Not all settings, however, are revertible. - -Only settings in the following lists are revertible. - -## Registry-based settings - -The registry-based settings that are revertible when a provisioning package is uninstalled all fall under these categories, which you can find in the Graphical User Interface of the Windows Imaging and Configuration Designer (Windows ICD). - - -- [Wi-Fi Sense](https://msdn.microsoft.com/library/windows/hardware/mt219706.aspx) -- [CountryAndRegion](https://msdn.microsoft.com/library/windows/hardware/mt219726.aspx) -- DeviceManagement / PGList/ LogicalProxyName -- UniversalAppInstall / LaunchAppAtLogin -- [Power](https://msdn.microsoft.com/library/windows/hardware/dn953704.aspx) -- [TabletMode](https://msdn.microsoft.com/library/windows/hardware/mt297550.aspx) -- [Maps](https://msdn.microsoft.com/library/windows/hardware/mt131464.aspx) -- [Browser](https://msdn.microsoft.com/library/windows/hardware/mt573151.aspx) -- [DeviceFormFactor](https://msdn.microsoft.com/library/windows/hardware/mt243449.aspx) -- [USBErrorsOEMOverride](https://msdn.microsoft.com/library/windows/hardware/mt769908.aspx) -- [WeakCharger](https://msdn.microsoft.com/library/windows/hardware/mt346401.aspx) - - - -## CSP-based settings - -Here is the list of revertible settings based on configuration service providers (CSPs). - -[ActiveSync CSP](https://msdn.microsoft.com/library/windows/hardware/dn920017.aspx) -[AppLocker CSP](https://msdn.microsoft.com/library/windows/hardware/dn920019.aspx) -[BrowserFavorite CSP](https://msdn.microsoft.com/library/windows/hardware/dn914758.aspx) -[CertificateStore CSP](https://msdn.microsoft.com/library/windows/hardware/dn920021.aspx) -[ClientCertificateInstall CSP](https://msdn.microsoft.com/library/windows/hardware/dn920023.aspx) -[RootCATrustedCertificates CSP](https://msdn.microsoft.com/library/windows/hardware/dn904970.aspx) -[CM_CellularEntries CSP](https://msdn.microsoft.com/library/windows/hardware/dn914761.aspx) -[CM_ProxyEntries CSP](https://msdn.microsoft.com/library/windows/hardware/dn914762.aspx) -[CMPolicy CSP](https://msdn.microsoft.com/library/windows/hardware/dn914760.aspx) -[CMPolicyEnterprise CSP](https://msdn.microsoft.com/library/windows/hardware/mt706463.aspx) -[EMAIL2 CSP](https://msdn.microsoft.com/library/windows/hardware/dn904953.aspx) -[EnterpriseAPN CSP](https://msdn.microsoft.com/library/windows/hardware/dn958617.aspx) -[EnterpriseAppManagement CSP](https://msdn.microsoft.com/library/windows/hardware/dn904955.aspx) -[EnterpriseDesktopAppManagement CSP](https://msdn.microsoft.com/library/windows/hardware/dn958620.aspx) -[EnterpriseModernAppManagement CSP](https://msdn.microsoft.com/library/windows/hardware/dn904956.aspx) -[NAP CSP](https://msdn.microsoft.com/library/windows/hardware/dn914767.aspx) -[PassportForWork CSP](https://msdn.microsoft.com/library/windows/hardware/dn987099.aspx) -[Provisioning CSP](https://msdn.microsoft.com/library/windows/hardware/mt203665.aspx) -[PROXY CSP](https://msdn.microsoft.com/library/windows/hardware/dn914770.aspx) -[SecureAssessment CSP](https://msdn.microsoft.com/library/windows/hardware/mt718628.aspx) -[VPN CSP](https://msdn.microsoft.com/library/windows/hardware/dn904978.aspx) -[VPNv2 CSP](https://msdn.microsoft.com/library/windows/hardware/dn914776.aspx) -[WiFi CSP](https://msdn.microsoft.com/library/windows/hardware/dn904981.aspx) - - - -## Related topics - -- [Provisioning packages for Windows 10](provisioning-packages.md) -- [How provisioning works in Windows 10](provisioning-how-it-works.md) -- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) -- [Create a provisioning package](provisioning-create-package.md) -- [Apply a provisioning package](provisioning-apply-package.md) -- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) -- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) -- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) -- [NFC-based device provisioning](provisioning-nfc.md) -- [Windows ICD command-line interface (reference)](provisioning-command-line.md) -- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) - -  - -  - - - - - diff --git a/windows/deploy/troubleshoot-upgrade-analytics.md b/windows/deploy/troubleshoot-upgrade-analytics.md index 468de1e275..b6c6f5d87b 100644 --- a/windows/deploy/troubleshoot-upgrade-analytics.md +++ b/windows/deploy/troubleshoot-upgrade-analytics.md @@ -1,4 +1,4 @@ ---- +--- title: Troubleshoot Upgrade Analytics (Windows 10) description: Provides troubleshooting information for Upgrade Analytics. ms.prod: w10 @@ -7,7 +7,7 @@ author: MaggiePucciEvans # Troubleshoot Upgrade Analytics -If you’re having issues seeing data in Upgrade Analytics after running the Upgrade Analytics Deployment script, make sure it completes successfully without any errors. Check the output of the script in the command window and/or log UA_dateTime_machineName.txt to ensure all steps were completed successfully. In addition, we recommend that you wait at least 48 hours before checking OMS for data after the script first completes without reporting any error. +If you’re having issues seeing data in Upgrade Analytics after running the Upgrade Analytics Deployment script, make sure it completes successfully without any errors. Check the output of the script in the command window and/or log UA_dateTime_machineName.txt to ensure all steps were completed successfully. In addition, we recommend that you wait at least 48 hours before checking OMS for data after the script first completes without reporting any error. If you still don’t see data in Upgrade Analytics, follow these steps: @@ -25,14 +25,9 @@ If you still don’t see data in Upgrade Analytics, follow these steps: If you want to stop using Upgrade Analytics and stop sending telemetry data to Microsoft, follow these steps: -1. Unsubscribe from the Upgrade Analytics solution in the OMS portal. In the OMS portal, go to **Settings** > **Connected Sources** > **Windows Telemetry** and choose the **Unsubscribe** option. +1. Unsubscribe from the Upgrade Analytics solution in the OMS portal. - ![Upgrade Analytics unsubscribe](images/upgrade-analytics-unsubscribe.png) +2. Disable the Customer Experience Improvement Program on computers running Windows 7 SP1 or 8.1. On computers running Windows 10, set the telemetry level to Security. -2. Disable the Commercial Data Opt-in Key on computers running Windows 7 SP1 or 8.1. On computers running Windows 10, set the telemetry level to **Security**: +3. Delete the CommercialDataOptin key in *HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\DataCollection* - **Windows 7 and Windows 8.1**: Delete CommercialDataOptIn registry property from *HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection* - **Windows 10**: Follow the instructions in the [Configure Windows telemetry in your organization](https://technet.microsoft.com/itpro/windows/manage/configure-windows-telemetry-in-your-organization#enterprise-management) topic. - -3. If you enabled **Internet Explorer Site Discovery**, you can disable Internet Explorer data collection by setting the *IEDataOptIn* registry key to value "0". The IEDataOptIn key can be found under: *HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection*. -4. You can also remove the “CommercialId” key from: "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection". **This is an optional step**. diff --git a/windows/deploy/upgrade-analytics-get-started.md b/windows/deploy/upgrade-analytics-get-started.md index 1455ee624e..188a73c081 100644 --- a/windows/deploy/upgrade-analytics-get-started.md +++ b/windows/deploy/upgrade-analytics-get-started.md @@ -1,4 +1,4 @@ ---- +--- title: Get started with Upgrade Analytics (Windows 10) description: Explains how to get started with Upgrade Analytics. ms.prod: w10 @@ -53,7 +53,7 @@ If you are not using OMS: After you’ve signed in to Operations Management Suite and added the Upgrade Analytics solution to your workspace, complete the following tasks to establish communication and enable data sharing between user computers, Microsoft secure data centers, and Upgrade Analytics. -## Generate your commercial ID key +## Generate your commercial ID key Microsoft uses a unique commercial ID to map information from user computers to your OMS workspace. Generate your commercial ID key in OMS and then deploy it to user computers. @@ -77,14 +77,14 @@ For Upgrade Analytics to receive and display upgrade readiness data from Microso To enable data sharing, whitelist the following endpoints. Note that you may need to get approval from your security group to do this. -Note: The compatibility update KB runs under the computer’s system account. If you are using user authenticated proxies, read [this blog post](https://go.microsoft.com/fwlink/?linkid=838688) to learn what you need to do to run it under the logged on user account. +Note: The compatibility update KB runs under the computer’s system account and does not support user authenticated proxies. | **Endpoint** | **Function** | |---------------------------------------------------------|-----------| -| `https://v10.vortex-win.data.microsoft.com/collect/v1`

    `https://Vortex-win.data.microsoft.com/health/keepalive` | Connected User Experience and Telemetry component endpoint. User computers send data to Microsoft through this endpoint. | -| `https://settings.data.microsoft.com/qos` | Enables the compatibility update KB to send data to Microsoft. | -| `https://go.microsoft.com/fwlink/?LinkID=544713`
    `https://compatexchange1.trafficmanager.net/CompatibilityExchangeService.svc` | This service provides driver information about whether there will be a driver available post-upgrade for the hardware on the system. | - +| `https://v10.vortex-win.data.microsoft.com/collect/v1` | Connected User Experience and Telemetry component endpoint. User computers send data to Microsoft through this endpoint. | +| `https://settings-win.data.microsoft.com/settings` | Enables the compatibility update KB to send data to Microsoft. | +| `https://go.microsoft.com/fwlink/?LinkID=544713`
    `https://compatexchange1.trafficmanager.net/CompatibilityExchangeService.svc/extended` | This service provides driver information about whether there will be a driver available post-upgrade for the hardware on the system. | +| `https://vortex.data.microsoft.com/health/keepalive`
    `https://settings.data.microsoft.com/qos`
    `https://compatexchange1.trafficmanager.net/CompatibilityExchangeService.svc` | These endpoints are used to validate that user computers are sharing data with Microsoft. | ## Deploy the compatibility update and related KBs @@ -92,8 +92,8 @@ The compatibility update KB scans your computers and enables application usage t | **Operating System** | **KBs** | |----------------------|-----------------------------------------------------------------------------| -| Windows 8.1 | [KB 2976978](http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB2976978)
    Performs diagnostics on the Windows 8.1 systems that participate in the Windows Customer Experience Improvement Program. These diagnostics help determine whether compatibility issues may be encountered when the latest Windows operating system is installed.
    For more information about this KB, see

    [KB 3150513](https://catalog.update.microsoft.com/v7/site/Search.aspx?q=3150513)
    Provides updated configuration and definitions for compatibility diagnostics performed on the system.
    For more information about this KB, see
    NOTE: KB2976978 must be installed before you can download and install KB3150513. | -| Windows 7 SP1 | [KB2952664](http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB2952664)
    Performs diagnostics on the Windows 7 SP1 systems that participate in the Windows Customer Experience Improvement Program. These diagnostics help determine whether compatibility issues may be encountered when the latest Windows operating system is installed.
    For more information about this KB, see

    [KB 3150513](https://catalog.update.microsoft.com/v7/site/Search.aspx?q=3150513)
    Provides updated configuration and definitions for compatibility diagnostics performed on the system.
    For more information about this KB, see
    NOTE: KB2952664 must be installed before you can download and install KB3150513. | +| Windows 8.1 | [KB 2976978](http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB2976978)
    Performs diagnostics on the Windows 8.1 systems that participate in the Windows Customer Experience Improvement Program. These diagnostics help determine whether compatibility issues may be encountered when the latest Windows operating system is installed.
    For more information about this KB, see
    [KB 3150513](https://catalog.update.microsoft.com/v7/site/Search.aspx?q=3150513)
    Provides updated configuration and definitions for compatibility diagnostics performed on the system.
    For more information about this KB, see
    NOTE: KB2976978 must be installed before you can download and install KB3150513. | +| Windows 7 SP1 | [KB2952664](http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB2952664)
    Performs diagnostics on the Windows 7 SP1 systems that participate in the Windows Customer Experience Improvement Program. These diagnostics help determine whether compatibility issues may be encountered when the latest Windows operating system is installed.
    For more information about this KB, see
    [KB 3150513](https://catalog.update.microsoft.com/v7/site/Search.aspx?q=3150513)
    Provides updated configuration and definitions for compatibility diagnostics performed on the system.
    For more information about this KB, see
    NOTE: KB2952664 must be installed before you can download and install KB3150513. | IMPORTANT: Restart user computers after you install the compatibility update KBs for the first time. @@ -117,7 +117,7 @@ To ensure that user computers are receiving the most up to date data from Micros To automate many of the steps outlined above and to troubleshoot data sharing issues, you can run the [Upgrade Analytics deployment script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409), developed by Microsoft. -> The following guidance applies to version 11.11.16 or later of the Upgrade Analytics deployment script. If you are using an older version, please download the latest from [Download Center](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409). +> The following guidance applies to version 11.30.16 or later of the Upgrade Analytics deployment script. If you are using an older version, please download the latest from [Download Center](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409). The Upgrade Analytics deployment script does the following: @@ -137,7 +137,7 @@ The Upgrade Analytics deployment script does the following: To run the Upgrade Analytics deployment script: -1. Download the [Upgrade Analytics deployment script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) and extract UpgradeAnalytics.zip. Inside, there are two folders: Pilot and Deployment. The Pilot folder contains advanced logging that can help troubleshoot issues and is intended to be run from an elevated command prompt. The Deployment folder offers a lightweight script intended for broad deployment through ConfigMgr or other software deployment system. We recommend manually running the Pilot version of the script on 5-10 machines to verify that everything is configured correctly. Once you have confirmed that data is flowing successfully, proceed to run the Deployment version throughout your organization. +1. Download the [Upgrade Analytics deployment script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) and extract UpgradeAnalytics.zip. Inside, there are two folders: Pilot and Deployment. The Pilot folder contains advanced logging that can help troubleshoot issues and is inteded to be run from an elevated command prompt. The Deployment folder offers a lightweight script intended for broad deployment through ConfigMgr or other software deployment system. We recommend manually running the Pilot version of the script on 5-10 machines to verify that everything is configured correctly. Once you have confirmed that data is flowing successfully, proceed to run the Deployment version throughout your organization. 2. Edit the following parameters in RunConfig.bat: @@ -165,45 +165,40 @@ To run the Upgrade Analytics deployment script: 4. After you finish editing the parameters in RunConfig.bat, you are ready to run the script. If you are using the Pilot version, run RunConfig.bat from an elevated command prompt. If you are using the Deployment version, use ConfigMgr or other software deployment service to run RunConfig.bat as system. -The deployment script displays the following exit codes to let you know if it was successful, or if an error was encountered. +The deployment script displays the following exit codes to let you know if it was successful, or if an error was encountered.

    -
    Exit codeMeaningSuggested fix -
    0Success -
    1Unexpected error occurred while executing the script The files in the deployment script are likely corrupted. Download the [latest script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) from the download center and try again. -
    2Error when logging to console. $logMode = 0. Try changing the $logMode value to **1** and try again. -
    3Error when logging to console and file. $logMode = 1.Verify that you have set the logPath parameter in RunConfig.bat, and that the configuration script has access to connect and write to this location. -
    4Error when logging to file. $logMode = 2.Verify that you have set the logPath parameter in RunConfig.bat, and that the configuration script has access to connect and write to this location. -
    5Error when logging to console and file. $logMode = unknown.Verify that you have set the logPath parameter in RunConfig.bat, and that the configuration script has access to connect and write to this location. -
    6The commercialID parameter is set to unknown. Modify the script.Set the value for CommercialID in runconfig.bat file. -
    8Failure to create registry key path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection. Verify that the configuration script has access to this location. -
    9Error when writing CommercialId to registry.Verify that the configuration script has access to this location. -
    10Error when writing CommercialDataOptIn to registry.Verify that the configuration script has access to this location. -
    11Function -SetupCommercialId: Unexpected failure.Verify that the configuration script has access to this location. -
    12Can’t connect to Microsoft – Vortex. Check your network/proxy settings.Verify that the required endpoints are whitelisted correctly. -
    13Can’t connect to Microsoft – setting. Verify that the required endpoints are whitelisted correctly. -
    14Can’t connect to Microsoft – compatexchange. Verify that the required endpoints are whitelisted. -
    15Error connecting to Microsoft:Unexpected failure. -
    16Machine requires reboot. The reboot is required to complete the installation of the compatibility update and related KBs. Reboot the machine before running the Upgrade Analytics deployment script. -
    17Function -CheckRebootRequired: Unexpected failure.The reboot is required to complete the installation of the compatibility update and related KBs. Reboot the machine before running the Upgrade Analytics deployment script. -
    18Outdated compatibility update KB package. Update via Windows Update/WSUS. -The configuration script detected a version of the Compatibility update module that is older than the minimum required to correctly collect the data required by Upgrade Analytics solution. Use the latest version of the Compatibility update for Windows 7 SP1/Windows 8.1. -
    19The compatibility update failed with unexpected exception. The files in the deployment script are likely corrupted. Download the [latest script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) from the download center and try again. -
    20Error writing RequestAllAppraiserVersions registry key. This registry key is required for data collection to work correctly. Verify that the configuration script has access to this location. -
    21Function – SetRequestAllAppraiserVersions: Unexpected failure.This registry key is required for data collection to work correctly. Verify that the configuration script has access to this location. -
    22RunAppraiser failed with unexpected exception. Check %windir%\System32 directory for a file called CompatTelRunner.exe. If the file does not exist, reinstall the required compatibility updates which include this file, and check your organization group policy to make sure it does not remove this file. -
    23Error finding system variable %WINDIR%. Make sure that this environment variable is available on the machine. -
    24SetIEDataOptIn failed when writing IEDataOptIn to registry. Verify that the deployment script in running in a context that has access to the registry key. -
    25SetIEDataOptIn failed with unexpected exception. The files in the deployment script are likely corrupted. Download the latest script from the [download center](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) and try again. -
    26The operating system is Server or LTSB SKU. The script does not support Server or LTSB SKUs. -
    27The script is not running under System account.The Upgrade Analytics configuration script must be run as system. -
    28Could not create log file at the specified logPath. Make sure the deployment script has access to the location specified in the logPath parameter. -
    29 Connectivity check failed for proxy authentication. Install the cumulative updates on the machine and enable the `DisableEnterpriseAuthProxy` authentication proxy setting. The `DisableEnterpriseAuthProxy` setting is enabled by default for Windows 7. For Windows 8.1 machines, set the `DisableEnterpriseAuthProxy` setting to **0** (not disabled). For more information on authentication proxy support, see [this blog post](https://go.microsoft.com/fwlink/?linkid=838688). -
    30Connectivity check failed. Registry key property `DisableEnterpriseAuthProxy` is not enabled. The `DisableEnterpriseAuthProxy` setting is enabled by default for Windows 7. For Windows 8.1 machines, set the `DisableEnterpriseAuthProxy` setting to **0** (not disabled). For more information on authentication proxy support, see [this blog post](https://go.microsoft.com/fwlink/?linkid=838688). -
    31There is more than one instance of the Upgrade Analytics data collector running at the same time on this machine. Use the Windows Task Manager to check if CompatTelRunner.exe is running, and wait until it has completed to rerun the script. -**The Upgrade Analytics task is scheduled to run daily at 3 a.m.** +
    Exit codeMeaning +
    0Success +
    1Unexpected error occurred while executing the script +
    2Error when logging to console. $logMode = 0. +
    3Error when logging to console and file. $logMode = 1. +
    4Error when logging to file. $logMode = 2. +
    5Error when logging to console and file. $logMode = unknown. +
    6The commercialID parameter is set to unknown. Modify the script. +
    7Function -CheckCommercialId: Unexpected failure. +
    8Failure to create registry key path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection. +
    9Error when writing CommercialId to registry. +
    10Error when writing CommercialDataOptIn to registry. +
    11Function -SetupCommercialId: Unexpected failure. +
    12Can’t connect to Microsoft – Vortex. Check your network/proxy settings. +
    13Can’t connect to Microsoft – setting. Check your network/proxy settings. +
    14Can’t connect to Microsoft – compatexchange. Check your network/proxy settings. +
    15Error connecting to Microsoft. Check your network/proxy settings. +
    16Machine requires reboot. +
    17Function -CheckRebootRequired: Unexpected failure. +
    18Outdated compatibility update KB package. Update via Windows Update/WSUS. +
    19This machine doesn’t have the proper KBs installed. Make sure you have recent compatibility update KB downloaded. +
    20Error writing RequestAllAppraiserVersions registry key. +
    21Function – SetRequestAllAppraiserVersions: Unexpected failure. +
    22RunAppraiser failed with unexpected exception. +
    23Error finding system variable %WINDIR%. +
    24SetIEDataOptIn failed when writing IEDataOptIn to registry. +
    25SetIEDataOptIn failed with unexpected exception. +
    26The operating system is LTSB SKU. The script does not support LTSB SKUs. +
    27The operating system is Server SKU. The script does not support Server SKUs.
    @@ -211,3 +206,4 @@ The configuration script detected a version of the Compatibility update module t ## Seeing data from computers in Upgrade Analytics After data is sent from computers to Microsoft, it generally takes 48 hours for the data to populate in Upgrade Analytics. The compatibility update KB takes several minutes to run. If the KB does not get a chance to finish running or if the computers are inaccessible (turned off or sleeping for example), data will take longer to populate in Upgrade Analytics. For this reason, you can expect most your computers to be populated in OMS in about 1-2 weeks after deploying the KB and configuration to user computers. + diff --git a/windows/deploy/upgrade-analytics-requirements.md b/windows/deploy/upgrade-analytics-requirements.md index 0dd920f998..3d55cd49a6 100644 --- a/windows/deploy/upgrade-analytics-requirements.md +++ b/windows/deploy/upgrade-analytics-requirements.md @@ -1,4 +1,4 @@ ---- +--- title: Upgrade Analytics requirements (Windows 10) description: Provides requirements for Upgrade Analytics. ms.prod: w10 @@ -43,8 +43,6 @@ See [Windows 7, Windows 8, and Windows 8.1 appraiser telemetry events and fields `https://v10.vortex-win.data.microsoft.com/collect/v1` -`https://vortex-win.data.microsoft.com/health/keepalive` - `https://settings-win.data.microsoft.com/settings` `https://vortex.data.microsoft.com/health/keepalive` diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md deleted file mode 100644 index 057d16d9f6..0000000000 --- a/windows/deploy/windows-10-poc-mdt.md +++ /dev/null @@ -1,634 +0,0 @@ ---- -title: Step by step - Deploy Windows 10 in a test lab using MDT -description: Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit (MDT) -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: deploy -author: greg-lindsay ---- - - -# Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit - -**Applies to** - -- Windows 10 - -**Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in the following guide: -- [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md) - -Please complete all steps in the prerequisite guide before starting this guide. This guide requires about 5 hours to complete, but can require less time or more time depending on the speed of the Hyper-V host. After completing the current guide, also see the companion guide: -- [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) - -The PoC environment is a virtual network running on Hyper-V with three virtual machines (VMs): -- **DC1**: A contoso.com domain controller, DNS server, and DHCP server. -- **SRV1**: A dual-homed contoso.com domain member server, DNS server, and default gateway providing NAT service for the PoC network. -- **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been shadow-copied from a physical computer on your corporate network. - ->This guide uses the Hyper-V server role. If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. - -## In this guide - -This guide provides instructions to install and configure the Microsoft Deployment Toolkit (MDT) to deploy a Windows 10 image. - -Topics and procedures in this guide are summarized in the following table. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed. - -
    - - -
    TopicDescriptionTime - -
    [About MDT](#about-mdt)A high-level overview of the Microsoft Deployment Toolkit (MDT).Informational -
    [Install MDT](#install-mdt)Download and install MDT.40 minutes -
    [Create a deployment share and reference image](#create-a-deployment-share-and-reference-image)A reference image is created to serve as the template for deploying new images.90 minutes -
    [Deploy a Windows 10 image using MDT](#deploy-a-windows-10-image-using-mdt)The reference image is deployed in the PoC environment.60 minutes -
    [Refresh a computer with Windows 10](#refresh-a-computer-with-windows-10)Export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings.60 minutes -
    [Replace a computer with Windows 10](#replace-a-computer-with-windows-10)Back up an existing client computer, then restore this backup to a new computer.60 minutes -
    [Troubleshooting logs, events, and utilities](#troubleshooting-logs-events-and-utilities)Log locations and troubleshooting hints.Informational -
    - -
    - -## About MDT - -MDT performs deployments by using the Lite Touch Installation (LTI), Zero Touch Installation (ZTI), and User-Driven Installation (UDI) deployment methods. -- LTI is the deployment method used in the current guide, requiring only MDT and performed with a minimum amount of user interaction. -- ZTI is fully automated, requiring no user interaction and is performed using MDT and System Center Configuration Manager. After completing the steps in the current guide, see [Step by step: Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) to use the ZTI deployment method in the PoC environment. -- UDI requires manual intervention to respond to installation prompts such as machine name, password and language settings. UDI requires MDT and System Center Configuration Manager. - -## Install MDT - -1. On SRV1, temporarily disable IE Enhanced Security Configuration for Administrators by typing the following commands at an elevated Windows PowerShell prompt: - - ``` - $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" - Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 0 - Stop-Process -Name Explorer - ``` -2. Download and install the 64-bit version of [Microsoft Deployment Toolkit (MDT)](https://www.microsoft.com/en-us/download/details.aspx?id=54259) on SRV1 using the default options. As of the writing of this guide, the latest version of MDT was 8443. - -3. Download and install the latest [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit) on SRV1 using the default installation settings. The current version is the ADK for Windows 10, version 1607. Installation might require several minutes to acquire all components. - -3. If desired, re-enable IE Enhanced Security Configuration: - - ``` - Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 1 - Stop-Process -Name Explorer - ``` - -## Create a deployment share and reference image - -A reference image serves as the foundation for Windows 10 devices in your organization. - -1. In [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md), the Windows 10 Enterprise .iso file was saved to the c:\VHD directory as **c:\VHD\w10-enterprise.iso**. The first step in creating a deployment share is to mount this file on SRV1. To mount the Windows 10 Enterprise DVD on SRV1, open an elevated Windows PowerShell prompt on the Hyper-V host computer and type the following command: - - ``` - Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\w10-enterprise.iso - ``` -2. On SRV1, verify that the Windows Enterprise installation DVD is mounted as drive letter D. - -3. The Windows 10 Enterprise installation files will be used to create a deployment share on SRV1 using the MDT deployment workbench. To open the deployment workbench, click **Start**, type **deployment**, and then click **Deployment Workbench**. - -4. To enable quick access to the application, right-click **Deployment Workbench** on the taskbar and then click **Pin this program to the taskbar**. - -5. In the Deployment Workbench console, right-click **Deployment Shares** and select **New Deployment Share**. - -6. Use the following settings for the New Deployment Share Wizard: - - Deployment share path: **C:\MDTBuildLab**
    - - Share name: **MDTBuildLab$**
    - - Deployment share description: **MDT build lab**
    - - Options: click **Next** to accept the default
    - - Summary: click **Next**
    - - Progress: settings will be applied
    - - Confirmation: click **Finish** - - -7. Expand the **Deployment Shares** node, and then expand **MDT build lab**. - -8. Right-click the **Operating Systems** node, and then click **New Folder**. Name the new folder **Windows 10**. Complete the wizard using default values and click **Finish**. - -9. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. - -10. Use the following settings for the Import Operating System Wizard: - - OS Type: **Full set of source files**
    - - Source: **D:\\**
    - - Destination: **W10Ent_x64**
    - - Summary: click **Next** - - Progress: wait for files to be copied - - Confirmation: click **Finish** - - >For purposes of this test lab, we will only add the prerequisite .NET Framework feature. Commerical applications (ex: Microsoft Office) will not be added to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. - -11. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: - - Task sequence ID: **REFW10X64-001**
    - - Task sequence name: **Windows 10 Enterprise x64 Default Image**
    - - Task sequence comments: **Reference Build**
    - - Template: **Standard Client Task Sequence** - - Select OS: click **Windows 10 Enterprise Evaluation in W10Ent_x64 install.wim** - - Specify Product Key: **Do not specify a product key at this time** - - Full Name: **Contoso** - - Organization: **Contoso** - - Internet Explorer home page: **http://www.contoso.com** - - Admin Password: **Do not specify an Administrator password at this time** - - Summary: click **Next** - - Confirmation: click **Finish** - - -12. Edit the task sequence to add the Microsoft NET Framework 3.5, which is required by many applications. To edit the task sequence, double-click **Windows 10 Enterprise x64 Default Image** that was created in the previous step. - -13. Click the **Task Sequence** tab. Under **State Restore** click **Tatto** to highlight it, then click **Add** and choose **New Group**. - -14. On the Properties tab of the group that was created in the previous step, change the Name from **New Group** to **Custom Tasks (Pre-Windows Update)** and then click **Apply**. Click another location in the window to see the name change. - -15. Click the **Custom Tasks (Pre-Windows Update)** group again, click **Add**, point to **Roles**, and then click **Install Roles and Features**. - -16. Under **Select the roles and features that should be installed**, select **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** and then click **Apply**. - -17. Enable Windows Update in the task sequence by clicking the **Windows Update (Post-Application Installation)** step, clicking the **Options** tab, and clearing the **Disable this step** checkbox. - - >Note: Since we are not installing applications in this test lab, there is no need to enable the Windows Update Pre-Application Installation step. However, you should enable this step if you are also installing applications. - -18. Click **OK** to complete editing the task sequence. - -19. The next step is to configure the MDT deployment share rules. To configure rules in the Deployment Workbench, right-click **MDT build lab (C:\MDTBuildLab)** and click **Properties**, and then click the **Rules** tab. - -20. Replace the default rules with the following text: - - ``` - [Settings] - Priority=Default - - [Default] - _SMSTSORGNAME=Contoso - UserDataLocation=NONE - DoCapture=YES - OSInstall=Y - AdminPassword=pass@word1 - TimeZoneName=Pacific Standard Time - OSDComputername=#Left("PC-%SerialNumber%",7)# - JoinWorkgroup=WORKGROUP - HideShell=YES - FinishAction=SHUTDOWN - DoNotCreateExtraPartition=YES - ApplyGPOPack=NO - SkipAdminPassword=YES - SkipProductKey=YES - SkipComputerName=YES - SkipDomainMembership=YES - SkipUserData=YES - SkipLocaleSelection=YES - SkipTaskSequence=NO - SkipTimeZone=YES - SkipApplications=YES - SkipBitLocker=YES - SkipSummary=YES - SkipRoles=YES - SkipCapture=NO - SkipFinalSummary=NO - ``` - -21. Click **Apply** and then click **Edit Bootstrap.ini**. Replace the contents of the Bootstrap.ini file with the following text, and save the file: - - ``` - [Settings] - Priority=Default - - [Default] - DeployRoot=\\SRV1\MDTBuildLab$ - UserDomain=CONTOSO - UserID=MDT_BA - UserPassword=pass@word1 - SkipBDDWelcome=YES - ``` - -22. Click **OK** to complete the configuration of the deployment share. - -23. Right-click **MDT build lab (C:\MDTBuildLab)** and then click **Update Deployment Share**. - -24. Accept all default values in the Update Deployment Share Wizard by clicking **Next** twice. The update process will take 5 to 10 minutes. When it has completed, click **Finish**. - -25. Copy **c:\MDTBuildLab\Boot\LiteTouchPE_x86.iso** on SRV1 to the **c:\VHD** directory on the Hyper-V host computer. Note that in MDT, the x86 boot image can deploy both x86 and x64 operating systems, except on computers based on Unified Extensible Firmware Interface (UEFI). - - >Hint: To copy the file, right-click the **LiteTouchPE_x86.iso** file and click **Copy** on SRV1, then open the **c:\VHD** folder on the Hyper-V host, right-click inside the folder and click **Paste**. - -26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: - -
    -
    -
    -    New-VM REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB
    -    Set-VMMemory REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
    -    Set-VMDvdDrive REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
    -    Start-VM REFW10X64-001
    -    vmconnect localhost REFW10X64-001
    -	
    -
    - - The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. - -27. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. - -28. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes, and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. - - Additional system restarts will occur to complete updating and preparing the operating system. Setup will complete the following procedures: - - - Install the Windows 10 Enterprise operating system. - - Install added applications, roles, and features. - - Update the operating system using Windows Update (or WSUS if optionally specified). - - Stage Windows PE on the local disk. - - Run System Preparation (Sysprep) and reboot into Windows PE. - - Capture the installation to a Windows Imaging (WIM) file. - - Turn off the virtual machine.

    - - This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server (SRV1). The file name is **REFW10X64-001.wim**. - -## Deploy a Windows 10 image using MDT - -This procedure will demonstrate how to deploy the reference image to the PoC environment using MDT. - -1. On SRV1, open the MDT Deployment Workbench console, right-click **Deployment Shares**, and then click **New Deployment Share**. Use the following values in the New Deployment Share Wizard: - - **Deployment share path**: C:\MDTProd - - **Share name**: MDTProd$ - - **Deployment share description**: MDT Production - - **Options**: accept the default - - -2. Click **Next**, verify the new deployment share was added successfully, then click **Finish**. - -3. In the Deployment Workbench console, expand the MDT Production deployment share, right-click **Operating Systems**, and then click **New Folder**. Name the new folder **Windows 10** and complete the wizard using default values. - -4. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. - -5. On the **OS Type** page, choose **Custom image file** and then click **Next**. - -6. On the Image page, browse to the **C:\MDTBuildLab\Captures\REFW10X64-001.wim** file created in the previous procedure, click **Open**, and then click **Next**. - -7. On the Setup page, select **Copy Windows 7, Windows Server 2008 R2, or later setup files from the specified path**. - -8. Under **Setup source directory**, browse to **C:\MDTBuildLab\Operating Systems\W10Ent_x64** click **OK** and then click **Next**. - -9. On the Destination page, accept the default Destination directory name of **REFW10X64-001**, click **Next** twice, wait for the import process to complete, and then click **Finish**. - -10. In the **Operating Systems** > **Windows 10** node, double-click the operating system that was added to view its properties. Change the operating system name to **Windows 10 Enterprise x64 Custom Image** and then click **OK**. See the following example: - - ![custom image](images/image.png) - - -### Create the deployment task sequence - -1. Using the Deployment Workbench, right-click **Task Sequences** under the **MDT Production** node, click **New Folder** and create a folder with the name: **Windows 10**. - -2. Right-click the **Windows 10** folder created in the previous step, and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: - - Task sequence ID: W10-X64-001 - - Task sequence name: Windows 10 Enterprise x64 Custom Image - - Task sequence comments: Production Image - - Select Template: Standard Client Task Sequence - - Select OS: Windows 10 Enterprise x64 Custom Image - - Specify Product Key: Do not specify a product key at this time - - Full Name: Contoso - - Organization: Contoso - - Internet Explorer home page: http://www.contoso.com - - Admin Password: pass@word1 - -### Configure the MDT production deployment share - -1. On SRV1, open an elevated Windows PowerShell prompt and type the following commands: - - ``` - copy-item "C:\Program Files\Microsoft Deployment Toolkit\Templates\Bootstrap.ini" C:\MDTProd\Control\Bootstrap.ini -Force - copy-item "C:\Program Files\Microsoft Deployment Toolkit\Templates\CustomSettings.ini" C:\MDTProd\Control\CustomSettings.ini -Force - ``` -2. In the Deployment Workbench console on SRV1, right-click the **MDT Production** deployment share and then click **Properties**. - -3. Click the **Rules** tab and replace the rules with the following text (don't click OK yet): - - ``` - [Settings] - Priority=Default - - [Default] - _SMSTSORGNAME=Contoso - OSInstall=YES - UserDataLocation=AUTO - TimeZoneName=Pacific Standard Time - OSDComputername=#Left("PC-%SerialNumber%",7)# - AdminPassword=pass@word1 - JoinDomain=contoso.com - DomainAdmin=administrator - DomainAdminDomain=CONTOSO - DomainAdminPassword=pass@word1 - ScanStateArgs=/ue:*\* /ui:CONTOSO\* - USMTMigFiles001=MigApp.xml - USMTMigFiles002=MigUser.xml - HideShell=YES - ApplyGPOPack=NO - SkipAppsOnUpgrade=NO - SkipAdminPassword=YES - SkipProductKey=YES - SkipComputerName=YES - SkipDomainMembership=YES - SkipUserData=YES - SkipLocaleSelection=YES - SkipTaskSequence=NO - SkipTimeZone=YES - SkipApplications=NO - SkipBitLocker=YES - SkipSummary=YES - SkipCapture=YES - SkipFinalSummary=NO - EventService=http://SRV1:9800 - ``` - **Note**: The contents of the Rules tab are added to c:\MDTProd\Control\CustomSettings.ini. - - >In this example a **MachineObjectOU** entry is not provided. Normally this entry describes the specific OU where new client computer objects are created in Active Directory. However, for the purposes of this test lab clients are added to the default computers OU, which requires that this parameter be unspecified. - - If desired, edit the follow line to include or exclude other users when migrating settings. Currently, the command is set to user exclude (ue) all users except for CONTOSO users specified by the user include option (ui): - - ``` - ScanStateArgs=/ue:*\* /ui:CONTOSO\* - ``` - - For example, to migrate **all** users on the computer, replace this line with the following: - - ``` - ScanStateArgs=/all - ``` - - For more information, see [ScanState Syntax](https://technet.microsoft.com/library/cc749015.aspx). - -4. Click **Edit Bootstap.ini** and replace text in the file with the following text: - - ``` - [Settings] - Priority=Default - - [Default] - DeployRoot=\\SRV1\MDTProd$ - UserDomain=CONTOSO - UserID=MDT_BA - UserPassword=pass@word1 - SkipBDDWelcome=YES - ``` -5. Click **OK** when finished. - -### Update the deployment share - -1. Right-click the **MDT Production** deployment share and then click **Update Deployment Share**. - -2. Use the default options for the Update Deployment Share Wizard. The update process requires 5 to 10 minutes to complete. - -3. Click **Finish** when the update is complete. - -### Enable deployment monitoring - -1. In the Deployment Workbench console, right-click **MDT Production** and then click **Properties**. - -2. On the **Monitoring** tab, select the **Enable monitoring for this deployment share** checkbox, and then click **OK**. - -3. Verify the monitoring service is working as expected by opening the following link on SRV1 in Internet Explorer: [http://localhost:9800/MDTMonitorEvent/](http://localhost:9800/MDTMonitorEvent/). If you do not see "**You have created a service**" at the top of the page, see [Troubleshooting MDT 2012 Monitoring](https://blogs.technet.microsoft.com/mniehaus/2012/05/10/troubleshooting-mdt-2012-monitoring/). - -4. Close Internet Explorer. - -### Configure Windows Deployment Services - -1. Initialize Windows Deployment Services (WDS) by typing the following command at an elevated Windows PowerShell prompt on SRV1: - - ``` - WDSUTIL /Verbose /Progress /Initialize-Server /Server:SRV1 /RemInst:"C:\RemoteInstall" - WDSUTIL /Set-Server /AnswerClients:All - ``` - -2. Click **Start**, type **Windows Deployment**, and then click **Windows Deployment Services**. - -3. In the Windows Deployment Services console, expand **Servers**, expand **SRV1.contoso.com**, right-click **Boot Images**, and then click **Add Boot Image**. - -4. Browse to the **C:\MDTProd\Boot\LiteTouchPE_x64.wim** file, click **Open**, click **Next**, and accept the defaults in the Add Image Wizard. Click **Finish** to complete adding a boot image. - -### Deploy the client image - -1. Before using WDS to deploy a client image, you must temporarily disable the external network adapter on SRV1. This is just an artifact of the lab environment. In a typical deployment environment WDS would not be installed on the default gateway. - - >**Note**: Do not disable the *internal* network interface. To quickly view IP addresses and interface names configured on the VM, type **Get-NetIPAddress | ft interfacealias, ipaddress** - - Assuming the external interface is named "Ethernet 2", to disable the *external* interface on SRV1, open a Windows PowerShell prompt on SRV1 and type the following command: - - ``` - Disable-NetAdapter "Ethernet 2" -Confirm:$false - ``` - -2. Next, switch to the Hyper-V host and open an elevated Windows PowerShell prompt. Create a generation 2 VM on the Hyper-V host that will load its OS using PXE. To create this VM, type the following commands at an elevated Windows PowerShell prompt: - - ``` - New-VM –Name "PC2" –NewVHDPath "c:\vhd\pc2.vhdx" -NewVHDSizeBytes 60GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 - Set-VMMemory -VMName "PC2" -DynamicMemoryEnabled $true -MinimumBytes 720MB -MaximumBytes 2048MB -Buffer 20 - ``` - >Dynamic memory is configured on the VM to conserve resources. However, this can cause memory allocation to be reduced past what is required to install an operating system. If this happens, reset the VM and begin the OS installation task sequence immediately. This ensures the VM memory allocation is not decreased too much while it is idle. - -3. Start the new VM and connect to it: - - ``` - Start-VM PC2 - vmconnect localhost PC2 - ``` -4. When prompted, hit ENTER to start the network boot process. - -5. In the Windows Deployment Wizard, choose the **Windows 10 Enterprise x64 Custom Image** and then click **Next**. - -6. After MDT lite touch installation has started, be sure to re-enable the external network adapter on SRV1. This is needed so the client can use Windows Update after operating system installation is complete.To re-enable the external network interface, open an elevated Windows PowerShell prompt on SRV1 and type the following command: - - ``` - Enable-NetAdapter "Ethernet 2" - ``` -7. On SRV1, in the Deployment Workbench console, click on **Monitoring** and view the status of installation. Right-click **Monitoring** and click **Refresh** if no data is displayed. -8. OS installation requires about 10 minutes. When the installation is complete, the system will reboot automatically, configure devices, and install updates, requiring another 10-20 minutes. When the new client computer is finished updating, click **Finish**. You will be automatically signed in to the local computer as administrator. - - ![finish](images/deploy-finish.png) - - -This completes the demonstration of how to deploy a reference image to the network. To conserve resources, turn off the PC2 VM before starting the next section. - -## Refresh a computer with Windows 10 - -This section will demonstrate how to export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings. The scenario will use PC1, a computer that was cloned from a physical device to a VM, as described in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md). - -If the PC1 VM is not already running, then start and connect to it: - - ``` - Start-VM PC1 - vmconnect localhost PC1 - ``` - -1. Switch back to the Hyper-V host and create a checkpoint for the PC1 VM so that it can easily be reverted to its current state for troubleshooting purposes and to perform additional scenarios. Checkpoints are also known as snapshots. To create a checkpoint for the PC1 VM, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: - - ``` - Checkpoint-VM -Name PC1 -SnapshotName BeginState - ``` - -2. Sign on to PC1 using the CONTOSO\Administrator account. - - >Specify **contoso\administrator** as the user name to ensure you do not sign on using the local administrator account. You must sign in with this account so that you have access to the deployment share. - -3. Open an elevated command prompt on PC1 and type the following: - - ``` - cscript \\SRV1\MDTProd$\Scripts\Litetouch.vbs - ``` - - **Note**: Litetouch.vbs must be able to create the C:\MININT directory on the local computer. - -4. Choose the **Windows 10 Enterprise x64 Custom Image** and then click **Next**. - -5. Choose **Do not back up the existing computer** and click **Next**. - - **Note**: The USMT will still back up the computer. - -6. Lite Touch Installation will perform the following actions: - - Back up user settings and data using USMT. - - Install the Windows 10 Enterprise X64 operating system. - - Update the operating system via Windows Update. - - Restore user settings and data using USMT. - - You can review the progress of installation on SRV1 by clicking on the **Monitoring** node in the deployment workbench. When OS installation is complete, the computer will restart, set up devices, and configure settings. - -7. Sign in with the CONTOSO\Administrator account and verify that all CONTOSO domain user accounts and data have been migrated to the new operating system, or other user accounts as specified [previously](#configure-the-mdt-production-deployment-share). - -8. Create another checkpoint for the PC1 VM so that you can review results of the computer refresh later. To create a checkpoint, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: - - ``` - Checkpoint-VM -Name PC1 -SnapshotName RefreshState - ``` - -9. Restore the PC1 VM to it's previous state in preparation for the replace procedure. To restore a checkpoint, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: - - ``` - Restore-VMSnapshot -VMName PC1 -Name BeginState -Confirm:$false - Start-VM PC1 - vmconnect localhost PC1 - ``` - -10. Sign in to PC1 using the contoso\administrator account. - -## Replace a computer with Windows 10 - -At a high level, the computer replace process consists of:
    -- A special replace task sequence that runs the USMT backup and an optional full Window Imaging (WIM) backup.
    -- A standard OS deployment on a new computer. At the end of the deployment, the USMT backup from the old computer is restored. - -### Create a backup-only task sequence - -1. On SRV1, in the deployment workbench console, right-click the MDT Production deployment share, click **Properties**, click the **Rules** tab, and change the line **SkipUserData=YES** to **SkipUserData=NO**. -2. Click **OK**, right-click **MDT Production**, click **Update Deployment Share** and accept the default options in the wizard to update the share. -3. Type the following commands at an elevated Windows PowerShell prompt on SRV1: - - ``` - New-Item -Path C:\MigData -ItemType directory - New-SmbShare -Name MigData$ -Path C:\MigData -ChangeAccess EVERYONE - icacls C:\MigData /grant '"contoso\administrator":(OI)(CI)(M)' - ``` -4. On SRV1 in the deployment workbench, under **MDT Production**, right-click the **Task Sequences** node, and click **New Folder**. -5. Name the new folder **Other**, and complete the wizard using default options. -6. Right-click the **Other** folder and then click **New Task Sequence**. Use the following values in the wizard: - - **Task sequence ID**: REPLACE-001 - - **Task sequence name**: Backup Only Task Sequence - - **Task sequence comments**: Run USMT to back up user data and settings - - **Template**: Standard Client Replace Task Sequence (note: this is not the default template) -7. Accept defaults for the rest of the wizard and then click **Finish**. The replace task sequence will skip OS selection and settings. -8. Open the new task sequence that was created and review it. Note the type of capture and backup tasks that are present. Click **OK** when you are finished reviewing the task sequence. - -### Run the backup-only task sequence - -1. If you are not already signed on to PC1 as **contoso\administrator**, sign in using this account. To verify the currently signed in account, type the following command at an elevated command prompt: - - ``` - whoami - ``` -2. To ensure a clean environment before running the backup task sequence, type the following at an elevated Windows PowerShell prompt on PC1: - - ``` - Remove-Item c:\minint -recurse - Remove-Item c:\_SMSTaskSequence -recurse - Restart-Computer - ``` -2. Sign in to PC1 using the contoso\administrator account, and then type the following at an elevated command prompt: - - ``` - cscript \\SRV1\MDTProd$\Scripts\Litetouch.vbs - ``` -3. Complete the deployment wizard using the following: - - **Task Sequence**: Backup Only Task Sequence - - **User Data**: Specify a location: **\\SRV1\MigData$\PC1** - - **Computer Backup**: Do not back up the existing computer. -4. While the task sequence is running on PC1, open the deployment workbench console on SRV1 and click the **Monitoring* node. Press F5 to refresh the console, and view the status of current tasks. -5. Verify that **The user state capture was completed successfully** is displayed, and click **Finish** when the capture is complete. -6. On SRV1, verify that the file **USMT.MIG** was created in the **C:\MigData\PC1\USMT** directory. See the following example: - - ``` - PS C:\> dir C:\MigData\PC1\USMT - - Directory: C:\MigData\PC1\USMT - - Mode LastWriteTime Length Name - ---- ------------- ------ ---- - -a--- 9/6/2016 11:34 AM 14248685 USMT.MIG - ``` -### Deploy PC3 - -1. On the Hyper-V host, type the following commands at an elevated Windows PowerShell prompt: - - ``` - New-VM –Name "PC3" –NewVHDPath "c:\vhd\pc3.vhdx" -NewVHDSizeBytes 60GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 - Set-VMMemory -VMName "PC3" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 - ``` -2. Temporarily disable the external network adapter on SRV1 again, so that we can successfully boot PC3 from WDS. To disable the adapter, type the following command at an elevated Windows PowerShell prompt on SRV1: - - ``` - Disable-NetAdapter "Ethernet 2" -Confirm:$false - ``` -3. Start and connect to PC3 by typing the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: - - ``` - Start-VM PC3 - vmconnect localhost PC3 - ``` -4. When prompted, press ENTER for network boot. - -6. On PC3, ue the following settings for the Windows Deployment Wizard: - - **Task Sequence**: Windows 10 Enterprise x64 Custom Image - - **Move Data and Settings**: Do not move user data and settings - - **User Data (Restore)**: Specify a location: **\\SRV1\MigData$\PC1** -5. When OS installation has started on PC1, re-enable the external network adapter on SRV1 by typing the following command on SRV1: - - ``` - Enable-NetAdapter "Ethernet 2" - ``` -7. Setup will install the Windows 10 Enterprise operating system, update via Windows Update, and restore the user settings and data from PC1. - -8. When PC3 has completed installing the OS, sign in to PC3 using the contoso\administrator account. When the PC completes updating, click **Finish**. - -9. Verify that settings have been migrated from PC1, and then shut down PC3 in preparation for the next procedure. - -## Troubleshooting logs, events, and utilities - -Deployment logs are available on the client computer in the following locations: -- Before the image is applied: X:\MININT\SMSOSD\OSDLOGS -- After the system drive has been formatted: C:\MININT\SMSOSD\OSDLOGS -- After deployment: %WINDIR%\TEMP\DeploymentLogs - -You can review WDS events in Event Viewer at: **Applications and Services Logs > Microsoft > Windows > Deployment-Services-Diagnostics**. By default, only the **Admin** and **Operational** logs are enabled. To enable other logs, right-click the log and then click **Enable Log**. - -Tools for viewing log files, and to assist with troubleshooting are available in the [System Center 2012 R2 Configuration Manager Toolkit](https://www.microsoft.com/en-us/download/details.aspx?id=50012) - -Also see [Resolve Windows 10 upgrade errors](resolve-windows-10-upgrade-errors.md) for detailed troubleshooting information. - -## Related Topics - -[Microsoft Deployment Toolkit](https://technet.microsoft.com/en-US/windows/dn475741)
    -[Prepare for deployment with MDT 2013](prepare-for-windows-deployment-with-mdt-2013.md) - -  - - - - - diff --git a/windows/deploy/windows-10-poc-sc-config-mgr.md b/windows/deploy/windows-10-poc-sc-config-mgr.md deleted file mode 100644 index d9278a15c5..0000000000 --- a/windows/deploy/windows-10-poc-sc-config-mgr.md +++ /dev/null @@ -1,1040 +0,0 @@ ---- -title: Deploy Windows 10 using System Center Configuration Manager -description: Deploy Windows 10 in a test lab using System Center Configuration Manager -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: deploy -author: greg-lindsay ---- - -# Deploy Windows 10 in a test lab using System Center Configuration Manager - -**Applies to** - -- Windows 10 - -**Important**: This guide leverages the proof of concept (PoC) environment, and some settings that are configured in the following guides: -- [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md) -- [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) - -Please complete all steps in these guides before attempting the procedures in this guide. If you wish to skip the Windows 10 deployment procedures in the MDT guide and move directly to this guide, you must at least install MDT and the Windows ADK before performing procedures in this guide. All steps in the first guide are required before attempting the procedures in this guide. - -The PoC environment is a virtual network running on Hyper-V with three virtual machines (VMs): -- **DC1**: A contoso.com domain controller, DNS server, and DHCP server. -- **SRV1**: A dual-homed contoso.com domain member server, DNS server, and default gateway providing NAT service for the PoC network. -- **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been cloned from a physical computer on your corporate network for testing purposes. - -This guide leverages the Hyper-V server role to perform procedures. If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. - ->Multiple features and services are installed on SRV1 in this guide. This is not a typical installation, and is only done to set up a lab environment with a bare minimum of resources. However, if less than 4 GB of RAM is allocated to SRV1 in the Hyper-V console, some procedures will be extremely slow to complete. If resources are limited on the Hyper-V host, consider reducing RAM allocation on DC1 and PC1, and then increasing the RAM allocation on SRV1. You can adjust RAM allocation for a VM by right-clicking the VM in the Hyper-V Manager console, clicking **Settings**, clicking **Memory**, and modifying the value next to **Maximum RAM**. - -## In this guide - -This guide provides end-to-end instructions to install and configure System Center Configuration Manager, and use it to deploy a Windows 10 image. Depending on the speed of your Hyper-V host, the procedures in this guide will require 6-10 hours to complete. - -Topics and procedures in this guide are summarized in the following table. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed. - -
    - - -
    TopicDescriptionTime - -
    [Install prerequisites](#install-prerequisites)Install prerequisite Windows Server roles and features, download, install and configure SQL Server, configure firewall rules, and install the Windows ADK.60 minutes -
    [Install System Center Configuration Manager](#install-system-center-configuration-manager)Download System Center Configuration Manager, configure prerequisites, and install the package.45 minutes -
    [Download MDOP and install DaRT](#download-mdop-and-install-dart)Download the Microsoft Desktop Optimization Pack 2015 and install DaRT 10.15 minutes -
    [Prepare for Zero Touch installation](#prepare-for-zero-touch-installation)Prerequisite procedures to support Zero Touch installation.60 minutes -
    [Create a boot image for Configuration Manager](#create-a-boot-image-for-configuration-manager)Use the MDT wizard to create the boot image in Configuration Manager.20 minutes -
    [Create a Windows 10 reference image](#create-a-windows-10-reference-image)This procedure can be skipped if it was done previously, otherwise instructions are provided to create a reference image.0-60 minutes -
    [Add a Windows 10 operating system image](#add-a-windows-10-operating-system-image)Add a Windows 10 operating system image and distribute it.10 minutes -
    [Create a task sequence](#Create a task sequence)Create a Configuration Manager task sequence with MDT integration using the MDT wizard15 minutes -
    [Finalize the operating system configuration](#finalize-the-operating-system-configuration)Enable monitoring, configure rules, and distribute content.30 minutes -
    [Deploy Windows 10 using PXE and Configuration Manager](#deploy-windows-10-using-pxe-and-configuration-manager)Deploy Windows 10 using Configuration Manager deployment packages and task sequences.60 minutes -
    [Refresh a client with Windows 10 using Configuration Manager](#refresh-a-client-with-windows-10-using-configuration-manager)Use a task sequence to refresh a client with Windows 10 using Configuration Manager and MDT90 minutes -
    [Replace a client with Windows 10 using Configuration Manager](#replace-a-client-with-windows-10-using-configuration-manager)Replace a client computer with Windows 10 using Configuration Manager.90 minutes - -
    - -
    - -## Install prerequisites - -1. Before installing System Center Configuration Manager, we must install prerequisite services and features. Type the following command at an elevated Windows PowerShell prompt on SRV1: - - ``` - Install-WindowsFeature Web-Windows-Auth,Web-ISAPI-Ext,Web-Metabase,Web-WMI,BITS,RDC,NET-Framework-Features,Web-Asp-Net,Web-Asp-Net45,NET-HTTP-Activation,NET-Non-HTTP-Activ - ``` - - >If the request to add features fails, retry the installation by typing the command again. - -2. Download [SQL Server 2012 SP2](https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2014-sp2) from the Microsoft Evaluation Center as an .ISO file on the Hyper-V host computer. Save the file to the **C:\VHD** directory. -3. When you have downloaded the file **SQLServer2014SP2-FullSlipstream-x64-ENU.iso** and placed it in the C:\VHD directory, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: - - ``` - Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\SQLServer2014SP2-FullSlipstream-x64-ENU.iso - ``` - - This command mounts the .ISO file to drive D on SRV1. - -4. Type the following command at an elevated Windows PowerShell prompt on SRV1 to install SQL Server 2012 SP2: - - ``` - D:\setup.exe /q /ACTION=Install /ERRORREPORTING="False" /FEATURES=SQLENGINE,RS,IS,SSMS,TOOLS,ADV_SSMS,CONN /INSTANCENAME=MSSQLSERVER /INSTANCEDIR="C:\Program Files\Microsoft SQL Server" /SQLSVCACCOUNT="NT AUTHORITY\System" /SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS" /SQLSVCSTARTUPTYPE=Automatic /AGTSVCACCOUNT="NT AUTHORITY\SYSTEM" /AGTSVCSTARTUPTYPE=Automatic /RSSVCACCOUNT="NT AUTHORITY\System" /RSSVCSTARTUPTYPE=Automatic /ISSVCACCOUNT="NT AUTHORITY\System" /ISSVCSTARTUPTYPE=Disabled /ASCOLLATION="Latin1_General_CI_AS" /SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS" /TCPENABLED="1" /NPENABLED="1" /IAcceptSQLServerLicenseTerms - ``` - Installation will take several minutes. When installation is complete, the following output will be displayed: - - ``` - Microsoft (R) SQL Server 2014 12.00.5000.00 - Copyright (c) Microsoft Corporation. All rights reserved. - - Microsoft (R) .NET Framework CasPol 2.0.50727.7905 - Copyright (c) Microsoft Corporation. All rights reserved. - - Success - Microsoft (R) .NET Framework CasPol 2.0.50727.7905 - Copyright (c) Microsoft Corporation. All rights reserved. - - Success - One or more affected files have operations pending. - You should restart your computer to complete this process. - PS C:\> - ``` -5. Type the following commands at an elevated Windows PowerShell prompt on SRV1: - - ``` - New-NetFirewallRule -DisplayName “SQL Server” -Direction Inbound –Protocol TCP –LocalPort 1433 -Action allow - New-NetFirewallRule -DisplayName “SQL Admin Connection” -Direction Inbound –Protocol TCP –LocalPort 1434 -Action allow - New-NetFirewallRule -DisplayName “SQL Database Management” -Direction Inbound –Protocol UDP –LocalPort 1434 -Action allow - New-NetFirewallRule -DisplayName “SQL Service Broker” -Direction Inbound –Protocol TCP –LocalPort 4022 -Action allow - New-NetFirewallRule -DisplayName “SQL Debugger/RPC” -Direction Inbound –Protocol TCP –LocalPort 135 -Action allow - ``` - -7. Download and install the latest [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit) on SRV1 using the default installation settings. The current version is the ADK for Windows 10, version 1607. Installation might require several minutes to acquire all components. - -## Install System Center Configuration Manager - -1. On SRV1, temporarily disable IE Enhanced Security Configuration for Administrators by typing the following commands at an elevated Windows PowerShell prompt: - - ``` - $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" - Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 0 - Stop-Process -Name Explorer - ``` - -2. Download [System Center Configuration Manager and Endpoint Protection](https://www.microsoft.com/en-us/evalcenter/evaluate-system-center-configuration-manager-and-endpoint-protection) on SRV1 (download the executable file anywhere on SRV1), double-click the file, enter **C:\configmgr** for **Unzip to folder**, and click **Unzip**. The C:\configmgr directory will be automatically created. Click **OK** and then close the **WinZip Self-Extractor** dialog box when finished. - -3. Before starting the installation, verify that WMI is working on SRV1. See the following examples. Verify that **Running** is displayed under **Status** and **True** is displayed next to **TcpTestSucceeded**: - - ``` - Get-Service Winmgmt - - Status Name DisplayName - ------ ---- ----------- - Running Winmgmt Windows Management Instrumentation - - Test-NetConnection -ComputerName 192.168.0.2 -Port 135 -InformationLevel Detailed - - ComputerName : 192.168.0.2 - RemoteAddress : 192.168.0.2 - RemotePort : 135 - AllNameResolutionResults : - MatchingIPsecRules : - NetworkIsolationContext : Internet - InterfaceAlias : Ethernet - SourceAddress : 192.168.0.2 - NetRoute (NextHop) : 0.0.0.0 - PingSucceeded : True - PingReplyDetails (RTT) : 0 ms - TcpTestSucceeded : True - ``` - You can also verify WMI using the WMI console by typing **wmimgmt.msc**, right-clicking **WMI Control (Local)** in the console tree, and then clicking **Properties**. - - If the WMI service is not started, attempt to start it or reboot the computer. If WMI is running but errors are present, see [WMIDiag](https://blogs.technet.microsoft.com/askperf/2015/05/12/wmidiag-2-2-is-here/) for troubleshooting information. - -4. To extend the Active Directory schema, type the following command at an elevated Windows PowerShell prompt: - - ``` - cmd /c C:\configmgr\SMSSETUP\BIN\X64\extadsch.exe - ``` - -5. Temporarily switch to the DC1 VM, and type the following command at an elevated command prompt on DC1: - - ``` - adsiedit.msc - ``` - -6. Right-click **ADSI Edit**, click **Connect to**, select **Default** under **Computer** and then click **OK**. -7. Expand **Default naming context**>**DC=contoso,DC=com**, right-click **CN=System**, point to **New**, and then click **Object**. -8. Click **container** and then click **Next**. -9. Next to **Value**, type **System Management**, click **Next**, and then click **Finish**. -10. Right-click **CN=system Management** and then click **Properties**. -11. On the **Security** tab, click **Add**, click **Object Types**, select **Computers**, and click **OK**. -12. Under **Enter the object names to select**, type **SRV1** and click **OK**. -13. The **SRV1** computer account will be highlighted, select **Allow** next to **Full control**. -14. Click **Advanced**, click **SRV1 (CONTOSO\SRV1$)** and click **Edit**. -15. Next to **Applies to**, choose **This object and all descendant objects**, and then click **OK** three times. -16. Close the ADSI Edit console and switch back to SRV1. -17. To start Configuration Manager installation, type the following command at an elevated Windows PowerShell prompt on SRV1: - - ``` - cmd /c C:\configmgr\SMSSETUP\BIN\X64\Setup.exe - ``` -18. Provide the following in the System Center Configuration Manager Setup Wizard: - - **Before You Begin**: Read the text and click *Next*. - - **Getting Started**: Choose **Install a Configuration Manager primary site** and select the **Use typical installation options for a stand-alone primary site** checkbox. - - Click **Yes** in response to the popup window. - - **Product Key**: Choose **Install the evaluation edition of this Product**. - - **Microsoft Software License Terms**: Read the terms and then select the **I accept these license terms** checkbox. - - **Prerequisite Licenses**: Review license terms and select all three checkboxes on the page. - - **Prerequisite Downloads**: Choose **Download required files** and enter **c:\windows\temp** next to **Path**. - - **Site and Installation Settings**: Site code: **PS1**, Site name: **Contoso**. - - use default settings for all other options - - **Usage Data**: Read the text and click **Next**. - - **Service Connection Point Setup**: Accept the default settings (SRV1.contoso.com is automatically added under Select a server to use). - - **Settings Summary**: Review settings and click **Next**. - - **Prerequisite Check**: No failures should be listed. Ignore any warnings and click **Begin Install**. - - >There should be at most three warnings present: WSUS on site server, configuration for SQL Server memory usage, and SQL Server process memory allocation. These warnings can safely be ignored. - - Depending on the speed of the Hyper-V host and resources allocated to SRV1, installation can require approximately one hour. Click **Close** when installation is complete. - -19. If desired, re-enable IE Enhanced Security Configuration at this time on SRV1: - - ``` - Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 1 - Stop-Process -Name Explorer - ``` - -## Download MDOP and install DaRT - -1. Download the [Microsoft Desktop Optimization Pack 2015](https://msdn.microsoft.com/en-us/subscriptions/downloads/#ProductFamilyId=597) to the Hyper-V host using an MSDN subscription. Download the .ISO file (mu_microsoft_desktop_optimization_pack_2015_x86_x64_dvd_5975282.iso) to the C:\VHD directory on the Hyper-V host. - -2. Type the following command at an elevated Windows PowerShell prompt on the Hyper-V host to mount the MDOP file on SRV1: - - ``` - Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\mu_microsoft_desktop_optimization_pack_2015_x86_x64_dvd_5975282.iso - ``` -3. Type the following command at an elevated Windows PowerShell prompt on SRV1: - - ``` - cmd /c "D:\DaRT\DaRT 10\Installers\en-us\x64\MSDaRT100.msi" - ``` -4. Install DaRT 10 using default settings. -5. Type the following commands at an elevated Windows PowerShell prompt on SRV1: - - ``` - Copy-Item "C:\Program Files\Microsoft DaRT\v10\Toolsx64.cab" -Destination "C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x64" - Copy-Item "C:\Program Files\Microsoft DaRT\v10\Toolsx86.cab" -Destination "C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x86" - ``` - -## Prepare for Zero Touch installation - -This section contains several procedures to support Zero Touch installation with System Center Configuration Manager. - -### Create a folder structure - -1. Type the following commands at a Windows PowerShell prompt on SRV1: - - ``` - New-Item -ItemType Directory -Path "C:Sources\OSD\Boot" - New-Item -ItemType Directory -Path "C:Sources\OSD\OS" - New-Item -ItemType Directory -Path "C:\Sources\OSD\Settings" - New-Item -ItemType Directory -Path "C:\Sources\OSD\Branding" - New-Item -ItemType Directory -Path "C:\Sources\OSD\MDT" - New-Item -ItemType Directory -Path "C:\Logs" - New-SmbShare -Name Sources$ -Path C:\Sources -ChangeAccess EVERYONE - New-SmbShare -Name Logs$ -Path C:\Logs -ChangeAccess EVERYONE - ``` - -### Enable MDT ConfigMgr integration - -1. On SRV1, click **Start**, type **configmgr**, and then click **Configure ConfigMgr Integration**. -2. Type **PS1** next to **Site code**, and then click **Next**. -3. Verify **The process completed successfully** is displayed, and then click **Finish**. - -### Configure client settings - -1. On SRV1, click **Start**, type **configuration manager**, right-click **Configuration Manager Console**, and then click **Pin to Taskbar**. -2. Click **Desktop**, and then launch the Configuration Manager console from the taskbar. -3. If the console notifies you that an update is available, click **OK**. It is not necessary to install updates to complete this lab. -4. In the console tree, open the **Administration** workspace (in the lower left corner) and click **Client Settings**. -5. In the display pane, double-click **Default Client Settings**. -6. Click **Computer Agent**, next to **Organization name displayed in Software Center** type **Contoso**, and then click **OK**. - -### Configure the network access account - -1. In the Administration workspace, expand **Site Configuration** and click **Sites**. -2. On the **Home** ribbon at the top of the console window, click **Configure Site Components** and then click **Software Distribution**. -3. On the **Network Access Account** tab, choose **Specify the account that accesses network locations**. -4. Click the yellow starburst and then click **New Account**. -5. Click **Browse** and then under **Enter the object name to select**, type **CM_NAA** and click **OK**. -6. Next to **Password** and **Confirm Password**, type **pass@word1**, and then click **OK** twice. - -### Configure a boundary group - -1. In the Administration workspace, expand **Hierary Configuration**, right-click **Boundaries** and then click **Create Boundary**. -2. Next to **Description**, type **PS1**, next to **Type** choose **Active Directory Site**, and then click **Browse**. -3. Choose **Default-First-Site-Name** and then click **OK** twice. -4. In the Administration workspace, right-click **Boundary Groups** and then click **Create Boundary Group**. -5. Next to **Name**, type **PS1 Site Assignment and Content Location**, click **Add**, select the **Default-First-Site-Name** boundary and then click **OK**. -6. On the **References** tab in the **Create Boundary Group** window select the **Use this boundary group for site assignment** checkbox. -7. Click **Add**, select the **\\\SRV1.contoso.com** checkbox, and then click **OK** twice. - -### Enable PXE on the distribution point - -1. Deterime the MAC address of the internal network adapter on SRV1. To determine this, type the following command at an elevated Windows PowerShell prompt on SRV1: - - ``` - (Get-NetAdapter "Ethernet").MacAddress - ``` - >If the internal network adapter, assigned an IP address of 192.168.0.2, is not named "Ethernet" then replace the name "Ethernet" in the previous command with the name of this network adapter. You can review the names of network adapters and the IP addresses assigned to them by typing **ipconfig**. - -2. In the System Center Configuration Manager console, in the **Administration** workspace, click **Distribution Points**. -3. In the display pane, right-click **SRV1.CONTOSO.COM** and then click **Properties**. -4. On the PXE tab, select the following settings: - - Enable PXE support for clients. Click **Yes** in the popup that appears. - - Allow this distribution point to respond to incoming PXE requests - - Enable unknown computer support. Click **OK** in the popup that appears. - - Require a password when computers use PXE - - Password and Confirm password: pass@word1 - - Respond to PXE requests on specific network interfaces: Click the yellow starburst and then enter the MAC address determined in the first step of this procedure. - - See the following example: - - Config Mgr PXE - -5. Click **OK**. -6. Type the following command at an elevated Windows PowerShell prompt on SRV1, and verify that the files displayed are present: - - ``` - cmd /c dir /b C:\RemoteInstall\SMSBoot\x64 - - abortpxe.com - bootmgfw.efi - bootmgr.exe - pxeboot.com - pxeboot.n12 - wdsmgfw.efi - wdsnbp.com - ``` - >If these files are not present, type the following command at an elevated Windows PowerShell prompt to open the Configuration Manager Trace Log Tool. In the tool, click **File**, click **Open**, and then open the **distmgr.log** file. If errors are present, they will be highlighted in red: - - ``` - Invoke-Item 'C:\Program Files\Microsoft Configuration Manager\tools\cmtrace.exe' - ``` - - The log file will updated continuously while Configuration Manager is running. Wait for Configuration Manager to repair any issues that are present, and periodically re-check that the files are present in the C:\RemoteInstall\SMSBoot\x64 directory. Close the Configuration Manager Trace Log Tool when done. You will see the following line in distmgr.log that indicates the C:\RemoteInstall directory is being populated with necessary files: - - Running: WDSUTIL.exe /Initialize-Server /REMINST:"C:\RemoteInstall" - - Once the files are present in C:\RemoteInstall, you can close the cmtrace tool. - -### Create a branding image file - -1. If you have a bitmap (.BMP) image for suitable use as a branding image, copy it to the C:\Sources\OSD\Branding folder on SRV1. Otherwise, use the following step to copy a simple branding image. -2. Type the following command at an elevated Windows PowerShell prompt: - - ``` - copy "C:\ProgramData\Microsoft\User Account Pictures\user.bmp" "C:\Sources\OSD\Branding\contoso.bmp" - ``` - >You can open C:\Sources\OSD\Branding\contoso.bmp in MSPaint.exe if desired to customize this image. - - -## Create a boot image for Configuration Manager - -1. In the Configuration Manager console, in the **Software Library** workspace, expand **Operating Systems**, right-click **Boot Images**, and then click **Create Boot Image using MDT**. -2. On the Package Source page, under **Package source folder to be created (UNC Path):**, type **\\\SRV1\Sources$\OSD\Boot\Zero Touch WinPE x64**, and then click **Next**. - - The Zero Touch WinPE x64 folder does not yet exist. The folder will be created later. -3. On the General Settings page, type **Zero Touch WinPE x64** next to **Name**, and click **Next**. -4. On the Options page, under **Platform** choose **x64**, and click **Next**. -5. On the Components page, in addition to the default selection of **Microsoft Data Access Components (MDAC/ADO) support**, select the **Microsoft Diagnostics and Recovery Toolkit (DaRT)** checkbox, and click **Next**. -6. On the Customization page, select the **Use a custom background bitmap file** checkbox, and under **UNC path**, type or browse to **\\\SRV1\Sources$\OSD\Branding\contoso.bmp**, and then click **Next** twice. It will take a few minutes to generate the boot image. -7. Click **Finish**. -8. In the console display pane, right-click the **Zero Touch WinPE x64** boot image, and then click **Distribute Content**. -9. In the Distribute Content Wizard, click **Next**, click **Add** and select **Distribution Point**, select the **SRV1.CONTOSO.COM** checkbox, click **OK**, click **Next** twice, and then click **Close**. -10. Use the CMTrace application to view the **distmgr.log** file again and verify that the boot image has been distributed. To open CMTrace, type the following command at an elevated Windows PowerShell prompt on SRV1: - - ``` - Invoke-Item 'C:\Program Files\Microsoft Configuration Manager\tools\cmtrace.exe' - ``` - >In the trace tool, click **Tools** on the menu and choose **Find**. Search for "**STATMSG: ID=2301**". For example: - - ``` - STATMSG: ID=2301 SEV=I LEV=M SOURCE="SMS Server" COMP="SMS_DISTRIBUTION_MANAGER" SYS=SRV1.CONTOSO.COM SITE=PS1 PID=2476 TID=4636 GMTDATE=Wed Sep 14 22:11:09.363 2016 ISTR0="Configuration Manager Client Upgrade Package" ISTR1="PS100003" ISTR2="" ISTR3="" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=1 AID0=400 AVAL0="PS100003" SMS_DISTRIBUTION_MANAGER 9/14/2016 3:11:09 PM 4636 (0x121C) - ``` -11. You can also review status by clicking the **Zero Touch WinPE x64** image, and then clicking **Content Status** under **Related Objects** in the bottom right-hand corner of the console, or by entering **\Monitoring\Overview\Distribution Status\Content Status** on the location bar in the console. Doublt-click **Zero Touch WinPE x64** under **Content Status** in the console tree and verify that a status of **Successfully distributed content** is displayed on the **Success** tab. -12. In the **Software Library** workspace, double-click **Zero Touch WinPE x64** and then click the **Data Source** tab. -13. Select the **Deploy this boot image from the PXE-enabled distribution point** checkbox, and click **OK**. -14. Review the distmgr.log file again for "**STATMSG: ID=2301**" and verify that there are three folders under **C:\RemoteInstall\SMSImages** with boot images. See the following example: - - ``` - cmd /c dir /s /b C:\RemoteInstall\SMSImages - - C:\RemoteInstall\SMSImages\PS100004 - C:\RemoteInstall\SMSImages\PS100005 - C:\RemoteInstall\SMSImages\PS100006 - C:\RemoteInstall\SMSImages\PS100004\boot.PS100004.wim - C:\RemoteInstall\SMSImages\PS100005\boot.PS100005.wim - C:\RemoteInstall\SMSImages\PS100006\WinPE.PS100006.wim - ``` - - >The first two images (*.wim files) are default boot images. The third is the new boot image with DaRT. - -## Create a Windows 10 reference image - -If you have already completed steps in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) then you have already created a Windows 10 reference image. In this case, skip to the next procedure in this guide: [Add a Windows 10 operating system image](#add-a-windows-10-operating-system-image). If you have not yet created a Windows 10 reference image, complete the steps in this section. - -1. In [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md) the Windows 10 Enterprise .iso file was saved to the c:\VHD directory as **c:\VHD\w10-enterprise.iso**. The first step in creating a deployment share is to mount this file on SRV1. To mount the Windows 10 Enterprise DVD on SRV1, open an elevated Windows PowerShell prompt on the Hyper-V host computer and type the following command: - - ``` - Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\w10-enterprise.iso - ``` -2. Verify that the Windows Enterprise installation DVD is mounted on SRV1 as drive letter D. - -3. The Windows 10 Enterprise installation files will be used to create a deployment share on SRV1 using the MDT deployment workbench. To open the deployment workbench, click **Start**, type **deployment**, and then click **Deployment Workbench**. - -4. In the Deployment Workbench console, right-click **Deployment Shares** and select **New Deployment Share**. - -5. Use the following settings for the New Deployment Share Wizard: - - Deployment share path: **C:\MDTBuildLab**
    - - Share name: **MDTBuildLab$**
    - - Deployment share description: **MDT build lab**
    - - Options: click **Next** to accept the default
    - - Summary: click **Next**
    - - Progress: settings will be applied
    - - Confirmation: click **Finish** - -6. Expand the **Deployment Shares** node, and then expand **MDT build lab**. - -7. Right-click the **Operating Systems** node, and then click **New Folder**. Name the new folder **Windows 10**. Complete the wizard using default values and click **Finish**. - -7. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. - -8. Use the following settings for the Import Operating System Wizard: - - OS Type: **Full set of source files**
    - - Source: **D:\\**
    - - Destination: **W10Ent_x64**
    - - Summary: click **Next** - - Confirmation: click **Finish** - -9. For purposes of this test lab, we will not add applications, such as Microsoft Office, to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. - -10. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node under **MDT Build Lab** and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: - - Task sequence ID: **REFW10X64-001**
    - - Task sequence name: **Windows 10 Enterprise x64 Default Image**
    - - Task sequence comments: **Reference Build**
    - - Template: **Standard Client Task Sequence** - - Select OS: click **Windows 10 Enterprise Evaluation in W10Ent_x64 install.wim** - - Specify Product Key: **Do not specify a product key at this time** - - Full Name: **Contoso** - - Organization: **Contoso** - - Internet Explorer home page: **http://www.contoso.com** - - Admin Password: **Do not specify an Administrator password at this time** - - Summary: click **Next** - - Confirmation: click **Finish** - -11. Edit the task sequence to add the Microsoft NET Framework 3.5, which is required by many applications. To edit the task sequence, double-click **Windows 10 Enterprise x64 Default Image** that was created in the previous step. - -12. Click the **Task Sequence** tab. Under **State Restore** click **Tatto** to highlight it, then click **Add** and choose **New Group**. A new group will be added under Tattoo. - -13. On the Properties tab of the group that was created in the previous step, change the Name from New Group to **Custom Tasks (Pre-Windows Update)** and then click **Apply**. To see the name change, click **Tattoo**, then click the new group again. - -14. Click the **Custom Tasks (Pre-Windows Update)** group again, click **Add**, point to **Roles**, and then click **Install Roles and Features**. - -15. Under **Select the roles and features that should be installed**, select **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** and then click **Apply**. - -16. Enable Windows Update in the task sequence by clicking the **Windows Update (Post-Application Installation)** step, clicking the **Options** tab, and clearing the **Disable this step** checkbox. - >Note: Since we are not installing applications in this test lab, there is no need to enable the Windows Update Pre-Application Installation step. However, you should enable this step if you are also installing applications. - -17. Click **OK** to complete editing the task sequence. - -18. The next step is to configure the MDT deployment share rules. To configure rules in the Deployment Workbench, right-click MDT build lab (C:\MDTBuildLab) and click **Properties**, and then click the **Rules** tab. - -19. Replace the default rules with the following text: - - ``` - [Settings] - Priority=Default - - [Default] - _SMSTSORGNAME=Contoso - UserDataLocation=NONE - DoCapture=YES - OSInstall=Y - AdminPassword=pass@word1 - TimeZoneName=Pacific Standard TimeZoneName - OSDComputername=#Left("PC-%SerialNumber%",7)# - JoinWorkgroup=WORKGROUP - HideShell=YES - FinishAction=SHUTDOWN - DoNotCreateExtraPartition=YES - ApplyGPOPack=NO - SkipAdminPassword=YES - SkipProductKey=YES - SkipComputerName=YES - SkipDomainMembership=YES - SkipUserData=YES - SkipLocaleSelection=YES - SkipTaskSequence=NO - SkipTimeZone=YES - SkipApplications=YES - SkipBitLocker=YES - SkipSummary=YES - SkipRoles=YES - SkipCapture=NO - SkipFinalSummary=NO - ``` - -20. Click **Apply** and then click **Edit Bootstrap.ini**. Replace the contents of the Bootstrap.ini file with the following text, and save the file: - - ``` - [Settings] - Priority=Default - - [Default] - DeployRoot=\\SRV1\MDTBuildLab$ - UserDomain=CONTOSO - UserID=MDT_BA - UserPassword=pass@word1 - SkipBDDWelcome=YES - ``` - -21. Click **OK** to complete the configuration of the deployment share. - -22. Right-click **MDT build lab (C:\MDTBuildLab)** and then click **Update Deployment Share**. - -23. Accept all default values in the Update Deployment Share Wizard by clicking **Next**. The update process will take 5 to 10 minutes. When it has completed, click **Finish**. - -24. Copy **c:\MDTBuildLab\Boot\LiteTouchPE_x86.iso** on SRV1 to the **c:\VHD** directory on the Hyper-V host computer. Note that in MDT, the x86 boot image can deploy both x86 and x64 operating systems, except on computers based on Unified Extensible Firmware Interface (UEFI). - - >Hint: Top copy the file, right-click the **LiteTouchPE_x86.iso** file and click **Copy** on SRV1, then open the **c:\VHD** folder on the Hyper-V host, right-click inside the folder and click **Paste**. - -25. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: - - ``` - New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB - Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20 - Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso - Start-VM REFW10X64-001 - vmconnect localhost REFW10X64-001 - ``` -26. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. - -27. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. - - Additional system restarts will occur to complete updating and preparing the operating system. Setup will complete the following procedures: - - - Install the Windows 10 Enterprise operating system. - - Install added applications, roles, and features. - - Update the operating system using Windows Update (or WSUS if optionally specified). - - Stage Windows PE on the local disk. - - Run System Preparation (Sysprep) and reboot into Windows PE. - - Capture the installation to a Windows Imaging (WIM) file. - - Turn off the virtual machine. - - This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host and your network's download speed. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on SRV1. The file name is **REFW10X64-001.wim**. - -## Add a Windows 10 operating system image - -1. Type the following commands at an elevated Windows PowerShell prompt on SRV1: - - ``` - New-Item -ItemType Directory -Path "C:Sources\OSD\OS\Windows 10 Enterprise x64" - cmd /c copy /z "C:\MDTBuildLab\Captures\REFW10X64-001.wim" "C:\Sources\OSD\OS\Windows 10 Enterprise x64" - ``` - -2. In the Configuration Manager console, in the **Software Library** workspace, expand **Operating Systems**, right-click **Operating System Images**, and then click **Add Operating System Image**. - -3. On the Data Source page, under **Path:**, type or browse to **\\\SRV1\Sources$\OSD\OS\Windows 10 Enterprise x64\REFW10X64-001.wim**, and click **Next**. - -4. On the General page, next to **Name:**, type **Windows 10 Enterprise x64**, click **Next** twice, and then click **Close**. - -5. Distribute the operating system image to the SRV1 distribution point by right-clicking the **Windows 10 Enterprise x64** operating system image and then clicking **Distribute Content**. - -6. In the Distribute Content Wizard, click **Next**, click **Add**, click **Distribution Point**, add the **SRV1.CONTOSO.COM** distribution point, click **OK**, click **Next** twice and then click **Close**. - -7. Enter **\Monitoring\Overview\Distribution Status\Content Status** on the location bar, click **Windows 10 Enterprise x64**, and monitor the status of content distribution until it is successful and no longer in progress. Refresh the view with the F5 key or by right-clicking **Windows 10 Enterprise x64** and clicking **Refresh**. Processing of the image on the site server can take several minutes. - - >If content distribution is not successful, verify that sufficient disk space is available. - -## Create a task sequence - ->Complete this section slowly. There are a large number of similar settings from which to choose. - -1. In the Configuration Manager console, in the **Software Library** workspace expand **Operating Systems**, right-click **Task Sequences**, and then click **Create MDT Task Sequence**. - -2. On the Choose Template page, select the **Client Task Sequence** template and click **Next**. - -3. On the General page, type **Windows 10 Enterprise x64** under **Task sequence name:** and then click **Next**. - -4. On the Details page, enter the following settings:
    - - Join a domain: contoso.com
    - - Account: click **Set**
    - - User name: contoso\CM_JD
    - - Password: pass@word1
    - - Confirm password: pass@word1
    - - Click **OK**
    - - Windows Settings
    - - User name: Contoso
    - - Organization name: Contoso
    - - Product key: \
    - - Administrator Account: Enable the account and specify the local administrator password
    - - Password: pass@word1
    - - Confirm password: pass@word1
    - - Click Next
    - -5. On the Capture Settings page, accept the default settings and click **Next**. - -6. On the Boot Image page, browse and select the **Zero Touch WinPE x64** boot image package and then click **Next**. - -7. On the MDT Package page, select **Create a new Microsoft Deployment Toolkit Files package**, under **Package source folder to be created (UNC Path):**, type **\\\SRV1\Sources$\OSD\MDT\MDT 2013**, and then click **Next**. - -8. On the MDT Details page, next to **Name:** type **MDT 2013** and then click **Next**. - -9. On the OS Image page, browse and select the **Windows 10 Enterprise x64** package, and then click **Next**. - -10. On the Deployment Method page, accept the default settings for **Zero Touch Installation** and click **Next**. - -11. On the Client Package page, browse and select the **Microsoft Corporation Configuration Manager Client package** and then click **Next**. - -12. On the USMT Package page, browse and select the **Microsoft Corporation User State Migration Tool for Windows 8 10.0.14393.0** package, and then click **Next**. - -13. On the Settings Package page, select **Create a new settings package**, and under **Package source folder to be created (UNC Path):**, type **\\\SRV1\Sources$\OSD\Settings\Windows 10 x64 Settings**, and then click **Next**. - -14. On the Settings Details page, next to **Name:**, type **Windows 10 x64 Settings**, and click **Next**. - -15. On the Sysprep Package page, click **Next** twice. - -16. On the Confirmation page, click **Finish**. - -### Edit the task sequence - -1. In the Configuration Manager console, in the **Software Library** workspace, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Edit**. - -2. Scroll down to the **Install** group and click the **Set Variable for Drive Letter** action. - -3. Change the Value under **OSDPreserveDriveLetter** from **False** to **True**, and then click **Apply**. - -4. In the **State Restore** group, click the **Set Status 5** action, click **Add** in the upper left corner, point to **User State**, and click **Request State Store**. This adds a new action immediately after **Set Status 5**. - -5. Configure the **Request State Store** action that was just added with the following settings:
    - - Request state storage location to: **Restore state from another computer**
    - - Select the **If computer account fails to connect to state store, use the Network Access account** checkbox.
    - - Options tab: Select the **Continue on error** checkbox.
    - - Add Condition: **Task Sequence Variable**:
    - - Variable: **USMTLOCAL**
    - - Condition: **not equals**
    - - Value: **True**
    - - Click **OK**.
    - - Click **Apply**
    . - -6. In the **State Restore** group, click **Restore User State**, click **Add**, point to **User State**, and click **Release State Store**. - -7. Configure the **Release State Store** action that was just added with the following settings:
    - - Options tab: Select the **Continue on error** checkbox.
    - - Add Condition: **Task Sequence Variable**:
    - - Variable: **USMTLOCAL**
    - - Condition: **not equals**
    - - Value: **True**
    - - Click **OK**.
    - - Click **OK**
    . - - -## Finalize the operating system configuration - ->If you completed all procedures in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) then the MDT deployment share is already present on SRV1. In this case, skip the first four steps below and begin with step 5 to edit CustomSettings.ini. - -1. In the MDT deployment workbench on SRV1, right-click **Deployment Shares** and then click **New Deployment Share**. - -2. Use the following settings for the New Deployment Share Wizard: - - Deployment share path: **C:\MDTProduction**
    - - Share name: **MDTProduction$**
    - - Deployment share description: **MDT Production**
    - - Options: click **Next** to accept the default
    - - Summary: click **Next**
    - - Progress: settings will be applied
    - - Confirmation: click **Finish** - -3. Right-click the **MDT Production** deployment share, and click **Properties**. - -4. Click the **Monitoring** tab, select the **Enable monitoring for this deployment share** checkbox, and then click **OK**. - -5. Type the following command at an elevated Windows PowerShell prompt on SRV1: - - ``` - notepad "C:\Sources\OSD\Settings\Windows 10 x64 Settings\CustomSettings.ini" - ``` -6. Replace the contents of the file with the following text, and then save the file: - - ``` - [Settings] - Priority=Default - Properties=OSDMigrateConfigFiles,OSDMigrateMode - - [Default] - DoCapture=NO - ComputerBackupLocation=NONE - OSDMigrateMode=Advanced - OSDMigrateAdditionalCaptureOptions=/ue:*\* /ui:CONTOSO\* - OSDMigrateConfigFiles=Miguser.xml,Migapp.xml - SLSHARE=\\SRV1\Logs$ - EventService=http://SRV1:9800 - ApplyGPOPack=NO - ``` -7. Return to the Configuration Manager console, and in the Software Library workspace, expand **Application Management**, click **Packages**, right-click **Windows 10 x64 Settings**, and then click **Update Distribution Points**. Click **OK** in the popup that appears. - -8. In the Software Library workspace, expand **Operating Systems**, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Distribute Content**. - -9. In the Distribute Content Wizard, click **Next** twice, click **Add**, click **Distribution Point**, select the **SRV1.CONTOSO.COM** distribution point, click **OK**, click **Next** twice and then click **Close**. - -10. Enter **\Monitoring\Overview\Distribution Status\Content Status\Windows 10 Enterprise x64** on the location bar, double-click **Windows 10 Enterprise x64**, and monitor the status of content distribution until it is successful and no longer in progress. Refresh the view with the F5 key or by right-clicking **Windows 10 Enterprise x64** and clicking **Refresh**. - -### Create a deployment for the task sequence - -1. In the Software Library workspace, expand **Operating Systems**, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Deploy**. - -2. On the General page, next to **Collection**, click **Browse**, select the **All Unknown Computers** collection, click **OK**, and then click **Next**. - -3. On the Deployment Settings page, use the following settings:
    - - Purpose: **Available**
    - - Make available to the following: **Only media and PXE**
    - - Click **Next**.
    -4. Click **Next** five times to accept defaults on the Scheduling, User Experience, Alerts, and Distribution Points pages. - -5. Click **Close**. - -## Deploy Windows 10 using PXE and Configuration Manager - -1. Type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: - - ``` - New-VM –Name "PC4" –NewVHDPath "c:\vhd\pc4.vhdx" -NewVHDSizeBytes 40GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 - Set-VMMemory -VMName "PC4" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 - Start-VM PC4 - vmconnect localhost PC4 - ``` - -2. Press ENTER when prompted to start the network boot service. - -3. In the Task Sequence Wizard, provide the password: **pass@word1**, and then click **Next**. - -4. Before you click Next in the Task Sequence Wizard, press the **F8** key. A command prompt will open. - -5. At the command prompt, type **explorer.exe** and review the Windows PE file structure. - -6. The smsts.log file is critical for troubleshooting any installation problems that might be encountered. Depending on the deployment phase, the smsts.log file is created in different locations: - - X:\windows\temp\SMSTSLog\smsts.log before disks are formatted. - - x:\smstslog\smsts.log after disks are formatted. - - c:\_SMSTaskSequence\Logs\Smstslog\smsts.log before the System Center Configuration Manager client is installed. - - c:\windows\ccm\logs\Smstslog\smsts.log after the System Center Configuration Manager client is installed. - - c:\windows\ccm\logs\smsts.log when the task sequence is complete. - - Note: If a reboot is pending on the client, the reboot will be blocked as long as the command window is open. - -7. In the explorer window, click **Tools** and then click **Map Network Drive**. - -8. Do not map a network drive at this time. If you need to save the smsts.log file, you can use this method to save the file to a location on SRV1. - -9. Close the Map Network Drive window, the Explorer window, and the command prompt. - -10. The **Windows 10 Enterprise x64** task sequence is selected in the Task Sequenc Wizard. Click **Next** to continue with the deployment. - -11. The task sequence will require several minutes to complete. You can monitor progress of the task sequence using the MDT Deployment Workbench under Deployment Shares > MDTProduction > Monitoring. The task sequence will: - - Install Windows 10 - - Install the Configuration Manager client and hotfix - - Join the computer to the contoso.com domain - - Install any applications that were specified in the reference image - -12. When Windows 10 installation has completed, sign in to PC4 using the **contoso\administrator** account. - -13. Right-click **Start**, click **Run**, type **control appwiz.cpl**, press ENTER, click Turn Windows features on or off, and verify that **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** is installed. This is a feature included in the reference image. - -14. Shut down the PC4 VM. - -## Refresh a client with Windows 10 using Configuration Manager - ->Before starting this section, you can delete computer objects from Active Directory that were created as part of previous deployment procedures. Use the Active Directory Users and Computers console to remove stale entries under contoto.com\Computers, but **do not delete the computer account (hostname) for PC1**. There should be at least two computer accounts present in the contoso.com\Computers container: one for SRV1, and one for the hostname of PC1. It is not required to delete the stale entries, this is only done to remove clutter. - -### Install the Configuration Manager client on PC1 - -1. Verify that PC1 is in its original state, which was saved as a checkpoint and then restored in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md). - -2. If a PC1 checkpoint has not already been saved, then save a checkpoint by typing the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: - - ``` - Checkpoint-VM -Name PC1 -SnapshotName BeginState - ``` -3. On SRV1, in the Configuration Manager console, in the Administration workspace, expand **Hierarcy Configuration** and click on **Discovery Methods**. -4. Double-click **Active Directory System Discovery** and on the **General** tab select the **Enable Active Directory System Discovery** checkbox. -5. Click the yellow starburst, click **Browse**, select **contoso\Computers**, and then click **OK** three times. -6. When a popup dialog box asks if you want to run full discovery, click **Yes**. -7. In the Assets and Compliance workspace, expand **Devices** and click **All Systems**. Verify that a computer account for SRV1 and PC1 are displayed. See the following example (GREGLIN-PC1 is the hostname of PC1 in this example): - - ![assets](images/sccm-assets.png) - - >If you only see the **Devices** parent node, you can add and view device collections in the tree by clicking **Device Collections** and then double-clicking a device collection. - - The **Client** column indicates that the Configuration Manager client is not currently installed. This procedure will be carried out next. - -8. Sign in to PC1 using the contoso\administrator account and type the following at an elevated command prompt to remove any pre-existing client configuration, if it exists: - - ``` - sc stop ccmsetup - "\\SRV1\c$\Program Files\Microsoft Configuration Manager\Client\CCMSetup.exe" /Uninstall - ``` - >If PC1 still has Configuration Manager registry settings that were applied by Group Policy, startup scripts, or other policies in its previous domain, these might not all be removed by CCMSetup /Uninstall and can cause problems with installation or registration of the client in its new environment. It might be necessary to manually remove these settings if they are present. For more information, see [Manual removal of the SCCM client](https://blogs.technet.microsoft.com/michaelgriswold/2013/01/02/manual-removal-of-the-sccm-client/). - -9. On PC1, temporarily stop Windows Update from queuing items for download and clear all BITS jobs from the queue: - - ``` - net stop wuauserv - net stop BITS - ``` - - Verify that both services were stopped successfully, then type the following at an elevated command prompt: - - ``` - del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat" - net start BITSexit - bitsadmin /list /allusers - ``` - - Verify that BITSAdmin displays 0 jobs. - -10. To install the Configuration Manager client as a standalone process, type the following at an elevated command prompt: - - ``` - "\\SRV1\c$\Program Files\Microsoft Configuration Manager\Client\CCMSetup.exe" /mp:SRV1.contoso.com /logon SMSSITECODE=PS1 - ``` -11. On PC1, using file explorer, open the **C:\Windows\ccmsetup** directory. During client installation, files will be downloaded here. -12. Installation progress will be captured in the file: **c:\windows\ccmsetup\logs\ccmsetup.log**. You can periodically open this file in notepad, or you can type the following command at an elevated Windows PowerShell prompt to monitor installation progress: - - ``` - Get-Content -Path c:\windows\ccmsetup\logs\ccmsetup.log -Wait - ``` - - Installation might require several minutes, and display of the log file will appear to hang while some applications are installed. This is normal. When setup is complete, verify that **CcmSetup is existing with return code 0** is displayed on the last line of the ccmsetup.log file and then press **CTRL-C** to break out of the Get-Content operation. A return code of 0 indicates that installation was successful and you should now see a directory created at **C:\Windows\CCM** that contains files used in registration of the client with its site. - -13. On PC1, open the Configuration Manager control panel applet by typing the following command: - - ``` - control smscfgrc - ``` - -14. Click the **Site** tab and click **Find Site**. The client will report that it has found the PS1 site. See the following example: - - ![site](images/sccm-site.png) - - If the client is not able to find the PS1 site, review any error messages that are displayed in **C:\Windows\CCM\Logs\ClientIDManagerStartup.log** and **LocationServices.log**. - -15. On SRV1, in the Assets and Compliance workspace, click **All Desktop and Server Clients** and verify that the computer account for PC1 is displayed here with **Yes** and **Active** in the **Client** and **Client Activity** columns, respectively. You might have to refresh the view and wait few minutes for the client to appear here. See the following example: - - ![client](images/sccm-client.png) - - >It might take several minutes for the client to fully register with the site and complete a client check. When it is complete you will see a green check mark over the client icon as shown above. - -### Create a device collection and deployment - -1. On SRV1, in the Configuration Manager console, in the Asset and Compliance workspace, right-click **Device Collections** and then click **Create Device Collection**. - -2. Use the following settings in the **Create Device Collection Wizard**: - - General > Name: **Install Windows 10 Enterprise x64**
    - - General > Limiting collection: **All Systems**
    - - Membership Rules > Add Rule: **Direct Rule**
    - - The **Create Direct Membership Rule Wizard** opens, click **Next**
    - - Search for Resources > Resource class: **System Resource**
    - - Search for Resources > Attribute name: **Name**
    - - Search for Resources > Value: **%**
    - - Select Resources > Value: Select the computername associated with the PC1 VM
    - - Click **Next** twice and then click **Close** in both windows. - -3. Double-click the Install Windows 10 Enterprise x64 device collection and verify that the PC1 computer account is displayed. - -4. In the Software Library workspace, expand **Operating Systems**, click **Task Sequences**, right-click **Windows 10 Enterprise x64** and then click **Deploy**. - -5. Use the following settings in the Deploy Sofware wizard: - - General > Collection: Click Browse and select **Install Windows 10 Enterprise x64**
    - - Deployment Settings > Purpose: **Available**
    - - Deployment Settings > Make available to the following: **Configuration Manager clients, media and PXE**
    - - Scheduling > Click **Next**
    - - User Experience > Click **Next**
    - - Alerts > Click **Next**
    - - Distribution Points > Click **Next**
    - - Summary > Click **Next**
    - - Verify that the wizard completed successfully and then click **Close** - -6. **Important** Before initiating a computer refresh, save a checkpoint for all three computers: PC1, SRV1, and DC1. This ensures that we can restore all computers, including Active Directory and the Configuration Manager client status to the pre-Windows 10 installation state prior to running the replace procedure. To save checkpoints, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: - - ``` - Checkpoint-VM -Name PC1 -SnapshotName cm-start - Checkpoint-VM -Name SRV1 -SnapshotName cm-start - Checkpoint-VM -Name DC1 -SnapshotName cm-start - ``` - -### Initiate the computer refresh - -1. On SRV1, in the Assets and Compliance workspace, click **Device Collections** and then double-click **Install Windows 10 Enterprise x64**. -2. Right-click the computer account for PC1, point to **Client Notification**, click **Download Computer Policy**, and click **OK** in the popup dialog box. -3. On PC1, in the notification area, click **New sofware is available** and then click **Open Sofware Center**. -4. In the Sofware Center, click **Operating Systems**, click **Windows 10 Enterprise x64**, click **Install** and then click **INSTALL OPERATING SYSTEM**. See the following example: - - ![installOS](images/sccm-install-os.png) - - The computer will restart several times during the installation process. Installation includes downloading updates, reinstalling the Configuration Manager Client Agent, and restoring the user state. You can view status of the installation in the Configuration Manager console by accessing the Monitoring workspace, clicking **Deployments**, and then double-clicking the deployment associated with the **Install Windows 10 Enterprise x64** collection. Under **Asset Details**, right-click the device and then click **More Details**. Click the **Status** tab to see a list of tasks that have been performed. See the following example: - - ![asset](images/sccm-asset.png) - - You can also monitor progress of the installation by using the MDT deployment workbench and viewing the **Monitoring** node under **Deployment Shares\MDT Production**. - - When installation has completed, sign in using the contoso\administrator account or the contoso\user1 account and verify that applications and settings have been successfully backed up and restored to your new Windows 10 Enterprise operating system. - - ![post-refresh](images/sccm-post-refresh.png) - -5. Save checkpoints for all VMs if you wish to review their status at a later date. This is not required. To save a checkpoint for all VMs, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: - - ``` - Checkpoint-VM -Name DC1 -SnapshotName cm-refresh - Checkpoint-VM -Name SRV1 -SnapshotName cm-refresh - Checkpoint-VM -Name PC1 -SnapshotName cm-refresh - ``` - -## Replace a client with Windows 10 using Configuration Manager - -Before starting the replace procedure, restore all three VMs using the checkpoints created in the previous procedure. To restore the checkpoints and connect to the VMs again, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: - -``` -Restore-VMSnapshot -VMName DC1 -Name cm-start -Confirm:$false -Restore-VMSnapshot -VMName SRV1 -Name cm-start -Confirm:$false -Restore-VMSnapshot -VMName PC1 -Name cm-start -Confirm:$false -Start-VM DC1 -vmconnect localhost DC1 -Start-VM SRV1 -vmconnect localhost SRV1 -Start-VM PC1 -vmconnect localhost PC1 -``` - ->If resources are limited in the Hyper-V environment, SRV1 can require several minutes for all services to start and present the sign-in screen after restoring VMs. Verify that all required services are running, and start any service that are not running. Use the Server Manager dashboard to view and start services. When all services are running, open the Configuration Manager console. - -### Create a replace task sequence - -1. On SRV1, in the Configuration Manager console, in the Software Library workspace, expand **Operating Systems**, right-click **Task Sequences**, and then click **Create MDT Task Sequence**. - -2. On the Choose Template page, select **Client Replace Task Sequence** and click **Next**. - -3. On the General page, type the following: - - Task sequence name: **Replace Task Sequence** - - Task sequence comments: **USMT backup only** - -4. Click **Next**, and on the Boot Image page, browse and select the **Zero Touch WinPE x64** boot image package. Click **OK** and then click **Next** to continue. -5. On the MDT Package page, browse and select the **MDT 2013** package. Click **OK** and then click **Next** to continue. -6. On the USMT Package page, browse and select the **Microsoft Corporation User State Migration Tool for Windows** package. Click **OK** and then click **Next** to continue. -7. On the Settings Package page, browse and select the **Windows 10 x64 Settings** package. Click **OK** and then click **Next** to continue. -8. On the Summary page, review the details and then click **Next**. -9. On the Confirmation page, click **Finish**. - ->If you receive an error at this stage it can be caused by a corrupt MDT integration. To repair it, close the Configuration Manager console, remove MDT integration, and then restore MDT integration. - -### Deploy PC4 - -Create a VM named PC4 to receive the applications and settings from PC1. This VM represents a new computer that will replace PC1. To create this VM, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: - -``` -New-VM –Name "PC4" –NewVHDPath "c:\vhd\pc4.vhdx" -NewVHDSizeBytes 60GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 -Set-VMMemory -VMName "PC4" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 -Set-VMNetworkAdapter -VMName PC4 -StaticMacAddress 00-15-5D-83-26-FF -``` - ->Hyper-V enables us to define a static MAC address on PC4. In a real-world scenario you must determine the MAC address of the new computer. - -### Associate PC4 with PC1 - -1. On SRV1 in the Configuration Manager console, in the Assets and Compliance workspace, right-click **Devices** and then click **Import Computer Information**. - -2. On the Select Source page, choose **Import single computer** and click **Next**. - -3. On the Single Computer page, use the following settings: - - Computer Name: **PC4** - - MAC Address: **00:15:5D:83:26:FF** - - Source Computer: - -4. Click **Next**, and then on the User Accounts page choose **Capture and restore all user accounts**. Click **Next** twice to continue. - -5. On the Choose Target Collection page, choose **Add computers to the following collection**, click **Browse**, choose **Install Windows 10 Enterprise x64**, click **OK**, click **Next** twice, and then click **Close**. - -6. Select the User State Migration node and review the computer association in the display pane. - -7. Right-click the association in the display pane and then click **View Recovery Information**. A recovery key has been assigned, but a user state store location has not. Click **Close**. - -8. Click **Device Collections** and then double-click **Install Windows 10 Enterprise x64**. Verify that **PC4** is displayed in the collection. You might have to update and refresh the collection, or wait a few minutes, but do not proceed until PC4 is available. See the following example: - - ![collection](images/sccm-collection.png) - -### Create a device collection for PC1 - -1. On SRV1, in the Configuration Manager console, in the Assets and Compliance workspace, right-click **Device Collections** and then click **Create Device Collection**. - -2. Use the following settings in the **Create Device Collection Wizard**: - - General > Name: **USMT Backup (Replace)**
    - - General > Limiting collection: **All Systems**
    - - Membership Rules > Add Rule: **Direct Rule**
    - - The **Create Direct Membership Rule Wizard** opens, click **Next**
    - - Search for Resources > Resource class: **System Resource**
    - - Search for Resources > Attribute name: **Name**
    - - Search for Resources > Value: **%**
    - - Select Resources > Value: Select the computername associated with the PC1 VM.
    - - Click **Next** twice and then click **Close** in both windows. - -3. Click **Device Collections** and then double-click **USMT Backup (Replace)**. Verify that the computer name/hostname associated with PC1 is displayed in the collection. Do not proceed until this name is displayed. - -### Create a new deployment - -In the Configuration Manager console, in the Software Library workspace, click **Task Sequences**, right-click **Replace Task Sequence**, click **Deploy**, and use the following settings: -- General > Collection: **USMT Backup (Replace)**
    -- Deployment Settings > Purpose: **Available**
    -- Deployment Settings > Make available to the following: **Only Configuration Manager Clients**
    -- Scheduling: Click **Next**
    -- User Experience: Click **Next**
    -- Alerts: Click **Next**
    -- Distribution Points: Click **Next**
    -- Click **Next** and then click **Close**. - -### Verify the backup - -1. On PC1, open the Configuration Manager control panel applet by typing the following command: - - ``` - control smscfgrc - ``` -2. On the **Actions** tab, click **Machine Policy Retrieval & Evaluation Cycle**, click **Run Now**, click **OK**, and then click **OK** again. This is another method that can be used in addition to the Client Notification method used previously. - -3. Using the Software Center as was done in the previous procedure, click **Operating Systems** and then click **Replace Task Sequence**. See the following example: - - ![software](images/sccm-software-cntr.png) - -4. Click **Install** and then click **INSTALL OPERATING SYSTEM**. -5. Allow the **Replace Task Sequence** to complete, then verify that the C:\MigData folder on SRV1 contains the USMT backup. - -### Deploy the new computer - -1. Start PC4 and press ENTER for a network boot when prompted. To start PC4, type the following commands at an elevated Windows Powershell prompt on the Hyper-V host: - - ``` - Start-VM PC4 - vmconnect localhost PC4 - ``` -2. In the **Welcome to the Task Sequence Wizard**, enter **pass@word1** and click **Next**. -3. Choose the **Windows 10 Enterprise X64** image. -4. Setup will install the operating system, install the configuration manager client, join PC4 to the domain, and restore users and settings from PC1. - - -## Related Topics - -[System Center 2012 Configuration Manager Survival Guide](https://social.technet.microsoft.com/wiki/contents/articles/7075.system-center-2012-configuration-manager-survival-guide.aspx#Step-by-Step_Guides) - -  - - - - - diff --git a/windows/keep-secure/TOC.md b/windows/keep-secure/TOC.md index 7662302c08..eaedfbf278 100644 --- a/windows/keep-secure/TOC.md +++ b/windows/keep-secure/TOC.md @@ -31,15 +31,12 @@ ##### [Create and deploy a VPN policy for Windows Information Protection (WIP) using Microsoft Intune](create-vpn-and-wip-policy-using-intune.md) #### [Create and deploy a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md) #### [Create and verify an Encrypting File System (EFS) Data Recovery Agent (DRA) certificate](create-and-verify-an-efs-dra-certificate.md) -#### [Determine the Enterprise Context of an app running in Windows Information Protection (WIP)](wip-app-enterprise-context.md) -### [Mandatory tasks and settings required to turn on Windows Information Protection (WIP)](mandatory-settings-for-wip.md) -### [Testing scenarios for Windows Information Protection (WIP)](testing-scenarios-for-wip.md) -### [Limitations while using Windows Information Protection (WIP)](limitations-with-wip.md) ### [General guidance and best practices for Windows Information Protection (WIP)](guidance-and-best-practices-wip.md) +#### [Mandatory tasks and settings required to turn on Windows Information Protection (WIP)](mandatory-settings-for-wip.md) #### [Enlightened apps for use with Windows Information Protection (WIP)](enlightened-microsoft-apps-and-wip.md) #### [Unenlightened and enlightened app behavior while using Windows Information Protection (WIP)](app-behavior-with-wip.md) -#### [Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP)](recommended-network-definitions-for-wip.md) -#### [Using Outlook Web Access with Windows Information Protection (WIP)](using-owa-with-wip.md) +#### [Testing scenarios for Windows Information Protection (WIP)](testing-scenarios-for-wip.md) +#### [Limitations while using Windows Information Protection (WIP)](limitations-with-wip.md) ## [Use Windows Event Forwarding to help with intrusion detection](use-windows-event-forwarding-to-assist-in-instrusion-detection.md) ## [Override Process Mitigation Options to help enforce app-related security policies](override-mitigation-options-for-app-related-security-policies.md) ## [VPN technical guide](vpn-guide.md) @@ -697,16 +694,16 @@ ##### [Smart Cards Debugging Information](smart-card-debugging-information.md) ##### [Smart Card Group Policy and Registry Settings](smart-card-group-policy-and-registry-settings.md) ##### [Smart Card Events](smart-card-events.md) -### [Trusted Platform Module](trusted-platform-module-top-node.md) -#### [Trusted Platform Module Overview](trusted-platform-module-overview.md) +### [Trusted Platform Module](trusted-platform-module-overview.md) #### [TPM fundamentals](tpm-fundamentals.md) #### [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) -#### [Back up the TPM recovery information to AD DS](backup-tpm-recovery-information-to-ad-ds.md) +#### [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md) +#### [Backup the TPM recovery Information to AD DS](backup-tpm-recovery-information-to-ad-ds.md) #### [Manage TPM commands](manage-tpm-commands.md) #### [Manage TPM lockout](manage-tpm-lockout.md) #### [Change the TPM owner password](change-the-tpm-owner-password.md) -#### [View status, clear, or troubleshoot the TPM](initialize-and-configure-ownership-of-the-tpm.md) -#### [Understanding PCR banks on TPM 2.0 devices](switch-pcr-banks-on-tpm-2-0-devices.md) +#### [Initialize and configure ownership of the TPM](initialize-and-configure-ownership-of-the-tpm.md) +#### [Switch PCR banks on TPM 2.0 devices](switch-pcr-banks-on-tpm-2-0-devices.md) #### [TPM recommendations](tpm-recommendations.md) ### [User Account Control](user-account-control-overview.md) #### [How User Account Control works](how-user-account-control-works.md) @@ -743,12 +740,10 @@ ##### [Investigate a domain](investigate-domain-windows-defender-advanced-threat-protection.md) ##### [Manage alerts](manage-alerts-windows-defender-advanced-threat-protection.md) #### [Windows Defender ATP settings](settings-windows-defender-advanced-threat-protection.md) -#### [Windows Defender ATP service status](service-status-windows-defender-advanced-threat-protection.md) #### [Configure SIEM tools to consume alerts](configure-siem-windows-defender-advanced-threat-protection.md) ##### [Configure an Azure Active Directory application for SIEM integration](configure-aad-windows-defender-advanced-threat-protection.md) ##### [Configure Splunk to consume Windows Defender ATP alerts](configure-splunk-windows-defender-advanced-threat-protection.md) ##### [Configure HP ArcSight to consume Windows Defender ATP alerts](configure-arcsight-windows-defender-advanced-threat-protection.md) -#### [Configure email notifications](configure-email-notifications-windows-defender-advanced-threat-protection.md) #### [Troubleshoot Windows Defender ATP](troubleshoot-windows-defender-advanced-threat-protection.md) #### [Review events and errors on endpoints with Event Viewer](event-error-codes-windows-defender-advanced-threat-protection.md) #### [Windows Defender compatibility](defender-compatibility-windows-defender-advanced-threat-protection.md) @@ -876,6 +871,4 @@ ### [Microsoft Passport guide](microsoft-passport-guide.md) ### [Windows 10 Mobile security guide](windows-10-mobile-security-guide.md) ### [Windows 10 security overview](windows-10-security-guide.md) -### [Windows 10 credential theft mitigation guide abstract](windows-credential-theft-mitigation-guide-abstract.md) -### [How to use single sign-on (SSO) over VPN and Wi-Fi connections](how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md) ## [Change history for Keep Windows 10 secure](change-history-for-keep-windows-10-secure.md) diff --git a/windows/keep-secure/access-this-computer-from-the-network.md b/windows/keep-secure/access-this-computer-from-the-network.md index 0d93c1d879..1cb598fcfd 100644 --- a/windows/keep-secure/access-this-computer-from-the-network.md +++ b/windows/keep-secure/access-this-computer-from-the-network.md @@ -1,5 +1,5 @@ --- -title: Access this computer from the network - security policy setting (Windows 10) +title: Access this computer from the network (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Access this computer from the network security policy setting. ms.assetid: f6767bc2-83d1-45f1-847c-54f5362db022 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Access this computer from the network - security policy setting +# Access this computer from the network **Applies to** - Windows 10 diff --git a/windows/keep-secure/accounts-guest-account-status.md b/windows/keep-secure/accounts-guest-account-status.md index 527a1357c4..f9054008ac 100644 --- a/windows/keep-secure/accounts-guest-account-status.md +++ b/windows/keep-secure/accounts-guest-account-status.md @@ -1,5 +1,5 @@ --- -title: Accounts Guest account status - security policy setting (Windows 10) +title: Accounts Guest account status (Windows 10) description: Describes the best practices, location, values, and security considerations for the Accounts Guest account status security policy setting. ms.assetid: 07e53fc5-b495-4d02-ab42-5b245d10d0ce ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Accounts: Guest account status - security policy setting +# Accounts: Guest account status **Applies to** - Windows 10 diff --git a/windows/keep-secure/accounts-rename-guest-account.md b/windows/keep-secure/accounts-rename-guest-account.md index c77030e875..aa06c480c3 100644 --- a/windows/keep-secure/accounts-rename-guest-account.md +++ b/windows/keep-secure/accounts-rename-guest-account.md @@ -1,5 +1,5 @@ --- -title: Accounts Rename guest account - security policy setting (Windows 10) +title: Accounts Rename guest account (Windows 10) description: Describes the best practices, location, values, and security considerations for the Accounts Rename guest account security policy setting. ms.assetid: 9b8052b4-bbb9-4cc1-bfee-ce25390db707 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Accounts: Rename guest account - security policy setting +# Accounts: Rename guest account **Applies to** - Windows 10 diff --git a/windows/keep-secure/ad-ds-schema-extensions-to-support-tpm-backup.md b/windows/keep-secure/ad-ds-schema-extensions-to-support-tpm-backup.md index 0efd393b76..9ce1e76918 100644 --- a/windows/keep-secure/ad-ds-schema-extensions-to-support-tpm-backup.md +++ b/windows/keep-secure/ad-ds-schema-extensions-to-support-tpm-backup.md @@ -1,5 +1,289 @@ --- -title: AD DS schema extensions to support TPM backup -redirect_url: https://technet.microsoft.com/library/jj635854.aspx +title: AD DS schema extensions to support TPM backup (Windows 10) +description: This topic provides more details about this change and provides template schema extensions that you can incorporate into your organization. +ms.assetid: beb7097c-e674-4eab-b8e2-6f67c85d1f3f +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +author: brianlic-msft --- +# AD DS schema extensions to support TPM backup + +**Applies to** +- Windows 10, version 1511 +- Windows 10, version 1507 + +**Does not apply to** +- Windows 10, version 1607 or later + +This topic provides more details about this change and provides template schema extensions that you can incorporate into your organization. + +## Why a schema extension is needed + +The TPM owner authorization value is now stored in a separate object which is linked to the Computer object. This value was stored as a property in the Computer object itself for the default Windows Server 2008 R2 schema. Windows Server 2012 domain controllers have the default schema to backup TPM owner authorization information in the separate object. If you are not upgrading your domain controller to Windows Server 2012, you need to extend the schema to support this change. If Active Directory backup of the TPM owner authorization value is enabled in a Windows Server 2008 R2 environment without extending the schema, the TPM provisioning will fail and the TPM will remain in a Not Ready state for computers running Windows 8. The following are the two schema extensions that you can use to bring your Windows Server 2008 R2 domain to parity with Windows Server 2012: + +### TpmSchemaExtension.ldf + +This schema extension brings parity with the Windows Server 2012 schema and is required if you want to store the TPM owner authorization value for a computer running Windows 8 in a Windows Server 2008 R2 AD DS domain. With this extension the TPM owner authorization information will be stored in a separate TPM object linked to the corresponding computer object. + +``` syntax +#=============================================================================== +# +# Active Directory Domain Services schema extension for +# BitLocker Drive Encryption and Trusted Platform Module (TPM) recovery +# +# This file contains attributes and class objects that enable Windows Server +# 2008 and Windows Server 2008 R2 domain controllers to store TPM recovery +# information in a new, TPM-specific location. +# +# Change History: +# 07/2010 - Created +# +# To extend the schema, use the LDIFDE tool on the schema master of the forest. +# +# Sample command: +# ldifde -i -v -f TPMSchemaExtension.ldf -c "DC=X" "DC=nttest,dc=microsoft,dc=com" -k -j . +# +# For more information on LDIFDE tool, see +# http://support.microsoft.com/default.aspx?scid=kb;en-us;237677 +# +#=============================================================================== +#=============================================================================== +# New schema attributes +#=============================================================================== +# +# ms-TPM-Srk-Pub-Thumbprint +# GUID: 19d706eb-4d76-44a2-85d6-1c342be3be37 +# +dn: CN=ms-TPM-Srk-Pub-Thumbprint,CN=Schema,CN=Configuration,DC=X +changetype: add +objectClass: attributeSchema +ldapDisplayName: msTPM-SrkPubThumbprint +adminDisplayName: TPM-SrkPubThumbprint +adminDescription: This attribute contains the thumbprint of the SrkPub corresponding to a particular TPM. This helps to index the TPM devices in the directory. +attributeId: 1.2.840.113556.1.4.2107 +attributeSyntax: 2.5.5.10 +omSyntax: 4 +isSingleValued: TRUE +searchFlags: 11 +schemaIdGuid:: 6wbXGXZNokSF1hw0K+O+Nw== +showInAdvancedViewOnly: TRUE +isMemberOfPartialAttributeSet: FALSE +rangeUpper: 20 +# +# ms-TPM-Owner-Information-Temp +# GUID: c894809d-b513-4ff8-8811-f4f43f5ac7bc +# +dn: CN=ms-TPM-Owner-Information-Temp,CN=Schema,CN=Configuration,DC=X +changetype: add +objectClass: attributeSchema +ldapDisplayName: msTPM-OwnerInformationTemp +adminDisplayName: TPM-OwnerInformationTemp +adminDescription: This attribute contains temporary owner information for a particular TPM. +attributeId: 1.2.840.113556.1.4.2108 +attributeSyntax: 2.5.5.12 +omSyntax: 64 +isSingleValued: TRUE +searchFlags: 640 +rangeUpper: 128 +schemaIdGuid:: nYCUyBO1+E+IEfT0P1rHvA== +showInAdvancedViewOnly: TRUE +isMemberOfPartialAttributeSet: FALSE +# +# ms-TPM-Tpm-Information-For-Computer +# GUID: ea1b7b93-5e48-46d5-bc6c-4df4fda78a35 +# +dn: CN=ms-TPM-Tpm-Information-For-Computer,CN=Schema,CN=Configuration,DC=X +changetype: add +objectClass: attributeSchema +ldapDisplayName: msTPM-TpmInformationForComputer +adminDisplayName: TPM-TpmInformationForComputer +adminDescription: This attribute links a Computer object to a TPM object. +attributeId: 1.2.840.113556.1.4.2109 +attributeSyntax: 2.5.5.1 +omSyntax: 127 +isSingleValued: TRUE +searchFlags: 16 +omObjectClass:: KwwCh3McAIVK +schemaIdGuid:: k3sb6khe1Ua8bE30/aeKNQ== +showInAdvancedViewOnly: TRUE +isMemberOfPartialAttributeSet: FALSE +linkId: 2182 +# +# ms-TPM-TpmInformation-For-Computer-BL +# GUID: 14fa84c9-8ecd-4348-bc91-6d3ced472ab7 +# +dn: CN=ms-TPM-Tpm-Information-For-Computer-BL,CN=Schema,CN=Configuration,DC=X +changetype: add +objectClass: attributeSchema +ldapDisplayName: msTPM-TpmInformationForComputerBL +adminDisplayName: TPM-TpmInformationForComputerBL +adminDescription: This attribute links a TPM object to the Computer objects associated with it. +attributeId: 1.2.840.113556.1.4.2110 +attributeSyntax: 2.5.5.1 +omSyntax: 127 +isSingleValued: FALSE +searchFlags: 0 +omObjectClass:: KwwCh3McAIVK +schemaIdGuid:: yYT6FM2OSEO8kW087Ucqtw== +showInAdvancedViewOnly: TRUE +systemOnly: TRUE +linkId: 2183 +# +# Commit the new attributes +# +dn: +changetype: modify +add: schemaUpdateNow +schemaUpdateNow: 1 +- +# +# Modify the Computer schema to support the TPM link +# +dn: CN=computer,CN=Schema,CN=Configuration,DC=X +changetype: modify +add: mayContain +mayContain: msTPM-TpmInformationForComputer +- +# +# Commit the modification to the computer class +# +dn: +changetype: modify +add: schemaUpdateNow +schemaUpdateNow: 1 +- +#=============================================================================== +# New schema classes +#=============================================================================== +# +# ms-TPM-Information-Objects-Container +# GUID: e027a8bd-6456-45de-90a3-38593877ee74 +# +dn: CN=ms-TPM-Information-Objects-Container,CN=Schema,CN=Configuration,DC=X +changetype: add +objectClass: classSchema +ldapDisplayName: msTPM-InformationObjectsContainer +adminDisplayName: TPM-InformationObjectsContainer +adminDescription: Container for TPM objects. +governsID: 1.2.840.113556.1.5.276 +objectClassCategory: 1 +subClassOf: top +systemMustContain: cn +systemPossSuperiors: domain +systemPossSuperiors: domainDNS +schemaIdGUID:: vagn4FZk3kWQozhZOHfudA== +defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;LOLCCCRP;;;DC) +defaultHidingValue: TRUE +defaultObjectCategory: CN=ms-TPM-Information-Objects-Container,CN=Schema,CN=Configuration,DC=X +# +# ms-TPM-Information-Object +# GUID: 85045b6a-47a6-4243-a7cc-6890701f662c +# +# NOTE: If the 'defaultSecurityDescriptor' value below is changed, +# also change the other '.ldf' files in this directory, as appropriate. +# +dn: CN=ms-TPM-Information-Object,CN=Schema,CN=Configuration,DC=X +changetype: add +objectClass: classSchema +ldapDisplayName: msTPM-InformationObject +adminDisplayName: TPM-InformationObject +adminDescription: This class contains recovery information for a Trusted Platform Module (TPM) device. +governsID: 1.2.840.113556.1.5.275 +objectClassCategory: 1 +subClassOf: top +systemMustContain: msTPM-OwnerInformation +systemMayContain: msTPM-SrkPubThumbprint +systemMayContain: msTPM-OwnerInformationTemp +systemPossSuperiors: 1.2.840.113556.1.5.276 +schemaIdGUID:: alsEhaZHQ0KnzGiQcB9mLA== +defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLO;;;DC)(A;;WP;;;CO) +defaultHidingValue: TRUE +defaultObjectCategory: CN=ms-TPM-Information-Object,CN=Schema,CN=Configuration,DC=X +# +# NOTE: If the 'defaultSecurityDescriptor' value above is changed, +# also change the other '.ldf' files in this directory, as appropriate. +# +# +# Commit the new TPM object class +# +dn: +changetype: modify +add: schemaUpdateNow +schemaUpdateNow: 1 +- +#=============================================================================== +# New objects +#=============================================================================== +# +# Add the TPM container to its location in the directory +# +dn: CN=TPM Devices,DC=X +changetype: add +objectClass: msTPM-InformationObjectsContainer +``` + +You should be aware that only the Computer object that has created the TPM object can update it. This means that any subsequent updates to the TPM objects will not succeed in dual boot scenarios or scenarios where the computer is reimaged resulting in a new AD computer object being created. If you are planning to support such scenarios, you will need to update the schema further as shown in the schema extension example, TpmSchemaExtensionACLChanges.ldf. + +### TpmSchemaExtensionACLChanges.ldf + +This schema update modifies the ACLs on the TPM object to be less restrictive so that any subsequent operating system which takes ownership of the computer object can update the owner authorization value in AD DS. +> **Important**  After implementing this schema update, any computer in the domain can update the OwnerAuth of the TPM object (although it cannot read the OwnerAuth). When using this extension, perform a regular backup of the TPM objects and enable auditing to track the changes for these objects. +  +``` syntax +#=============================================================================== +# +# Active Directory Domain Services schema extension for +# BitLocker Drive Encryption and Trusted Platform Module (TPM) recovery +# +# This file modifies a class object that enables Windows Server 2008 +# and Windows Server 2008 R2 domain controllers to store TPM recovery +# information in a new, TPM-specific location. +# +# This file converts the standard schema extension in which only the creator +# of an 'ms-TPM-Information-Object' can write to the object to the Open +# schema extension in which any Domain Computer can write to the object. +# +# This conversion does not apply to any 'ms-TPM-Information-Object' that +# was created before the conversion. +# +# Change History: +# 12/2011 - Created +# +# To change the schema, use the LDIFDE tool on the schema master of the forest. +# +# Sample command: +# ldifde -i -v -f TpmSchemaExtensionACLChanges.ldf +# -c "DC=X" "DC=nttest,dc=microsoft,dc=com" -k -j . +# +# For more information on LDIFDE tool, see +# http://support.microsoft.com/default.aspx?scid=kb;en-us;237677 +# +#=============================================================================== +# +# Modify the TPM-Information-Object class schema 'defaultSecurityDescriptor' to +# allow any Domain Computer to write its properties (including the TPM OwnerAuth +# value) from allowing only the creating Computer object to write its properties +# +# NOTE: Keep any changes to the 'defaultSecurityDescriptor' value in synchronization +# with the value in the TPM-Information-Object class description in the +# 'TpmSchemaExtension.ldf' file +# +dn: CN=ms-TPM-Information-Object,CN=Schema,CN=Configuration,DC=X +changetype: modify +replace: defaultSecurityDescriptor +defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPLO;;;DC) +- +# +# Commit the modification to the TPM-Information-Object schema +# +dn: +changetype: modify +add: schemaUpdateNow +schemaUpdateNow: 1 +- +``` +  +  diff --git a/windows/keep-secure/add-apps-to-protected-list-using-custom-uri.md b/windows/keep-secure/add-apps-to-protected-list-using-custom-uri.md index 9176b41ff8..3565476277 100644 --- a/windows/keep-secure/add-apps-to-protected-list-using-custom-uri.md +++ b/windows/keep-secure/add-apps-to-protected-list-using-custom-uri.md @@ -19,8 +19,8 @@ localizationpriority: high You can add apps to your Windows Information Protection (WIP) protected app list using the Microsoft Intune custom URI functionality and AppLocker. For more info about how to create a custom URI using Intune, [Windows 10 custom policy settings in Microsoft Intune](https://go.microsoft.com/fwlink/p/?LinkID=691330). ->[!IMPORTANT] ->Results can be unpredictable if you configure your policy using both the UI and the Custom URI method together. We recommend using a single method for each policy. +>**Important**
    +Results can be unpredictable if you configure your policy using both the UI and the Custom URI method together. We recommend using a single method for each policy. ## Add Store apps 1. Go to the AppLocker UI by opening a command line window and running secpol.msc. The local security policy MMC snap-in opens showing the **Security Settings**. @@ -39,15 +39,13 @@ You can add apps to your Windows Information Protection (WIP) protected app list 5. In the **Rules Preferences** screen, keep the default settings, and then click **Next** to start generating the rules. - >[!NOTE] - >We recommend that you use **Publisher** rules because they only work with apps you've specifically defined and they can be configured to not require updating simply because a new version came out.

    If you can't use **Publisher** rules, we then recommend that you use **File hash** rules. **File hash** rules are a secure alternative that can be used on unsigned code. The primary disadvantage to **File hash** is that every time a binary changes (such as, through servicing updates or upgrades), you'll need to create a new rule. + >**Note**
    We recommend that you use **Publisher** rules because they only work with apps you've specifically defined and they can be configured to not require updating simply because a new version came out.

    If you can't use **Publisher** rules, we then recommend that you use **File hash** rules. **File hash** rules are a secure alternative that can be used on unsigned code. The primary disadvantage to **File hash** is that every time a binary changes (such as, through servicing updates or upgrades), you'll need to create a new rule. 6. In the **Review Rules** screen, look over your rules to make sure they’re right, and then click **Create** to add them to your collection of rules. 7. In the left pane, right-click **AppLocker**, click **Export Policies**, go to where you want to save the XML file and type a file name, click **Save**, and then clear your AppLocker rules. - >[!IMPORTANT] - >Be aware that what you're saving are the actual AppLocker rules using your local policy. You don't want to apply these rules to your employee devices, you just want to use them to create and export the XML content. You must delete the AppLocker rules before you apply your policy. + >**Important**
    Be aware that what you're saving are the actual AppLocker rules using your local policy. You don't want to apply these rules to your employee devices, you just want to use them to create and export the XML content. You must delete the AppLocker rules before you apply your policy. 8. Open the Intune administration console, and go to the **Policy** node, click **Add Policy** from the **Tasks** area, go to **Windows**, click the **Custom Configuration (Windows 10 Desktop and Mobile and later)** policy, click **Create and Deploy a Custom Policy**, and then click **Create Policy**. @@ -87,18 +85,16 @@ After saving the policy, you’ll need to deploy it to your employee’s devices 5. In the **Rules Preferences** screen, keep the default settings, and then click **Next** to start generating the rules. - >[!IMPORTANT] - >You can also use **Path** rules instead of the **File hash** if you have concerns about unsigned files potentially changing the hash value if they're updated in the future. + >**Important**
    You can also use **Path** rules instead of the **File hash** if you have concerns about unsigned files potentially changing the hash value if they're updated in the future. - >[!NOTE] - >We recommend that you use **Publisher** rules because they only work with apps you've specifically defined and they can be configured to not require updating simply because a new version came out.

    If you can't use **Publisher** rules, we then recommend that you use **File hash** rules. **File hash** rules are a secure alternative that can be used on unsigned code. The primary disadvantage to **File hash** is that every time a binary changes (such as, through servicing updates or upgrades), you'll need to create a new rule.

    Finally, there's **Path** rules. **Path** rules are easier to set up and maintain, but can let apps bypass Windows Information Protection (WIP) by simply renaming and moving an unallowed file to match one of the apps on the **Protected App** list. For example, if your **Path** rule says to allow `%PROGRAMFILES%/NOTEPAD.EXE`, it becomes possible to rename DisallowedApp.exe to Notepad.exe, move it into the specified path above, and have it suddenly be allowed. +

    + >**Note**
    We recommend that you use **Publisher** rules because they only work with apps you've specifically defined and they can be configured to not require updating simply because a new version came out.

    If you can't use **Publisher** rules, we then recommend that you use **File hash** rules. **File hash** rules are a secure alternative that can be used on unsigned code. The primary disadvantage to **File hash** is that every time a binary changes (such as, through servicing updates or upgrades), you'll need to create a new rule.

    Finally, there's **Path** rules. **Path** rules are easier to set up and maintain, but can let apps bypass Windows Information Protection (WIP) by simply renaming and moving an unallowed file to match one of the apps on the **Protected App** list. For example, if your **Path** rule says to allow `%PROGRAMFILES%/NOTEPAD.EXE`, it becomes possible to rename DisallowedApp.exe to Notepad.exe, move it into the specified path above, and have it suddenly be allowed. 6. In the **Review Rules** screen, look over your rules to make sure they’re right, and then click **Create** to add them to your collection of rules. 7. In the left pane, right-click **AppLocker**, click **Export Policies**, go to where you want to save the XML file and type a file name, click **Save**, and then clear your AppLocker rules. - >[!IMPORTANT] - >Be aware that what you're saving are the actual AppLocker rules using your local policy. You don't want to apply these rules to your employee devices, you just want to use them to create and export the XML content. You must delete the AppLocker rules before you apply your policy. + >**Important**
    Be aware that what you're saving are the actual AppLocker rules using your local policy. You don't want to apply these rules to your employee devices, you just want to use them to create and export the XML content. You must delete the AppLocker rules before you apply your policy. 8. Open the Intune administration console, and go to the **Policy** node, click **Add Policy** from the **Tasks** area, go to **Windows**, click the **Custom Configuration (Windows 10 Desktop and Mobile and later)** policy, click **Create and Deploy a Custom Policy**, and then click **Create Policy**. @@ -122,10 +118,7 @@ After saving the policy, you’ll need to deploy it to your employee’s devices After saving the policy, you’ll need to deploy it to your employee’s devices. For more info, see the [Deploy your Windows Information Protection (WIP) policy](deploy-wip-policy-using-intune.md) topic. ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). - -## Related topics +##Related topics - [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) - [Deploy your Windows Information Protection (WIP) policy](deploy-wip-policy-using-intune.md) - [Create and deploy a VPN policy for Windows Information Protection (WIP) using Microsoft Intune](create-vpn-and-wip-policy-using-intune.md) diff --git a/windows/keep-secure/allow-log-on-locally.md b/windows/keep-secure/allow-log-on-locally.md index 9e4831a223..3cbeacb088 100644 --- a/windows/keep-secure/allow-log-on-locally.md +++ b/windows/keep-secure/allow-log-on-locally.md @@ -1,5 +1,5 @@ --- -title: Allow log on locally - security policy setting (Windows 10) +title: Allow log on locally (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Allow log on locally security policy setting. ms.assetid: d9e5e1f3-3bff-4da7-a9a2-4bb3e0c79055 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Allow log on locally - security policy setting +# Allow log on locally **Applies to** - Windows 10 diff --git a/windows/keep-secure/app-behavior-with-wip.md b/windows/keep-secure/app-behavior-with-wip.md index bf932d459d..55939649d4 100644 --- a/windows/keep-secure/app-behavior-with-wip.md +++ b/windows/keep-secure/app-behavior-with-wip.md @@ -129,6 +129,3 @@ This table includes info about how enlightened apps might behave, based on your - ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). diff --git a/windows/keep-secure/back-up-files-and-directories.md b/windows/keep-secure/back-up-files-and-directories.md index f338698789..6f6a7b8805 100644 --- a/windows/keep-secure/back-up-files-and-directories.md +++ b/windows/keep-secure/back-up-files-and-directories.md @@ -1,5 +1,5 @@ --- -title: Back up files and directories - security policy setting (Windows 10) +title: Back up files and directories (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Back up files and directories security policy setting. ms.assetid: 1cd6bdd5-1501-41f4-98b9-acf29ac173ae ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Back up files and directories - security policy setting +# Back up files and directories **Applies to** - Windows 10 diff --git a/windows/keep-secure/backup-tpm-recovery-information-to-ad-ds.md b/windows/keep-secure/backup-tpm-recovery-information-to-ad-ds.md index 10963dd930..3f72f93ba5 100644 --- a/windows/keep-secure/backup-tpm-recovery-information-to-ad-ds.md +++ b/windows/keep-secure/backup-tpm-recovery-information-to-ad-ds.md @@ -1,6 +1,6 @@ --- -title: Back up the TPM recovery information to AD DS (Windows 10) -description: This topic for the IT professional describes backup of Trusted Platform Module (TPM) information. +title: Backup the TPM recovery Information to AD DS (Windows 10) +description: This topic for the IT professional describes how to back up a computer’s Trusted Platform Module (TPM) information to Active Directory Domain Services (AD DS) so that you can use AD DS to administer the TPM from a remote computer. ms.assetid: 62bcec80-96a1-464e-8b3f-d177a7565ac5 ms.prod: w10 ms.mktglfcycl: deploy @@ -9,19 +9,556 @@ ms.pagetype: security author: brianlic-msft --- -# Back up the TPM recovery information to AD DS +# Backup the TPM recovery Information to AD DS **Applies to** - Windows 10, version 1511 - Windows 10, version 1507 **Does not apply to** +- Windows 10, version 1607 or later -- Windows 10, version 1607 or later +This topic for the IT professional describes how to back up a computer’s Trusted Platform Module (TPM) information to Active Directory Domain Services (AD DS) so that you can use AD DS to administer the TPM from a remote computer. -With Windows 10, versions 1511 and 1507, you can back up a computer’s Trusted Platform Module (TPM) information to Active Directory Domain Services (AD DS). By doing this, you can use AD DS to administer the TPM from a remote computer. The procedure is the same as it was for Windows 8.1. For more information, see [Backup the TPM Recovery Information to AD DS](https://technet.microsoft.com/library/dn466534(v=ws.11).aspx). +## About administering TPM remotely -## Related topics +Backing up the TPM owner information for a computer allows administrators in a domain to remotely configure the TPM security hardware on the local computer. For example, administrators might want to reset the TPM to the manufacturer’s defaults when they decommission or repurpose computers, without having to be present at the computer. -- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) -- [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) \ No newline at end of file +You can use AD DS to store TPM owner information for use in recovery situations where the TPM owner has forgotten the password or where you must take control of the TPM. There is only one TPM owner password per computer; therefore, the hash of the TPM owner password can be stored as an attribute of the computer object in AD DS. The attribute has the common name (CN) of **ms-TPM-OwnerInformation**. + +> **Note:**  The TPM owner authorization value is stored in AD DS, and it is present in a TPM owner password file as a SHA-1 hash of the TPM owner password, which is base 64–encoded. The actual owner password is not stored. +  +Domain controllers running Windows Server 2012 R2 or Windows Server 2012 include the required AD DS schema objects by default. However, if your domain controller is running Windows Server 2008 R2, you need to update the schema as described in [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md). + +This topic contains procedures, some of which are dependent on Visual Basic scripts, to recover TPM information and decommission TPM on remote computers. Sample scripts are available, which you can customize to meet the requirements of your environment. + +In this topic: + +1. [Check status of prerequisites](#bkmk-prereqs) +2. [Set permissions to back up password information](#bkmk-setperms) +3. [Configure Group Policy to back up TPM recovery information in AD DS](#bkmk-configuregp) +4. [Use AD DS to recover TPM information](#bkmk-useit) +5. [Sample scripts](#bkmk-adds-tpm-scripts) + +## Check status of prerequisites + +Before you begin your backup, ensure that the following prerequisites are met: + +1. All domain controllers that are accessible by client computers that will be using TPM services are running Windows Server 2012 R2, Windows Server 2012, or Windows Server 2008 R2 with the updated schema. + + > **Tip:**  For more info about the schema extensions that are required for a TPM backup in Active Directory domains that are running Windows Server 2008 R2, see [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md). +   +2. You have domain administrator rights in the target forest, or you are using an account that has been granted appropriate permissions to extend the schema for the target forest. Members of the Enterprise Admins or Schema Admins groups are examples of accounts that have the appropriate permissions. + +## Set permissions to back up password information + +This procedure uses the sample script [Add-TPMSelfWriteACE.vbs](#bkmk-add-tpmselfwriteace) to add an access control entry (ACE) so that backing up TPM recovery information is possible. A client computer cannot back up TPM owner information until this ACE is added. + +This script is run on the domain controller that you will use to administer the TPM recovery information, and it operates under the following assumptions: + +- You have domain administrator credentials to set permissions for the top-level domain object. +- Your target domain is the same as the domain for the user account that is running the script. For example, running the script as TESTDOMAIN\\admin will extend permissions for TESTDOMAIN. + + > **Note:**  You might need to modify the sample script if you want to set permissions for multiple domains, but you do not have domain administrator accounts for each of those domains. Find the variable **strPathToDomain** in the script, and modify it for your target domain, for example: + `LDAP://DC=testdomain,DC=nttest,DC=microsoft,DC=com` +   +- Your domain is configured so that permissions are inherited from the top-level domain object to targeted computer objects. + + Permissions will not take effect if any container in the hierarchy does not allow inherited permissions. By default, permissions inheritance is set in AD DS. If you are not sure whether your configuration differs from this default, you can continue with the setup steps to set the permissions. + You can then verify your configuration as described later in this topic. Or you can click the **Effective Permissions** button while viewing the properties of a computer object, then check that **Self** is approved to write the **msTPM-OwnerInformation** attribute. + +**To add an ACE to allow TPM recovery information backup** + +1. Open the sample script **Add-TPMSelfWriteACE.vbs**. + + The script contains a permission extension, and you must modify the value of **strPathToDomain** by using your domain name. + +2. Save your modifications to the script. +3. Type the following at a command prompt, and then press ENTER: + + **cscript Add-TPMSelfWriteACE.vbs** + +This script adds a single ACE to the top-level domain object. The ACE is an inheritable permission that allows the computer (SELF) to write to the **ms-TPM-OwnerInformation** attribute for computer objects in the domain. +Complete the following procedure to check that the correct permissions are set and to remove TPM and BitLocker ACEs from the top-level domain, if necessary. + +**Manage ACEs configured on TPM schema objects** + +1. Open the sample script **List-ACEs.vbs**. +2. Modify **List-ACEs.vbs**. + + You must modify: + - Value of **strPathToDomain**: Use your domain name. + - Filter options: The script sets a filter to address BitLocker and TPM schema objects, so you must modify **If IsFilterActive ()** if you want to list or remove other schema objects. + +3. Save your modifications to the script. +4. Type the following at a command prompt, and then press ENTER: + + **cscript List-ACEs.vbs** + + With this script you can optionally remove ACEs from BitLocker and TPM schema objects on the top-level domain. + +## Configure Group Policy to back up TPM recovery information in AD DS + +Use these procedures to configure the [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#bkmk-tpmgp-addsbu) policy setting on a local computer. In a production environment, an efficient way to do this is to create or edit a Group Policy Object (GPO) that can target client computers in the domain. + +**To enable local policy setting to back up TPM recovery information to AD DS** + +1. Sign in to a domain-joined computer by using a domain account that is a member of the local Administrators group. +2. Open the Local Group Policy Editor (gpedit.msc), and in the console tree, navigate to **Computer Configuration\\Administrative Templates\\System**. +3. Click **Trusted Platform Module Services**. +4. Double-click **Turn on TPM backup to Active Directory Domain Services**. +5. Click **Enabled**, and then click **OK**. +> **Important:**  When this setting is enabled, the TPM owner password cannot be set or changed unless the computer is connected to the domain and AD DS backup of the TPM recovery information succeeds. +  +## Use AD DS to recover TPM information + +When you need to recover the TPM owner information from AD DS and use it to manage the TPM, you need to read the **ms-TPM-OwnerInformation** object from AD DS, and then manually create a TPM owner password backup file that can be supplied when TPM owner credentials are required. + +**To obtain TPM owner backup information from AD DS and create a password file** + +1. Sign in to a domain controller by using domain administrator credentials. +2. Copy the sample script file, [Get-TPMOwnerInfo.vbs](#bkmk-get-tpmownerinfo), to a location on your computer. +3. Open a Command Prompt window, and change the default location to the location of the sample script files you saved in the previous step. +4. At the command prompt, type **cscript Get-TPMOwnerInfo.vbs**. + + The expected output is a string that is the hash of the password that you created earlier. + > **Note:**  If you receive the error message, "Active Directory: The directory property cannot be found in the cache," verify that you are using a domain administrator account, which is required to read the **ms-TPM-OwnerInformation** attribute. + + The only exception to this requirement is that if users are the Creator Owner of computer objects that they join to the domain, they can possibly read the TPM owner information for their computer objects. +   +5. Open Notepad or another text editor, and copy the following code sample into the file, and replace *TpmOwnerPasswordHash* with the string that you recorded in the previous step. + + ``` syntax + + + +                 +                 TpmOwnerPasswordHash + + ``` +6. Save this file with a .tpm extension on a removable storage device, such as a USB flash drive. When you access the TPM, and you are required to provide the TPM owner password, choose the option for reading the password from a file and provide the path to this file. + +## Sample scripts + +You can use all or portions of the following sample scripts, which are used in the preceding procedures, to configure AD DS for backing up TPM recovery information. Customization is required depending on how your environment is configured. + +- [Add-TPMSelfWriteACE.vbs: Use to add the access control entry (ACE) for the TPM to AD DS](#bkmk-add-tpmselfwriteace) +- [List-ACEs.vbs: Use to list or remove the ACEs that are configured on BitLocker and TPM schema objects](#bkmk-list-aces) +- [Get-TPMOwnerInfo.vbs: Use to retrieve the TPM recovery information from AD DS for a particular computer](#bkmk-get-tpmownerinfo) + +### Add-TPMSelfWriteACE.vbs + +This script adds the access control entry (ACE) for the TPM to AD DS so that the computer can back up TPM recovery information in AD DS. + +``` syntax +'=============================================================================== +' +' This script demonstrates the addition of an Access Control Entry (ACE) +' to allow computers to write Trusted Platform Module (TPM) +' recovery information to Active Directory. +' +' This script creates a SELF ACE on the top-level domain object, and +' assumes that inheritance of ACL's from the top-level domain object to +' down-level computer objects are enabled. +' +' +' +' Last Updated: 12/05/2012 +' Last Reviewed: 12/05/2012 +' Microsoft Corporation +' +' Disclaimer +' +' The sample scripts are not supported under any Microsoft standard support program +' or service. The sample scripts are provided AS IS without warranty of any kind. +' Microsoft further disclaims all implied warranties including, without limitation, +' any implied warranties of merchantability or of fitness for a particular purpose. +' The entire risk arising out of the use or performance of the sample scripts and +' documentation remains with you. In no event shall Microsoft, its authors, or +' anyone else involved in the creation, production, or delivery of the scripts be +' liable for any damages whatsoever (including, without limitation, damages for loss +' of business profits, business interruption, loss of business information, or +' other pecuniary loss) arising out of the use of or inability to use the sample +' scripts or documentation, even if Microsoft has been advised of the possibility +' of such damages. +' +' Version 1.0.2 - Tested and re-released for Windows 8 and Windows Server 2012 +' +'=============================================================================== +' -------------------------------------------------------------------------------- +' Access Control Entry (ACE) constants +' -------------------------------------------------------------------------------- +'- From the ADS_ACETYPE_ENUM enumeration +Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &H5 'Allows an object to do something +'- From the ADS_ACEFLAG_ENUM enumeration +Const ADS_ACEFLAG_INHERIT_ACE = &H2 'ACE can be inherited to child objects +Const ADS_ACEFLAG_INHERIT_ONLY_ACE = &H8 'ACE does NOT apply to target (parent) object +'- From the ADS_RIGHTS_ENUM enumeration +Const ADS_RIGHT_DS_WRITE_PROP = &H20 'The right to write object properties +Const ADS_RIGHT_DS_CREATE_CHILD = &H1 'The right to create child objects +'- From the ADS_FLAGTYPE_ENUM enumeration +Const ADS_FLAG_OBJECT_TYPE_PRESENT = &H1 'Target object type is present in the ACE +Const ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT = &H2 'Target inherited object type is present in the ACE +' -------------------------------------------------------------------------------- +' TPM and FVE schema object GUID's +' -------------------------------------------------------------------------------- +'- ms-TPM-OwnerInformation attribute +SCHEMA_GUID_MS_TPM_OWNERINFORMATION = "{AA4E1A6D-550D-4E05-8C35-4AFCB917A9FE}" +'- ms-FVE-RecoveryInformation object +SCHEMA_GUID_MS_FVE_RECOVERYINFORMATION = "{EA715D30-8F53-40D0-BD1E-6109186D782C}" +'- Computer object +SCHEMA_GUID_COMPUTER = "{BF967A86-0DE6-11D0-A285-00AA003049E2}" +'Reference: "Platform SDK: Active Directory Schema" +' -------------------------------------------------------------------------------- +' Set up the ACE to allow write of TPM owner information +' -------------------------------------------------------------------------------- +Set objAce1 = createObject("AccessControlEntry") +objAce1.AceFlags = ADS_ACEFLAG_INHERIT_ACE + ADS_ACEFLAG_INHERIT_ONLY_ACE +objAce1.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT +objAce1.Flags = ADS_FLAG_OBJECT_TYPE_PRESENT + ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT +objAce1.Trustee = "SELF" +objAce1.AccessMask = ADS_RIGHT_DS_WRITE_PROP +objAce1.ObjectType = SCHEMA_GUID_MS_TPM_OWNERINFORMATION +objAce1.InheritedObjectType = SCHEMA_GUID_COMPUTER +' -------------------------------------------------------------------------------- +' NOTE: BY default, the "SELF" computer account can create +' BitLocker recovery information objects and write BitLocker recovery properties +' +' No additional ACE's are needed. +' -------------------------------------------------------------------------------- +' -------------------------------------------------------------------------------- +' Connect to Discretional ACL (DACL) for domain object +' -------------------------------------------------------------------------------- +Set objRootLDAP = GetObject("LDAP://rootDSE") +strPathToDomain = "LDAP://" & objRootLDAP.Get("defaultNamingContext") ' e.g. string dc=fabrikam,dc=com +Set objDomain = GetObject(strPathToDomain) +WScript.Echo "Accessing object: " + objDomain.Get("distinguishedName") +Set objDescriptor = objDomain.Get("ntSecurityDescriptor") +Set objDacl = objDescriptor.DiscretionaryAcl + +' -------------------------------------------------------------------------------- +' Add the ACEs to the Discretionary ACL (DACL) and set the DACL +' -------------------------------------------------------------------------------- +objDacl.AddAce objAce1 +objDescriptor.DiscretionaryAcl = objDacl +objDomain.Put "ntSecurityDescriptor", Array(objDescriptor) +objDomain.SetInfo +WScript.Echo "SUCCESS!" +``` + +### List-ACEs.vbs + +This script lists or removes the ACEs that are configured on BitLocker and TPM schema objects for the top-level domain. This enables you to verify that the expected ACEs have been added appropriately or to remove any ACEs that are related to BitLocker or the TPM, if necessary. + +``` syntax +'=============================================================================== +' +' This script lists the access control entries (ACE's) configured on +' Trusted Platform Module (TPM) and BitLocker Drive Encryption (BDE) schema objects +' for the top-level domain. +' +' You can use this script to check that the correct permissions have been set and +' to remove TPM and BitLocker ACE's from the top-level domain. +' +' +' Last Updated: 12/05/2012 +' Last Reviewed: 12/02/2012 +' +' Microsoft Corporation +' +' Disclaimer +' +' The sample scripts are not supported under any Microsoft standard support program +' or service. The sample scripts are provided AS IS without warranty of any kind. +' Microsoft further disclaims all implied warranties including, without limitation, +' any implied warranties of merchantability or of fitness for a particular purpose. +' The entire risk arising out of the use or performance of the sample scripts and +' documentation remains with you. In no event shall Microsoft, its authors, or +' anyone else involved in the creation, production, or delivery of the scripts be +' liable for any damages whatsoever (including, without limitation, damages for loss +' of business profits, business interruption, loss of business information, or +' other pecuniary loss) arising out of the use of or inability to use the sample +' scripts or documentation, even if Microsoft has been advised of the possibility +' of such damages. +' +' Version 1.0.2 - Tested and re-released for Windows 8 and Windows Server 2012 +' +'=============================================================================== +' -------------------------------------------------------------------------------- +' Usage +' -------------------------------------------------------------------------------- +Sub ShowUsage + Wscript.Echo "USAGE: List-ACEs" + Wscript.Echo "List access permissions for BitLocker and TPM schema objects" + Wscript.Echo "" + Wscript.Echo "USAGE: List-ACEs -remove" + Wscript.Echo "Removes access permissions for BitLocker and TPM schema objects" + WScript.Quit +End Sub +' -------------------------------------------------------------------------------- +' Parse Arguments +' -------------------------------------------------------------------------------- +Set args = WScript.Arguments +Select Case args.Count + + Case 0 + ' do nothing - checks for ACE's + removeACE = False + + Case 1 + If args(0) = "/?" Or args(0) = "-?" Then + ShowUsage + Else + If UCase(args(0)) = "-REMOVE" Then + removeACE = True + End If + End If + Case Else + ShowUsage +End Select +' -------------------------------------------------------------------------------- +' Configuration of the filter to show/remove only ACE's for BDE and TPM objects +' -------------------------------------------------------------------------------- +'- ms-TPM-OwnerInformation attribute +SCHEMA_GUID_MS_TPM_OWNERINFORMATION = "{AA4E1A6D-550D-4E05-8C35-4AFCB917A9FE}" +'- ms-FVE-RecoveryInformation object +SCHEMA_GUID_MS_FVE_RECOVERYINFORMATION = "{EA715D30-8F53-40D0-BD1E-6109186D782C}" +' Use this filter to list/remove only ACEs related to TPM and BitLocker +aceGuidFilter = Array(SCHEMA_GUID_MS_TPM_OWNERINFORMATION, _ + SCHEMA_GUID_MS_FVE_RECOVERYINFORMATION) +' Note to script source reader: +' Uncomment the following line to turn off the filter and list all ACEs +'aceGuidFilter = Array() +' -------------------------------------------------------------------------------- +' Helper functions related to the list filter for listing or removing ACE's +' -------------------------------------------------------------------------------- +Function IsFilterActive() + If Join(aceGuidFilter) = "" Then + IsFilterActive = False + Else + IsFilterActive = True + End If +End Function +Function isAceWithinFilter(ace) + aceWithinFilter = False ' assume first not pass the filter + For Each guid In aceGuidFilter + If ace.ObjectType = guid Or ace.InheritedObjectType = guid Then + isAceWithinFilter = True + End If + Next +End Function +Sub displayFilter + For Each guid In aceGuidFilter + WScript.echo guid + Next +End Sub +' -------------------------------------------------------------------------------- +' Connect to Discretional ACL (DACL) for domain object +' -------------------------------------------------------------------------------- +Set objRootLDAP = GetObject("LDAP://rootDSE") +strPathToDomain = "LDAP://" & objRootLDAP.Get("defaultNamingContext") ' e.g. dc=fabrikam,dc=com +Set domain = GetObject(strPathToDomain) +WScript.Echo "Accessing object: " + domain.Get("distinguishedName") +WScript.Echo "" +Set descriptor = domain.Get("ntSecurityDescriptor") +Set dacl = descriptor.DiscretionaryAcl +' -------------------------------------------------------------------------------- +' Show Access Control Entries (ACE's) +' -------------------------------------------------------------------------------- +' Loop through the existing ACEs, including all ACEs if the filter is not active +i = 1 ' global index +c = 0 ' found count - relevant if filter is active +For Each ace In dacl + If IsFilterActive() = False or isAceWithinFilter(ace) = True Then + ' note to script source reader: + ' echo i to show the index of the ACE + + WScript.echo "> AceFlags: " & ace.AceFlags + WScript.echo "> AceType: " & ace.AceType + WScript.echo "> Flags: " & ace.Flags + WScript.echo "> AccessMask: " & ace.AccessMask + WScript.echo "> ObjectType: " & ace.ObjectType + WScript.echo "> InheritedObjectType: " & ace.InheritedObjectType + WScript.echo "> Trustee: " & ace.Trustee + WScript.echo "" + if IsFilterActive() = True Then + c = c + 1 + ' optionally include this ACE in removal list if configured + ' note that the filter being active is a requirement since we don't + ' want to accidentally remove all ACEs + If removeACE = True Then + dacl.RemoveAce ace + End If + end if + End If + i = i + 1 +Next +' Display number of ACEs found +If IsFilterActive() = True Then + WScript.echo c & " ACE(s) found in " & domain.Get("distinguishedName") _ + & " related to BitLocker and TPM" 'note to script source reader: change this line if you configure your own +filter + ' note to script source reader: + ' uncomment the following lines if you configure your own filter + 'WScript.echo "" + 'WScript.echo "The following filter was active: " + 'displayFilter + 'Wscript.echo "" +Else + i = i - 1 + WScript.echo i & " total ACE(s) found in " & domain.Get("distinguishedName") + +End If +' -------------------------------------------------------------------------------- +' Optionally remove ACE's on a filtered list +' -------------------------------------------------------------------------------- +if removeACE = True and IsFilterActive() = True then + descriptor.DiscretionaryAcl = dacl + domain.Put "ntSecurityDescriptor", Array(descriptor) + domain.setInfo + WScript.echo c & " ACE(s) removed from " & domain.Get("distinguishedName") +else + if removeACE = True then + WScript.echo "You must specify a filter to remove ACEs from " & domain.Get("distinguishedName") + + end if +end if +``` + +### Get-TPMOwnerInfo.vbs + +This script retrieves TPM recovery information from AD DS for a particular computer so that you can verify that only domain administrators (or delegated roles) can read backed up TPM recovery information and verify that the information is being backed up correctly. + +``` syntax +'================================================================================= +' +' This script demonstrates the retrieval of Trusted Platform Module (TPM) +' recovery information from Active Directory for a particular computer. +' +' It returns the TPM owner information stored as an attribute of a +' computer object. +' +' Last Updated: 12/05/2012 +' Last Reviewed: 12/05/2012 +' +' Microsoft Corporation +' +' Disclaimer +' +' The sample scripts are not supported under any Microsoft standard support program +' or service. The sample scripts are provided AS IS without warranty of any kind. +' Microsoft further disclaims all implied warranties including, without limitation, +' any implied warranties of merchantability or of fitness for a particular purpose. +' The entire risk arising out of the use or performance of the sample scripts and +' documentation remains with you. In no event shall Microsoft, its authors, or +' anyone else involved in the creation, production, or delivery of the scripts be +' liable for any damages whatsoever (including, without limitation, damages for loss +' of business profits, business interruption, loss of business information, or +' other pecuniary loss) arising out of the use of or inability to use the sample +' scripts or documentation, even if Microsoft has been advised of the possibility +' of such damages. +' +' Version 1.0 - Initial release +' Version 1.1 - Updated GetStrPathToComputer to search the global catalog. +' Version 1.1.2 - Tested and re-released for Windows 8 and Windows Server 2012 +' +'================================================================================= +' -------------------------------------------------------------------------------- +' Usage +' -------------------------------------------------------------------------------- +Sub ShowUsage + Wscript.Echo "USAGE: Get-TpmOwnerInfo [Optional Computer Name]" + Wscript.Echo "If no computer name is specified, the local computer is assumed." + WScript.Quit +End Sub +' -------------------------------------------------------------------------------- +' Parse Arguments +' -------------------------------------------------------------------------------- +Set args = WScript.Arguments +Select Case args.Count + + Case 0 + ' Get the name of the local computer + Set objNetwork = CreateObject("WScript.Network") + strComputerName = objNetwork.ComputerName + + Case 1 + If args(0) = "/?" Or args(0) = "-?" Then + ShowUsage + Else + strComputerName = args(0) + End If + + Case Else + ShowUsage +End Select +' -------------------------------------------------------------------------------- +' Get path to Active Directory computer object associated with the computer name +' -------------------------------------------------------------------------------- +Function GetStrPathToComputer(strComputerName) + ' Uses the global catalog to find the computer in the forest + ' Search also includes deleted computers in the tombstone + Set objRootLDAP = GetObject("LDAP://rootDSE") + namingContext = objRootLDAP.Get("defaultNamingContext") ' e.g. string dc=fabrikam,dc=com + strBase = "" + + Set objConnection = CreateObject("ADODB.Connection") + Set objCommand = CreateObject("ADODB.Command") + objConnection.Provider = "ADsDSOOBject" + objConnection.Open "Active Directory Provider" + Set objCommand.ActiveConnection = objConnection + strFilter = "(&(objectCategory=Computer)(cn=" & strComputerName & "))" + strQuery = strBase & ";" & strFilter & ";distinguishedName;subtree" + objCommand.CommandText = strQuery + objCommand.Properties("Page Size") = 100 + objCommand.Properties("Timeout") = 100 + objCommand.Properties("Cache Results") = False + ' Enumerate all objects found. + Set objRecordSet = objCommand.Execute + If objRecordSet.EOF Then + WScript.echo "The computer name '" & strComputerName & "' cannot be found." + WScript.Quit 1 + End If + ' Found object matching name + Do Until objRecordSet.EOF + dnFound = objRecordSet.Fields("distinguishedName") + GetStrPathToComputer = "LDAP://" & dnFound + objRecordSet.MoveNext + Loop + ' Clean up. + Set objConnection = Nothing + Set objCommand = Nothing + Set objRecordSet = Nothing +End Function +' -------------------------------------------------------------------------------- +' Securely access the Active Directory computer object using Kerberos +' -------------------------------------------------------------------------------- +Set objDSO = GetObject("LDAP:") +strPath = GetStrPathToComputer(strComputerName) +WScript.Echo "Accessing object: " + strPath +Const ADS_SECURE_AUTHENTICATION = 1 +Const ADS_USE_SEALING = 64 '0x40 +Const ADS_USE_SIGNING = 128 '0x80 +Set objComputer = objDSO.OpenDSObject(strPath, vbNullString, vbNullString, _ + ADS_SECURE_AUTHENTICATION + ADS_USE_SEALING + ADS_USE_SIGNING) +' -------------------------------------------------------------------------------- +' Get the TPM owner information from the Active Directory computer object +' -------------------------------------------------------------------------------- +strOwnerInformation = objComputer.Get("msTPM-OwnerInformation") +WScript.echo "msTPM-OwnerInformation: " + strOwnerInformation +``` + +## Additional resources + +- [Trusted Platform Module technology overview](trusted-platform-module-overview.md) +- [TPM fundamentals](tpm-fundamentals.md) +- [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) +- [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) +- [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md) +- [Prepare your organization for BitLocker: Planning and Policies](http://technet.microsoft.com/library/jj592683.aspx), see TPM considerations diff --git a/windows/keep-secure/basic-audit-logon-events.md b/windows/keep-secure/basic-audit-logon-events.md index dd0764f2b5..143c150317 100644 --- a/windows/keep-secure/basic-audit-logon-events.md +++ b/windows/keep-secure/basic-audit-logon-events.md @@ -22,8 +22,6 @@ If you define this policy setting, you can specify whether to audit successes, a To set this value to **No auditing**, in the **Properties** dialog box for this policy setting, select the **Define these policy settings** check box and clear the **Success** and **Failure** check boxes. -For information about advanced security policy settings for logon events, see the [Logon/logoff](advanced-security-audit-policy-settings.md#logonlogoff) section in [Advanced security audit policy settings](advanced-security-audit-policy-settings.md). - ## Configure this audit setting You can configure this security setting by opening the appropriate policy under Computer Configuration\\Windows Settings\\Security Settings\\Local Policies\\Audit Policy. diff --git a/windows/keep-secure/bitlocker-basic-deployment.md b/windows/keep-secure/bitlocker-basic-deployment.md index fbc016705b..b83692c713 100644 --- a/windows/keep-secure/bitlocker-basic-deployment.md +++ b/windows/keep-secure/bitlocker-basic-deployment.md @@ -40,7 +40,7 @@ BitLocker encryption can be done using the following methods: ### Encrypting volumes using the BitLocker control panel -Encrypting volumes with the BitLocker control panel (click **Start**, type **bitlocker**, click **Manage BitLocker**) is how many users will utilize BitLocker. The name of the BitLocker control panel is BitLocker Drive Encryption. The BitLocker control panel supports encrypting operating system, fixed data and removable data volumes. The BitLocker control panel will organize available drives in the appropriate category based on how the device reports itself to Windows. Only formatted volumes with assigned drive letters will appear properly in the BitLocker control panel applet. +Encrypting volumes with the BitLocker control panel is how many users will utilize BitLocker. The name of the BitLocker control panel is BitLocker Drive Encryption. The BitLocker control panel supports encrypting operating system, fixed data and removable data volumes. The BitLocker control panel will organize available drives in the appropriate category based on how the device reports itself to Windows. Only formatted volumes with assigned drive letters will appear properly in the BitLocker control panel applet. To start encryption for a volume, select **Turn on BitLocker** for the appropriate drive to initialize the BitLocker Drive Encryption Wizard. BitLocker Drive Encryption Wizard options vary based on volume type (operating system volume or data volume). ### Operating system volume diff --git a/windows/keep-secure/bitlocker-countermeasures.md b/windows/keep-secure/bitlocker-countermeasures.md index 89261d666c..7e1f6c7414 100644 --- a/windows/keep-secure/bitlocker-countermeasures.md +++ b/windows/keep-secure/bitlocker-countermeasures.md @@ -23,9 +23,9 @@ The sections that follow provide more detailed information about the different t ### Protection before startup -Before Windows starts, you must rely on security features implemented as part of the device hardware, including TPM and Secure Boot. Fortunately, many modern computers feature TPM. +Before Windows starts, you must rely on security features implemented as part of the device hardware, including TPM andSecure Boot. Fortunately, many modern computers feature TPM. -#### Trusted Platform Module +**Trusted Platform Module** Software alone isn’t sufficient to protect a system. After an attacker has compromised software, the software might be unable to detect the compromise. Therefore, a single successful software compromise results in an untrusted system that might never be detected. Hardware, however, is much more difficult to modify. @@ -33,7 +33,7 @@ A TPM is a microchip designed to provide basic security-related functions, prima By binding the BitLocker encryption key with the TPM and properly configuring the device, it’s nearly impossible for an attacker to gain access to the BitLocker-encrypted data without obtaining an authorized user’s credentials. Therefore, computers with a TPM can provide a high level of protection against attacks that attempt to directly retrieve the BitLocker encryption key. For more info about TPM, see [Trusted Platform Module](trusted-platform-module-overview.md). -#### UEFI and Secure Boot +**UEFI and Secure Boot** No operating system can protect a device when the operating system is offline. For that reason, Microsoft worked closely with hardware vendors to require firmware-level protection against boot and rootkits that might compromise an encryption solution’s encryption keys. @@ -53,7 +53,7 @@ Using the digital signature, UEFI verifies that the bootloader was signed using If the bootloader passes these two tests, UEFI knows that the bootloader isn’t a bootkit and starts it. At this point, Trusted Boot takes over, and the Windows bootloader, using the same cryptographic technologies that UEFI used to verify the bootloader, then verifies that the Windows system files haven’t been changed. -Starting with Windows 8, certified devices must meet several requirements related to UEFI-based Secure Boot: +All Windows 8–certified devices must meet several requirements related to UEFI-based Secure Boot: - They must have Secure Boot enabled by default. - They must trust Microsoft’s certificate (and thus any bootloader Microsoft has signed). diff --git a/windows/keep-secure/bitlocker-frequently-asked-questions.md b/windows/keep-secure/bitlocker-frequently-asked-questions.md index 5761c7318a..6e3ae93c32 100644 --- a/windows/keep-secure/bitlocker-frequently-asked-questions.md +++ b/windows/keep-secure/bitlocker-frequently-asked-questions.md @@ -47,8 +47,6 @@ Yes, BitLocker supports multifactor authentication for operating system drives. ### What are the BitLocker hardware and software requirements? -For requirements, see [System requirements](https://technet.microsoft.com/itpro/windows/keep-secure/bitlocker-overview#system-requirements). - > **Note:**  Dynamic disks are not supported by BitLocker. Dynamic data volumes will not be displayed in the Control Panel. Although the operating system volume will always be displayed in the Control Panel, regardless of whether it is a Dynamic disk, if it is a dynamic disk it is cannot be protected by BitLocker.   ### Why are two partitions required? Why does the system drive have to be so large? @@ -200,9 +198,9 @@ Any number of internal, fixed data drives can be protected with BitLocker. On so ## Key management -### What is the difference between a recovery password, recovery key, PIN, enhanced PIN, and startup key? +### What is the difference between a TPM owner password, recovery password, recovery key, password, PIN, enhanced PIN, and startup key? -For tables that list and describe elements such as a recovery password, recovery key, and PIN, see [BitLocker key protectors](prepare-your-organization-for-bitlocker-planning-and-policies.md#bitlocker-key-protectors) and [BitLocker authentication methods](prepare-your-organization-for-bitlocker-planning-and-policies.md#bitlocker-authentication-methods). +There are multiple keys that can be generated and used by BitLocker. Some keys are required and some are optional protectors you can choose to use depending on the level of security you require. ### How can the recovery password and recovery key be stored? diff --git a/windows/keep-secure/bitlocker-group-policy-settings.md b/windows/keep-secure/bitlocker-group-policy-settings.md index 26cadf522b..8d3864a681 100644 --- a/windows/keep-secure/bitlocker-group-policy-settings.md +++ b/windows/keep-secure/bitlocker-group-policy-settings.md @@ -1509,6 +1509,7 @@ If the **Require BitLocker backup to AD DS** option is not selected, AD DS bac TPM initialization might be needed during the BitLocker setup. Enable the **Turn on TPM backup to Active Directory Domain Services** policy setting in **Computer Configuration\\Administrative Templates\\System\\Trusted Platform Module Services** to ensure that TPM information is also backed up. For more information about this setting, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md). +If you are using domain controllers running Windows Server 2003 with Service Pack 1, you must first set up appropriate schema extensions and access control settings on the domain before a backup to AD DS can succeed. For more info, see [Backup the TPM recovery Information to AD DS](backup-tpm-recovery-information-to-ad-ds.md). ### Choose default folder for recovery password diff --git a/windows/keep-secure/bitlocker-how-to-deploy-on-windows-server.md b/windows/keep-secure/bitlocker-how-to-deploy-on-windows-server.md index 8a9e7b2ab7..e57e269aff 100644 --- a/windows/keep-secure/bitlocker-how-to-deploy-on-windows-server.md +++ b/windows/keep-secure/bitlocker-how-to-deploy-on-windows-server.md @@ -14,7 +14,7 @@ author: brianlic-msft **Applies to** - Windows 10 -This topic for the IT professional explains how to deploy BitLocker on Windows Server 2012 and later. +This topic for the IT professional explains how to deploy BitLocker and Windows Server 2012 and later. For all Windows Server editions, BitLocker must be installed using Server Manager. However, you can still provision BitLocker before the server operating system is installed as part of your deployment. diff --git a/windows/keep-secure/bitlocker-how-to-enable-network-unlock.md b/windows/keep-secure/bitlocker-how-to-enable-network-unlock.md index 337c4d39e8..0155f5ed15 100644 --- a/windows/keep-secure/bitlocker-how-to-enable-network-unlock.md +++ b/windows/keep-secure/bitlocker-how-to-enable-network-unlock.md @@ -231,7 +231,7 @@ The following steps detail how to create a certificate template for use with Bit 1. Open the Certificates Template snap-in (certtmpl.msc). 2. Locate the User template. Right-click the template name and select **Duplicate Template**. -3. On the **Compatibility** tab, change the **Certification Authority** and **Certificate recipient** fields to Windows Server 2012 and Windows 8 respectively. Ensure the **Show resulting changes** dialog box is selected. +3. On the **Compatibility** tab, change the **Certification Authority** and **Certificate recipient** fields to Windows Server 2012 and Windows 8respectively. Ensure the **Show resulting changes** dialog box is selected. 4. Select the **General** tab of the template. The **Template display name** and **Template name** should clearly identify that the template will be used for Network Unlock. Clear the checkbox for the **Publish certificate in Active Directory** option. 5. Select the **Request Handling** tab. Select **Encryption** from the **Purpose** drop down menu. Ensure the **Allow private key to be exported** option is selected. 6. Select the **Cryptography** tab. Set the **Minimum key size** to 2048. (Any Microsoft cryptographic provider that supports RSA can be used for this template, but for simplicity and forward compatibility we recommend using the **Microsoft Software Key Storage Provider**.) diff --git a/windows/keep-secure/bitlocker-overview.md b/windows/keep-secure/bitlocker-overview.md index 2ffb869b8f..2921e55f01 100644 --- a/windows/keep-secure/bitlocker-overview.md +++ b/windows/keep-secure/bitlocker-overview.md @@ -42,7 +42,7 @@ BitLocker control panel, and they are appropriate to use for automated deploymen ## New and changed functionality -To find out what's new in BitLocker for Windows 10, see the [BitLocker](https://technet.microsoft.com/itpro/windows/whats-new/whats-new-windows-10-version-1507-and-1511#bitlocker) section in "What's new in Windows 10, versions 1507 and 1511." +To find out what's new in BitLocker for Windows 10, see [What's new in BitLocker?](../whats-new/bitlocker.md)   ## System requirements @@ -74,10 +74,9 @@ When installing the BitLocker optional component on a server you will also need | [BitLocker: How to enable Network Unlock](bitlocker-how-to-enable-network-unlock.md) | This topic for the IT professional describes how BitLocker Network Unlock works and how to configure it. | | [BitLocker: Use BitLocker Drive Encryption Tools to manage BitLocker](bitlocker-use-bitlocker-drive-encryption-tools-to-manage-bitlocker.md)| This topic for the IT professional describes how to use tools to manage BitLocker.| | [BitLocker: Use BitLocker Recovery Password Viewer](bitlocker-use-bitlocker-recovery-password-viewer.md) | This topic for the IT professional describes how to use the BitLocker Recovery Password Viewer. | -| [BitLocker Group Policy settings](bitlocker-group-policy-settings.md) | This topic for IT professionals describes the function, location, and effect of each Group Policy setting that is used to manage BitLocker. | | [BCD settings and BitLocker](bcd-settings-and-bitlocker.md) | This topic for IT professionals describes the BCD settings that are used by BitLocker.| | [BitLocker Recovery Guide](bitlocker-recovery-guide-plan.md)| This topic for IT professionals describes how to recover BitLocker keys from AD DS. | | [Protect BitLocker from pre-boot attacks](protect-bitlocker-from-pre-boot-attacks.md)| This detailed guide will help you understand the circumstances under which the use of pre-boot authentication is recommended for devices running Windows 10, Windows 8.1, Windows 8, or Windows 7; and when it can be safely omitted from a device’s configuration. | | [Protecting cluster shared volumes and storage area networks with BitLocker](protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md)| This topic for IT pros describes how to protect CSVs and SANs with BitLocker.| -If you're looking for info on how to use it with Windows 10 IoT Core, see [Enabling Secure Boot and BitLocker Device Encryption on Windows 10 IoT Core](https://developer.microsoft.com/windows/iot/docs/securebootandbitlocker). \ No newline at end of file +If you're looking for info on how to use it with Windows 10 IoT Core, see [Enabling Secure Boot and BitLocker Device Encryption on Windows 10 IoT Core](https://developer.microsoft.com/windows/iot/win10/SB_BL.htm). \ No newline at end of file diff --git a/windows/keep-secure/change-history-for-keep-windows-10-secure.md b/windows/keep-secure/change-history-for-keep-windows-10-secure.md index e5a7805ddf..759d44b4af 100644 --- a/windows/keep-secure/change-history-for-keep-windows-10-secure.md +++ b/windows/keep-secure/change-history-for-keep-windows-10-secure.md @@ -12,20 +12,6 @@ author: brianlic-msft # Change history for Keep Windows 10 secure This topic lists new and updated topics in the [Keep Windows 10 secure](index.md) documentation for [Windows 10 and Windows 10 Mobile](../index.md). -## January 2017 -|New or changed topic |Description | -|---------------------|------------| -|[Determine the Enterprise Context of an app running in Windows Information Protection (WIP)](wip-app-enterprise-context.md) |New | -|[Limitations while using Windows Information Protection (WIP)](limitations-with-wip.md) |Updated to include info about USB drives and Azure RMS (Windows Insider Program only) and to add more info about Work Folders and Offline files. | -|[Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP)](recommended-network-definitions-for-wip.md) |New | -|[Using Outlook Web Access with Windows Information Protection (WIP)](using-owa-with-wip.md) |New | - -## December 2016 -|New or changed topic |Description | -|---------------------|------------| -|[Create WMI Filters for the GPO](create-wmi-filters-for-the-gpo.md) |Added filter examples for Windows 10 and Windows Server 2016. | - - ## November 2016 | New or changed topic | Description | | --- | --- | diff --git a/windows/keep-secure/change-the-system-time.md b/windows/keep-secure/change-the-system-time.md index 0ca13c1625..e6f43e3f88 100644 --- a/windows/keep-secure/change-the-system-time.md +++ b/windows/keep-secure/change-the-system-time.md @@ -1,5 +1,5 @@ --- -title: Change the system time - security policy setting (Windows 10) +title: Change the system time (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Change the system time security policy setting. ms.assetid: f2f6637d-acbc-4352-8ca3-ec563f918e65 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Change the system time - security policy setting +# Change the system time **Applies to** - Windows 10 diff --git a/windows/keep-secure/change-the-time-zone.md b/windows/keep-secure/change-the-time-zone.md index 50067366d5..3eb72473a5 100644 --- a/windows/keep-secure/change-the-time-zone.md +++ b/windows/keep-secure/change-the-time-zone.md @@ -1,5 +1,5 @@ --- -title: Change the time zone - security policy setting (Windows 10) +title: Change the time zone (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Change the time zone security policy setting. ms.assetid: 3b1afae4-68bb-472f-a43e-49e300d73e50 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Change the time zone - security policy setting +# Change the time zone **Applies to** - Windows 10 diff --git a/windows/keep-secure/change-the-tpm-owner-password.md b/windows/keep-secure/change-the-tpm-owner-password.md index a8b0e386d3..50d9175eb2 100644 --- a/windows/keep-secure/change-the-tpm-owner-password.md +++ b/windows/keep-secure/change-the-tpm-owner-password.md @@ -12,35 +12,52 @@ author: brianlic-msft # Change the TPM owner password **Applies to** -- Windows 10, version 1511 -- Windows 10, version 1507 +- Windows 10 This topic for the IT professional describes how to change the password or PIN for the owner of the Trusted Platform Module (TPM) that is installed on your system. ## About the TPM owner password +Starting with Windows 10, version 1607 , Windows will not retain the TPM owner password when provisioning the TPM. The password will be set to a random high entropy value and then discarded. -Starting with Windows 10, version 1607, Windows will not retain the TPM owner password when provisioning the TPM. The password will be set to a random high entropy value and then discarded. +In order to retain the TPM owner password, you will need to set the registry key 'HKLM\Software\Policies\Microsoft\TPM' [REG_DWORD] 'OSManagedAuthLevel' to 4. The default value for this key is 2, and unless it is changed to 4 before the TPM is provisioned, the owner password will not be saved. Microsoft strongly recommends that you do not change the default value of this registry key in order to retain the owner password. -> [!IMPORTANT] -> Although the TPM owner password is not retained starting with Windows 10, version 1607, you can change a default registry key to retain it. However, we strongly recommend that you do not make this change. To retain the TPM owner password, set the registry key 'HKLM\\Software\\Policies\\Microsoft\\TPM' \[REG\_DWORD\] 'OSManagedAuthLevel' to 4. The default value for this key is 2, and unless it is changed to 4 before the TPM is provisioned, the owner password will not be saved. - -Only one owner password exists for each TPM. The TPM owner password allows the ability to enable, disable, or clear the TPM without having physical access to the computer, for example, by using the command-line tools remotely. The TPM owner password also allows manipulation of the TPM dictionary attack logic. Taking ownership of the TPM is performed by Windows as part of the provisioning process on each boot. Ownership can change when you share the password or clear your ownership of the TPM so someone else can initialize it. +Only one owner password exists for each TPM. The TPM owner password allows the ability to enable, disable, or clear the TPM without having physical access to the computer, for example, by using the command-line tools remotely. The TPM owner password also allows manipulation of the TPM dictionary attack logic. Taking ownership of the TPM is performed by Windows as part of the provisioning process on each boot. Ownership can change when you share the password or clear your ownership of the TPM so someone else can initialize it. Without the owner password you can still perform all the preceding actions by means of a physical presence confirmation from UEFI. -### Other TPM management options +**Other TPM management options** Instead of changing your owner password, you can also use the following options to manage your TPM: -- **Clear the TPM**   If you want to invalidate all of the existing keys that have been created since you took ownership of the TPM, you can clear it. For important precautions for this process, and instructions for completing it, see [Clear all the keys from the TPM](initialize-and-configure-ownership-of-the-tpm.md#clear-all-the-keys-from-the-tpm). +- **Clear the TPM**   If you want to invalidate all of the existing keys that have been created since you took ownership of the TPM, you can clear it. For more info, see [Initialize and Configure Ownership of the TPM](initialize-and-configure-ownership-of-the-tpm.md#bkmk-clear1). -- **Turn off the TPM**   With TPM 1.2 and Windows 10, versions 1507 and 1511, you can turn off the TPM. Do this if you want to keep all existing keys and data intact and disable the services that are provided by the TPM. For more info, see [Turn off the TPM](initialize-and-configure-ownership-of-the-tpm.md#turn-off-the-tpm). + >**Important:**  Clearing the TPM can result in the loss of data. To avoid data loss, make sure you have a backup or recovery method for any data protected or encrypted by the TPM. +   +- **Turn off the TPM**   If you want to keep all existing keys and data intact, and you want to disable the services that are provided by the TPM, you can turn it off. For more info, see [Initialize and Configure Ownership of the TPM](initialize-and-configure-ownership-of-the-tpm.md#bkmk-onoff). This option is only available for TPM 1.2. ## Change the TPM owner password -With Windows 10, version 1507 or 1511, if you have opted specifically to preserve the TPM owner password, you can use the saved password to change to a new password. +The following procedure provides the steps that are necessary to change the TPM owner password. -To change to a new TPM owner password, in TPM.msc, click **Change Owner Password**, and follow the instructions. You will be prompted to provide the owner password file or to type the password. Then you can create a new password, either automatically or manually, and save the password in a file or as a printout. +**To change the TPM owner password** + +If you have opted specifically to preserve the TPM owner password, you can use the saved password to change to a new password. + +1. Open the TPM MMC (tpm.msc). If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. +2. In the **Actions** pane, click **Change Owner Password**. +3. In the **Manage the TPM security hardware** dialog box, select a method to enter your current TPM owner password. + + - If you saved your TPM owner password on a removable storage device, insert it, and then click **I have the owner password file**. In the **Select backup file with the TPM owner password** dialog box, use **Browse** to navigate to the .tpm file that is saved on your removable storage device. Click **Open**, and then click **Create New Password**. + - If you do not have the removable storage device with your saved password, click **I want to enter the owner password**. In the **Type your TPM owner password** dialog box, enter your password (including hyphens), and click **Create New Password**. +4. On the **Create the TPM owner password** page, select a method for creating a new TPM owner password. + + 1. Click **Automatically create the password** to have a new owner password generated for you. + 2. Click **Manually create the password** if you want to specify a password. + >**Note:**  The TPM owner password must have a minimum of eight characters. +   +5. After the new password is created, you can choose **Save the password** to save the password in a password backup file on a removable storage device or **Print the password** to print a copy of the password for later reference. + +6. Click **Change password** to apply the new owner password to the TPM. ## Use the TPM cmdlets @@ -49,6 +66,6 @@ If you are using Windows PowerShell to manage your computers, you can also manag For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). -## Related topics +## Additional resources -- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) +For more info about TPM, see [Trusted Platform Module technology overview](trusted-platform-module-overview.md#bkmk-additionalresources). diff --git a/windows/keep-secure/choose-the-right-bitlocker-countermeasure.md b/windows/keep-secure/choose-the-right-bitlocker-countermeasure.md index 241eadd7f7..402c01f733 100644 --- a/windows/keep-secure/choose-the-right-bitlocker-countermeasure.md +++ b/windows/keep-secure/choose-the-right-bitlocker-countermeasure.md @@ -17,105 +17,19 @@ author: brianlic-msft This section outlines the best countermeasures you can use to protect your organization from bootkits and rootkits, brute force sign-in, Direct Memory Access (DMA) attacks, Hyberfil.sys attacks, and memory remanence attacks. You can use BitLocker to protect your Windows 10 PCs. Whichever operating system you’re using, Microsoft and Windows-certified devices provide countermeasures to address attacks and improve your data security. In most cases, this protection can be implemented without the need for pre-boot authentication. -Tables 1 and 2 summarize the recommended mitigations for different types of attacks against PCs running recent versions of Windows. The orange blocks indicate that the system requires additional configuration from the default settings. +Figures 2, 3, and 4 summarize the recommended mitigations for different types of attacks against PCs running recent versions of Windows. The orange blocks indicate that the system requires additional configuration from the default +settings. - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    Windows 8.1
    without TPM

    -

    Windows 8.1 Certified
    (with TPM)

    -

    Bootkits and
    Rootkits

    Without TPM, boot integrity checking is not available

    Secure by default when UEFI-based Secure Boot is enabled and a firmware password is required to change settings

    -

    Brute Force
    Sign-in

    Secure by default, and can be improved with account lockout Group Policy

    Secure by default, and can be improved with account lockout and device lockout Group Policy settings

    -

    DMA
    Attacks

    If policy is deployed, secure by default for all lost or stolen devices because new DMA devices are granted access only when an authorized user is signed in

    If policy is deployed, secure by default for all lost or stolen devices because new DMA devices are granted access only when an authorized user is signed in

    -

    Hyberfil.sys
    Attacks

    Secure by default; hyberfil.sys secured on encrypted volume

    Secure by default; hyberfil.sys secured on encrypted volume

    -

    Memory
    Remanence
    Attacks

    Password protect the firmware and disable booting from external media. If an attack is viable, consider pre-boot authentication

    Password protect the firmware and ensure Secure Boot is enabled. If an attack is viable, consider pre-boot authentication

    +![how to choose best countermeasures for windows 7](images/bitlockerprebootprotection-counterwin7.jpg) -**Table 1.**  How to choose the best countermeasures for Windows 8.1

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    Windows 10
    without TPM

    -

    Windows 10 Certified
    (with TPM)

    -

    Bootkits and
    Rootkits

    Without TPM, boot integrity checking is not available

    Secure by default when UEFI-based Secure Boot is enabled and a firmware password is required to change settings

    -

    Brute Force
    Sign-in

    Secure by default, and can be improved with account lockout Group Policy

    Secure by default, and can be improved with account lockout and device lockout Group Policy settings

    -

    DMA
    Attacks

    If policy is deployed, secure by default for all lost or stolen devices because new DMA devices are granted access only when an authorized user is signed in

    Secure by default; certified devices do not expose vulnerable DMA busses.
    Can be additionally secured by deploying policy to restrict DMA devices:

    - -
    -

    Hyberfil.sys
    Attacks

    Secure by default; hyberfil.sys secured on encrypted volume

    Secure by default; hyberfil.sys secured on encrypted volume

    -

    Memory
    Remanence
    Attacks

    Password protect the firmware and disable booting from external media. If an attack is viable, consider pre-boot authentication

    Password protect the firmware and ensure Secure Boot is enabled.
    The most effective mitigation, which we advise for high-security devices, is to configure a TPM+PIN protector, disable Standby power management, and shut down or hibernate the device before it leaves the control of an authorized user.

    +![how to choose countermeasures for windows 8](images/bitlockerprebootprotection-counterwin8.jpg) -**Table 2.**  How to choose the best countermeasures for Windows 10 +**Figure 3.** How to choose the best countermeasures for Windows 8 + +![how to choose countermeasures for windows 8.1](images/bitlockerprebootprotection-counterwin81.jpg) + +**Figure 4.** How to choose the best countermeasures for Windows 8.1 The latest InstantGo devices, primarily tablets, are designed to be secure by default against all attacks that might compromise the BitLocker encryption key. Other Windows devices can be, too. DMA port–based attacks, which represent the attack vector of choice, are not possible on InstantGo devices, because these port types are prohibited. The inclusion of DMA ports on even non-InstantGo devices is extremely rare on recent devices, particularly on mobile ones. This could change if Thunderbolt is broadly adopted, so IT should consider this when purchasing new devices. In any case DMA ports can be disabled entirely, which is an increasingly popular option because the use of DMA ports is infrequent in the non-developer space. diff --git a/windows/keep-secure/configure-aad-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-aad-windows-defender-advanced-threat-protection.md index d7147d12a9..65dcdf6805 100644 --- a/windows/keep-secure/configure-aad-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-aad-windows-defender-advanced-threat-protection.md @@ -24,7 +24,7 @@ localizationpriority: high You need to add an application in your Azure Active Directory (AAD) tenant then authorize the Windows Defender ATP Alerts Export application to communicate with it so that your security information and events management (SIEM) tool can consume alerts from Windows Defender ATP portal. -1. Login to the [Azure management portal](https://ms.portal.azure.com). +1. Login to the [Azure management portal](https://manage.windowsazure.com). 2. Select **Active Directory**. @@ -53,12 +53,14 @@ You need to add an application in your Azure Active Directory (AAD) tenant then 13. Click **Save** and copy the key in a safe place. You'll need this key to authenticate the client application on Azure Active Directory. -14. Open a web browser and connect to the following URL: `https://DataAccess-PRD.trafficmanager.net:444/api/FetchToken?clientId=f7c1acd8-0458-48a0-a662-dba6de049d1c&tenantId=&clientSecret=1234`
    - - An Azure login page appears. - > [!NOTE] - > - Replace *tenant ID* with your actual tenant ID. - > - Keep the *clientSecret* as is. This is a dummy value, but the parameter must appear. +14. Open a web browser and connect to the following URL:
    +```text +https://DataAccess-PRD.trafficmanager.net:444/api/FetchToken?clientId=f7c1acd8-0458-48a0-a662-dba6de049d1c&tenantId=&clientSecret=1234 +``` +An Azure login page appears. +> [!NOTE] +> - Replace *tenant ID* with your actual tenant ID. +> - Keep the client secret as is. This is a dummy value, but the parameter must appear. 15. Sign in with the credentials of a user from your tenant. @@ -78,37 +80,7 @@ You need to add an application in your Azure Active Directory (AAD) tenant then 23. Save the application changes. -After configuring the application in AAD, you'll need to obtain a refresh token. You'll need to use the token when you configure the connector for your SIEM tool in the next steps. The token lets the connector access Windows Defender ATP events to be consumed by your SIEM. - -## Obtain a refresh token using an events URL -Obtain a refresh token used to retrieve the Windows Defender Advanced Threat Protection events to your SIEM. This section provides information on how you can use an events URL to obtain the required refresh token. ->[!NOTE] ->For HP ArcSight, you can obtain a refresh token using the restutil tool. For more information, see [Configure HP ArcSight to consume alerts](configure-arcsight-windows-defender-advanced-threat-protection.md). - -### Before you begin -Get the following information from your Azure Active Directory (AAD) application by selecting the **View Endpoint** on the application configuration page: - - - OAuth 2 Client ID - - OAuth 2 Client secret - -You'll use these values to obtain a refresh token. - ->[!IMPORTANT] ->Before using the OAuth 2 Client secret described in the next steps, you **must** encode it. Use a URL encoder to transform the OAuth 2 client secret. - -### Obtain a refresh token -1. Open a web browser and connect to the following URL: `https://DataAccess-PRD.trafficmanager.net:444/api/FetchToken?clientId=&tenantId=&clientSecret=` - - >[!NOTE] - >- Replace the *client ID* value with the one you got from your AAD application. - >- Replace *tenant ID* with your actual tenant ID. - >- Replace *client secret* with your encoded client secret. The client secret **must** be pasted encoded. - -2. Click **Accept**. When you authenticate, a web page opens with your refresh token. - -3. Save the refresh token which you'll find it the ``value. You'll need this value when configuring your SIEM tool. - -After configuring your AAD application and generating a refresh token, you can proceed to configure your SIEM tool. +After configuring the application in AAD, you can continue to configure the SIEM tool that you want to use. ## Related topics - [Configure security information and events management (SIEM) tools to consume alerts](configure-siem-windows-defender-advanced-threat-protection.md) diff --git a/windows/keep-secure/configure-arcsight-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-arcsight-windows-defender-advanced-threat-protection.md index a682992574..614004d2dc 100644 --- a/windows/keep-secure/configure-arcsight-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-arcsight-windows-defender-advanced-threat-protection.md @@ -25,36 +25,26 @@ You'll need to configure HP ArcSight so that it can consume Windows Defender ATP ## Before you begin -- Get the following information from your Azure Active Directory (AAD) application by selecting **View Endpoint** on the application configuration page: +- Get the following information from your Azure Active Directory (AAD) application by selecting the **View Endpoint** on the application configuration page: - OAuth 2 Token refresh URL - OAuth 2 Client ID - OAuth 2 Client secret -- Download the [WDATP-connector.properties](http://download.microsoft.com/download/3/9/C/39C703C2-487C-4C3E-AFD8-14C2253C2F12/WDATP-connector.properties) file and update the following values: +- Create your OAUth 2 Client properties file or get it from your Windows Defender ATP contact. For more information, see the ArcSight FlexConnector Developer's guide. - - **client_ID**: OAuth 2 Client ID - - **client_secret**: OAuth 2 Client secret - - **auth_url**: ```https://login.microsoftonline.com/?resource=https%3A%2F%2FWDATPAlertExport.Seville.onmicrosoft.com ``` - - >[!NOTE] - >Replace *tenantID* with your tenant ID. - - - **token_url**: `https://login.microsoftonline.com//oauth2/token` - - >[!NOTE] - >Replace the *tenantID* value with your tenant ID. - - - **redirect_uri**: ```https://localhost:44300/wdatpconnector``` - - **scope**: Leave the value blank - -- Download the [WDATP-connector.jsonparser.properties](http://download.microsoft.com/download/0/8/A/08A4957D-0923-4353-B25F-395EAE363E8C/WDATP-connector.jsonparser.properties) file. This file is used to parse the information from Windows Defender ATP to HP ArcSight consumable format. -- Install the HP ArcSight REST FlexConnector package. You can find this in the HPE Software center. Install the package on a server that has access to the Internet. + > [!NOTE] + > **For the authorization URL**: Append the following to the value you got from the AAD app: ```?resource=https%3A%2F%2FWDATPAlertExport.Seville.onmicrosoft.com```
    + > **For the redirect_uri value use**: ```https://localhost:44300/wdatpconnector``` + > +- Get the *wdatp-connector.properties* file from your Windows Defender ATP contact. This file is used to parse the information from Windows Defender ATP to HP ArcSight consumable format. +- Install the HP ArcSight REST FlexConnector package on a server that has access to the Internet. +- Contact the Windows Defender ATP team to get your refresh token or follow the steps in the section "Run restutil to Obtain a Refresh Token for Connector Appliance/ArcSight Management Center" in the ArcSight FlexConnector Developer's guide. ## Configure HP ArcSight -The following steps assume that you have completed all the required steps in [Before you begin](#before-you-begin). For more information, see the ArcSight FlexConnector Developer's guide. +The following steps assume that you have completed all the required steps in [Before you begin](#before-you-begin). -1. Save the [WDATP-connector.jsonparser.properties file](http://download.microsoft.com/download/0/8/A/08A4957D-0923-4353-B25F-395EAE363E8C/WDATP-connector.jsonparser.properties) file into the connector installation folder. The +1. Copy the *wdatp-connector.jsonparser.properties* file into the `\current\user\agent\flexagent` folder of the connector installation folder. -2. Save the [WDATP-connector.properties](http://download.microsoft.com/download/3/9/C/39C703C2-487C-4C3E-AFD8-14C2253C2F12/WDATP-connector.properties) file into the `\current\user\agent\flexagent` folder of the connector installation folder. +2. Save the *wdatp-connector.properties* file into a folder of your choosing. 3. Open an elevated command-line: @@ -79,8 +69,7 @@ The following steps assume that you have completed all the required steps in [Be Type in the name of the client property file. It must match the client property file. Events URL - Depending on the location of your datacenter, select either the EU or the US URL:

    **For EU**: https://wdatp-alertexporter-eu.securitycenter.windows.com/api/alerts/?sinceTimeUtc=$START_AT_TIME -
    **For US:** https://wdatp-alertexporter-us.securitycenter.windows.com/api/alerts/?sinceTimeUtc=$START_AT_TIME + `https://DataAccess-PRD.trafficmanager.net:444/api/alerts` Authentication Type OAuth 2 @@ -89,8 +78,7 @@ The following steps assume that you have completed all the required steps in [Be Select *wdatp-connector.properties*. Refresh Token - You can use the Windows Defender ATP events URL or the restutil tool to get obtain a refresh token.
    For more information on getting your refresh token using the events URL, see [Obtain a refresh token](configure-aad-windows-defender-advanced-threat-protection.md#obtain-a-refresh-token).

    **To get your refresh token using the restutil tool:**
    a. Open a command prompt. Navigate to `C:\ArcSightSmartConnectors\\current\bin`.

    b. Type: `arcsight restutil token -config C:\ArcSightSmartConnectors_Prod\WDATP\WDATP-connector.properties`. A Web browser window will open.

    c. Type in your credentials then click on the password field to let the page redirect. In the login prompt, enter your credentials.

    d. A refresh token is shown in the command prompt.

    e. Paste the value in the form. - + Paste the refresh token that your Windows Defender ATP contact provided, or run the `restutil` tool to get it. diff --git a/windows/keep-secure/configure-email-notifications-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-email-notifications-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 19e99c915d..0000000000 --- a/windows/keep-secure/configure-email-notifications-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Configure email notifications in Windows Defender ATP -description: Send email notifications to specified recipients to receive new alerts based on severity with Windows Defender ATP on Windows 10 Enterprise, Pro, and Education editions. -keywords: email notifications, configure alert notifications, windows defender atp notifications, windows defender atp alerts, windows 10 enterprise, windows 10 education -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -author: mjcaparas -localizationpriority: high ---- - -# Configure email notifications - -**Applies to:** - -- Windows 10 Enterprise -- Windows 10 Education -- Windows 10 Pro -- Windows 10 Pro Education -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - -You can configure Windows Defender ATP to send email notifications to specified recipients for new alerts. This feature enables you to identify a group of individuals who will immediately be informed and can act on alerts based on their severity. - -> [!NOTE] -> Only users with full access can configure email notifications. - -You can set the alert severity levels that trigger notifications. When you turn enable the email notifications feature, it’s set to high and medium alerts by default. - -You can also add or remove recipients of the email notification. New recipients get notified about alerts encountered after they are added. For more information about alerts, see [View and organize the Alerts queue](alerts-queue-windows-defender-advanced-threat-protection.md). - -The email notification includes basic information about the alert and a link to the portal where you can do further investigation. - -## Set up email notifications for alerts -The email notifications feature is turned off by default. Turn it on to start receiving email notifications. - -1. On the navigation pane, select **Preferences Setup** > **Email Notifications**. -2. Toggle the setting between **On** and **Off**. -3. Select the alert severity level that you’d like your recipients to receive: - - **High** – Select this level to send notifications for high-severity alerts. - - **Medium** – Select this level to send notifications for medium-severity alerts. - - **Low** - Select this level to send notifications for low-severity alerts. -4. In **Email recipients to notify on new alerts**, type the email address then select the + sign. -5. Click **Save preferences** when you’ve completed adding all the recipients. - -Check that email recipients are able to receive the email notifications by selecting **Send test email**. All recipients in the list will receive the test email. - -## Remove email recipients - -1. Select the trash bin icon beside the email address you’d like to remove. -2. Click **Save preferences**. - -## Troubleshoot email notifications for alerts -This section lists various issues that you may encounter when using email notifications for alerts. - -**Problem:** Intended recipients report they are not getting the notifications. - -**Solution:** Make sure that the notifications are not blocked by email filters: - -1. Check that the Windows Defender ATP email notifications are not sent to the Junk Email folder. Mark them as Not junk. -2. Check that your email security product is not blocking the email notifications from Windows Defender ATP. -3. Check your email application rules that might be catching and moving your Windows Defender ATP email notifications. diff --git a/windows/keep-secure/configure-endpoints-mdm-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-endpoints-mdm-windows-defender-advanced-threat-protection.md index c842ea1668..b5b16faf54 100644 --- a/windows/keep-secure/configure-endpoints-mdm-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-endpoints-mdm-windows-defender-advanced-threat-protection.md @@ -37,14 +37,14 @@ For more information on using Windows Defender ATP CSP see, [WindowsAdvancedThre b. Select **Mobile Device Management/Microsoft Intune** > **Download package** and save the .zip file. - ![Endpoint onboarding](images/atp-mdm-onboarding-package.png) + ![Endpoint onboarding](images/atp-onboard-mdm.png) 2. Extract the contents of the .zip file to a shared, read-only location that can be accessed by the network administrators who will deploy the package. You should have a file named *WindowsDefenderATP.onboarding*. 3. Use the Microsoft Intune custom configuration policy to deploy the following supported OMA-URI settings. For more information on Microsoft Intune policy settings see, [Windows 10 policy settings in Microsoft Intune](https://docs.microsoft.com/en-us/intune/deploy-use/windows-10-policy-settings-in-microsoft-intune). a. Select **Policy** > **Configuration Policies** > **Add**. - ![Microsoft Intune Configuration Policies](images/atp-add-intune-policy.png) + ![Microsoft Intune Configuration Policies](images/atp-intune-add-policy.png) b. Under **Windows**, select **Custom Configuration (Windows 10 Desktop and Mobile and later)** > **Create and Deploy a Custom Policy** > **Create Policy**. ![Microsoft Intune Configuration Policies](images/atp-intune-new-policy.png) @@ -56,7 +56,7 @@ For more information on using Windows Defender ATP CSP see, [WindowsAdvancedThre ![Microsoft Intune add OMC-URI](images/atp-intune-add-oma.png) e. Type the following values then select **OK**: - + ![Microsoft Intune save policy](images/atp-intune-oma-uri-setting.png) - **Setting name**: Type a name for the setting. diff --git a/windows/keep-secure/configure-endpoints-sccm-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-endpoints-sccm-windows-defender-advanced-threat-protection.md index 8b193b46c6..8faa5dafdb 100644 --- a/windows/keep-secure/configure-endpoints-sccm-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-endpoints-sccm-windows-defender-advanced-threat-protection.md @@ -51,10 +51,6 @@ You can use System Center Configuration Manager’s existing functionality to cr a. Choose a predefined device collection to deploy the package to. -> [!NOTE] -> Onboarding couldn't be completed during Out-Of-Box Experience (OOBE). Make sure users pass OOBE after running Windows installation or upgrading. - - ### Configure sample collection settings For each endpoint, you can set a configuration value to state whether samples can be collected from the endpoint when a request is made through the Windows Defender ATP portal to submit a file for deep analysis. diff --git a/windows/keep-secure/configure-endpoints-script-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-endpoints-script-windows-defender-advanced-threat-protection.md index 50903ddc26..a2643013c6 100644 --- a/windows/keep-secure/configure-endpoints-script-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-endpoints-script-windows-defender-advanced-threat-protection.md @@ -45,7 +45,7 @@ You can also manually onboard individual endpoints to Windows Defender ATP. You 5. Press the **Enter** key or click **OK**. -For for information on how you can manually validate that the endpoint is compliant and correctly reports sensor data see, [Troubleshoot Windows Defender Advanced Threat Protection onboarding issues](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md). +For for information on how you can manually validate that the endpoint is compliant and correctly reports telemetry see, [Troubleshoot Windows Defender Advanced Threat Protection onboarding issues](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md). ## Configure sample collection settings For each endpoint, you can set a configuration value to state whether samples can be collected from the endpoint when a request is made through the Windows Defender ATP portal to submit a file for deep analysis. diff --git a/windows/keep-secure/configure-endpoints-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-endpoints-windows-defender-advanced-threat-protection.md index cca969958e..18864595b3 100644 --- a/windows/keep-secure/configure-endpoints-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-endpoints-windows-defender-advanced-threat-protection.md @@ -21,7 +21,7 @@ localizationpriority: high - Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Endpoints in your organization must be configured so that the Windows Defender ATP service can get sensor data from them. There are various methods and deployment tools that you can use to configure the endpoints in your organization. +Endpoints in your organization must be configured so that the Windows Defender ATP service can get telemetry from them. There are various methods and deployment tools that you can use to configure the endpoints in your organization. Windows Defender ATP supports the following deployment tools and methods: diff --git a/windows/keep-secure/configure-proxy-internet-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-proxy-internet-windows-defender-advanced-threat-protection.md index 38a3f1edc2..c24886d168 100644 --- a/windows/keep-secure/configure-proxy-internet-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-proxy-internet-windows-defender-advanced-threat-protection.md @@ -22,7 +22,7 @@ localizationpriority: high - Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) -The Window Defender ATP sensor requires Microsoft Windows HTTP (WinHTTP) to report sensor data and communicate with the Windows Defender ATP service. +The Window Defender ATP sensor requires Microsoft Windows HTTP (WinHTTP) to report telemetry and communicate with the Windows Defender ATP service. The embedded Windows Defender ATP sensor runs in system context using the LocalSystem account. The sensor uses Microsoft Windows HTTP Services (WinHTTP) to enable communication with the Windows Defender ATP cloud service. diff --git a/windows/keep-secure/configure-splunk-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-splunk-windows-defender-advanced-threat-protection.md index ee6c76e9b7..60e1c00469 100644 --- a/windows/keep-secure/configure-splunk-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-splunk-windows-defender-advanced-threat-protection.md @@ -25,9 +25,9 @@ You'll need to configure Splunk so that it can consume Windows Defender ATP aler ## Before you begin -- Install the [REST API Modular Input app](https://splunkbase.splunk.com/app/1546/) in Splunk. -- Obtain your refresh token. For more information, see [Obtain a refresh token](configure-aad-windows-defender-advanced-threat-protection.md#obtain-a-refresh-token). -- Get the following information from your Azure Active Directory (AAD) application by selecting **View Endpoint** on the application configuration page: +- Install the [REST API Modular Input app](https://splunkbase.splunk.com/app/1546/) in Splunk +- Contact the Windows Defender ATP team to get your refresh token +- Get the following information from your Azure Active Directory (AAD) application by selecting the **View Endpoint** on the application configuration page: - OAuth 2 Token refresh URL - OAuth 2 Client ID - OAuth 2 Client secret @@ -56,8 +56,7 @@ You'll need to configure Splunk so that it can consume Windows Defender ATP aler Endpoint URL - Depending on the location of your datacenter, select either the EU or the US URL:

    **For EU**: https://wdatp-alertexporter-eu.securitycenter.windows.com/api/alerts
    **For US:** https://wdatp-alertexporter-us.securitycenter.windows.com/api/alerts - + https://DataAccess-PRD.trafficmanager.net:444/api/alerts HTTP Method diff --git a/windows/keep-secure/create-a-pagefile.md b/windows/keep-secure/create-a-pagefile.md index 804d32f022..a8c65abbab 100644 --- a/windows/keep-secure/create-a-pagefile.md +++ b/windows/keep-secure/create-a-pagefile.md @@ -1,5 +1,5 @@ --- -title: Create a pagefile - security policy setting (Windows 10) +title: Create a pagefile (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Create a pagefile security policy setting. ms.assetid: dc087897-459d-414b-abe0-cd86c8dccdea ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Create a pagefile - security policy setting +# Create a pagefile **Applies to** - Windows 10 diff --git a/windows/keep-secure/create-and-verify-an-efs-dra-certificate.md b/windows/keep-secure/create-and-verify-an-efs-dra-certificate.md index 4bd92ff06f..06392494c0 100644 --- a/windows/keep-secure/create-and-verify-an-efs-dra-certificate.md +++ b/windows/keep-secure/create-and-verify-an-efs-dra-certificate.md @@ -19,8 +19,8 @@ If you don’t already have an EFS DRA certificate, you’ll need to create and The recovery process included in this topic only works for desktop devices. WIP deletes the data on Windows 10 Mobile devices. ->[!IMPORTANT] ->If you already have an EFS DRA certificate for your organization, you can skip creating a new one. Just use your current EFS DRA certificate in your policy. For more info about when to use a PKI and the general strategy you should use to deploy DRA certificates, see the [Security Watch Deploying EFS: Part 1](https://technet.microsoft.com/magazine/2007.02.securitywatch.aspx) article on TechNet. For more general info about EFS protection, see [Protecting Data by Using EFS to Encrypt Hard Drives](https://msdn.microsoft.com/library/cc875821.aspx).

    If your DRA certificate has expired, you won’t be able to encrypt your files with it. To fix this, you'll need to create a new certificate, using the steps in this topic, and then deploy it through policy. +>**Important**
    +If you already have an EFS DRA certificate for your organization, you can skip creating a new one. Just use your current EFS DRA certificate in your policy. For more info about when to use a PKI and the general strategy you should use to deploy DRA certificates, see the [Security Watch Deploying EFS: Part 1](https://technet.microsoft.com/magazine/2007.02.securitywatch.aspx) article on TechNet. For more general info about EFS protection, see [Protecting Data by Using EFS to Encrypt Hard Drives](https://msdn.microsoft.com/library/cc875821.aspx).

    If your DRA certificate has expired, you won’t be able to encrypt your files with it. To fix this, you'll need to create a new certificate, using the steps in this topic, and then deploy it through policy. **To manually create an EFS DRA certificate** @@ -36,13 +36,13 @@ The recovery process included in this topic only works for desktop devices. WIP The EFSDRA.cer and EFSDRA.pfx files are created in the location you specified in Step 1. - >[!IMPORTANT] - >Because the private keys in your DRA .pfx files can be used to decrypt any WIP file, you must protect them accordingly. We highly recommend storing these files offline, keeping copies on a smart card with strong protection for normal use and master copies in a secured physical location. + >**Important**
    + Because the private keys in your DRA .pfx files can be used to decrypt any WIP file, you must protect them accordingly. We highly recommend storing these files offline, keeping copies on a smart card with strong protection for normal use and master copies in a secured physical location. 4. Add your EFS DRA certificate to your WIP policy using a deployment tool, such as Microsoft Intune or System Center Configuration Manager. - >[!NOTE] - >To add your EFS DRA certificate to your policy by using Microsoft Intune, see the [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) topic. To add your EFS DRA certificate to your policy by using System Center Configuration Manager, see the [Create a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md) topic. + >**Note**
    + To add your EFS DRA certificate to your policy by using Microsoft Intune, see the [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) topic. To add your EFS DRA certificate to your policy by using System Center Configuration Manager, see the [Create a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md) topic. **To verify your data recovery certificate is correctly set up on a WIP client computer** @@ -73,8 +73,7 @@ The recovery process included in this topic only works for desktop devices. WIP **To quickly recover WIP-protected desktop data after unenrollment**
    It's possible that you might revoke data from an unenrolled device only to later want to restore it all. This can happen in the case of a missing device being returned or if an unenrolled employee enrolls again. If the employee enrolls again using the original user profile, and the revoked key store is still on the device, all of the revoked data can be restored at once, by following these steps. ->[!IMPORTANT] ->To maintain control over your enterprise data, and to be able to revoke again in the future, you must only perform this process after the employee has re-enrolled the device. +>**Important**
    To maintain control over your enterprise data, and to be able to revoke again in the future, you must only perform this process after the employee has re-enrolled the device. 1. Have your employee sign in to the unenrolled device, open a command prompt, and type: @@ -94,9 +93,6 @@ It's possible that you might revoke data from an unenrolled device only to later The Windows Credential service automatically recovers the employee’s previously revoked keys from the `Recovery\Input` location. ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). - ## Related topics - [Security Watch Deploying EFS: Part 1](https://technet.microsoft.com/magazine/2007.02.securitywatch.aspx) diff --git a/windows/keep-secure/create-applocker-default-rules.md b/windows/keep-secure/create-applocker-default-rules.md index 6f5b802707..930d2bc4d7 100644 --- a/windows/keep-secure/create-applocker-default-rules.md +++ b/windows/keep-secure/create-applocker-default-rules.md @@ -27,7 +27,3 @@ You can perform this task by using the Group Policy Management Console for an Ap 1. Open the AppLocker console. 2. Right-click the appropriate rule type for which you want to automatically generate default rules. You can automatically generate rules for executable, Windows Installer, script rules and Packaged app rules. 3. Click **Create Default Rules**. - -## Related topics - -- [Understanding AppLocker default rules](understanding-applocker-default-rules.md) diff --git a/windows/keep-secure/create-vpn-and-wip-policy-using-intune.md b/windows/keep-secure/create-vpn-and-wip-policy-using-intune.md index 64602d97ae..45ed365fe2 100644 --- a/windows/keep-secure/create-vpn-and-wip-policy-using-intune.md +++ b/windows/keep-secure/create-vpn-and-wip-policy-using-intune.md @@ -111,10 +111,6 @@ The final step to making your VPN configuration work with WIP, is to link your t 3. After you've picked all of the employees and groups that should get the policy, click **OK**. The policy is deployed to the selected users' devices. ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). - - diff --git a/windows/keep-secure/create-wip-policy-using-intune.md b/windows/keep-secure/create-wip-policy-using-intune.md index f0c94d6dba..44bf2930a2 100644 --- a/windows/keep-secure/create-wip-policy-using-intune.md +++ b/windows/keep-secure/create-wip-policy-using-intune.md @@ -44,11 +44,10 @@ During the policy-creation process in Intune, you can choose the apps you want t The steps to add your app rules are based on the type of rule template being applied. You can add a store app (also known as a Universal Windows Platform (UWP) app), a signed Windows desktop app, or an AppLocker policy file. ->[!IMPORTANT] ->WIP-aware apps are expected to prevent enterprise data from going to unprotected network locations and to avoid encrypting personal data. On the other hand, WIP-unaware apps might not respect the corporate network boundary, and WIP-unaware apps will encrypt all files they create or modify. This means that they could encrypt personal data and cause data loss during the revocation process.

    Care must be taken to get a support statement from the software provider that their app is safe with WIP before adding it to your **App Rules** list. If you don’t get this statement, it’s possible that you could experience app compat issues due to an app losing the ability to access a necessary file after revocation. +>**Important**
    WIP-aware apps are expected to prevent enterprise data from going to unprotected network locations and to avoid encrypting personal data. On the other hand, WIP-unaware apps might not respect the corporate network boundary, and WIP-unaware apps will encrypt all files they create or modify. This means that they could encrypt personal data and cause data loss during the revocation process.

    Care must be taken to get a support statement from the software provider that their app is safe with WIP before adding it to your **App Rules** list. If you don’t get this statement, it’s possible that you could experience app compat issues due to an app losing the ability to access a necessary file after revocation. ->[!NOTE] ->If you want to use **File hash** or **Path** rules, instead of **Publisher** rules, you must follow the steps in the [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) topic. +>**Note**
    +If you want to use **File hash** or **Path** rules, instead of **Publisher** rules, you must follow the steps in the [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) topic. #### Add a store app rule to your policy For this example, we’re going to add Microsoft OneNote, a store app, to the **App Rules** list. @@ -77,8 +76,8 @@ If you don't know the publisher or product name, you can find them for both desk **To find the Publisher and Product Name values for Store apps without installing them** 1. Go to the [Windows Store for Business](https://go.microsoft.com/fwlink/p/?LinkID=722910) website, and find your app. For example, *Microsoft OneNote*. - >[!NOTE] - >If your app is already installed on desktop devices, you can use the AppLocker local security policy MMC snap-in to gather the info for adding the app to the protected apps list. For info about how to do this, see the [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) topic. + >**Note**
    + If your app is already installed on desktop devices, you can use the AppLocker local security policy MMC snap-in to gather the info for adding the app to the protected apps list. For info about how to do this, see the [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) topic. 2. Copy the ID value from the app URL. For example, Microsoft OneNote's ID URL is https://www.microsoft.com/store/apps/onenote/9wzdncrfhvjl, and you'd copy the ID value, `9wzdncrfhvjl`. @@ -95,10 +94,8 @@ If you don't know the publisher or product name, you can find them for both desk 4. Copy the `publisherCertificateName` value into the **Publisher Name** box and copy the `packageIdentityName` value into the **Product Name** box of Intune. - >[!IMPORTANT] - >The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as `CN=` followed by the `windowsPhoneLegacyId`. - - For example: + >**Important**
    + The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as `CN=` followed by the `windowsPhoneLegacyId`.

    For example: ```json { @@ -109,8 +106,7 @@ If you don't know the publisher or product name, you can find them for both desk **To find the Publisher and Product Name values for apps installed on Windows 10 mobile phones** 1. If you need to add mobile apps that aren't distributed through the Store for Business, you must use the **Windows Device Portal** feature. - >[!NOTE] - >Your PC and phone must be on the same wireless network. + >**Note**
    Your PC and phone must be on the same wireless network. 2. On the Windows Phone, go to **Settings**, choose **Update & security**, and then choose **For developers**. @@ -126,10 +122,8 @@ If you don't know the publisher or product name, you can find them for both desk 8. Copy the `publisherCertificateName` value and paste it into the **Publisher Name** box and the `packageIdentityName` value into the **Product Name** box of Intune. - >[!IMPORTANT] - >The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as `CN=` followed by the `windowsPhoneLegacyId`. - - For example: + >**Important**
    + The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as `CN=` followed by the `windowsPhoneLegacyId`.

    For example:
    ``` json { @@ -354,9 +348,9 @@ After you've added a protection mode to your apps, you'll need to decide where t There are no default locations included with WIP, you must add each of your network locations. This area applies to any network endpoint device that gets an IP address in your enterprise’s range and is also bound to one of your enterprise domains, including SMB shares. Local file system locations should just maintain encryption (for example, on local NTFS, FAT, ExFAT). ->[!IMPORTANT] ->Every WIP policy should include policy that defines your enterprise network locations.
    ->Classless Inter-Domain Routing (CIDR) notation isn’t supported for WIP configurations. +>**Important** +- Every WIP policy should include policy that defines your enterprise network locations. +- Classless Inter-Domain Routing (CIDR) notation isn’t supported for WIP configurations. **To define where your protected apps can find and send enterprise data on you network** @@ -471,9 +465,6 @@ After you've decided where your protected apps can access enterprise data on you 2. Click **Save Policy**. ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). - ## Related topics - [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) - [Deploy your Windows Information Protection (WIP) policy](deploy-wip-policy-using-intune.md) diff --git a/windows/keep-secure/create-wip-policy-using-sccm.md b/windows/keep-secure/create-wip-policy-using-sccm.md index 350d5e1f54..468b8308d4 100644 --- a/windows/keep-secure/create-wip-policy-using-sccm.md +++ b/windows/keep-secure/create-wip-policy-using-sccm.md @@ -20,8 +20,8 @@ localizationpriority: high System Center Configuration Manager helps you create and deploy your Windows Information Protection (WIP) policy, including letting you choose your protected apps, your WIP-protection mode, and how to find enterprise data on the network. ->[!IMPORTANT] ->If you previously created a WIP policy using System Center Configuration Manager version 1511 or 1602, you’ll need to recreate it using version 1606 or later. Editing a WIP policy created in version 1511 or 1602 is not supported in later versions and there is no migration path between older and newer WIP policies. +>**Important**
    +If you previously created a WIP policy using System Center Configuration Manager version 1511 or 1602, you’ll need to recreate it using version 1606 or later. Editing a WIP policy created in version 1511 or 1602 is not supported in later versions and there is no migration path between older and newer WIP policies. ## Add a WIP policy After you’ve installed and set up System Center Configuration Manager for your organization, you must create a configuration item for WIP, which in turn becomes your WIP policy. @@ -62,8 +62,8 @@ During the policy-creation process in System Center Configuration Manager, you c The steps to add your app rules are based on the type of rule template being applied. You can add a store app (also known as a Universal Windows Platform (UWP) app), a signed Windows desktop app, or an AppLocker policy file. ->[!IMPORTANT] ->WIP-aware apps are expected to prevent enterprise data from going to unprotected network locations and to avoid encrypting personal data. On the other hand, WIP-unaware apps might not respect the corporate network boundary, and WIP-unaware apps will encrypt all files they create or modify. This means that they could encrypt personal data and cause data loss during the revocation process.

    Care must be taken to get a support statement from the software provider that their app is safe with WIP before adding it to your **App rules** list. If you don’t get this statement, it’s possible that you could experience app compat issues due to an app losing the ability to access a necessary file after revocation. +>**Important**
    +WIP-aware apps are expected to prevent enterprise data from going to unprotected network locations and to avoid encrypting personal data. On the other hand, WIP-unaware apps might not respect the corporate network boundary, and WIP-unaware apps will encrypt all files they create or modify. This means that they could encrypt personal data and cause data loss during the revocation process.

    Care must be taken to get a support statement from the software provider that their app is safe with WIP before adding it to your **App rules** list. If you don’t get this statement, it’s possible that you could experience app compat issues due to an app losing the ability to access a necessary file after revocation. #### Add a store app rule to your policy For this example, we’re going to add Microsoft OneNote, a store app, to the **App Rules** list. @@ -94,8 +94,8 @@ If you don't know the publisher or product name, you can find them for both desk 1. Go to the [Windows Store for Business](https://go.microsoft.com/fwlink/p/?LinkID=722910) website, and find your app. For example, Microsoft OneNote. - >[!NOTE] - >If your app is already installed on desktop devices, you can use the AppLocker local security policy MMC snap-in to gather the info for adding the app to the protected apps list. For info about how to do this, see the steps in the [Add an AppLocker policy file](#add-an-applocker-policy-file) section. + >**Note**
    + If your app is already installed on desktop devices, you can use the AppLocker local security policy MMC snap-in to gather the info for adding the app to the protected apps list. For info about how to do this, see the steps in the [Add an AppLocker policy file](#add-an-applocker-policy-file) section. 2. Copy the ID value from the app URL. For example, Microsoft OneNote's ID URL is https://www.microsoft.com/store/apps/onenote/9wzdncrfhvjl, and you'd copy the ID value, `9wzdncrfhvjl`. @@ -112,9 +112,8 @@ If you don't know the publisher or product name, you can find them for both desk 4. Copy the `publisherCertificateName` value and paste them into the **Publisher Name** box, copy the `packageIdentityName` value into the **Product Name** box of Intune. - >[!IMPORTANT] - >The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as “CN=” followed by the `windowsPhoneLegacyId`. - >For example:

    + >**Important**
    + The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as “CN=” followed by the `windowsPhoneLegacyId`.

    For example:

    ```json { @@ -125,8 +124,8 @@ If you don't know the publisher or product name, you can find them for both desk **To find the Publisher and Product Name values for apps installed on Windows 10 mobile phones** 1. If you need to add mobile apps that aren't distributed through the Store for Business, you must use the **Windows Device Portal** feature. - >[!NOTE] - >Your PC and phone must be on the same wireless network. + >**Note**
    + Your PC and phone must be on the same wireless network. 2. On the Windows Phone, go to **Settings**, choose **Update & security**, and then choose **For developers**. @@ -142,9 +141,8 @@ If you don't know the publisher or product name, you can find them for both desk 8. Copy the `publisherCertificateName` value and paste it into the **Publisher Name** box and the `packageIdentityName` value into the **Product Name** box of Intune. - >[!IMPORTANT] - >The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as “CN=” followed by the `windowsPhoneLegacyId`. - >For example:

    + >**Important**
    + The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as “CN=” followed by the `windowsPhoneLegacyId`.

    For example:

    ```json { @@ -371,9 +369,9 @@ After you've added a protection mode to your apps, you'll need to decide where t There are no default locations included with WIP, you must add each of your network locations. This area applies to any network endpoint device that gets an IP address in your enterprise’s range and is also bound to one of your enterprise domains, including SMB shares. Local file system locations should just maintain encryption (for example, on local NTFS, FAT, ExFAT). ->[!IMPORTANT] ->Every WIP policy should include policy that defines your enterprise network locations.
    ->Classless Inter-Domain Routing (CIDR) notation isn’t supported for WIP configurations. +>**Important**
    +- Every WIP policy should include policy that defines your enterprise network locations. +- Classless Inter-Domain Routing (CIDR) notation isn’t supported for WIP configurations. **To define where your protected apps can find and send enterprise data on you network** @@ -494,15 +492,13 @@ After you've finished configuring your policy, you can review all of your info o A progress bar appears, showing you progress for your policy. After it's done, click **Close** to return to the **Configuration Items** page. + ## Deploy the WIP policy After you’ve created your WIP policy, you'll need to deploy it to your organization's devices. For info about your deployment options, see these topics: - [Operations and Maintenance for Compliance Settings in Configuration Manager](https://go.microsoft.com/fwlink/p/?LinkId=708224) - [How to Create Configuration Baselines for Compliance Settings in Configuration Manager]( https://go.microsoft.com/fwlink/p/?LinkId=708225) - [How to Deploy Configuration Baselines in Configuration Manager]( https://go.microsoft.com/fwlink/p/?LinkId=708226) ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). - ## Related topics - [System Center Configuration Manager and Endpoint Protection (Version 1606)](https://go.microsoft.com/fwlink/p/?LinkId=717372) - [TechNet documentation for Configuration Manager](https://go.microsoft.com/fwlink/p/?LinkId=691623) diff --git a/windows/keep-secure/create-wmi-filters-for-the-gpo.md b/windows/keep-secure/create-wmi-filters-for-the-gpo.md index 80474a70be..3cbb5be9a5 100644 --- a/windows/keep-secure/create-wmi-filters-for-the-gpo.md +++ b/windows/keep-secure/create-wmi-filters-for-the-gpo.md @@ -51,7 +51,7 @@ First, create the WMI filter and configure it to look for a specified version (o select * from Win32_OperatingSystem where Version like "6.%" ``` - This query will return **true** for devices running at least Windows Vista and Windows Server 2008. To set a filter for just Windows 8 and Windows Server 2012, use "6.2%". For Windows 10 and Windows Server 2016, use "10.%". To specify multiple versions, combine them with or, as shown in the following: + This query will return **true** for devices running at least Windows Vista and Windows Server 2008. To set a filter for just Windows 8 and Windows Server 2012, use "6.2%". To specify multiple versions, combine them with or, as shown in the following: ``` syntax ... where Version like "6.1%" or Version like "6.2%" @@ -65,16 +65,16 @@ First, create the WMI filter and configure it to look for a specified version (o ... where ProductType="1" or ProductType="3" ``` - The following complete query returns **true** for all devices running Windows 10, and returns **false** for any server operating system or any other client operating system. + The following complete query returns **true** for all devices running Windows 8, and returns **false** for any server operating system or any other client operating system. ``` syntax - select * from Win32_OperatingSystem where Version like "10.%" and ProductType="1" + select * from Win32_OperatingSystem where Version like "6.2%" and ProductType="1" ``` - The following query returns **true** for any device running Windows Server 2016, except domain controllers: + The following query returns **true** for any device running Windows Server 2012, except domain controllers: ``` syntax - select * from Win32_OperatingSystem where Version like "10.%" and ProductType="3" + select * from Win32_OperatingSystem where Version like "6.2%" and ProductType="3" ``` 9. Click **OK** to save the query to the filter. diff --git a/windows/keep-secure/credential-guard.md b/windows/keep-secure/credential-guard.md index c038a4d588..7045d584b4 100644 --- a/windows/keep-secure/credential-guard.md +++ b/windows/keep-secure/credential-guard.md @@ -123,7 +123,7 @@ To enforce processing of the group policy, you can run ```gpupdate /force```. If you don't use Group Policy, you can enable Credential Guard by using the registry. Credential Guard uses virtualization-based security features which have to be enabled first on some operating systems. -#### Add the virtualization-based security features +##### Add the virtualization-based security features Starting with Windows 10, version 1607 and Windows Server 2016, enabling Windows features to use virtualization-based security is not necessary and this step can be skipped. @@ -156,7 +156,7 @@ You can do this by using either the Control Panel or the Deployment Image Servic > [!NOTE] > You can also add these features to an online image by using either DISM or Configuration Manager. -#### Enable virtualization-based security and Credential Guard +##### Enable virtualization-based security and Credential Guard 1. Open Registry Editor. 2. Enable virtualization-based security: @@ -195,9 +195,10 @@ Requirements for running Credential Guard in Hyper-V virtual machines - The Hyper-V host must have an IOMMU, and run at least Windows Server 2016 or Windows 10 version 1607. - The Hyper-V virtual machine must be Generation 2, have an enabled virtual TPM, and running at least Windows Server 2016 or Windows 10. + ### Remove Credential Guard -If you have to remove Credential Guard on a PC, you can use the following set of procedures, or you can [use the Device Guard and Credential Guard hardware readiness tool](#turn-off-with-hardware-readiness-tool). +If you have to remove Credential Guard on a PC, you need to do the following: 1. If you used Group Policy, disable the Group Policy setting that you used to enable Credential Guard (**Computer Configuration** -> **Administrative Templates** -> **System** -> **Device Guard** -> **Turn on Virtualization Based Security**). 2. Delete the following registry settings: @@ -241,10 +242,9 @@ If you have to remove Credential Guard on a PC, you can use the following set of For more info on virtualization-based security and Device Guard, see [Device Guard deployment guide](device-guard-deployment-guide.md). - -#### Turn off Credential Guard by using the Device Guard and Credential Guard hardware readiness tool +**Turn off Credential Guard by using the Device Guard and Credential Guard hardware readiness tool** -You can also disable Credential Guard by using the [Device Guard and Credential Guard hardware readiness tool](https://www.microsoft.com/download/details.aspx?id=53337). +You can also enable Credential Guard by using the [Device Guard and Credential Guard hardware readiness tool](https://www.microsoft.com/download/details.aspx?id=53337). ``` DG_Readiness_Tool_v2.0.ps1 -Disable -AutoReboot @@ -917,7 +917,6 @@ write-host $tmp -Foreground Red - [Isolated User Mode Processes and Features in Windows 10 with Logan Gabriel (Channel 9)](http://channel9.msdn.com/Blogs/Seth-Juarez/Isolated-User-Mode-Processes-and-Features-in-Windows-10-with-Logan-Gabriel) - [More on Processes and Features in Windows 10 Isolated User Mode with Dave Probert (Channel 9)](https://channel9.msdn.com/Blogs/Seth-Juarez/More-on-Processes-and-Features-in-Windows-10-Isolated-User-Mode-with-Dave-Probert) - [Mitigating Credential Theft using the Windows 10 Isolated User Mode (Channel 9)](https://channel9.msdn.com/Blogs/Seth-Juarez/Mitigating-Credential-Theft-using-the-Windows-10-Isolated-User-Mode) -- [Protecting network passwords with Windows 10 Credential Guard](https://www.microsoft.com/itshowcase/Article/Content/831/Protecting-network-passwords-with-Windows-10-Credential-Guard) - [Enabling Strict KDC Validation in Windows Kerberos](http://www.microsoft.com/download/details.aspx?id=6382) - [What's New in Kerberos Authentication for Windows Server 2012](http://technet.microsoft.com/library/hh831747.aspx) - [Authentication Mechanism Assurance for AD DS in Windows Server 2008 R2 Step-by-Step Guide](http://technet.microsoft.com/library/dd378897.aspx) diff --git a/windows/keep-secure/dashboard-windows-defender-advanced-threat-protection.md b/windows/keep-secure/dashboard-windows-defender-advanced-threat-protection.md index 990e0ac396..112382f305 100644 --- a/windows/keep-secure/dashboard-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/dashboard-windows-defender-advanced-threat-protection.md @@ -56,12 +56,10 @@ Click the name of the machine to see details about that machine. For more inform You can also click **Machines view** at the top of the tile to go directly to the **Machines view**, sorted by the number of active alerts. For more information see, [Investigate machines in the Windows Defender Advanced Threat Protection Machines view](investigate-machines-windows-defender-advanced-threat-protection.md). ## Status -The **Status** tile informs you if the service is active or if there are issues and the unique number of machines (endpoints) reporting to the service over the past 30 days. +The **Status** tile informs you if the service is active and running and the unique number of machines (endpoints) reporting over the past 30 days. ![The Status tile shows an overall indicator of the service and the total number of machines reporting to the service](images/status-tile.png) -For more information on the service status, see [Check the Windows Defender ATP service status](service-status-windows-defender-advanced-threat-protection.md). - ## Machines reporting The **Machines reporting** tile shows a bar graph that represents the number of machines reporting alerts daily. Hover over individual bars on the graph to see the exact number of machines reporting in each day. diff --git a/windows/keep-secure/deploy-wip-policy-using-intune.md b/windows/keep-secure/deploy-wip-policy-using-intune.md index c9977fec21..075fba2473 100644 --- a/windows/keep-secure/deploy-wip-policy-using-intune.md +++ b/windows/keep-secure/deploy-wip-policy-using-intune.md @@ -33,9 +33,6 @@ The added people move to the **Selected Groups** list on the right-hand pane. 3. After you've picked all of the employees and groups that should get the policy, click **OK**.

    The policy is deployed to the selected users' devices. ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). - ## Related topics - [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) - [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) diff --git a/windows/keep-secure/enlightened-microsoft-apps-and-wip.md b/windows/keep-secure/enlightened-microsoft-apps-and-wip.md index f2e1b3c91c..f6b1ea7f6e 100644 --- a/windows/keep-secure/enlightened-microsoft-apps-and-wip.md +++ b/windows/keep-secure/enlightened-microsoft-apps-and-wip.md @@ -78,7 +78,4 @@ You can add any or all of the enlightened Microsoft apps to your allowed apps li |Microsoft OneDrive |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
    **Binary Name:** onedrive.exe
    **App Type:** Desktop app| |Notepad |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
    **Binary Name:** notepad.exe
    **App Type:** Desktop app | |Microsoft Paint |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
    **Binary Name:** mspaint.exe
    **App Type:** Desktop app | -|Microsoft Remote Desktop |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
    **Binary Name:** mstsc.exe
    **App Type:** Desktop app | - ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). \ No newline at end of file +|Microsoft Remote Desktop |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
    **Binary Name:** mstsc.exe
    **App Type:** Desktop app | \ No newline at end of file diff --git a/windows/keep-secure/export-an-applocker-policy-from-a-gpo.md b/windows/keep-secure/export-an-applocker-policy-from-a-gpo.md index 8f914cd9f0..6476c88d16 100644 --- a/windows/keep-secure/export-an-applocker-policy-from-a-gpo.md +++ b/windows/keep-secure/export-an-applocker-policy-from-a-gpo.md @@ -16,7 +16,7 @@ author: brianlic-msft This topic for IT professionals describes the steps to export an AppLocker policy from a Group Policy Object (GPO) so that it can be modified. -Updating an AppLocker policy that is currently enforced in your production environment can have unintended results. Therefore, export the policy from the GPO and update the rule or rules by using AppLocker on your AppLocker reference device. +Updating an AppLocker policy that is currently enforced in your production environment can have unintended results. Therefore, export the policy from the GPO and update the rule or rules by using AppLocker on your AppLocker reference device To complete this procedure, you must have the **Edit Setting** permission to edit a GPO. By default, members of the **Domain Admins** group, the **Enterprise Admins** group, and the **Group Policy Creator Owners** group have this permission. diff --git a/windows/keep-secure/guidance-and-best-practices-wip.md b/windows/keep-secure/guidance-and-best-practices-wip.md index ff64be6d0f..b91386f0c0 100644 --- a/windows/keep-secure/guidance-and-best-practices-wip.md +++ b/windows/keep-secure/guidance-and-best-practices-wip.md @@ -22,10 +22,8 @@ This section includes info about the enlightened Microsoft apps, including how t ## In this section |Topic |Description | |------|------------| -|[Enlightened apps for use with Windows Information Protection (WIP)](enlightened-microsoft-apps-and-wip.md) |Learn the difference between enlightened and unenlightened apps, and then review the list of enlightened apps provided by Microsoft along with the text you will need to use to add them to your allowed apps list. | -|[Unenlightened and enlightened app behavior while using Windows Information Protection (WIP)](app-behavior-with-wip.md) |Learn the difference between enlightened and unenlightened app behaviors. | -|[Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP)](recommended-network-definitions-for-wip.md) |Recommended additions for the Enterprise Cloud Resources and Neutral Resources network settings, when used with Windows Information Protection (WIP). | -|[Using Outlook Web Access with Windows Information Protection (WIP)](using-owa-with-wip.md) |Options for using Outlook Web Access (OWA) with Windows Information Protection (WIP). | - ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). +|[Windows Information Protection (WIP) overview](wip-enterprise-overview.md) |High-level overview info about why to use WIP, the enterprise scenarios, and how to turn it off. | +|[Mandatory settings for Windows Information Protection (WIP)](mandatory-settings-for-wip.md) |A list of all of the tasks and settings that are required for the operating system to turn on Windows Information Protection (WIP), formerly known as enterprise data protection (EDP), in your enterprise. | +|[Enlightened apps for use with Windows Information Protection (WIP)](enlightened-microsoft-apps-and-wip.md) |Learn the difference between enlightened and unenlightened apps, and then review the list of enlightened apps provided by Microsoft along with the text you will need to use to add them to your allowed apps list. | +|[Testing scenarios for Windows Information Protection (WIP)](testing-scenarios-for-wip.md) |We've come up with a list of suggested testing scenarios that you can use to test WIP in your company. | +|[Limitations while using Windows Information Protection (WIP)](limitations-with-wip.md) |The most common problems you might encounter while using Windows Information Protection (WIP). | \ No newline at end of file diff --git a/windows/keep-secure/how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md b/windows/keep-secure/how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md deleted file mode 100644 index 032e04c1ad..0000000000 --- a/windows/keep-secure/how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: How to use single sign on (SSO) over VPN and Wi-Fi connections (Windows 10) -description: Explains requirements to enable Single Sign-On (SSO) to on-premises domain resources over WiFi or VPN connections. -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -author: justinha ---- - -# How to use single sign on (SSO) over VPN and Wi-Fi connections - -This topic explains requirements to enable Single Sign-On (SSO) to on-premises domain resources over WiFi or VPN connections. The scenario is: - -- You connect to a network using Wi-Fi or VPN. -- You want to use the credentials that you use for the WiFi or VPN authentication to also authenticate requests to access a domain resource you are connecting to, without being prompted for your domain credentials separately. - -For example, you want to connect to a corporate network and access an internal website that requires Windows integrated authentication. - -At a high level, the way this works is that the credentials that are used for the connection authentication are put in Credential Manager as the default credentials for the logon session. -Credential Manager is a place where credentials in the OS are can be stored for specific domain resources based on the targetname of the resource. -For VPN, the VPN stack saves its credential as the session default. -For WiFi, EAP does it. - -The credentials are put in Credential Manager as a "`*Session`" credential. -A "`*Session`" credential implies that it is valid for the current user session. -The credentials are also cleaned up when the WiFi or VPN connection is disconnected. - -When the user tries to access a domain resource, using Edge for example, Edge has the right Enterprise Authentication capability so [WinInet](https://msdn.microsoft.com/library/windows/desktop/aa385483.aspx) can release the credentials that it gets from the Credential Manager to the SSP that is requesting it. -For more information about the Enterprise Authentication capability, see [App capability declarations](https://msdn.microsoft.com/windows/uwp/packaging/app-capability-declarations). - -The local security authority will look at the device application, such as a Universal Windows Platform (UWP) application, to see if it has the right capability. -If the app is not UWP, it does not matter. -But if it is a UWP app, it will look at the device capability for Enterprise Authentication. -If it does have that capability and if the resource that you are trying to access is in the Intranet zone in the Internet Options (ZoneMap), then the credential will be released. -This behavior helps prevent credentials from being misused by untrusted third parties. - -## Intranet zone - -For the Intranet zone, by default it only allows single-label names, such as Http://finance. -If the resource that needs to be accessed has multiple domain labels, then the workaround is to use the [Registry CSP](https://msdn.microsoft.com/library/windows/hardware/dn904964.aspx). - -### Setting the ZoneMap - -The ZoneMap is controlled using a registry that can be set through MDM. -By default, single-label names such as http://finance are already in the intranet zone. -For multi-label names, such as http://finance.net, the ZoneMap needs to be updated. - -## MDM Policy - -OMA URI example: - -./Vendor/MSFT/Registry/HKU/S-1-5-21-2702878673-795188819-444038987-2781/Software/Microsoft/Windows/CurrentVersion/Internet%20Settings/ZoneMap/Domains/``/* as an Integer Value of 1 for each of the domains that you want to SSO into from your device. This adds the specified domains to the Intranet Zone of the Edge browser. - -## Credential requirements - -For VPN, the following types of credentials will be added to credential manager after authentication: - -- Username and password -- Certificate-based authentication: - - TPM KSP Certificate - - Software KSP Certificates - - Smart Card Certificate - - Passport for Work Certificate - -The username should also include a domain that can be reached over the connection (VPN or WiFi). - -## User certificate templates - -If the credentials are certificate-based, then the elements in the following table need to be configured for the certificate templates to ensure they can also be used for Kerberos client authentication. - -| Template element | Configuration | -|------------------|---------------| -| SubjectName | The user’s distinguished name (DN) where the domain components of the distinguished name reflects the internal DNS namespace when the SubjectAlternativeName does not have the fully qualified UPN required to find the domain controller.
    This requirement is particularly relevant in multi-forest environments as it ensures a domain controller can be located. | -| SubjectAlternativeName | The user’s fully qualified UPN where a domain name component of the user’s UPN matches the organizations internal domain’s DNS namespace.
    This requirement is particularly relevant in multi-forest environments as it ensures a domain controller can be located when the SubjectName does not have the DN required to find the domain controller. | -| Key Storage Provider (KSP) | If the device is joined to Azure AD, a discrete SSO certificate is used. | -| EnhancedKeyUsage | One or more of the following EKUs is required:
    - Client Authentication (for the VPN)
    - EAP Filtering OID (for Windows Hello for Business)
    - SmartCardLogon (for Azure AD joined devices)
    If the domain controllers require smart card EKU either:
    - SmartCardLogon
    - id-pkinit-KPClientAuth (1.3.6.1.5.2.3.4)
    Otherwise:
    - TLS/SSL Client Authentication (1.3.6.1.5.5.7.3.2) | - -## NDES server configuration - -The NDES server is required to be configured so that incoming SCEP requests can be mapped to the correct template to be used. -For more information, see [Configure certificate infrastructure for SCEP](https://docs.microsoft.com/en-us/intune/deploy-use/Configure-certificate-infrastructure-for-scep). - -## Active Directory requirements - -You need IP connectivity to a DNS server and domain controller over the network interface so that authentication can succeed as well. - -The domain controllers will need to have appropriate KDC certificates for the client to trust them as domain controllers, and since phones are not domain-joined, the root CA of the KDC’s certificate must be in the Third-Party Root CA or Smart Card Trusted Roots store. - -The domain controllers must be using certificates based on the updated KDC certificate template Kerberos Authentication. -This is because Windows 10 Mobile requires strict KDC validation to be enabled. -This requires that all authenticating domain controllers run Windows Server 2016, or you'll need to enable strict KDC validation on domain controllers that run previous versions of Windows Server. -For more information, see [Enabling Strict KDC Validation in Windows Kerberos](https://www.microsoft.com/download/details.aspx?id=6382). - diff --git a/windows/keep-secure/images/atp-intune-add-policy.png b/windows/keep-secure/images/atp-intune-add-policy.png new file mode 100644 index 0000000000000000000000000000000000000000..570ab0a6889ead424e9909c6e85a0c56c559dcd4 GIT binary patch literal 118996 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

    o_h2)Wwr$})T@p`Xoj8L> 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 aY4GKT87*(h|NK=Dq_1;RyI9jc?0*56mY+%h literal 8592 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 diff --git a/windows/keep-secure/implement-microsoft-passport-in-your-organization.md b/windows/keep-secure/implement-microsoft-passport-in-your-organization.md index 31ea44aebd..e4de8535f1 100644 --- a/windows/keep-secure/implement-microsoft-passport-in-your-organization.md +++ b/windows/keep-secure/implement-microsoft-passport-in-your-organization.md @@ -20,15 +20,15 @@ localizationpriority: high You can create a Group Policy or mobile device management (MDM) policy that will implement Windows Hello on devices running Windows 10. >[!IMPORTANT] ->The Group Policy setting **Turn on PIN sign-in** does not apply to Windows Hello for Business. Use the **Turn on PIN sign-in** setting to allow or deny the use of a convenience PIN for Windows 10, version 1607. +>The Group Policy setting **Turn on PIN sign-in** does not apply to Windows Hello for Business. It still prevents or enables the creation of a convenience PIN for Windows 10, version 1507 and 1511. > ->Beginning in version 1607, Windows Hello as a convenience PIN is disabled by default on all domain-joined computers. To enable a convenience PIN for Windows 10, version 1607, enable the Group Policy setting **Turn on convenience PIN sign-in**. Learn more in the blog post [Changes to Convenience PIN/Windows Hello Behavior in Windows 10, version 1607](https://blogs.technet.microsoft.com/ash/2016/08/13/changes-to-convenience-pin-and-thus-windows-hello-behaviour-in-windows-10-version-1607/). +>Beginning in version 1607, Windows Hello as a convenience PIN is disabled by default on all domain-joined computers. To enable a convenience PIN for Windows 10, version 1607, enable the Group Policy setting **Turn on convenience PIN sign-in**. > >Use **Windows Hello for Business** policy settings to manage PINs for Windows Hello for Business.   ## Group Policy settings for Windows Hello for Business -The following table lists the Group Policy settings that you can configure for Hello use in your workplace. These policy settings are available in both **User configuration** and **Computer Configuration** under **Policies** > **Administrative Templates** > **Windows Components** > **Windows Hello for Business**. Be aware that not all settings are in both places. +The following table lists the Group Policy settings that you can configure for Hello use in your workplace. These policy settings are available in both **User configuration** and **Computer Configuration** under **Policies** > **Administrative Templates** > **Windows Components** > **Windows Hello for Business**. @@ -376,4 +376,4 @@ The PIN is managed using the same Windows Hello for Business policies that you c [Event ID 300 - Windows Hello successfully created](passport-event-300.md) [Windows Hello biometrics in the enterprise](windows-hello-in-enterprise.md) -  +  \ No newline at end of file diff --git a/windows/keep-secure/index.md b/windows/keep-secure/index.md index 1307bc7110..3e1ed57822 100644 --- a/windows/keep-secure/index.md +++ b/windows/keep-secure/index.md @@ -17,19 +17,19 @@ Learn about keeping Windows 10 and Windows 10 Mobile secure. | Topic | Description | | - | - | | [Block untrusted fonts in an enterprise](block-untrusted-fonts-in-enterprise.md) | To help protect your company from attacks which may originate from untrusted or attacker controlled font files, we’ve created the Blocking Untrusted Fonts feature. Using this feature, you can turn on a global setting that stops your employees from loading untrusted fonts processed using the Graphics Device Interface (GDI) onto your network. Untrusted fonts are any font installed outside of the %windir%/Fonts directory. Blocking untrusted fonts helps prevent both remote (web-based or email-based) and local EOP attacks that can happen during the font file-parsing process. | +| [Device Guard certification and compliance](device-guard-certification-and-compliance.md) | Device Guard is a combination of hardware and software security features that, when configured together, will lock a device down so that it can only run trusted applications. If the app isn’t trusted it can’t run, period. It also means that even if an attacker manages to get control of the Windows kernel, he or she will be much less likely to be able to run malicious executable code after the computer restarts because of how decisions are made about what can run and when. | | [Manage identity verification using Windows Hello for Business](manage-identity-verification-using-microsoft-passport.md) | In Windows 10, Windows Hello replaces passwords with strong two-factor authentication on PCs and mobile devices. This authentication consists of a new type of user credential that is tied to a device and a biometric or PIN. | | [Configure S/MIME for Windows 10 and Windows 10 Mobile](configure-s-mime.md) | In Windows 10, S/MIME lets users encrypt outgoing messages and attachments so that only intended recipients who have a digital identification (ID), also known as a certificate, can read them. Users can digitally sign a message, which provides the recipients with a way to verify the identity of the sender and that the message hasn't been tampered with. | | [Install digital certificates on Windows 10 Mobile](installing-digital-certificates-on-windows-10-mobile.md) | Digital certificates bind the identity of a user or computer to a pair of keys that can be used to encrypt and sign digital information. Certificates are issued by a certification authority (CA) that vouches for the identity of the certificate holder, and they enable secure client communications with websites and services. | -| [Device Guard deployment guide](device-guard-deployment-guide.md) | Device Guard is a combination of hardware and software security features that, when configured together, will lock a device down so that it can only run trusted applications. If the app isn’t trusted it can’t run, period. It also means that even if an attacker manages to get control of the Windows kernel, he or she will be much less likely to be able to run malicious executable code after the computer restarts because of how decisions are made about what can run and when. | -| [Protect derived domain credentials with Credential Guard](credential-guard.md) | Introduced in Windows 10 Enterprise, Credential Guard uses virtualization-based security to isolate secrets so that only privileged system software can access them. Unauthorized access to these secrets can lead to credential theft attacks, such as Pass-the-Hash or Pass-The-Ticket. Credential Guard helps prevent these attacks by protecting NTLM password hashes and Kerberos Ticket Granting Tickets. | +| [Protect derived domain credentials with Credential Guard](credential-guard.md) | Introduced in Windows 10 Enterprise, Credential Guard uses virtualization-based security to isolate secrets so that only privileged system software can access them. Unauthorized access to these secrets can lead to credential theft attacks, such as Pass-the-Hash or Pass-The-Ticket. Credential Guard prevents these attacks by protecting NTLM password hashes and Kerberos Ticket Granting Tickets. | | [Protect Remote Desktop credentials with Remote Credential Guard](remote-credential-guard.md) | Remote Credential Guard helps you protect your credentials over a Remote Desktop connection by redirecting the Kerberos requests back to the device that's requesting the connection. | -| [Protect your enterprise data using Windows Information Protection (WIP)](protect-enterprise-data-using-wip.md) | With the increase of employee-owned devices in the enterprise, there’s also an increasing risk of accidental data leak through apps and services, like email, social media, and the public cloud, which are outside of the enterprise’s control. Windows Information Protection (WIP), previously known as enterprise data protection (EDP), helps to protect against this potential data leakage without otherwise interfering with the employee experience. | +| [Protect your enterprise data using Windows Information Protection (WIP)](protect-enterprise-data-using-wip.md) | With the increase of employee-owned devices in the enterprise, there’s also an increasing risk of accidental data leak through apps and services, like email, social media, and the public cloud, which are outside of the enterprise’s control. For example, when an employee sends the latest engineering pictures from their personal email account, copies and pastes product info into a tweet, or saves an in-progress sales report to their public cloud storage. | | [Use Windows Event Forwarding to help with intrusion detection](use-windows-event-forwarding-to-assist-in-instrusion-detection.md) | Learn about an approach to collect events from devices in your organization. This article talks about events in both normal operations and when an intrusion is suspected. | |[Override Process Mitigation Options to help enforce app-related security policies](override-mitigation-options-for-app-related-security-policies.md) |Use Group Policy to override individual **Process Mitigation Options** settings and help to enforce specific app-related security policies. | | [VPN technical guide](vpn-guide.md) | Virtual private networks (VPN) let you give your users secure remote access to your company network. Windows 10 adds useful new VPN profile options to help you manage how users connect. | | [Windows security baselines](windows-security-baselines.md) | Learn why you should use security baselines in your organization. | -| [Security technologies](security-technologies.md) | Learn more about the different security technologies that are available in Windows 10 and Windows 10 Mobile. For example, learn about AppLocker, BitLocker, and Security auditing. | -| [Enterprise security guides](windows-10-enterprise-security-guides.md) | Review technology overviews that help you understand Windows 10 security technologies in the context of the enterprise. | +| [Security technologies](security-technologies.md) | Learn more about the different security technologies that are available in Windows 10 and Windows 10 Mobile. | +| [Enterprise security guides](windows-10-enterprise-security-guides.md) | Get proven guidance to help you better secure and protect your enterprise by using technologies such as Credential Guard, Device Guard, Microsoft Passport, and Windows Hello. This section offers technology overviews and step-by-step guides. | | [Change history for Keep Windows 10 secure](change-history-for-keep-windows-10-secure.md) | This topic lists new and updated topics in the Keep Windows 10 secure documentation for [Windows 10 and Windows 10 Mobile](../index.md). |   ## Related topics diff --git a/windows/keep-secure/initialize-and-configure-ownership-of-the-tpm.md b/windows/keep-secure/initialize-and-configure-ownership-of-the-tpm.md index 013355ffa6..cc8625adb9 100644 --- a/windows/keep-secure/initialize-and-configure-ownership-of-the-tpm.md +++ b/windows/keep-secure/initialize-and-configure-ownership-of-the-tpm.md @@ -1,6 +1,6 @@ --- -title: View status, clear, or troubleshoot the TPM (Windows 10) -description: This topic for the IT professional describes how to view status for, clear, or troubleshoot the Trusted Platform Module (TPM). +title: Initialize and configure ownership of the TPM (Windows 10) +description: This topic for the IT professional describes how to initialize and set the ownership the Trusted Platform Module (TPM), turn the TPM on and off, and clear TPM keys. ms.assetid: 1166efaf-7aa3-4420-9279-435d9c6ac6f8 ms.prod: w10 ms.mktglfcycl: deploy @@ -9,146 +9,156 @@ ms.pagetype: security author: brianlic-msft --- -# View status, clear, or troubleshoot the TPM +# Initialize and configure ownership of the TPM **Applies to** - Windows 10 -- Windows Server 2016 -This topic for the IT professional describes actions you can take through the Trusted Platform Module (TPM) snap-in, **TPM.msc**: +This topic for the IT professional describes how to initialize and set the ownership the Trusted Platform Module (TPM), turn the TPM on and off, and clear TPM keys. It also explains how to troubleshoot issues that you might encounter as a result of using these procedures. -- [View the status of the TPM](#view-the-status-of-the-tpm) +## About TPM initialization and ownership -- [Troubleshoot TPM initialization](#troubleshoot-tpm-initialization) +The TPM must be initialized and ownership must be taken before it can be used to help secure your computer. The owner of the TPM is the user who possesses the owner password and is able to set it and change it. Only one owner password exists per TPM. The owner of the TPM can make full use of TPM capabilities. Taking ownership of the TPM can be done as part of the initialization process. -- [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm) +When you start the TPM Initialization Wizard, which is accessed through the TPM Microsoft Management Console (MMC), you can determine whether the computer's TPM has been initialized. You can also view the TPM properties. -With TPM 1.2 and Windows 10, version 1507 or 1511, you can also take the following actions: +This topic contains procedures for the following tasks: -- [Turn on or turn off the TPM](#turn-on-or-turn-off) +- [Initialize the TPM and set ownership](#bkmk-initializetpm) +- [Troubleshoot TPM initialization](#bkmk-troubleshootinit) +- [Turn on or turn off the TPM](#bkmk-onoff) +- [Clear all the keys from the TPM](#bkmk-clear1) +- [Use the TPM cmdlets](#bkmk-tpmcmdlets) -This topic also provides information about [using the TPM cmdlets](#use-the-tpm-cmdlets). +## Initialize the TPM and set ownership -## About TPM initialization and ownership +Membership in the local Administrators group, or equivalent, is the minimum required to complete this procedure. In addition, the computer must be equipped with a Trusted Computing Group-compliant BIOS. -Starting with Windows 10, the operating system automatically initializes and takes ownership of the TPM. This is a change from previous operating systems, where you would initialize the TPM and create an owner password. Therefore, with Windows 10, in most cases, we recommend that you avoid configuring the TPM through **TPM.msc**. The one exception is that in certain circumstances you might use **TPM.msc** to clear the TPM. For more information, see [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. +**To start the TPM Initialization Wizard** -## View the status of the TPM +1. Open the TPM Management console (tpm.msc). If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. +2. On the **Action** menu, click **Initialize TPM** to start the TPM Initialization Wizard. +3. If the TPM has never been initialized or is turned off, the TPM Initialization Wizard displays the **Turn on the TPM security hardware** dialog box. This dialog box provides guidance for initializing or turning on the TPM. Follow the instructions in the wizard. -To view the status of the TPM, open the TPM Management console (TPM.msc). In the center pane, find the **Status** box. + >**Note:** If the TPM is already turned on, the TPM Initialization Wizard displays the **Create the TPM owner password** dialog box. Skip the remainder of this procedure and continue with the **To set ownership of the TPM** procedure. +   + >**Note:**  If the TPM Initialization Wizard detects that you do not have a compatible BIOS, you cannot continue with the TPM Initialization Wizard, and you are alerted to consult the computer manufacturer's documentation for instructions to initialize the TPM. +   +4. Click **Restart**. +5. Follow the BIOS screen prompts. An acceptance prompt is displayed to ensure that a user has physical access to the computer and that no malicious software is attempting to turn on the TPM. + + >**Note:**  BIOS screen prompts and the required keystrokes vary by computer manufacturer. +   +6. After the computer restarts, sign in to the computer with the same administrative credentials that you used to start this procedure. +7. The TPM Initialization Wizard automatically restarts. If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. +8. Continue with the next procedure to take ownership of the TPM. -In most cases, the status will be **Ready**. If the status is ready but “**with reduced functionality**,” see [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. +To finish initializing the TPM for use, you must set an owner for the TPM. The process of taking ownership includes creating an owner password for the TPM. -If the status is **Not ready**, you can try the steps in [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. If this does not bring it to a **Ready** state, contact the manufacturer, and see the troubleshooting suggestions in the next section. +**To set ownership of the TPM** -## Troubleshoot TPM initialization +1. If you are not continuing immediately from the last procedure, start the TPM Initialization Wizard. If you need to review the steps to do so, see the previous procedure **To start the TPM Initialization Wizard**. +2. In the **Create the TPM owner password** dialog box, click **Automatically create the password (recommended)**. +3. In the **Save your TPM owner password** dialog box, click **Save the password**. +4. In the **Save As** dialog box, select a location to save the password, and then click **Save**. The password file is saved as *computer\_name.tpm*. -If you find that Windows is not able to initialize the TPM automatically, review the following information: + >**Important:**  We highly recommend saving the TPM owner password to a removable storage device and storing it in a safe location. +   +5. Click **Print the password** if you want to print a copy of your password. + >**Important:**  We highly recommend printing a copy of your TPM owner password and storing it in a safe location. +   +6. Click **Initialize**. + >**Note:**  The process of initializing the TPM might take a few minutes to complete. +   +7. Click **Close**. + >**Caution:**  Do not lose your password. If you do, you will be unable to make administrative changes unless you clear the TPM, which can result in data loss. +   +## Troubleshoot TPM initialization -- You can try clearing the TPM to the factory default values and allowing Windows to re-initialize it. For important precautions for this process, and instructions for completing it, see [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. +Managing the Trusted Platform Module (TPM) is usually a straightforward procedure. If are unable to complete the initialization procedure, review the following information: -- If the TPM is a TPM 2.0 and is not detected by Windows, verify that your computer hardware contains a Unified Extensible Firmware Interface (UEFI) that is Trusted Computing Group-compliant. Also, ensure that in the UEFI settings, the TPM has not been disabled or hidden from the operating system. +- If the TPM is not detected by Windows, verify that your computer hardware contains a Trusted Computing Group-compliant BIOS. Ensure that no BIOS settings have been used to hide the TPM from the operating system. +- If you are attempting to initialize the TPM as part of the BitLocker setup, check which TPM driver is installed on the computer. We recommend always using one of the TPM drivers that is provided by Microsoft and is protected with BitLocker. If a non-Microsoft TPM driver is installed, it may prevent the default TPM driver from loading and cause BitLocker to report that a TPM is not present on the computer. If you have a non-Microsoft driver installed, remove it and then try to initialize the TPM. The following table lists the three standard TPM drivers that are provided by Microsoft. -- If you have TPM 1.2 with Windows 10, version 1507 or 1511, the TPM might be turned off, and need to be turned back on, as described in [Turn on the TPM](#turn-on-the-tpm). When it is turned back on, Windows will re-initialize it. +| Driver name | Manufacturer | +| - | - | +| Trusted Platform Module 1.2 | (Standard)| +| Broadcom Trusted Platform Module (A1), v1.2 | Broadcom| +| Broadcom Trusted Platform Module (A2), v1.2 | Broadcom| +   +- If the TPM has been previously initialized and you do not have the owner password, you may have to clear or reset the TPM to the factory default values. For more information, see [Clear all the keys from the TPM](#bkmk-clear1). + > **Caution:**  Clearing the TPM can result in data loss. To avoid data loss, make sure that you have a backup or recovery method for any data that is protected or encrypted by the TPM. +   +Because your TPM security hardware is a physical part of your computer, you may want to read the manuals or instructions that came with your computer, or search the manufacturer's website. -- If you are attempting to set up BitLocker with the TPM, check which TPM driver is installed on the computer. We recommend always using one of the TPM drivers that is provided by Microsoft and is protected with BitLocker. If a non-Microsoft TPM driver is installed, it may prevent the default TPM driver from loading and cause BitLocker to report that a TPM is not present on the computer. If you have a non-Microsoft driver installed, remove it and then allow the operating system to initialize the TPM. +**Network connection** -### Troubleshoot network connection issues for Windows 10, versions 1507 and 1511 - -If you have Windows 10, version 1507 or 1511, the initialization of the TPM cannot complete when your computer has network connection issues and both of the following conditions exist: +You cannot complete the initialization of the Trusted Platform Module (TPM) when your computer is disconnected from your organization's network if either of the following conditions exist: - An administrator has configured your computer to require that TPM recovery information be saved in Active Directory Domain Services (AD DS). This requirement can be configured through Group Policy. - - A domain controller cannot be reached. This can occur on a computer that is currently disconnected from the network, separated from the domain by a firewall, or experiencing a network component failure (such as an unplugged cable or a faulty network adapter). -If these issues occur, an error message appears, and you cannot complete the initialization process. To avoid this issue, allow Windows to initialize the TPM while you are connected to the corporate network and you can contact a domain controller. +In either case, an error message appears, and you cannot complete the initialization process. To avoid this issue, initialize the TPM while you are connected to the corporate network and you can contact a domain controller. -### Troubleshoot systems with multiple TPMs +**Systems with multiple TPMs** -Some systems may have multiple TPMs and the active TPM may be toggled in UEFI. Windows 10 does not support this behavior. If you switch TPMs, Windows might not properly detect or interact with the new TPM. If you plan to switch TPMs you should toggle to the new TPM, clear it, and reinstall Windows. For more information, see [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. +Some systems may have multiple TPMs and the active TPM may be toggled in the BIOS. Windows 10 does not support this behavior. If you switch TPMs, functionality that depends on the TPM will not work with the new TPM unless it is cleared and put through provisioning. Performing this clear may cause data loss, in particular of keys and certificates associated with the previous TPM. For example, toggling TPMs will cause Bitlocker to enter recovery mode. It is strongly recommended that, on systems with two TPMs, one TPM is selected to be used and the selection is not changed. -For example, toggling TPMs will cause BitLocker to enter recovery mode. We strongly recommend that, on systems with two TPMs, one TPM is selected to be used and the selection is not changed. +## Turn on or turn off the TPM -## Clear all the keys from the TPM +Normally, the TPM is turned on as part of the TPM initialization process. You do not normally need to turn the TPM on or off. However, if necessary you can do so by using the TPM MMC. This option is only available with TPM 1.2 and does not apply to TPM 2.0. -With Windows 10, in most cases, we recommend that you avoid configuring the TPM through TPM.msc. The one exception is that you can use TPM.msc to clear the TPM, for example, as a troubleshooting step, or as a final preparation before a clean installation of a new operating system. Preparing for a clean installation in this way helps ensure that the new operating system can fully deploy any TPM-based functionality that it includes, for example, attestation. However, even if the TPM is not cleared before a new operating system is installed, most TPM functionality will probably work correctly. +### Turn on the TPM -Clearing the TPM resets it to an unowned state. After you clear the TPM, the Windows 10 operating system will automatically re-initialize it and take ownership again. +If the TPM has been initialized but has never been used, or if you want to use the TPM after you have turned it off, you can use the following procedure to turn on the TPM. -> [!WARNING] -> Clearing the TPM can result in data loss. For more information, see the next section, “Precautions to take before clearing the TPM.” +**To turn on the TPM (TPM 1.2 Only)** -There are several ways to clear the TPM: +1. Open the TPM MMC (tpm.msc). +2. In the **Action** pane, click **Turn TPM On** to display the **Turn on the TPM Security Hardware** page. Read the instructions on this page. +3. Click **Shutdown** (or **Restart**), and then follow the BIOS screen prompts. -- **Clear the TPM as part of a complete reset of the computer**: You might want to remove all files from the computer and completely reset it, for example, in preparation for a clean installation. To do this, we recommend that you use the **Reset** option in **Settings**. When you perform a reset and use the **Remove everything** option, it will clear the TPM as part of the reset. You might be prompted to press a key before the TPM can be cleared. For more information, see the “Reset this PC” section in [Recovery options in Windows 10](https://support.microsoft.com/en-us/help/12415/windows-10-recovery-options). + After the computer restarts, but before you sign in to Windows, you will be prompted to accept the reconfiguration of the TPM. This ensures that the user has physical access to the computer and that malicious software is not attempting to make changes to the TPM. -- **Clear the TPM to fix “reduced functionality” or “Not ready” TPM status**: If you open TPM.msc and see that the TPM status is something other than **Ready**, you can can try using TPM.msc to clear the TPM and fix the status. However, be sure to review the precautions in the next section. +### Turn off the TPM -### Precautions to take before clearing the TPM +If you want to stop using the services that are provided by the TPM, you can use the TPM MMC to turn off the TPM. If you have the TPM owner password, physical access to the computer is not required to turn off the TPM. If you do not have the TPM owner password, you must have physical access to the +computer to turn off the TPM. -Clearing the TPM can result in data loss. To protect against such loss, review the following precautions: +**To turn off the TPM (TPM 1.2 only)** -- Clearing the TPM causes you to lose all created keys associated with the TPM, and data protected by those keys, such as a virtual smart card or a login PIN. Make sure that you have a backup and recovery method for any data that is protected or encrypted by the TPM. +1. Open the TPM MMC (tpm.msc). +2. In the **Action** pane, click **Turn TPM Off** to display the **Turn off the TPM security hardware** page. +3. In the **Turn off the TPM security hardware** dialog box, select a method to enter your owner password and turning off the TPM: -- Do not clear the TPM on a device you do not own, such as a work or school PC, without being instructed to do so by your IT administrator. + - If you saved your TPM owner password on a removable storage device, insert it, and then click **I have the owner password file**. In the **Select backup file with the TPM owner password** dialog box, click **Browse** to locate the .tpm file that is saved on your removable storage device, click **Open**, and then click **Turn TPM Off**. + - If you do not have the removable storage device with your saved TPM owner password, click **I want to enter the password**. In the **Type your TPM owner password** dialog box, type your password (including hyphens), and then click **Turn TPM Off**. + - If you do not know your TPM owner password, click **I do not have the TPM owner password**, and follow the instructions that are provided in the dialog box and subsequent BIOS screens to turn off the TPM without entering the password. -- If you want to temporarily suspend TPM operations and you have TPM 1.2 with Windows 10, version 1507 or 1511, you can turn off the TPM. For more information, see [Turn off the TPM](#turn-off-the-tpm), later in this topic. +## Clear all the keys from the TPM -- Always use functionality in the operating system (such as TPM.msc) to the clear the TPM. Do not clear the TPM directly from UEFI. +Clearing the TPM resets it to an unowned state. After clearing the TPM, you need to complete the TPM initialization process before using software that relies on the TPM, such as BitLocker Drive Encryption. By default, the TPM is initialized automatically. -- Because your TPM security hardware is a physical part of your computer, before clearing the TPM, you might want to read the manuals or instructions that came with your computer, or search the manufacturer's website. +>**Important:**  Clearing the TPM can result in data loss. To avoid data loss, make sure that you have a backup or recovery method for any data that is protected or encrypted by the TPM. +  +After the TPM is cleared, it is also turned off. + +To temporarily suspend TPM operations, turn off the TPM instead of clearing it. Membership in the local Administrators group, or equivalent, is the minimum required to complete this procedure. **To clear the TPM** 1. Open the TPM MMC (tpm.msc). - 2. If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. - 3. Under **Actions**, click **Clear TPM**. + >**Warning:**  If the TPM is off, reinitialize it before clearing it. + + Clearing the TPM resets it to factory defaults and turns it off. You will lose all created keys and data that is protected by those keys. +   +4. You will be prompted to restart the computer. During the restart, you will be prompted by the BIOS or UEFI to press a button to confirm you wish to clear the TPM. -4. You will be prompted to restart the computer. During the restart, you might be prompted by the UEFI to press a button to confirm that you wish to clear the TPM. - -5. After the PC restarts, your TPM will be automatically prepared for use by Windows 10. - -## Turn on or turn off the TPM (TPM 1.2 with Windows 10, version 1507 or 1511) - -Normally, the TPM is turned on as part of the TPM initialization process. You do not normally need to turn the TPM on or off. However, if necessary you can do so by using the TPM MMC. - -### Turn on the TPM - -If you want to use the TPM after you have turned it off, you can use the following procedure to turn on the TPM. - -**To turn on the TPM (TPM 1.2 with Windows 10, version 1507 or 1511 only)** - -1. Open the TPM MMC (tpm.msc). - -2. In the **Action** pane, click **Turn TPM On** to display the **Turn on the TPM Security Hardware** page. Read the instructions on this page. - -3. Click **Shutdown** (or **Restart**), and then follow the UEFI screen prompts. - - After the computer restarts, but before you sign in to Windows, you will be prompted to accept the reconfiguration of the TPM. This ensures that the user has physical access to the computer and that malicious software is not attempting to make changes to the TPM. - -### Turn off the TPM - -If you want to stop using the services that are provided by the TPM, you can use the TPM MMC to turn off the TPM. - -**To turn off the TPM (TPM 1.2 with Windows 10, version 1507 or 1511 only)** - -1. Open the TPM MMC (tpm.msc). - -2. In the **Action** pane, click **Turn TPM Off** to display the **Turn off the TPM security hardware** page. - -3. In the **Turn off the TPM security hardware** dialog box, select a method to enter your owner password and turning off the TPM: - - - If you saved your TPM owner password on a removable storage device, insert it, and then click **I have the owner password file**. In the **Select backup file with the TPM owner password** dialog box, click **Browse** to locate the .tpm file that is saved on your removable storage device, click **Open**, and then click **Turn TPM Off**. - - - If you do not have the removable storage device with your saved TPM owner password, click **I want to enter the password**. In the **Type your TPM owner password** dialog box, type your password (including hyphens), and then click **Turn TPM Off**. - - - If you did not save your TPM owner password or no longer know it, click **I do not have the TPM owner password**, and follow the instructions that are provided in the dialog box and subsequent UEFI screens to turn off the TPM without entering the password. - -## Use the TPM cmdlets +## Use the TPM cmdlets If you are using Windows PowerShell to manage your computers, you can also manage the TPM by using Windows PowerShell. To install the TPM cmdlets, type the following command: @@ -156,6 +166,6 @@ If you are using Windows PowerShell to manage your computers, you can also manag For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). -## Related topics +## Additional resources -- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) +For more info about TPM, see [Trusted Platform Module Technology Overview](trusted-platform-module-overview.md#bkmk-additionalresources). diff --git a/windows/keep-secure/installing-digital-certificates-on-windows-10-mobile.md b/windows/keep-secure/installing-digital-certificates-on-windows-10-mobile.md index 1e16d409a2..11d5fe781d 100644 --- a/windows/keep-secure/installing-digital-certificates-on-windows-10-mobile.md +++ b/windows/keep-secure/installing-digital-certificates-on-windows-10-mobile.md @@ -24,8 +24,8 @@ Certificates in Windows 10 Mobile are primarily used for the following purposes - For installation and licensing of applications (from the Windows Phone Store or a custom company distribution site). ->[!WARNING]   ->In Windows 10, Version 1607, if you have multiple certificates provisioned on the device and the Wi-Fi profile provisioned does not have a strict filtering criteria, you may see connection failures when connecting to Wi-Fi. [Learn more about this known issue in Version 1607](https://go.microsoft.com/fwlink/p/?LinkId=786764) +**Warning**   +In Windows 10, Version 1607, if you have multiple certificates provisioned on the device and the Wi-Fi profile provisioned does not have a strict filtering criteria, you may see connection failures when connecting to Wi-Fi. [Learn more about this known issue in Version 1607](https://go.microsoft.com/fwlink/p/?LinkId=786764) ## Install certificates using Microsoft Edge @@ -33,13 +33,12 @@ A certificate can be posted on a website and made available to users through a d ## Install certificates using email -The Windows 10 Mobile certificate installer supports .cer, .p7b, .pem, and .pfx files. Some email programs block .cer files for security reasons. If this is the case in your organization, use an alternative method to deploy the certificate. Certificates that are sent via email appear as message attachments. When a certificate is received, a user can tap to review the contents and then tap to install the certificate. Typically, when an identity certificate is installed, the user is prompted for the password (or passphrase) that protects it. +The Windows 10 Mobile certificate installer supports .cer, .p7b, .pem, and .pfx files. To install certificates via email, make sure your mail filters do not block .cer files. Certificates that are sent via email appear as message attachments. When a certificate is received, a user can tap to review the contents and then tap to install the certificate. Typically, when an identity certificate is installed, the user is prompted for the password (or passphrase) that protects it. ## Install certificates using mobile device management (MDM) Windows 10 Mobile supports root, CA, and client certificate to be configured via MDM. Using MDM, an administrator can directly add, delete, or query root and CA certificates, and configure the device to enroll a client certificate with a certificate enrollment server that supports Simple Certificate Enrollment Protocol (SCEP). SCEP enrolled client certificates are used by Wi-Fi, VPN, email, and browser for certificate-based client authentication. An MDM server can also query and delete SCEP enrolled client certificate (including user installed certificates), or trigger a new enrollment request before the current certificate is expired. ->[!WARNING] ->Do not use SCEP for encryption certificates for S/MIME. You must use a PFX certificate profile to support S/MIME on Windows 10 Mobile. For instructions on creating a PFX certificate profile in Microsoft Intune, see [Enable access to company resources using certificate profiles with Microsoft Intune](https://go.microsoft.com/fwlink/p/?LinkID=718216). +> **Warning:**  Do not use SCEP for encryption certificates for S/MIME. You must use a PFX certificate profile to support S/MIME on Windows 10 Mobile. For instructions on creating a PFX certificate profile in Microsoft Intune, see [Enable access to company resources using certificate profiles with Microsoft Intune](https://go.microsoft.com/fwlink/p/?LinkID=718216).   **Process of installing certificates using MDM** @@ -51,17 +50,14 @@ Windows 10 Mobile supports root, CA, and client certificate to be configured vi 6. The device connects to Internet-facing point exposed by MDM server. 7. MDM server creates a certificate that is signed with proper CA certificate and returns it to device. - >[!NOTE] - >The device supports the pending function to allow server side to do additional verification before issuing the cert. In this case, a pending status is sent back to the device. The device will periodically contact the server, based on preconfigured retry count and retry period parameters. Retrying ends when either: - > - >- A certificate is successfully received from the server - >- The server returns an error - >- The number of retries reaches the preconfigured limit + > **Note:**  The device supports the pending function to allow server side to do additional verification before issuing the cert. In this case, a pending status is sent back to the device. The device will periodically contact the server, based on preconfigured retry count and retry period parameters. Retrying ends when either: + A certificate is successfully received from the server + The server returns an error + The number of retries reaches the preconfigured limit   8. The cert is installed in the device. Browser, Wi-Fi, VPN, email, and other first party applications have access to this certificate. - >[!NOTE] - >If MDM requested private key stored in Trusted Process Module (TPM) (configured during enrollment request), the private key will be saved in TPM. Note that SCEP enrolled cert protected by TPM isn’t guarded by a PIN. However, if the certificate is imported to the Windows Hello for Business Key Storage Provider (KSP), it is guarded by the Hello PIN. + > **Note:**  If MDM requested private key being stored in Trusted Process Module (TPM) (configured during enrollment request), the private key will be saved in TPM. Note that SCEP enrolled cert protected by TPM isn’t guarded by a PIN. However, if the certificate is imported to the Passport for Work Key Storage Provider (KSP), it is guarded by the Passport PIN.   ## Related topics diff --git a/windows/keep-secure/interactive-logon-display-user-information-when-the-session-is-locked.md b/windows/keep-secure/interactive-logon-display-user-information-when-the-session-is-locked.md index f82d103fb6..7c1d049314 100644 --- a/windows/keep-secure/interactive-logon-display-user-information-when-the-session-is-locked.md +++ b/windows/keep-secure/interactive-logon-display-user-information-when-the-session-is-locked.md @@ -35,7 +35,7 @@ When a session is locked in a Windows operating system (meaning the user at the - Blank. - Default setting. This translates to “Not defined,” but it will display the user’s full name in the same manner as the **User display name** option. When an option is set, you cannot reset this policy to blank, or not defined. + Default setting. This translates to “Not defined,” but it will display the user’s full name in the same manner as the **User display name, domain and user names** option. When an option is set, you cannot reset this policy to blank, or not defined. ### Best practices diff --git a/windows/keep-secure/interactive-logon-do-not-display-last-user-name.md b/windows/keep-secure/interactive-logon-do-not-display-last-user-name.md index 5af92d1bcf..0177def043 100644 --- a/windows/keep-secure/interactive-logon-do-not-display-last-user-name.md +++ b/windows/keep-secure/interactive-logon-do-not-display-last-user-name.md @@ -34,6 +34,8 @@ If this policy is disabled, the full name of the last user to log on is displaye Your implementation of this policy depends on your security requirements for displayed logon information. If you have devices that store sensitive data, with monitors displayed in unsecured locations, or if you have devices with sensitive data that are remotely accessed, revealing logged on user’s full names or domain account names might contradict your overall security policy. +Depending on your security policy, you might also want to enable the [Interactive logon: Display user information when the session is locked](interactive-logon-display-user-information-when-the-session-is-locked.md) policy, which will prevent the Windows operating system from displaying the logon name when the session is locked or started. + ### Location Computer Configuration\\Windows Settings\\Security Settings\\Local Policies\\Security Options diff --git a/windows/keep-secure/interactive-logon-require-smart-card.md b/windows/keep-secure/interactive-logon-require-smart-card.md index 503713f8e7..2441b3c3e7 100644 --- a/windows/keep-secure/interactive-logon-require-smart-card.md +++ b/windows/keep-secure/interactive-logon-require-smart-card.md @@ -1,5 +1,5 @@ --- -title: Interactive logon Require smart card - security policy setting (Windows 10) +title: Interactive logon Require smart card (Windows 10) description: Describes the best practices, location, values, policy management and security considerations for the Interactive logon Require smart card security policy setting. ms.assetid: c6a8c040-cbc7-472d-8bc5-579ddf3cbd6c ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Interactive logon: Require smart card - security policy setting +# Interactive logon: Require smart card **Applies to** - Windows 10 diff --git a/windows/keep-secure/introduction-to-device-guard-virtualization-based-security-and-code-integrity-policies.md b/windows/keep-secure/introduction-to-device-guard-virtualization-based-security-and-code-integrity-policies.md index 3712b6aed0..c0577fe786 100644 --- a/windows/keep-secure/introduction-to-device-guard-virtualization-based-security-and-code-integrity-policies.md +++ b/windows/keep-secure/introduction-to-device-guard-virtualization-based-security-and-code-integrity-policies.md @@ -75,5 +75,5 @@ Another Windows 10 feature that employs VBS is [Credential Guard](credential-gua Credential Guard is targeted at resisting pass-the-hash and pass-the-ticket techniques. By employing multifactor authentication with Credential Guard, organizations can gain additional protection against such threats. - +In addition to the client-side enabling of Credential Guard, organizations can deploy mitigations at both the CA and domain controller level to help prevent credential theft. For more information, see the [Additional mitigations](https://technet.microsoft.com/en-us/itpro/windows/keep-secure/credential-guard#additional-mitigations) section in “Protect derived domain credentials with Credential Guard.” diff --git a/windows/keep-secure/investigate-machines-windows-defender-advanced-threat-protection.md b/windows/keep-secure/investigate-machines-windows-defender-advanced-threat-protection.md index bc3e8df73d..eec0ada5a4 100644 --- a/windows/keep-secure/investigate-machines-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/investigate-machines-windows-defender-advanced-threat-protection.md @@ -21,12 +21,12 @@ localizationpriority: high - Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) -The **Machines view** shows a list of the machines in your network, the corresponding number of active alerts for each machine categorized by alert severity levels, and the number of active malware detections. This view allows you to identify machines with the highest risk at a glance, and keep track of all the machines that are reporting sensor data in your network. +The **Machines view** shows a list of the machines in your network, the corresponding number of active alerts for each machine categorized by alert severity levels, and the number of active malware detections. This view allows you to identify machines with the highest risk at a glance, and keep track of all the machines that are reporting telemetry in your network. Use the Machines view in these two main scenarios: - **During onboarding** - - During the onboarding process, the Machines view gradually gets populated with endpoints as they begin to report sensor data. Use this view to track your onboarded endpoints as they appear. Use the available features to sort and filer to see which endpoints have most recently reported sensor data, or download the complete endpoint list as a CSV file for offline analysis. + - During the onboarding process, the Machines view gradually gets populated with endpoints as they begin to report telemetry. Use this view to track your onboarded endpoints as they appear. Use the available features to sort and filer to see which endpoints have most recently reported telemetry, or download the complete endpoint list as a CSV file for offline analysis. - **Day-to-day work** - The **Machines view** enables you to identify machines that are most at risk in a glance. High-risk machines are those with the greatest number and highest-severity alerts. By sorting the machines by risk, you'll be able to identify the most vulnerable machines and take action on them. @@ -34,7 +34,7 @@ The Machines view contains the following columns: - **Machine name** - the name or GUID of the machine - **Domain** - the domain the machine belongs to -- **Last seen** - when the machine last reported sensor data +- **Last seen** - when the machine last reported telemetry - **Internal IP** - the local internal Internet Protocol (IP) address of the machine - **Active Alerts** - the number of alerts reported by the machine by severity - **Active malware detections** - the number of active malware detections reported by the machine @@ -59,7 +59,7 @@ You can filter the view by the following time periods: - 6 months > [!NOTE] -> When you select a time period, the list will only display machines that reported within the selected time period. For example, selecting 1 day will only display a list of machines that reported sensor data within the last 24-hour period. +> When you select a time period, the list will only display machines that reported within the selected time period. For example, selecting 1 day will only display a list of machines that reported telemetry within the last 24-hour period. The threat category filter lets you filter the view by the following categories: @@ -94,7 +94,7 @@ When you investigate a specific machine, you'll see: - **Alerts related to this machine** - **Machine timeline** -The machine details, IP, and reporting sections display some attributes of the machine such as its name, domain, OS, IP address, and how long it's been reporting sensor data to the Windows Defender ATP service. +The machine details, IP, and reporting sections display some attributes of the machine such as its name, domain, OS, IP address, and how long it's been reporting telemetry to the Windows Defender ATP service. The **Alerts related to this machine** section provides a list of alerts that are associated with the machine. This list is a simplified version of the [Alerts queue](alerts-queue-windows-defender-advanced-threat-protection.md), and shows the date that the alert was detected, a short description of the alert, the alert's severity, the alert's threat category, and the alert's status in the queue. diff --git a/windows/keep-secure/limitations-with-wip.md b/windows/keep-secure/limitations-with-wip.md index 39aaeb8dc5..dc2429d6b3 100644 --- a/windows/keep-secure/limitations-with-wip.md +++ b/windows/keep-secure/limitations-with-wip.md @@ -25,8 +25,8 @@ This table provides info about the most common problems you might encounter whil - - + + @@ -67,7 +67,7 @@ This table provides info about the most common problems you might encounter whil - + @@ -79,7 +79,4 @@ This table provides info about the most common problems you might encounter whil -
    Workaround
    Your enterprise data on USB drives might be tied to the device it was protected on, based on your Azure RMS configuration.If you’re using Azure RMS: Authenticated users can open enterprise data on USB drives, on computers running the latest build from the Windows Insider Program.

    If you’re not using Azure RMS: Data in the new location remains encrypted, but becomes inaccessible on other devices and for other users. For example, the file won't open or the file opens, but doesn't contain readable text.

    Enterprise data on USB drives is tied to the device it was protected on.Data in the new location remains encrypted, but becomes inaccessible on other devices and for other users. For example, the file won't open or the file opens, but doesn't contain readable text. Share files with fellow employees through enterprise file servers or enterprise cloud locations. If data must be shared via USB, employees can decrypt protected files, but it will be audited.

    We strongly recommend educating employees about how to limit or eliminate the need for this decryption.

    Redirected folders with Client Side Caching are not compatible with WIP. Apps might encounter access errors while attempting to read a cached, offline file.Migrate to use another file synchronization method, such as Work Folders or OneDrive for Business.

    Note
    For more info about Work Folders and Offline Files, see the blog, [Work Folders and Offline Files support for Windows Information Protection](https://blogs.technet.microsoft.com/filecab/2016/08/29/work-folders-and-offline-files-support-for-windows-information-protection/). If you're having trouble opening files offline while using Offline Files and WIP, see the support article, [Can't open files offline when you use Offline Files and Windows Information Protection](https://support.microsoft.com/en-us/kb/3187045).

    Migrate to use another file synchronization method, such as Work Folders or OneDrive for Business.
    You can't upload an enterprise file to a personal location using Microsoft Edge or Internet Explorer.Webpages that use ActiveX controls can potentially communicate with other outside processes that aren’t protected by using WIP. We recommend that you switch to using Microsoft Edge, the more secure and safer browser that prevents the use of ActiveX controls. We also recommend that you limit the usage of Internet Explorer 11 to only those line-of-business apps that require legacy technology.

    For more info, see [Out-of-date ActiveX control blocking](https://technet.microsoft.com/en-us/itpro/internet-explorer/ie11-deploy-guide/out-of-date-activex-control-blocking).

    - ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). + diff --git a/windows/keep-secure/maintain-applocker-policies.md b/windows/keep-secure/maintain-applocker-policies.md index 69cf6d1483..43bd39884e 100644 --- a/windows/keep-secure/maintain-applocker-policies.md +++ b/windows/keep-secure/maintain-applocker-policies.md @@ -47,7 +47,7 @@ Before modifying a policy, evaluate how the policy is currently implemented. For ### Step 2: Export the AppLocker policy from the GPO -Updating an AppLocker policy that is currently enforced in your production environment can have unintended results. Therefore, export the policy from the GPO and update the rule or rules by using AppLocker on your AppLocker reference or test computer. To prepare an AppLocker policy for modification, see [Export an AppLocker policy from a GPO](export-an-applocker-policy-from-a-gpo.md). +Updating an AppLocker policy that is currently enforced in your production environment can have unintended results. Therefore, export the policy from the GPO and update the rule or rules by using AppLocker on your AppLocker reference or test computer. To prepare an AppLocker policy for modification, see [Export an AppLocker policy from a GPO](export-an-applocker-policy-from-a-gpo.md) ### Step 3: Update the AppLocker policy by editing the appropriate AppLocker rule diff --git a/windows/keep-secure/manage-identity-verification-using-microsoft-passport.md b/windows/keep-secure/manage-identity-verification-using-microsoft-passport.md index 18f8399a2b..d91d7bbb04 100644 --- a/windows/keep-secure/manage-identity-verification-using-microsoft-passport.md +++ b/windows/keep-secure/manage-identity-verification-using-microsoft-passport.md @@ -93,7 +93,7 @@ When identity providers such as Active Directory or Azure AD enroll a certificat [Introduction to Windows Hello](https://go.microsoft.com/fwlink/p/?LinkId=786649), video presentation on Microsoft Virtual Academy -[What's new in Active Directory Domain Services for Windows Server 2016](https://go.microsoft.com/fwlink/p/?LinkId=708533) +[What's new in Active Directory Domain Services (AD DS) in Windows Server Technical Preview](https://go.microsoft.com/fwlink/p/?LinkId=708533) [Windows Hello face authentication](https://go.microsoft.com/fwlink/p/?LinkId=626024) diff --git a/windows/keep-secure/manage-tpm-commands.md b/windows/keep-secure/manage-tpm-commands.md index 71f3c2229e..c4b6611da4 100644 --- a/windows/keep-secure/manage-tpm-commands.md +++ b/windows/keep-secure/manage-tpm-commands.md @@ -13,54 +13,44 @@ author: brianlic-msft **Applies to** - Windows 10 -- Windows Server 2016 This topic for the IT professional describes how to manage which Trusted Platform Module (TPM) commands are available to domain users and to local users. +## + After a computer user takes ownership of the TPM, the TPM owner can limit which TPM commands can be run by creating a list of blocked TPM commands. The list can be created and applied to all computers in a domain by using Group Policy, or a list can be created for individual computers by using the TPM MMC. Because some hardware vendors might provide additional commands or the Trusted Computing Group may decide to add commands in the future, the TPM MMC also supports the ability to block new commands. -Domain administrators can configure a list of blocked TPM commands by using Group Policy. Local administrators cannot allow TPM commands that are blocked through Group Policy. For more information about this Group Policy setting, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#configure-the-list-of-blocked-tpm-commands). +Domain administrators can configure a list of blocked TPM commands by using Group Policy. Local administrators cannot allow TPM commands that are blocked through Group Policy. For more information about this Group Policy setting, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#bkmk-tpmgp-clbtc). Local administrators can block commands by using the TPM MMC, and commands on the default block list are also blocked unless the Group Policy settings are changed from the default settings. -Two policy settings control the enforcement which allows TPM commands to run. For more information about these policy settings, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#ignore-the-default-list-of-blocked-tpm-commands). +Two policy settings control the enforcement which allows TPM commands to run. For more information about these policy settings, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#bkmk-tpmgp-idlb). The following procedures describe how to manage the TPM command lists. You must be a member of the local Administrators group. **To block TPM commands by using the Local Group Policy Editor** 1. Open the Local Group Policy Editor (gpedit.msc). If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. - - > [!NOTE] - > Administrators with appropriate rights in a domain can configure a Group Policy Object (GPO) that can be applied through Active Directory Domain Services (AD DS). - + + >**Note:**  Administrators with appropriate rights in a domain can configure a Group Policy Object (GPO) that can be applied through Active Directory Domain Services (AD DS). +   2. In the console tree, under **Computer Configuration**, expand **Administrative Templates**, and then expand **System**. - 3. Under **System**, click **Trusted Platform Module Services**. - 4. In the details pane, double-click **Configure the list of blocked TPM commands**. - 5. Click **Enabled**, and then click **Show**. - 6. For each command that you want to block, click **Add**, enter the command number, and then click **OK**. - - > [!NOTE] - > For a list of commands, see links in the [TPM Specification](https://www.trustedcomputinggroup.org/tpm-main-specification/). - + + >**Note:**  For a list of commands, see the [Trusted Platform Module (TPM) Specifications](https://go.microsoft.com/fwlink/p/?linkid=139770). +   7. After you have added numbers for each command that you want to block, click **OK** twice. - 8. Close the Local Group Policy Editor. **To block or allow TPM commands by using the TPM MMC** 1. Open the TPM MMC (tpm.msc) - 2. If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. - 3. In the console tree, click **Command Management**. A list of TPM commands is displayed. - 4. In the list, select a command that you want to block or allow. - 5. Under **Actions**, click **Block Selected Command** or **Allow Selected Command** as needed. If **Allow Selected Command** is unavailable, that command is currently blocked by Group Policy. **To block new commands** @@ -70,19 +60,17 @@ The following procedures describe how to manage the TPM command lists. You must If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. 2. In the console tree, click **Command Management**. A list of TPM commands is displayed. - 3. In the **Action** pane, click **Block New Command**. The **Block New Command** dialog box is displayed. - 4. In the **Command Number** text box, type the number of the new command that you want to block, and then click **OK**. The command number you entered is added to the blocked list. -## Use the TPM cmdlets +## Use the TPM cmdlets If you are using Windows PowerShell to manage your computers, you can also manage the TPM by using Windows PowerShell. To install the TPM cmdlets, type the following command: `dism /online /enable-feature /FeatureName:tpm-psh-cmdlets` -For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). +For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -## Related topics +## Additional resources -- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) +For more info about TPM, see [Trusted Platform Module technology overview](trusted-platform-module-overview.md#bkmk-additionalresources). diff --git a/windows/keep-secure/manage-tpm-lockout.md b/windows/keep-secure/manage-tpm-lockout.md index 3f5e966157..f59a117ee3 100644 --- a/windows/keep-secure/manage-tpm-lockout.md +++ b/windows/keep-secure/manage-tpm-lockout.md @@ -12,11 +12,10 @@ author: brianlic-msft **Applies to** - Windows 10 -- Windows Server 2016 This topic for the IT professional describes how to manage the lockout feature for the Trusted Platform Module (TPM) in Windows. -## About TPM lockout +## About TPM lockout The TPM will lock itself to prevent tampering or malicious attacks. TPM lockout often lasts for a variable amount of time or until the computer is turned off. While the TPM is in lockout mode, it generally returns an error message when it receives commands that require an authorization value. One exception is that the TPM always allows the owner at least one attempt to reset the TPM lockout when it is in lockout mode. @@ -25,58 +24,49 @@ TPM ownership is taken upon first boot by Windows. By default, Windows does not In some cases, encryption keys are protected by a TPM by requiring a valid authorization value to access the key. A common example is configuring BitLocker Drive Encryption to use the TPM plus PIN key protector. In this scenario, the user must type the correct PIN during the boot process to access the volume encryption key protected by the TPM. To prevent malicious users or software from discovering authorization values, TPMs implement protection logic. The protection logic is designed to slow or stop responses from the TPM if it detects that an entity might be trying to guess authorization values. **TPM 1.2** - The industry standards from the Trusted Computing Group (TCG) specify that TPM manufacturers must implement some form of protection logic in TPM 1.2 and TPM 2.0 chips. TPM 1.2 devices implement different protection mechanisms and behavior. In general, the TPM chip takes exponentially longer to respond if incorrect authorization values are sent to the TPM. Some TPM chips may not store failed attempts over time. Other TPM chips may store every failed attempt indefinitely. Therefore, some users may experience increasingly longer delays when they mistype an authorization value that is sent to the TPM. This can prevent them from using the TPM for a period of time. **TPM 2.0** + TPM 2.0 devices have standardized lockout behavior which is configured by Windows. TPM 2.0 devices have a maximum count threshold and a healing time. Windows configures the maximum count to be 32 and the healing time to be 2 hours. This means that every continuous two hours of powered on operation without an event which increases the counter will cause the counter to decrease by 1. -TPM 2.0 devices have standardized lockout behavior which is configured by Windows. TPM 2.0 devices have a maximum count threshold and a healing time. Windows configures the maximum count to be 32 and the healing time to be 2 hours. This means that every continuous two hours of powered on operation without an event which increases the counter will cause the counter to decrease by 1. - -If your TPM has entered lockout mode or is responding slowly to commands, you can reset the lockout value by using the following procedures. Resetting the TPM lockout requires the TPM owner’s authorization. This value is no longer retained by default starting with Windows 10 version 1607. +If your TPM has entered lockout mode or is responding slowly to commands, you can reset the lockout value by using the following procedures. Resetting the TPM lockout requires the TPM owner’s authorization. This value is no longer retained by default starting with Windows 10 version 1607. ## Reset the TPM lockout by using the TPM MMC +**Note:** This procedure is only available if you have configured Windows to retain the TPM Owner Password. By default, this password is not available in Windows 10 starting with version 1607. -> [!NOTE] -> This procedure is only available if you have configured Windows to retain the TPM Owner Password. By default, this password is not available in Windows 10 starting with version 1607. - -The following procedure explains the steps to reset the TPM lockout by using the TPM MMC. +The following procedure explains the steps to reset the TPM lockout by using the TPM MMC. **To reset the TPM lockout** 1. Open the TPM MMC (tpm.msc). - 2. In the **Action** pane, click **Reset TPM Lockout** to start the Reset TPM Lockout Wizard. - 3. Choose one of the following methods to enter the TPM owner password: + - If you saved your TPM owner password to a .tpm file, click **I have the owner password file**, and then type the path to the file, or click **Browse** to navigate to the file location. + - If you want to manually enter your TPM owner password, click **I want to enter the owner password**, and then type the password in the text box provided. - - If you saved your TPM owner password to a .tpm file, click **I have the owner password file**, and then type the path to the file, or click **Browse** to navigate to the file location. - - - If you want to manually enter your TPM owner password, click **I want to enter the owner password**, and then type the password in the text box provided. - - > [!NOTE] - > If you enabled BitLocker and your TPM at the same time, and you printed your BitLocker recovery password when you turned on BitLocker, your TPM owner password may have printed with it. - + >**Note:**  If you enabled BitLocker and your TPM at the same time, and you printed your BitLocker recovery password when you turned on BitLocker, your TPM owner password may have printed with it. +   ## Use Group Policy to manage TPM lockout settings The TPM Group Policy settings in the following list are located at: **Computer Configuration\\Administrative Templates\\System\\Trusted Platform Module Services\\** -- [Standard User Lockout Duration](trusted-platform-module-services-group-policy-settings.md#standard-user-lockout-duration) +- [Standard User Lockout Duration](trusted-platform-module-services-group-policy-settings.md#bkmk-individual) This policy setting allows you to manage the duration in minutes for counting standard user authorization failures for TPM commands that require authorization. An authorization failure occurs each time a user sends a command to the TPM and receives an error message that indicates an authorization failure occurred. Authorization failures that are older than the duration you set are ignored. If the number of TPM commands with an authorization failure within the lockout duration equals a threshold, the user is prevented from sending commands to the TPM that require authorization. -- [Standard User Individual Lockout Threshold](trusted-platform-module-services-group-policy-settings.md#standard-user-individual-lockout-threshold) +- [Standard User Individual Lockout Threshold](trusted-platform-module-services-group-policy-settings.md#bkmk-tpmgp-suld) This policy setting allows you to manage the maximum number of authorization failures for the TPM for each user. This value is the maximum number of authorization failures that each user can have before the user is not allowed to send commands to the TPM that require authorization. If the number of authorization failures equals the duration that is set for the policy setting, the user is prevented from sending commands to the TPM that require authorization. -- [Standard User Total Lockout Threshold](trusted-platform-module-services-group-policy-settings.md#standard-user-total-lockout-threshold) - +- [Standard User Total Lockout Threshold](trusted-platform-module-services-group-policy-settings.md#bkmk-total) + This policy setting allows you to manage the maximum number of authorization failures for the TPM for all standard users. If the total number of authorization failures for all users equals the duration that is set for the policy, all users are prevented from sending commands to the TPM that require authorization. -For information about mitigating dictionary attacks that use the lockout settings, see [TPM fundamentals](tpm-fundamentals.md#how-the-tpm-mitigates-dictionary-attacks). +For information about mitigating dictionary attacks that use the lockout settings, see [TPM fundamentals](tpm-fundamentals.md#bkmk-howtpmmitigates). -## Use the TPM cmdlets +## Use the TPM cmdlets If you are using Windows PowerShell to manage your computers, you can also manage the TPM by using Windows PowerShell. To install the TPM cmdlets, type the following command: @@ -84,6 +74,6 @@ If you are using Windows PowerShell to manage your computers, you can also manag For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). -## Related topics +## Additional resources -- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) +For more info about TPM, see [TPM technology overview](trusted-platform-module-overview.md#bkmk-additionalresources). diff --git a/windows/keep-secure/mandatory-settings-for-wip.md b/windows/keep-secure/mandatory-settings-for-wip.md index 1c7ea0a9ff..0e1345c2ae 100644 --- a/windows/keep-secure/mandatory-settings-for-wip.md +++ b/windows/keep-secure/mandatory-settings-for-wip.md @@ -17,8 +17,8 @@ localizationpriority: high This list provides all of the tasks and settings that are required for the operating system to turn on Windows Information Protection (WIP), formerly known as enterprise data protection (EDP), in your enterprise. ->[!IMPORTANT] ->All sections provided for more info appear in either the [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) or [Create a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md), based on the tool you're using in your enterprise. +>**Important**
    +All sections provided for more info appear in either the [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) or [Create a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md), based on the tool you're using in your enterprise. |Task |Description | @@ -28,7 +28,4 @@ This list provides all of the tasks and settings that are required for the opera |Specify your corporate identity. |You must specify your corporate identity, usually expressed as your primary Internet domain (for example, contoso.com). For more info about where this area is and what it means, see the **Define your enterprise-managed corporate identity** section of the policy creation topics. | |Specify your Enterprise Network Domain Names. |You must specify the DNS suffixes used in your environment. All traffic to the fully-qualified domains appearing in this list will be protected. For more info about where this area is and how to add your suffixes, see the table that appears in the **Choose where apps can access enterprise data** section of the policy creation topics. | |Specify your Enterprise IPv4 or IPv6 Ranges. |Specify the addresses for a valid IPv4 or IPv6 value range within your intranet. These addresses, used with your Enterprise Network Domain Names, define your corporate network boundaries. For more info about where this area is and what it means, see the table that appears in the **Define your enterprise-managed corporate identity** section of the policy creation topics. | -|Include your Data Recovery Agent (DRA) certificate. |This certificate makes sure that any of your WIP-encrypted data can be decrypted, even if the security keys are lost. For more info about where this area is and what it means, see the **Create and verify an Encrypting File System (EFS) DRA certificate** section of the policy creation topics. | - ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). \ No newline at end of file +|Include your Data Recovery Agent (DRA) certificate. |This certificate makes sure that any of your WIP-encrypted data can be decrypted, even if the security keys are lost. For more info about where this area is and what it means, see the **Create and verify an Encrypting File System (EFS) DRA certificate** section of the policy creation topics. | \ No newline at end of file diff --git a/windows/keep-secure/minimum-requirements-windows-defender-advanced-threat-protection.md b/windows/keep-secure/minimum-requirements-windows-defender-advanced-threat-protection.md index 55a3242e78..0fd2edc0d3 100644 --- a/windows/keep-secure/minimum-requirements-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/minimum-requirements-windows-defender-advanced-threat-protection.md @@ -61,7 +61,7 @@ Before you configure endpoints, the telemetry and diagnostics service must be en ### Telemetry and diagnostics settings You must ensure that the telemetry and diagnostics service is enabled on all the endpoints in your organization. -By default, this service is enabled, but it's good practice to check to ensure that you'll get sensor data from them. +By default, this service is enabled, but it's good practice to check to ensure that you'll get telemetry from them. **Use the command line to check the Windows 10 telemetry and diagnostics service startup type**: @@ -113,4 +113,4 @@ When Windows Defender is not the active antimalware in your organization and you ## Windows Defender Early Launch Antimalware (ELAM) driver is enabled If you're running Windows Defender as the primary antimalware product on your endpoints, the Windows Defender ATP agent will successfully onboard. -If you're running a third-party antimalware client and use Mobile Device Management solutions or System Center Configuration Manager (current branch) version 1606, you'll need to ensure that the Windows Defender ELAM driver is enabled. For more information, see [Ensure that Windows Defender is not disabled by policy](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md#ensure-that-windows-defender-is-not-disabled-by-a-policy). +If you're running a third-party antimalware client and use Mobile Device Management solutions or System Center Configuration Manager (current branch) version 1606, you'll need to ensure that the Windows Defender ELAM driver is enabled. For more information on how to validate and enable the Windows Defender ELAM driver see, [Ensure the Windows Defender ELAM driver is enabled](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md#ensure-the-windows-defender-elam-driver-is-enabled). diff --git a/windows/keep-secure/onboard-configure-windows-defender-advanced-threat-protection.md b/windows/keep-secure/onboard-configure-windows-defender-advanced-threat-protection.md index 2a7a40abd6..9205bb0153 100644 --- a/windows/keep-secure/onboard-configure-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/onboard-configure-windows-defender-advanced-threat-protection.md @@ -23,7 +23,6 @@ localizationpriority: high You need to onboard to Windows Defender ATP before you can use the service. -For more information, see [Onboard your Windows 10 endpoints to Windows Defender ATP](https://www.youtube.com/watch?v=JT7VGYfeRlA&feature=youtu.be). ## In this section Topic | Description diff --git a/windows/keep-secure/overview-create-wip-policy.md b/windows/keep-secure/overview-create-wip-policy.md index c3ad6bf5a3..f0ae686b47 100644 --- a/windows/keep-secure/overview-create-wip-policy.md +++ b/windows/keep-secure/overview-create-wip-policy.md @@ -23,8 +23,4 @@ Microsoft Intune and System Center Configuration Manager helps you create and de |------|------------| |[Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) |Intune helps you create and deploy your WIP policy, including letting you choose your protected apps, your WIP-protection level, and how to find enterprise data on the network. | |[Create and deploy a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md) |System Center Configuration Manager helps you create and deploy your WIP policy, including letting you choose your protected apps, your WIP-protection level, and how to find enterprise data on the network. | -|[Create and verify an Encrypting File System (EFS) Data Recovery Agent (DRA) certificate](create-and-verify-an-efs-dra-certificate.md) |Steps to create, verify, and perform a quick recovery using a Encrypting File System (EFS) Data Recovery Agent (DRA) certificate. | -|[Determine the Enterprise Context of an app running in Windows Information Protection (WIP)](wip-app-enterprise-context.md) |Use the Task Manager to determine whether an app is considered work, personal or exempt by Windows Information Protection (WIP). | - ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). \ No newline at end of file +|[Create and verify an Encrypting File System (EFS) Data Recovery Agent (DRA) certificate](create-and-verify-an-efs-dra-certificate.md) |Steps to create, verify, and perform a quick recovery using a Encrypting File System (EFS) Data Recovery Agent (DRA) certificate. | \ No newline at end of file diff --git a/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies.md b/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies.md index cf75c935f9..31c04c1c61 100644 --- a/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies.md +++ b/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies.md @@ -48,13 +48,13 @@ BitLocker helps prevent unauthorized access to data on lost or stolen computers - Encrypting the entire Windows operating system volume on the hard disk. - Verifying the boot process integrity. -The trusted platform module (TPM) is a hardware component installed in many newer computers by the computer manufacturers. It works with BitLocker to help protect user data and to ensure that a computer has not been tampered with while the system was offline. +The trusted platform module (TPM)is a hardware component installed in many newer computers by the computer manufacturers. It works with BitLocker to help protect user data and to ensure that a computer has not been tampered with while the system was offline. In addition, BitLocker offers the option to lock the normal startup process until the user supplies a personal identification number (PIN) or inserts a removable USB device, such as a flash drive, that contains a startup key. These additional security measures provide multifactor authentication and assurance that the computer will not start or resume from hibernation until the correct PIN or startup key is presented. On computers that do not have a TPM version 1.2 or higher, you can still use BitLocker to encrypt the Windows operating system volume. However, this implementation will require the user to insert a USB startup key to start the computer or resume from hibernation, and does not provide the pre-startup system integrity verification offered by BitLocker working with a TPM. -### BitLocker key protectors +**BitLocker key protectors** | Key protector | Description | | - | - | @@ -65,7 +65,7 @@ On computers that do not have a TPM version 1.2 or higher, you can still use Bi | Recovery password | A 48-digit number used to unlock a volume when it is in recovery mode. Numbers can often be typed on a regular keyboard, if the numbers on the normal keyboard are not responding you can always use the function keys (F1-F10) to input the numbers.| | Recovery key| An encryption key stored on removable media that can be used for recovering data encrypted on a BitLocker volume.|   -### BitLocker authentication methods +**BitLocker authentication methods** | Authentication method | Requires user interaction | Description | | - | - | - | @@ -97,9 +97,22 @@ The protection differences provided by multifactor authentication methods cannot In your deployment plan, identify what TPM-based hardware platforms will be supported. Document the hardware models from an OEM of your choice, so that their configurations can be tested and supported. TPM hardware requires special consideration during all aspects of planning and deployment. -### TPM 1.2 states and initialization +### TPM states of existence -For TPM 1.2, there are multiple possible states. Windows 10 automatically initializes the TPM, which brings it to an enabled, activated, and owned state. This is the state that BitLocker requires before it can use the TPM. +For each of the TPM states of existence, the TPM can transition into another state (for example, moving from disabled to enabled). The states are not exclusive. + +| State | Description | +| - | - | +| Enabled| Most features of the TPM are available.
    The TPM may be enabled and disabled multiple times within a boot period, if ownership is taken.| +| Disabled | The TPM restricts most operations. Exceptions include the ability to report TPM capabilities, extend and reset Platform Configuration Register (PCR) functions, and to perform hashing and basic initialization.
    The TPM may be enabled and disabled multiple times within a boot period.| +| Activated| Most features of the TPM are available. The TPM may be activated and deactivated only through physical presence which requires a reboot.| +| Deactivated| Similar to disabled, with the exception that ownership can be taken while deactivated and enabled. The TPM may be activated and deactivated only through physical presence which requires a reboot.| +| Owned| Most features of the TPM are available. The TPM has an endorsement key and storage root key, and the owner knows information about owner authorization data.| +| Un-owned| The TPM does not have a storage root key and may or may not have an endorsement key.| +  +>**Important:**  BitLocker cannot use the TPM until it is in the following state: enabled, activated, and owned. When the TPM is in this state and only when it is in this state, all operations are available. +  +The state of the TPM exists independent of the computer’s operating system. Once the TPM is enabled, activated, and owned, the state of the TPM is preserved if the operating system is reinstalled. ### Endorsement keys diff --git a/windows/keep-secure/protect-enterprise-data-using-wip.md b/windows/keep-secure/protect-enterprise-data-using-wip.md index a37553eb2c..dc661d0dbd 100644 --- a/windows/keep-secure/protect-enterprise-data-using-wip.md +++ b/windows/keep-secure/protect-enterprise-data-using-wip.md @@ -93,8 +93,7 @@ WIP gives you a new way to manage data policy enforcement for apps and documents - **Helping prevent accidental data disclosure to removable media.** WIP helps prevent enterprise data from leaking when it's copied or transferred to removable media. For example, if an employee puts enterprise data on a Universal Serial Bus (USB) drive that also has personal data, the enterprise data remains encrypted while the personal data doesn’t. - **Remove access to enterprise data from enterprise-protected devices.** WIP gives admins the ability to revoke enterprise data from one or many MDM-enrolled devices, while leaving personal data alone. This is a benefit when an employee leaves your company, or in the case of a stolen device. After determining that the data access needs to be removed, you can use Microsoft Intune to unenroll the device so when it connects to the network, the user's encryption key for the device is revoked and the enterprise data becomes unreadable. - >[!NOTE] - >For management of Surface devices it is recommended that you use the Current Branch of System Center Configuration Manager.
    System Center Configuration Manager also allows you to revoke enterprise data. However, it does it by performing a factory reset of the device. + > **Note**
    System Center Configuration Manager also allows you to revoke enterprise data. However, it does it by performing a factory reset of the device. ## How WIP works WIP helps address your everyday challenges in the enterprise. Including: @@ -138,7 +137,3 @@ You can turn off all Windows Information Protection and restrictions, decrypting After deciding to use WIP in your enterprise, you need to: - [Create a Windows Information Protection (WIP) policy](overview-create-wip-policy.md) - - ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). diff --git a/windows/keep-secure/protect-high-value-assets-by-controlling-the-health-of-windows-10-based-devices.md b/windows/keep-secure/protect-high-value-assets-by-controlling-the-health-of-windows-10-based-devices.md index ac0409286d..b2d8f3634a 100644 --- a/windows/keep-secure/protect-high-value-assets-by-controlling-the-health-of-windows-10-based-devices.md +++ b/windows/keep-secure/protect-high-value-assets-by-controlling-the-health-of-windows-10-based-devices.md @@ -364,7 +364,7 @@ The following table details the hardware requirements for both virtualization-ba

    Support for the IOMMU in Windows 10 enhances system resiliency against DMA attacks.

    -

    Trusted Platform Module (TPM)

    +

    Trusted Platform Module (TPM) 2.0

    Required to support health attestation and necessary for additional key protections for virtualization-based security.

    @@ -455,7 +455,7 @@ The device health attestation solution involves different components that are TP ### Trusted Platform Module -This section describes how PCRs (that contain system configuration data), endorsement key (EK) (that act as an identity card for TPM), SRK (that protect keys) and AIKs (that can report platform state) are used for health attestation reporting. +*It’s all about TPM 2.0 and endorsement certificates.* This section describes how PCRs (that contain system configuration data), endorsement key (EK) (that act as an identity card for TPM), SRK (that protect keys) and AIKs (that can report platform state) are used for health attestation reporting. In a simplified manner, the TPM is a passive component with limited resources. It can calculate random numbers, RSA keys, decrypt short data, store hashes taken when booting the device. diff --git a/windows/keep-secure/protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md b/windows/keep-secure/protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md index f1f62943e3..aaf71600b1 100644 --- a/windows/keep-secure/protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md +++ b/windows/keep-secure/protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md @@ -33,7 +33,8 @@ Windows PowerShell or the manage-bde command line interface is the preferred met >**Note:**  Mount points can be used to support remote mount points on SMB based network shares. This type of share is not supported for BitLocker encryption.   -For thinly provisioned storage, such as a Dynamic Virtual Hard Disk (VHD), BitLocker runs in Used Disk Space Only encryption mode. You cannot use the **manage-bde -WipeFreeSpace** command to transition the volume to full-volume encryption on these types of volumes. This is blocked in order to avoid expanding thinly provisioned volumes to occupy the entire backing store while wiping the unoccupied (free) space. +For thinly provisioned storage, such as a Dynamic Virtual Hard Disk (VHD), BitLocker runs in Used Disk Space Only encryption mode. You cannot use the **manage-bde –WipeFreeSpace** command to transition the volume to full-volume encryption on these types of volumes. This occurs because Full +Encryption requires an end marker for the volume and dynamically expanding VHDs do not have a static end of volume marker. ### Active Directory-based protector @@ -56,22 +57,28 @@ BitLocker encryption is available for disks before or after addition to a cluste 1. Install the BitLocker Drive Encryption feature if it is not already installed. 2. Ensure the disk is formatted NTFS and has a drive letter assigned to it. -3. Identify the name of the cluster with Windows PowerShell. +3. Enable BitLocker on the volume using your choice of protector. A password protector is used in the Windows PowerShell script example below. + + ``` syntax + Enable-BitLocker E: -PasswordProtector -Password $pw + ``` + +4. Identify the name of the cluster with Windows PowerShell. ``` syntax Get-Cluster ``` -4. Enable BitLocker on the volume of your choice with an **ADAccountOrGroup** protector, using the cluster name. For example, use a command such as: +5. Add an **ADAccountOrGroup**protector to the volume using the cluster name using a command such as: ``` syntax - Enable-BitLocker E: -ADAccountOrGroupProtector -ADAccountOrGroup CLUSTER$ + Add-BitLockerProtector E: -ADAccountOrGroupProtector -ADAccountOrGroup CLUSTER$ ``` - >**Warning:**  You must configure an **ADAccountOrGroup** protector using the cluster CNO for a BitLocker enabled volume to either be shared in a Cluster Shared Volume or to fail over properly in a traditional failover cluster. + >**Warning:**  You must add an **ADAccountOrGroup** protector using the cluster CNO for a BitLocker enabled volume to either be shared in a Cluster Shared Volume or to failover properly in a traditional failover cluster.   -5. Repeat the preceding steps for each disk in the cluster. -6. Add the volume(s) to the cluster. +6. Repeat steps 1-6 for each disk in the cluster. +7. Add the volume(s) to the cluster. ### Turning on BitLocker for a clustered disk using Windows PowerShell @@ -90,26 +97,28 @@ When the cluster service owns a disk resource already, it needs to be set into m Get-ClusterResource "Cluster Disk 1" | Suspend-ClusterResource ``` -4. Identify the name of the cluster with Windows PowerShell. +4. Enable BitLocker on the volume using your choice of protector. A password protector is used in the example below. + + ``` syntax + Enable-BitLocker E: -PasswordProtector -Password $pw + ``` + +5. Identify the name of the cluster with Windows PowerShell ``` syntax Get-Cluster ``` -5. Enable BitLocker on the volume of your choice with an **ADAccountOrGroup** protector, using the cluster name. For example, use a command such as: +6. Add an **ADAccountOrGroup** protector with the Cluster Name Object (CNO) to the volume using a command such as: ``` syntax - Enable-BitLocker E: -ADAccountOrGroupProtector -ADAccountOrGroup CLUSTER$ + Add-BitLockerProtector E: -ADAccountOrGroupProtector -ADAccountOrGroup CLUSTER$ + ``` - >**Warning:**  You must configure an **ADAccountOrGroup** protector using the cluster CNO for a BitLocker enabled volume to either be shared in a Cluster Shared Volume or to fail over properly in a traditional failover cluster. + >**Warning:**  You must add an **ADAccountOrGroup** protector using the cluster CNO for a BitLocker enabled volume to either be shared in a Cluster Shared Volume or to failover properly in a traditional failover cluster.   -6. Use **Resume-ClusterResource** to take the physical disk resource back out of maintenance mode: - - ``` syntax - Get-ClusterResource "Cluster Disk 1" | Resume-ClusterResource - ``` - -7. Repeat the preceding steps for each disk in the cluster. +7. Repeat steps 1-6 for each disk in the cluster. +8. Add the volume(s) to the cluster ### Adding BitLocker encrypted volumes to a cluster using manage-bde diff --git a/windows/keep-secure/recommended-network-definitions-for-wip.md b/windows/keep-secure/recommended-network-definitions-for-wip.md deleted file mode 100644 index bf9a7ac22a..0000000000 --- a/windows/keep-secure/recommended-network-definitions-for-wip.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP) (Windows 10) -description: Recommended URLs to add to your Enterprise Cloud Resources and Neutral Resources network settings, when used with Windows Information Protection (WIP). -keywords: WIP, Windows Information Protection, EDP, Enterprise Data Protection, WIP and Neutral Resources, WIP and Enterprise Cloud Resources -ms.prod: w10 -ms.mktglfcycl: explore -ms.sitesec: library -ms.pagetype: security -localizationpriority: high ---- - -# Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP) - -**Applies to:** - -- Windows 10, version 1607 -- Windows 10 Mobile - ->Learn more about what features and functionality are supported in each Windows edition at [Compare Windows 10 Editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare). - -We recommend that you add the following URLs to the Enterprise Cloud Resources and Neutral Resources network settings, when used with Windows Information Protection (WIP). - -## Recommended Enterprise Cloud Resources -This table includes the recommended URLs to add to your Enterprise Cloud Resources network setting, based on the apps you use in your organization. - -|If your organization uses... |Add these entries to your Enterprise Cloud Resources network setting
    (Replace "contoso" with your domain name(s) | -|-----------------------------|---------------------------------------------------------------------| -|Office 365 for Business |
    • contoso.sharepoint.com
    • contoso-my.sharepoint.com
    • contoso-files.sharepoint.com
    • tasks.office.com
    • protection.office.com
    • meet.lync.com
    • teams.microsoft.com
    | -|Yammer |
    • www.yammer.com
    • yammer.com
    • persona.yammer.com
    | -|Microsoft Dynamics |contoso.crm.dynamics.com | -|Visual Studio Online |contoso.visualstudio.com | -|Power BI |contoso.powerbi.com | - -## Recommended Neutral Resources -We recommended adding these URLs if you use the Neutral Resources network setting with Windows Information Protection (WIP). -
      -
    • login.microsoftonline.com
    • -
    • login.windows.net
    • -
    \ No newline at end of file diff --git a/windows/keep-secure/remove-computer-from-docking-station.md b/windows/keep-secure/remove-computer-from-docking-station.md index 1823951ae4..ee3b81a7d3 100644 --- a/windows/keep-secure/remove-computer-from-docking-station.md +++ b/windows/keep-secure/remove-computer-from-docking-station.md @@ -1,5 +1,5 @@ --- -title: Remove computer from docking station - security policy setting (Windows 10) +title: Remove computer from docking station (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Remove computer from docking station security policy setting. ms.assetid: 229a385a-a862-4973-899a-413b1b5b6c30 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Remove computer from docking station - security policy setting +# Remove computer from docking station **Applies to** - Windows 10 diff --git a/windows/keep-secure/requirements-and-deployment-planning-guidelines-for-device-guard.md b/windows/keep-secure/requirements-and-deployment-planning-guidelines-for-device-guard.md index fad266b5ee..d2bbb021bb 100644 --- a/windows/keep-secure/requirements-and-deployment-planning-guidelines-for-device-guard.md +++ b/windows/keep-secure/requirements-and-deployment-planning-guidelines-for-device-guard.md @@ -26,7 +26,7 @@ This article describes the following: The information in this article is intended for IT professionals, and provides a foundation for [Planning and getting started on the Device Guard deployment process](planning-and-getting-started-on-the-device-guard-deployment-process.md). ->**Note**  If you are an OEM, see the requirements information at [PC OEM requirements for Device Guard and Credential Guard](https://msdn.microsoft.com/library/windows/hardware/mt767514.aspx). +>**Note**  If you are an OEM, see the requirements information at [PC OEM requirements for Device Guard and Credential Guard](https://msdn.microsoft.com/library/windows/hardware/mt767514(v=vs.85).aspx). ## Hardware, firmware, and software requirements for Device Guard diff --git a/windows/keep-secure/requirements-for-deploying-applocker-policies.md b/windows/keep-secure/requirements-for-deploying-applocker-policies.md index 874036e3b6..e3b6c29aa7 100644 --- a/windows/keep-secure/requirements-for-deploying-applocker-policies.md +++ b/windows/keep-secure/requirements-for-deploying-applocker-policies.md @@ -24,7 +24,7 @@ The following requirements must be met or addressed before you deploy your AppLo ### Deployment plan -An AppLocker policy deployment plan is the result of investigating which applications are required and necessary in your organization, which apps are optional, and which apps are forbidden. To develop this plan, see [AppLocker Design Guide](applocker-policies-design-guide.md). The following table is an example of the data you need to collect and the decisions you need to make to successfully deploy AppLocker policies on the supported operating systems (as listed in [Requirements to use AppLocker](requirements-to-use-applocker.md)). +An AppLocker policy deployment plan is the result of investigating which applications are required and necessary in your organization, which apps are optional, and which apps are forbidden. To develop this plan, see [AppLocker Design Guide](applocker-policies-design-guide.md). The following table is an example of the data you need to collect and the decisions you need to make to successfully deploy AppLocker policies on the supported operating systems (as listed in [Requirements to use AppLocker](requirements-to-use-applocker.md). diff --git a/windows/keep-secure/requirements-to-use-applocker.md b/windows/keep-secure/requirements-to-use-applocker.md index 81fe0f76ba..60ac319a63 100644 --- a/windows/keep-secure/requirements-to-use-applocker.md +++ b/windows/keep-secure/requirements-to-use-applocker.md @@ -33,10 +33,12 @@ The following table show the on which operating systems AppLocker features are s | Version | Can be configured | Can be enforced | Available rules | Notes | | - | - | - | - | - | -| Windows 10| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL| You can use the [AppLocker CSP](http://msdn.microsoft.com/library/windows/hardware/dn920019.aspx) to configure AppLocker policies on any edition of Windows 10. You can only manage AppLocker with Group Policy on devices running Windows 10 Enterprise, Windows 10 Education, and Windows Server 2016. | -| Windows Server 2016
    Windows Server 2012 R2
    Windows Server 2012| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL| | +| Windows 10| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL| You can use the [AppLocker CSP](http://msdn.microsoft.com/library/windows/hardware/dn920019.aspx) to configure AppLocker policies on any edition of Windows 10. You can only manage AppLocker with Group Policy on devices running Windows 10 Enterprise and Windows Server 2016. | +| Windows Server 2012 R2| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL| | | Windows 8.1| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL| Only the Enterprise edition supports AppLocker| | Windows RT 8.1| No| No| N/A|| +| Windows Server 2012 Standard| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL|| +| Windows Server 2012 Datacenter| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL|| | Windows 8 Pro| No| No| N/A|| | Windows 8 Enterprise| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL|| | Windows RT| No| No| N/A| | diff --git a/windows/keep-secure/restore-files-and-directories.md b/windows/keep-secure/restore-files-and-directories.md index bf78f4ff41..e8bb7e6f85 100644 --- a/windows/keep-secure/restore-files-and-directories.md +++ b/windows/keep-secure/restore-files-and-directories.md @@ -1,5 +1,5 @@ --- -title: Restore files and directories - security policy setting (Windows 10) +title: Restore files and directories (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Restore files and directories security policy setting. ms.assetid: c673c0fa-6f49-4edd-8c1f-c5e8513f701d ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Restore files and directories - security policy setting +# Restore files and directories **Applies to** - Windows 10 diff --git a/windows/keep-secure/security-technologies.md b/windows/keep-secure/security-technologies.md index 6b82a956c7..8bd5183126 100644 --- a/windows/keep-secure/security-technologies.md +++ b/windows/keep-secure/security-technologies.md @@ -11,23 +11,21 @@ author: brianlic-msft # Security technologies -As an IT professional, you can use these topics to learn more about the different security technologies that are available in Windows 10 and Windows 10 Mobile. +Learn more about the different security technologies that are available in Windows 10 and Windows 10 Mobile. -| Section | Description | +| Topic | Description | |-|-| | [Access control](access-control.md) | Describes access control in Windows, which is the process of authorizing users, groups, and computers to access objects on the network or computer. Key concepts that make up access control are permissions, ownership of objects, inheritance of permissions, user rights, and object auditing. | -| [AppLocker](applocker-overview.md)| Describes AppLocker, and can help you decide if your organization can benefit from deploying AppLocker application control policies. AppLocker helps you control which apps and files users can run. These include executable files, scripts, Windows Installer files, dynamic-link libraries (DLLs), packaged apps, and packaged app installers.| -| [BitLocker](bitlocker-overview.md)| Provides information about BitLocker, which is a data protection feature that integrates with the operating system and addresses the threats of data theft or exposure from lost, stolen, or inappropriately decommissioned computers. | -| [Encrypted Hard Drive](encrypted-hard-drive.md) | Provides information about Encrypted Hard Drive, which uses the rapid encryption that is provided by BitLocker Drive Encryption to enhance data security and management.| -| [Security auditing](security-auditing-overview.md)| Describes how the IT professional can use the security auditing features in Windows, and how organizations can benefit from using these technologies, to enhance the security and manageability of networks.| -| [Security policy settings](security-policy-settings.md)| Provides a collection of reference topics that describe the common scenarios, architecture, and processes for security settings.| -| [Smart Cards](smart-card-windows-smart-card-technical-reference.md) | Provides a collection of references topics about smart cards, which are tamper-resistant portable storage devices that can enhance the security of tasks such as authenticating clients, signing code, securing e-mail, and signing in with a Windows domain account. | -| [Trusted Platform Module](trusted-platform-module-top-node.md)| Provides links to information about the Trusted Platform Module (TPM), which is a secure crypto-processor that helps you with actions such as generating, storing, and limiting the use of cryptographic keys. | -| [User Account Control](user-account-control-overview.md)| Provides information about User Account Control (UAC), which helps prevent malware from damaging a PC and helps organizations deploy a better-managed desktop. UAC can help block the automatic installation of unauthorized apps and prevent inadvertent changes to system settings.| -| [Virtual Smart Cards](virtual-smart-card-overview.md) | Provides information about deploying and managing virtual smart cards, which are functionally similar to physical smart cards and appear in Windows as smart cards that are always-inserted. Virtual smart cards use the Trusted Platform Module (TPM) chip that is available on computers in many organizations, rather than requiring the use of a separate physical smart card and reader. | -| [Windows Defender Advanced Threat Protection](windows-defender-advanced-threat-protection.md)| Provides information about Windows Defender Advanced Threat Protection (Windows Defender ATP), an out-of-the-box Windows enterprise security service that enables enterprise cybersecurity teams to detect and respond to advanced threats on their networks.| -| [Windows Defender in Windows 10](windows-defender-in-windows-10.md)| Provides information about Windows Defender, a built-in antimalware solution that helps provide security and antimalware management for desktops, portable computers, and servers. Includes a list of system requirements and new features.| -| [Windows Firewall with Advanced Security](windows-firewall-with-advanced-security.md) | Provides information about Windows Firewall with Advanced Security, which is an important part of a layered security model. By providing host-based, two-way network traffic filtering for a device, Windows Firewall with Advanced Security blocks unauthorized network traffic flowing into or out of the local device. | +| [AppLocker](applocker-overview.md)| This topic provides a description of AppLocker and can help you decide if your organization can benefit from deploying AppLocker application control policies. AppLocker helps you control which apps and files users can run. These include executable files, scripts, Windows Installer files, dynamic-link libraries (DLLs), packaged apps, and packaged app installers.| +| [BitLocker](bitlocker-overview.md)| This topic provides a high-level overview of BitLocker, including a list of system requirements, practical applications, and deprecated features.| +| [Encrypted Hard Drive](encrypted-hard-drive.md) | Encrypted Hard Drive uses the rapid encryption that is provided by BitLocker Drive Encryption to enhance data security and management.| +| [Security auditing](security-auditing-overview.md)| Topics in this section are for IT professionals and describes the security auditing features in Windows and how your organization can benefit from using these technologies to enhance the security and manageability of your network.| +| [Security policy settings](security-policy-settings.md)| This reference topic describes the common scenarios, architecture, and processes for security settings.| +| [Trusted Platform Module](trusted-platform-module-overview.md)| This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. The topic provides links to other resources about the TPM.| +| [User Account Control](user-account-control-overview.md)| User Account Control (UAC) helps prevent malware from damaging a PC and helps organizations deploy a better-managed desktop. With UAC, apps and tasks always run in the security context of a non-administrator account, unless an administrator specifically authorizes administrator-level access to the system. UAC can block the automatic installation of unauthorized apps and prevent inadvertent changes to system settings.| +| [Windows Defender Advanced Threat Protection](windows-defender-advanced-threat-protection.md)| Windows Defender Advanced Threat Protection (Windows Defender ATP) is an out-of-the-box Windows enterprise security service that enables enterprise cybersecurity teams to detect and respond to advanced threats on their networks.| +| [Windows Defender in Windows 10](windows-defender-in-windows-10.md)| This topic provides an overview of Windows Defender, including a list of system requirements and new features.| +| [Windows Firewall with Advanced Security](windows-firewall-with-advanced-security.md) | Windows Firewall with Advanced Security is an important part of a layered security model. By providing host-based, two-way network traffic filtering for a device, Windows Firewall with Advanced Security blocks unauthorized network traffic flowing into or out of the local device. |     diff --git a/windows/keep-secure/select-types-of-rules-to-create.md b/windows/keep-secure/select-types-of-rules-to-create.md index 35f8ffd6b2..00ae11caf5 100644 --- a/windows/keep-secure/select-types-of-rules-to-create.md +++ b/windows/keep-secure/select-types-of-rules-to-create.md @@ -55,7 +55,7 @@ In the Woodgrove Bank example, the line-of-business app for the Bank Tellers bus ### Determine how to allow system files to run -Because AppLocker rules build a list of allowed apps, a rule or rules must be created to allow all Windows files to run. AppLocker provides a means to ensure system files are properly considered in your rule collection by generating the default rules for each rule collection. You can use the default rules (listed in [AppLocker default rules](working-with-applocker-rules.md#applocker-default-rules)) as a template when creating your own rules. However, these rules are only meant to function as a starter policy when you are first testing AppLocker rules so that the system files in the Windows folders will be allowed to run. When a default rule is created, it is denoted with "(Default rule)" in its name as it appears in the rule collection. +Because AppLocker rules build a list of allowed apps, a rule or rules must be created to allow all Windows files to run. AppLocker provides a means to ensure system files are properly considered in your rule collection by generating the default rules for each rule collection. You can use the default rules as a template when creating your own rules. However, these rules are only meant to function as a starter policy when you are first testing AppLocker rules so that the system files in the Windows folders will be allowed to run. When a default rule is created, it is denoted with "(Default rule)" in its name as it appears in the rule collection. You can also create a rule for the system files based on the path condition. In the preceding example, for the Bank Tellers group, all Windows files reside under C:\\Windows and can be defined with the path rule condition type. This will permit access to these files whenever updates are applied and the files change. If you require additional application security, you might need to modify the rules created from the built-in default rule collection. For example, the default rule to allow all users to run .exe files in the Windows folder is based on a path condition that allows all files within the Windows folder to run. The Windows folder contains a Temp subfolder to which the Users group is given the following permissions: diff --git a/windows/keep-secure/service-status-windows-defender-advanced-threat-protection.md b/windows/keep-secure/service-status-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 6c8623a564..0000000000 --- a/windows/keep-secure/service-status-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Check the Windows Defender ATP service status -description: Check Windows Defender ATP service status, see if the service is experiencing issues and review previous issues that have been resolved. -keywords: dashboard, service, issues, service status, current issues, status history, summary of impact, preliminary root cause, resolution, resolution time, expected resolution time -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -author: mjcaparas -localizationpriority: high ---- - -# Check the Windows Defender Advanced Threat Protection service status - -**Applies to:** - -- Windows 10 Enterprise -- Windows 10 Education -- Windows 10 Pro -- Windows 10 Pro Education -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - -The **Service health** provides information on the current status of the Window Defender ATP service. You'll be able to verify that the service status is healthy or if there are current issues. If there are issues, you'll see details related to the issue such as when the issue was detected, what the preliminary root cause is, and the expected resolution time. - -You'll also see information on historical issues that have been resolved and details such as the date and time when the issue was resolved. When there are no issues on the service, you'll see a healthy status. - -You can view details on the service status by clicking the tile from the **Dashboard** or selecting the **Service health** menu from the navigation pane. - -The **Service health** details page has the following tabs: - -- **Current issues** -- **Status History** - -## Current issues -The **Current issues** tab shows the current state of the Windows Defender ATP service. When the service is running smoothly a healthy service status is shown. If there are issues seen, the following service details are shown to help you gain better insight about the issue: - -- Date and time for when the issue was detected -- A short description of the issue -- Update time -- Summary of impact -- Preliminary root cause -- Next steps -- Expected resolution time - -Updates on the progress of an issue is reflected on the page as the issue gets resolved. You'll see updates on information such as an updated estimate resolution time or next steps. - -When an issue is resolved, it gets recorded in the **Status history** tab. - -## Status history -The **Status history** tab reflects all the historical issues that were seen and resolved. You'll see details of the resolved issues along with the other information that were included while it was being resolved. - -### Related topic -- [View the Windows Defender Advanced Threat Protection Dashboard](dashboard-windows-defender-advanced-threat-protection.md) diff --git a/windows/keep-secure/shut-down-the-system.md b/windows/keep-secure/shut-down-the-system.md index 4cde410c2d..0c4f6b24a7 100644 --- a/windows/keep-secure/shut-down-the-system.md +++ b/windows/keep-secure/shut-down-the-system.md @@ -1,5 +1,5 @@ --- -title: Shut down the system - security policy setting (Windows 10) +title: Shut down the system (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Shut down the system security policy setting. ms.assetid: c8e8f890-153a-401e-a957-ba6a130304bf ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Shut down the system - security policy setting +# Shut down the system **Applies to** - Windows 10 diff --git a/windows/keep-secure/shutdown-clear-virtual-memory-pagefile.md b/windows/keep-secure/shutdown-clear-virtual-memory-pagefile.md index 348aa4eb2d..83e27c9e00 100644 --- a/windows/keep-secure/shutdown-clear-virtual-memory-pagefile.md +++ b/windows/keep-secure/shutdown-clear-virtual-memory-pagefile.md @@ -1,5 +1,5 @@ --- -title: Shutdown Clear virtual memory pagefile - security policy setting (Windows 10) +title: Shutdown Clear virtual memory pagefile (Windows 10) description: Describes the best practices, location, values, policy management and security considerations for the Shutdown Clear virtual memory pagefile security policy setting. ms.assetid: 31400078-6c56-4891-a6df-6dfb403c4bc9 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Shutdown: Clear virtual memory pagefile - security policy setting +# Shutdown: Clear virtual memory pagefile **Applies to** - Windows 10 diff --git a/windows/keep-secure/smart-card-architecture.md b/windows/keep-secure/smart-card-architecture.md index 41b2dcc225..84d38741cf 100644 --- a/windows/keep-secure/smart-card-architecture.md +++ b/windows/keep-secure/smart-card-architecture.md @@ -74,7 +74,7 @@ Credential providers must be registered on a computer running Windows, and they ## Smart card subsystem architecture -Vendors provide smart cards and smart card readers, and in many cases the vendors are different for the smart card and the smart card reader. Drivers for smart card readers are written to the [Personal Computer/Smart Card (PC/SC) standard](https://www.pcscworkgroup.com/). Each smart card must have a Credential Service Provider (CSP) that uses the CryptoAPI interfaces to enable cryptographic operations, and the WinSCard APIs to enable communications with smart card hardware. +Vendors provide smart cards and smart card readers, and in many cases the vendors are different for the smart card and the smart card reader. Drivers for smart card readers are written to the [Personal Computer/Smart Card (PC/SC) standard](http://www.pcscworkgroup.com/specifications/overview.php). Each smart card must have a Credential Service Provider (CSP) that uses the CryptoAPI interfaces to enable cryptographic operations, and the WinSCard APIs to enable communications with smart card hardware. ### Base CSP and smart card minidriver architecture diff --git a/windows/keep-secure/smart-card-smart-cards-for-windows-service.md b/windows/keep-secure/smart-card-smart-cards-for-windows-service.md index 1c4f17a7f2..a0c0edd3dc 100644 --- a/windows/keep-secure/smart-card-smart-cards-for-windows-service.md +++ b/windows/keep-secure/smart-card-smart-cards-for-windows-service.md @@ -14,7 +14,7 @@ Applies To: Windows 10, Windows Server 2016 This topic for the IT professional and smart card developers describes how the Smart Cards for Windows service (formerly called Smart Card Resource Manager) manages readers and application interactions. -The Smart Cards for Windows service provides the basic infrastructure for all other smart card components as it manages smart card readers and application interactions on the computer. It is fully compliant with the specifications set by the PC/SC Workgroup. For information about these specifications, see the [PC/SC Workgroup Specifications website](https://www.pcscworkgroup.com/). +The Smart Cards for Windows service provides the basic infrastructure for all other smart card components as it manages smart card readers and application interactions on the computer. It is fully compliant with the specifications set by the PC/SC Workgroup. For information about these specifications, see the [PC/SC Workgroup Specifications Overview](http://www.pcscworkgroup.com/specifications/overview.php). The Smart Cards for Windows service runs in the context of a local service, and it is implemented as a shared service of the services host (svchost) process. The Smart Cards for Windows service, Scardsvr, has the following service description: diff --git a/windows/keep-secure/switch-pcr-banks-on-tpm-2-0-devices.md b/windows/keep-secure/switch-pcr-banks-on-tpm-2-0-devices.md index 993c5d1aea..b60489c882 100644 --- a/windows/keep-secure/switch-pcr-banks-on-tpm-2-0-devices.md +++ b/windows/keep-secure/switch-pcr-banks-on-tpm-2-0-devices.md @@ -1,6 +1,6 @@ --- -title: Understanding PCR banks on TPM 2.0 devices (Windows 10) -description: This topic for the IT professional provides background about what happens when you switch PCR banks on TPM 2.0 devices. +title: Switch PCR banks on TPM 2.0 devices (Windows 10) +description: A Platform Configuration Register (PCR) is a memory location in the TPM that has some unique properties. ms.assetid: 743FCCCB-99A9-4636-8F48-9ECB3A3D10DE ms.prod: w10 ms.mktglfcycl: deploy @@ -9,13 +9,10 @@ ms.pagetype: security author: brianlic-msft --- -# Understanding PCR banks on TPM 2.0 devices +# Switch PCR banks on TPM 2.0 devices **Applies to** - Windows 10 -- Windows Server 2016 - -For steps on how to switch PCR banks on TPM 2.0 devices on your PC, you should contact your OEM or UEFI vendor. This topic provides background about what happens when you switch PCR banks on TPM 2.0 devices. A Platform Configuration Register (PCR) is a memory location in the TPM that has some unique properties. The size of the value that can be stored in a PCR is determined by the size of a digest generated by an associated hashing algorithm. A SHA-1 PCR can store 20 bytes – the size of a SHA-1 digest. Multiple PCRs associated with the same hashing algorithm are referred to as a PCR bank. @@ -24,7 +21,7 @@ PCR\[N\] = HASHalg( PCR\[N\] || ArgumentOfExtend ) The existing value is concatenated with the argument of the TPM Extend operation. The resulting concatenation is then used as input to the associated hashing algorithm, which computes a digest of the input. This computed digest becomes the new value of the PCR. -The [TCG PC Client Platform TPM Profile Specification](http://www.trustedcomputinggroup.org/pc-client-platform-tpm-profile-ptp-specification/) defines the inclusion of at least one PCR bank with 24 registers. The only way to reset the first 16 PCRs is to reset the TPM itself. This restriction helps ensure that the value of those PCRs can only be modified via the TPM Extend operation. +The [TCG PC Client Specific Platform TPM Profile for TPM 2.0](https://go.microsoft.com/fwlink/p/?LinkId=746577) defines the inclusion of at least one PCR bank with 24 registers. The only way to reset the first 16 PCRs is to reset the TPM itself. This restriction helps ensure that the value of those PCRs can only be modified via the TPM Extend operation. Some TPM PCRs are used as checksums of log events. The log events are extended in the TPM as the events occur. Later, an auditor can validate the logs by computing the expected PCR values from the log and comparing them to the PCR values of the TPM. Since the first 16 TPM PCRs cannot be modified arbitrarily, a match between an expected PCR value in that range and the actual TPM PCR value provides assurance of an unmodified log. @@ -32,7 +29,8 @@ Some TPM PCRs are used as checksums of log events. The log events are extended i To bind the use of a TPM based key to a certain state of the PC, the key can be sealed to an expected set of PCR values. For instance, PCRs 0 through 7 have a well-defined value after the boot process – when the OS is loaded. When the hardware, firmware, or boot loader of the machine changes, the change can be detected in the PCR values. Windows 10 uses this capability to make certain cryptographic keys only available at certain times during the boot process. For instance, the BitLocker key can be used at a certain point in the boot, but not before or after. -It is important to note that this binding to PCR values also includes the hashing algorithm used for the PCR. For instance, a key can be bound to a specific value of the SHA-1 PCR\[12\], if using SHA-256 PCR banks, even with the same system configuration. Otherwise, the PCR values will not match. +It is important to note that this binding to PCR values also includes the hashing algorithm used for the PCR. For instance, a key can be bound to a specific value of the SHA-1 PCR\[12\], if using SHA-256 PCR banks, even with the +same system configuration otherwise, the PCR values will not match. ## What happens when PCR banks are switched? @@ -43,7 +41,3 @@ As a result, if the currently used PCR bank is switched all keys that have been ## What can I do to switch PCRs when BitLocker is already active? Before switching PCR banks you should suspend or disable BitLocker – or have your recovery key ready. For steps on how to switch PCR banks on your PC, you should contact your OEM or UEFI vendor. - -## Related topics - -- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) diff --git a/windows/keep-secure/testing-scenarios-for-wip.md b/windows/keep-secure/testing-scenarios-for-wip.md index cca0a2fa52..45737291cf 100644 --- a/windows/keep-secure/testing-scenarios-for-wip.md +++ b/windows/keep-secure/testing-scenarios-for-wip.md @@ -163,7 +163,4 @@ You can try any of the processes included in these scenarios, but you should foc -
    - ->[!NOTE] ->Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). \ No newline at end of file + \ No newline at end of file diff --git a/windows/keep-secure/tools-to-use-with-applocker.md b/windows/keep-secure/tools-to-use-with-applocker.md index a5346774ab..5d2d69ff81 100644 --- a/windows/keep-secure/tools-to-use-with-applocker.md +++ b/windows/keep-secure/tools-to-use-with-applocker.md @@ -24,7 +24,7 @@ The following tools can help you administer the application control policies cre - **Generate Default Rules tool** - AppLocker includes default rules for each rule collection accessed through the Local Security Policy snap-in. These rules are intended to help ensure that the files that are required for Windows to operate properly are allowed in an AppLocker rule collection. For info about how to use this tool, see [Create AppLocker default rules](create-applocker-default-rules.md). For a list of the default rules, see [AppLocker default rules](working-with-applocker-rules.md#applocker-default-rules). + AppLocker includes default rules for each rule collection accessed through the Local Security Policy snap-in. These rules are intended to help ensure that the files that are required for Windows to operate properly are allowed in an AppLocker rule collection. For info about how to use this tool, see [Create AppLocker default rules](create-applocker-default-rules.md). - **Automatically Generate AppLocker Rules wizard** diff --git a/windows/keep-secure/tpm-fundamentals.md b/windows/keep-secure/tpm-fundamentals.md index efb080c89c..92a6fe9b1d 100644 --- a/windows/keep-secure/tpm-fundamentals.md +++ b/windows/keep-secure/tpm-fundamentals.md @@ -13,7 +13,6 @@ author: brianlic-msft **Applies to** - Windows 10 -- Windows Server 2016 This topic for the IT professional provides a description of the components of the Trusted Platform Module (TPM 1.2 and TPM 2.0) and explains how they are used to mitigate dictionary attacks. @@ -31,65 +30,109 @@ For info about which versions of Windows support which versions of the TPM, see The following sections provide an overview of the technologies that support the TPM: -- [Measured Boot with support for attestation](#measured-boot-with-support-for-attestation) - -- [TPM-based Virtual Smart Card](#tpm-based-virtual-smart-card) - -- [TPM-based certificate storage](#tpm-based-certificate-storage) - -- [TPM Cmdlets](#tpm-cmdlets) - -- [Physical presence interface](#physical-presence-interface) - -- [TPM 1.2 states and initialization](#tpm-12-states-and-initialization) - -- [Endorsement keys](#endorsement-keys) - -- [TPM Key Attestation](#key-attestation) - -- [How the TPM mitigates dictionary attacks](#how-the-tpm-mitigates-dictionary-attacks) +- [TPM-based Virtual Smart Card](#bkmk-vsc) +- [Measured Boot with support for attestation](#bkmk-measuredboot) +- [Automated provisioning and management of the TPM](#bkmk-autoprov) +- [TPM-based certificate storage](#bkmk-tpmcs) +- [Physical presence interface](#bkmk-physicalpresenceinterface) +- [TPM Cmdlets](#bkmk-tpmcmdlets) +- [TPM Owner Authorization Value](#bkmk-authvalue) +- [States of existence in a TPM](#bkmk-stateex) +- [Endorsement keys](#bkmk-endorsementkeys) +- [TPM Key Attestation](#bkmk-ketattestation) +- [How the TPM mitigates dictionary attacks](#bkmk-howtpmmitigates) +- [How do I check the state of my TPM?](#bkmk-checkstate) +- [What can I do if my TPM is in reduced functionality mode?](#bkmk-fixrfm) The following topic describes the TPM Services that can be controlled centrally by using Group Policy settings: -[TPM Group Policy Settings](trusted-platform-module-services-group-policy-settings.md). +[Trusted Platform Module Services Group Policy Settings](trusted-platform-module-services-group-policy-settings.md) -## Measured Boot with support for attestation +## Automated provisioning and management of the TPM + +TPM provisioning can be streamlined to make it easier to deploy systems that are ready for BitLocker and other TPM-dependent features. These enhancements include simplifying the TPM state model to report **Ready**, **Ready with reduced functionality**, or **Not ready**. You can also automatically provision TPMs in the **Ready** state, remote provisioning to remove the requirement for the physical presence of a technician for the initial deployment. In addition, the TPM stack is available in the Windows Preinstallation Environment (Windows PE). + +A number of management settings have been added for easier management and configuration of the TPM through Group Policy. The primary new settings include Active Directory-based backup of TPM owner authentication, the level of owner authentication that should be stored locally on the TPM, and the software-based TPM lockout settings for standard users. For more info about backing up owner authentication to Windows Server 2008 R2 AD DS domains, see [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md). + +## Measured Boot with support for attestation The Measured Boot feature provides antimalware software with a trusted (resistant to spoofing and tampering) log of all boot components. Antimalware software can use the log to determine whether components that ran before it are trustworthy versus infected with malware. It can also send the Measured Boot logs to a remote server for evaluation. The remote server can initiate remediation actions by interacting with software on the client or through out-of-band mechanisms, as appropriate. -## TPM-based Virtual Smart Card +## TPM-based Virtual Smart Card -The Virtual Smart Card emulates the functionality of traditional smart cards, but Virtual Smart Cards use the TPM chip that is available on an organization’s computers, rather than requiring the use of a separate physical smart card and reader. This greatly reduces the management and deployment cost of smart cards in an enterprise. To the end user, the Virtual Smart Card is always available on the computer. If a user needs to use more than one computer, a +The Virtual Smart Card emulates the functionality of traditional smart cards, but Virtual Smart Cards use the TPM chip that is available on an organization’s computers, rather than requiring the use of a separate physical smart card and reader. This greatly reduces the management and deployment cost of smart cards in an enterprise. To the end user, the Virtual Smart Card is always available on the computer. If a user needs to use more than one computer, a Virtual Smart Card must be issued to the user for each computer. A computer that is shared among multiple users can host multiple Virtual Smart Cards, one for each user. -## TPM-based certificate storage +## TPM-based certificate storage The TPM can be used to protect certificates and RSA keys. The TPM key storage provider (KSP) provides easy, convenient use of the TPM as a way of strongly protecting private keys. The TPM KSP can be used to generate keys when an organization enrolls for certificates, and the KSP is managed by templates in the UI. The TPM can also be used to protect certificates that are imported from an outside source. TPM-based certificates can be used exactly as standard certificates with the added functionality that the certificate can never leave the TPM from which the keys were generated. The TPM can now be used for crypto-operations through Cryptography API: Next Generation (CNG). For more info, see [Cryptography API: Next Generation](http://msdn.microsoft.com/library/windows/desktop/aa376210.aspx). -## TPM Cmdlets +## TPM Owner Authorization Value + +For Windows 8 a change to how the TPM owner authorization value is stored in AD DS was implemented in the AD DS schema. The TPM owner authorization value is now stored in a separate object which is linked to the Computer object. +This value was stored as a property in the Computer object itself for the default Windows Server 2008 R2 schemas. Windows Server 2012 domain controllers have the default schema to backup TPM owner authorization information in the separate object. If you are not upgrading your domain controller to Windows Server 2012 you need to extend the schema to support this change. If Active Directory backup of the TPM owner authorization value is enabled in a Windows Server 2008 R2 environment without extending the schema, the TPM provisioning will fail and the TPM will remain in a Not Ready state for computers running Windows 8. + +If your computer is not being joined to a domain the TPM owner authorization value will be stored in the local computer registry. Using BitLocker to encrypt the operating system drive will protect the owner authorization value from being disclosed when the computer is at rest, but there is a risk that a malicious user could obtain the TPM owner authorization value when the computer is unlocked. Therefore, we recommend that in this situation you configure your computer to automatically lock after 30 seconds of inactivity. If automatic locking is not used, then you should consider removing full owner authorization from the computer registry. + +**Registry information** + +Registry key: HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\TPM +DWORD: OSManagedAuthLevel + +| Value Data | Setting | +| - | - | +| 0 | None| +| 2 | Delegated| +| 4 | Full| +  +>**Note:**  If the operating system managed TPM authentication setting is changed from "Full" to "Delegated" the full TPM owner authorization value will be regenerated and any copies of the original TPM owner authorization value will be invalid. If you are backing up the TPM owner authorization value to AD DS, the new owner authorization value will be automatically backed up to AD DS when it is changed. +  +## TPM Cmdlets If you are using PowerShell to script and manage your computers, you can now manage the TPM using Windows PowerShell as well. To install the TPM cmdlets use the following command: `dism /online /enable-feature /FeatureName:tpm-psh-cmdlets` +For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). +## Physical presence interface -## Physical presence interface +The TCG specifications for TPMs require physical presence to perform some TPM administrative functions, such as turning on and turning off the TPM. Physical presence means a person must physically interact with the system and the +TPM interface to confirm or reject changes to TPM status. This typically cannot be automated with scripts or other automation tools unless the individual OEM supplies them. Here are some are examples of TPM administrative tasks that require physical presence: -For TPM 1.2, the TCG specifications for TPMs require physical presence (typically, pressing a key) for turning the TPM on, turning it off, or clearing it. These actions typically cannot be automated with scripts or other automation tools unless the individual OEM supplies them. +- Activating the TPM +- Clearing the existing owner information from the TPM without the owner’s password +- Deactivating the TPM +- Disabling the TPM temporarily without the owner’s password -## TPM 1.2 states and initialization +## States of existence in a TPM -For TPM 1.2, there are multiple possible states. Windows 10 automatically initializes the TPM, which brings it to an enabled, activated, and owned state. +For each of these TPM 1.2 states of existence, the TPM can transition into another state (for example, moving from disabled to enabled). The states are not exclusive. -## Endorsement keys +These states of existence do not apply for Trusted Platform Module 2.0 because it cannot be turned off from within the operating system environment. -For a TPM to be usable by a trusted application, it must contain an endorsement key, which is an RSA key pair. The private half of the key pair is held inside the TPM, and it is never revealed or accessible outside the TPM. +| State | Description | +| - | - | +| Enabled| Most features of the TPM are available.
    The TPM can be enabled and disabled multiple times within a boot period, if ownership is taken.| +| Disabled| The TPM restricts most operations. Exceptions include the ability to report TPM capabilities, extend and reset Platform Configuration Register (PCR) functions, and perform hashing and basic initialization.
    The TPM can be enabled and disabled multiple times within a start-up period. | +| Activated| Most features of the TPM are available. The TPM can be activated and deactivated only through physical presence, which requires a restart.| +| Deactivated| Similar to the disabled state, with the exception that ownership can be taken when the TPM is deactivated and enabled. The TPM can be activated and deactivated only through physical presence, which requires a restart.| +| Owned| Most features of the TPM are available. The TPM has an endorsement key and storage root key, and the owner knows information about owner authorization data.| +| Unowned| The TPM does not have a storage root key, and it may or may not have an endorsement key.| +  +>**Important:**  Applications cannot use the TPM until the state is enabled, activated, and owned. All operations are available only when the TPM is in this state. +  +The state of the TPM exists independently of the computer’s operating system. When the TPM is enabled, activated, and owned, the state of the TPM is preserved if the operating system is reinstalled. -## Key attestation +## Endorsement keys + +For a TPM to be usable by a trusted application, it must contain an endorsement key, which is an RSA key pair. The private half of the key pair is held inside the TPM, and it is never revealed or accessible outside the TPM. If the +TPM does not contain an endorsement key, the application might cause the TPM to generate one automatically as part of the setup. +An endorsement key can be created at various points in the TPM’s lifecycle, but it needs to be created only once for the lifetime of the TPM. The existence of an endorsement key is a requirement before TPM ownership can be taken. + +## Key attestation TPM key attestation allows a certification authority to verify that a private key is actually protected by a TPM and that the TPM is one that the certification authority trusts. Endorsement keys which have been proven valid can be used to bind the user identity to a device. Moreover, the user certificate with a TPM attested key provides higher security assurance backed up by the non-exportability, anti-hammering, and isolation of keys provided by a TPM. -## How the TPM mitigates dictionary attacks +## How the TPM mitigates dictionary attacks When a TPM processes a command, it does so in a protected environment, for example, a dedicated microcontroller on a discrete chip or a special hardware-protected mode on the main CPU. A TPM can be used to create a cryptographic key that is not disclosed outside the TPM, but is able to be used in the TPM after the correct authorization value is provided. @@ -101,9 +144,8 @@ Because many entities can use the TPM, a single authorization success cannot res TPM 2.0 has well defined dictionary attack logic behavior. This is in contrast to TPM 1.2 for which the dictionary attack logic was set by the manufacturer, and the logic varied widely throughout the industry. -> [!WARNING] -> For the purposes of this topic, Windows 8 Certified Hardware also pertains to Windows 8.1 systems. The following references to “Windows” include these supported Windows versions. - +>**Warning:**  For the purposes of this topic, Windows 8 Certified Hardware also pertains to Windows 8.1 systems. The following references to “Windows” include these supported Windows versions. +  For Windows 8 Certified Hardware systems with TPM 2.0, the TPM is configured by Windows to lock after 32 authorization failures and to forget one authorization failure every two hours. This means that a user could quickly attempt to use a key with the wrong authorization value 32 times. For each of the 32 attempts, the TPM records if the authorization value was correct or not. This inadvertently causes the TPM to enter a locked state after 32 failed attempts. Attempts to use a key with an authorization value for the next two hours would not return success or failure; instead the response indicates that the TPM is locked. After two hours, one authorization failure is forgotten and the number of authorization failures remembered by the TPM drops to 31, so the TPM leaves the locked state and returns to normal operation. With the correct authorization value, keys could be used normally if no authorization failures occur during the next two hours. If a period of 64 hours elapses with no authorization failures, the TPM does not remember any authorization failures, and 32 failed attempts could occur again. @@ -123,15 +165,35 @@ For example, when BitLocker is used with a TPM plus PIN configuration, it needs The Windows TPM-based smart card, which is a virtual smart card, can be configured to allow sign in to the system. In contrast with physical smart cards, the sign-in process uses a TPM-based key with an authorization value. The following list shows the advantages of virtual smart cards: -- Physical smart cards can enforce lockout for only the physical smart card PIN, and they can reset the lockout after the correct PIN is entered. With a virtual smart card, the TPM’s dictionary attack is not reset after a successful authentication. The allowed number of authorization failures before the TPM enters lockout includes many factors. +Physical smart cards can enforce lockout for only the physical smart card PIN, and they can reset the lockout after the correct PIN is entered. With a virtual smart card, the TPM’s dictionary attack is not reset after a successful authentication. The allowed number of authorization failures before the TPM enters lockout includes many factors. -- Hardware manufacturers and software developers have the option to use the security features of the TPM to meet their requirements. +Hardware manufacturers and software developers have the option to use the security features of the TPM to meet their requirements. -- The intent of selecting 32 failures as the lock-out threshold is so users rarely lock the TPM (even when learning to type new passwords or if they frequently lock and unlock their computers). If users lock the TPM, they must to wait two hours or use some other credential to sign in, such as a user name and password. +The intent of selecting 32 failures as the lock-out threshold is so users rarely lock the TPM (even when learning to type new passwords or if they frequently lock and unlock their computers). If users lock the TPM, they must to wait two hours or use some other credential to sign in, such as a user name and password. -## Related topics +## How do I check the state of my TPM? -- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) +You can check the state of the TPM on a PC by running the Trusted Platform Module snap-in (tpm.msc). The **Status** heading tells you the state of your TPM. The TPM can be in one of the following states: **Ready for use**, **Ready for use, with reduced functionality**, and **Not ready for use**. To take advantage of most of the TPM features in Windows 10, the TPM must be **Ready for use**. + +## What can I do if my TPM is in reduced functionality mode? + +If your TPM is in reduced functionality mode, some features that rely on the TPM will not function correctly. This is most often caused by doing a clean installation of Windows 10 on a device where Windows 8.1, Windows 8, or Windows 7 had previously been installed on the same hardware. If your TPM is in reduced functionality mode, the Status heading in the Trusted Platform Module snap-in shows **The TPM is ready for use, with reduced functionality**. +You can fix this by clearing the TPM. + +**To clear the TPM** + +1. Open the Trusted Platform Module snap-in (tpm.msc). +2. Click **Clear TPM**, and then click **Restart.** +3. When the PC is restarting, you might be prompted to press a button on the keyboard to clear the TPM. +4. After the PC restarts, your TPM will be automatically prepared for use by Windows 10. + +>**Note:**  Clearing the TPM causes you to lose all TPM keys and data protected by those keys, such as a virtual smart card. You should not perform this procedure on a device you do not own, such as a work or school PC, without being instructed to do so by your IT administrator. +  +## Additional resources + +- [Trusted Platform Module Technology Overview](trusted-platform-module-overview.md) +- [Trusted Platform Module Services Group Policy Settings](trusted-platform-module-services-group-policy-settings.md) - [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -- [TPM WMI providers](https://msdn.microsoft.com/library/aa376476.aspx) -- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](https://technet.microsoft.com/itpro/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies#bkmk-tpmconfigurations) \ No newline at end of file +- [Schema Extensions for Windows Server 2008 R2 to support AD DS backup of TPM information from Windows 8 clients](ad-ds-schema-extensions-to-support-tpm-backup.md) +- [TPM WMI providers](https://go.microsoft.com/fwlink/p/?LinkId=93478) +- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](http://technet.microsoft.com/library/jj592683.aspx) diff --git a/windows/keep-secure/tpm-recommendations.md b/windows/keep-secure/tpm-recommendations.md index 20d05b68d2..0b34d5a9a8 100644 --- a/windows/keep-secure/tpm-recommendations.md +++ b/windows/keep-secure/tpm-recommendations.md @@ -12,21 +12,26 @@ author: brianlic-msft # TPM recommendations -**Applies to** - **Applies to** - Windows 10 -- Windows Server 2016 +- Windows 10 Mobile +- Windows Server 2016 +- Windows 10 IoT Core (IoT Core) This topic provides recommendations for Trusted Platform Module (TPM) technology for Windows 10. -For a basic feature description of TPM, see the [Trusted Platform Module Technology Overview](trusted-platform-module-overview.md). +## Overview -## TPM design and implementation +Trusted Platform Module (TPM) technology is designed to provide hardware-based, security-related functions. It has a security-related crypto-processor that is designed to carry out cryptographic operations in a variety of devices and form factors. It includes multiple physical security mechanisms to help prevent malicious software from tampering with the security functions of the TPM. Some of the key advantages of using TPM technology are that you can: +1. Generate, store, use, and protected cryptographic keys, +2. Use TPM technology for platform device authentication by using a unique endorsement key (EK), and +3. Help enhance platform integrity by taking and storing security measurements. + +The most common TPM functions are used for system integrity measurements and for key creation and use. During the boot process of a system, the boot code that is loaded (including firmware and the operating system components) can be measured and recorded in the TPM. The integrity measurements can be used as evidence for how a system started and to make sure that a TPM-based key was used only when the correct software was used to boot the system. Traditionally, TPMs have been discrete chips soldered to a computer’s motherboard. Such implementations allow the computer’s original equipment manufacturer (OEM) to evaluate and certify the TPM separate from the rest of the system. Although discrete TPM implementations are still common, they can be problematic for integrated devices that are small or have low power consumption. Some newer TPM implementations integrate TPM functionality into the same chipset as other platform components while still providing logical separation similar to discrete TPM chips. -TPMs are passive: they receive commands and return responses. To realize the full benefit of a TPM, the OEM must carefully integrate system hardware and firmware with the TPM to send it commands and react to its responses. TPMs were originally designed to provide security and privacy benefits to a platform’s owner and users, but newer versions can provide security and privacy benefits to the system hardware itself. Before it can be used for advanced scenarios, however, a TPM must be provisioned. Windows 10 automatically provisions a TPM, but if the user is planning to reinstall the operating system, he or she may need to clear the TPM before reinstalling so that Windows can take full advantage of the TPM. +TPMs are passive: they receive commands and return responses. To realize the full benefit of a TPM, the OEM must carefully integrate system hardware and firmware with the TPM to send it commands and react to its responses. TPMs were originally designed to provide security and privacy benefits to a platform’s owner and users, but newer versions can provide security and privacy benefits to the system hardware itself. Before it can be used for advanced scenarios, however, a TPM must be provisioned. Windows 10 automatically provisions a TPM, but if the user reinstalls the operating system, he or she may need to tell the operating system to explicitly provision the TPM again before it can use all the TPM’s features. The Trusted Computing Group (TCG) is the nonprofit organization that publishes and maintains the TPM specification. The TCG exists to develop, define, and promote vendor-neutral, global industry standards that support a hardware-based root of trust for interoperable trusted computing platforms. The TCG also publishes the TPM specification as the international standard ISO/IEC 11889, using the Publicly Available Specification Submission Process that the Joint Technical Committee 1 defines between the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC). @@ -34,6 +39,9 @@ OEMs implement the TPM as a component in a trusted computing platform, such as a The TCG designed the TPM as a low-cost, mass-market security solution that addresses the requirements of different customer segments. There are variations in the security properties of different TPM implementations just as there are variations in customer and regulatory requirements for different sectors. In public-sector procurement, for example, some governments have clearly defined security requirements for TPMs whereas others do not. +>**Note:**  Some information relates to pre-released product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. + + ## TPM 1.2 vs. 2.0 comparison From an industry standard, Microsoft has been an industry leader in moving and standardizing on TPM 2.0, which has many key realized benefits across algorithms, crypto, hierarchy, root keys, authorization and NV RAM. @@ -43,23 +51,16 @@ From an industry standard, Microsoft has been an industry leader in moving and s TPM 2.0 products and systems have important security advantages over TPM 1.2, including: - The TPM 1.2 spec only allows for the use of RSA and the SHA-1 hashing algorithm. - - For security reasons, some entities are moving away from SHA-1. Notably, NIST has required many federal agencies to move to SHA-256 as of 2014, and technology leaders, including Microsoft and Google have announced they will remove support for SHA-1 based signing or certificates in 2017. - - TPM 2.0 **enables greater crypto agility** by being more flexible with respect to cryptographic algorithms. - - TPM 2.0 supports newer algorithms, which can improve drive signing and key generation performance. For the full list of supported algorithms, see the [TCG Algorithm Registry](http://www.trustedcomputinggroup.org/tcg-algorithm-registry/). Some TPMs do not support all algorithms. - - - For the list of algorithms that Windows supports in the platform cryptographic storage provider, see [CNG Cryptographic Algorithm Providers](https://msdn.microsoft.com/library/windows/desktop/bb931354(v=vs.85).aspx). - + - TPM 2.0 supports SHA-256 as well as ECC, the latter being critical to drive signing and key generation performance. - TPM 2.0 achieved ISO standardization ([ISO/IEC 11889:2015](http://blogs.microsoft.com/cybertrust/2015/06/29/governments-recognize-the-importance-of-tpm-2-0-through-iso-adoption/)). - - Use of TPM 2.0 may help eliminate the need for OEMs to make exception to standard configurations for certain countries and regions. - TPM 2.0 offers a more **consistent experience** across different implementations. - TPM 1.2 implementations vary in policy settings. This may result in support issues as lockout policies vary. - - TPM 2.0 lockout policy is configured by Windows, ensuring a consistent dictionary attack protection guarantee. - While TPM 1.2 parts are discrete silicon components which are typically soldered on the motherboard, TPM 2.0 is available as a **discrete (dTPM)** silicon component in a single semiconductor package, an **integrated** component incorporated in one or more semiconductor packages - alongside other logic units in the same package(s) - and as a **firmware (fTPM)** based component running in a trusted execution environment (TEE) on a general purpose SoC. @@ -68,24 +69,22 @@ TPM 2.0 products and systems have important security advantages over TPM 1.2, in There are three implementation options for TPMs: -- Discrete TPM chip as a separate component in its own semiconductor package - -- Integrated TPM solution, using dedicated hardware integrated into one or more semiconductor packages alongside, but logically separate from, other components - +- Discrete TPM chip as a separate component in its own semiconductor package +- Integrated TPM solution, using dedicated hardware integrated into one or more semiconductor packages alongside, but logically separate from, other components - Firmware TPM solution, running the TPM in firmware in a Trusted Execution mode of a general purpose computation unit -Windows uses any compatible TPM in the same way. Microsoft does not take a position on which way a TPM should be implemented and there is a wide ecosystem of available TPM solutions which should suit all needs. +Windows uses any compatible TPM in the same way. Microsoft does not take a position on which way a TPM should be implemented and there is a wide ecosystem of available TPM solutions which should suit all needs. -## Is there any importance for TPM for consumers? +## Is there any importance for TPM for consumer? -For end consumers, TPM is behind the scenes but is still very relevant. TPM is used for Windows Hello, Windows Hello for Business and in the future, will be a component of many other key security features in Windows. TPM secures the PIN, helps encrypt passwords, and builds on our overall Windows 10 experience story for security as a critical pillar. Using Windows on a system with a TPM enables a deeper and broader level of security coverage. +For end consumers, TPM is behind the scenes but is still very relevant. TPM is used for Windows Hello, Windows Hello for Business and in the future, will be a components of many other key security features in Windows. TPM secures the PIN, helps encrypt passwords, and builds on our overall Windows 10 experience story for security as a critical pillar. Using Windows on a system with a TPM enables a deeper and broader level of security coverage. ## TPM 2.0 Compliance for Windows 10 ### Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) -- Since July 28, 2016, all new device models, lines or series (or if you are updating the hardware configuration of a existing model, line or series with a major update, such as CPU, graphic cards) must implement and enable by default TPM 2.0 (details in section 3.7 of the [Minimum hardware requirements](https://msdn.microsoft.com/library/windows/hardware/dn915086(v=vs.85).aspx) page). - +- Since July 28, 2016, all new device models, lines or series (or if you are updating the hardware configuration of a existing model, line or series with a major update, such as CPU, graphic cards) must implement and enable by default TPM 2.0 (details in section 3.7, https://msdn.microsoft.com/library/windows/hardware/dn915086(v=vs.85).aspx) + ### IoT Core - TPM is optional on IoT Core. @@ -96,28 +95,212 @@ For end consumers, TPM is behind the scenes but is still very relevant. TPM is u ## TPM and Windows Features -The following table defines which Windows features require TPM support. +The following table defines which Windows features require TPM support. Some features are not applicable to Windows 7/8/8.1 and are noted accordingly. -| Windows Features | Windows 10 TPM 1.2 | Windows 10 TPM 2.0 | Details | -|-------------------------|----------------------|----------------------|----------| -| Measured Boot | Required | Required | Measured boot requires TPM 1.2 or 2.0 and UEFI Secure boot. | -| Bitlocker | Required | Required | TPM 1.2 or later required or a removable USB memory device such as a flash drive. | -| Passport: Domain AADJ Join | Required | Required | Supports both versions of TPM, but requires TPM with HMAC and EK certificate for key attestation support. | -| Passport: MSA or Local Account | Required | Required | TPM 2.0 is required with HMAC and EK certificate for key attestation support. | -| Device Encryption | Not Applicable | Required | TPM 2.0 is required for all InstantGo devices. | -| Device Guard / Configurable Code Integrity | See next column | Recommended | | -| Credential Guard | Required | Required | For Windows 10, version 1511, TPM 1.2 or 2.0 is highly recommended. If you don't have a TPM installed, Credential Guard will still be enabled, but the keys used to encrypt Credential Guard will not be protected by the TPM. | -| Device Health Attestation | Required | Required | | -| Windows Hello | Not Required | Recommended | | -| UEFI Secure Boot | Not Required | Recommended | | -| Platform Key Storage provider | Required | Required | | -| Virtual Smart Card | Required | Required | | -| Certificate storage (TPM bound) | Required | Required | | - -## OEM Status on TPM 2.0 system availability and certified parts + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Windows FeaturesWindows 7/8/8.1 TPM 1.2Windows 10 TPM 1.2Windows 10 TPM 2.0Details
    Measured BootRequiredRequiredRequiredMeasured boot requires TPM 1.2 or 2.0 and UEFI Secure boot.
    BitlockerRequiredRequiredRequiredTPM 1.2 or later required or a removable USB memory device such as a flash drive.
    Passport: Domain AADJ Joinn/aRequiredRequiredSupports both versions of TPM, but requires TPM with HMAC and EK certificate for key attestation support.
    Passport: MSA or Local Accountn/aRequiredRequiredTPM 2.0 is required with HMAC and EK certificate for key attestation support.
    Device Encryptionn/aNot RequiredRequiredTPM 2.0 is required for all InstantGo devices.
    Device Guard / Configurable Code Integrityn/aOptionalOptional
    Credential Guardn/aRequiredRequiredFor Windows 10, version 1511, TPM 1.2 or 2.0 is highly recommended. If you don't have a TPM installed, Credential Guard will still be enabled, but the keys used to encrypt Credential Guard will not be protected by the TPM.
    Device Health Attestationn/aRequiredRequired
    Windows Hellon/aNot RequiredNot Required
    UEFI Secure BootNot RequiredNot RequiredNot Required
    Platform Key Storage providern/aRequiredRequired
    Virtual Smart Cardn/aRequiredRequired
    Certificate storage (TPM bound)n/aRequiredRequired
    +  +## Chipset options for TPM 2.0 +There is a vibrant ecosystem of TPM manufacturers. +### Discrete TPM + +++ + + + + + + + + + + +
    Supplier
      +
    • Infineon
    • +
    • Nuvoton
    • +
    • Atmel
    • +
    • NationZ
    • +
    • ST Micro
    • +
    +  +### Integrated TPM + +++ + + + + + + + + + + + + +
    SupplierChipset
    Intel
      +
    • Atom (CloverTrail) +
    • Baytrail
    • +
    • Braswell
    • +
    • 4th generation Core (Haswell)
    • +
    • 5th generation Core (Broadwell)
    • +
    • 6th generation Core (Skylake)
    • +
    • 7th generation Core (Kaby Lake)
    • +
    -Government customers and enterprise customers in regulated industries may have acquisition standards that require use of common certified TPM parts. As a result, OEMs, who provide the devices, may be required to use only certified TPM components on their commercial class systems. For more information, contact your OEM or hardware vendor. +### Firmware TPM + ++++ + + + + + + + + + + + + + + + + +
    SupplierChipset
    AMD
      +
    • Mullins
    • +
    • Beema
    • +
    • Carrizo
    • +
    Qualcomm
      +
    • MSM8994
    • +
    • MSM8992
    • +
    • MSM8952
    • +
    • MSM8909
    • +
    • MSM8208
    • +
    +  +## OEM Feedback and Status on TPM 2.0 system availability -## Related topics +### Certified TPM parts -- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) \ No newline at end of file +Government customers and enterprise customers in regulated industries may have acquisition standards that require use of common certified TPM parts. As a result, OEMs, who provide the devices, may be required to use only certified TPM components on their commercial class systems. Discrete TPM 2.0 vendors have completion certification. + +### Windows 7 32-bit support + +Even though Windows 7 shipped before the TPM 2.0 spec or products existed, Microsoft backported TPM 2.0 support to Windows 7 64-bit and released it in summer 2014 as a downloadable Windows hotfix for UEFI based Windows 7 systems. Microsoft is not currently planning to backport support to Windows 7 32-bit support. diff --git a/windows/keep-secure/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md b/windows/keep-secure/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md index e95197be01..e3c1d51f68 100644 --- a/windows/keep-secure/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md @@ -1,7 +1,7 @@ --- title: Troubleshoot Windows Defender ATP onboarding issues description: Troubleshoot issues that might arise during the onboarding of endpoints or to the Windows Defender ATP service. -keywords: troubleshoot onboarding, onboarding issues, event viewer, data collection and preview builds, sensor data and diagnostics +keywords: troubleshoot onboarding, onboarding issues, event viewer, data collection and preview builds, telemetry and diagnostics search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy @@ -65,7 +65,7 @@ Event ID | Error Type | Resolution steps 5 | Offboarding data was found but couldn't be deleted | Check the permissions on the registry, specifically ```HKLM\SOFTWARE\Policies\Microsoft\Windows Advanced Threat Protection```. 10 | Onboarding data couldn't be written to registry | Check the permissions on the registry, specifically
    ```HKLM\SOFTWARE\Policies\Microsoft\Windows Advanced Threat```.
    Verify that the script was ran as an administrator. 15 | Failed to start SENSE service |Check the service status (```sc query sense``` command). Make sure it's not in an intermediate state (*'Pending_Stopped'*, *'Pending_Running'*) and try to run the script again (with administrator rights). -15 | Failed to start SENSE service | If the message of the error is: System error 577 has occurred. You need to enable the Windows Defender ELAM driver, see [Ensure that Windows Defender is not disabled by a policy](#ensure-that-windows-defender-is-not-disabled-by-a-policy) for instructions. +15 | Failed to start SENSE service | If the message of the error is: System error 577 has occurred. You need to enable the Windows Defender ELAM driver, see [Ensure the Windows Defender ELAM driver is enabled](#ensure-the-windows-defender-elam-driver-is-enabled) for instructions. 30 | The script failed to wait for the service to start running | The service could have taken more time to start or has encountered errors while trying to start. For more information on events and errors related to SENSE, see [Review events and errors on endpoints with Event viewer](event-error-codes-windows-defender-advanced-threat-protection.md). 35 | The script failed to find needed onboarding status registry value | When the SENSE service starts for the first time, it writes onboarding status to the registry location
    ```HKLM\SOFTWARE\Microsoft\Windows Advanced Threat Protection\Status```.
    The script failed to find it after several seconds. You can manually test it and check if it's there. For more information on events and errors related to SENSE, see [Review events and errors on endpoints with Event viewer](event-error-codes-windows-defender-advanced-threat-protection.md). 40 | SENSE service onboarding status is not set to **1** | The SENSE service has failed to onboard properly. For more information on events and errors related to SENSE, see [Review events and errors on endpoints with Event viewer](event-error-codes-windows-defender-advanced-threat-protection.md). @@ -124,7 +124,7 @@ If the deployment tools used does not indicate an error in the onboarding proces - [Ensure the telemetry and diagnostics service is enabled](#ensure-the-telemetry-and-diagnostics-service-is-enabled) - [Ensure the service is set to start](#ensure-the-service-is-set-to-start) - [Ensure the endpoint has an Internet connection](#ensure-the-endpoint-has-an-internet-connection) -- [Ensure that Windows Defender is not disabled by a policy](#ensure-that-windows-defender-is-not-disabled-by-a-policy) +- [Ensure the Windows Defender ELAM driver is enabled](#ensure-the-windows-defender-elam-driver-is-enabled) ### View agent onboarding errors in the endpoint event log @@ -214,7 +214,7 @@ First, you should check that the service is set to start automatically when Wind ### Ensure the endpoint has an Internet connection -The Window Defender ATP sensor requires Microsoft Windows HTTP (WinHTTP) to report sensor data and communicate with the Windows Defender ATP service. +The Window Defender ATP sensor requires Microsoft Windows HTTP (WinHTTP) to report telemetry and communicate with the Windows Defender ATP service. WinHTTP is independent of the Internet browsing proxy settings and other user context applications and must be able to detect the proxy servers that are available in your particular environment. @@ -222,31 +222,98 @@ To ensure that sensor has service connectivity, follow the steps described in th If the verification fails and your environment is using a proxy to connect to the Internet, then follow the steps described in [Configure proxy and Internet connectivity settings](configure-proxy-internet-windows-defender-advanced-threat-protection.md) topic. -### Ensure that Windows Defender is not disabled by a policy -**Problem**: The Windows Defender ATP service does not start after onboarding. +### Ensure the Windows Defender ELAM driver is enabled +If your endpoints are running a third-party antimalware client, the Windows Defender ATP agent needs the Windows Defender Early Launch Antimalware (ELAM) driver to be enabled. -**Symptom**: Onboarding successfully completes, but you see error 577 when trying to start the service. +**Check the ELAM driver status:** -**Solution**: If your endpoints are running a third-party antimalware client, the Windows Defender ATP agent needs the Windows Defender Early Launch Antimalware (ELAM) driver to be enabled. You must ensure that it's not disabled in system policy. +1. Open a command-line prompt on the endpoint: -- Depending on the tool that you use to implement policies, you'll need to verify that the following Windows Defender policies are set to ```0``` or that the settings are cleared: + a. Click **Start**, type **cmd**, and select **Command prompt**. - - ```DisableAntiSpyware``` - - ```DisableAntiVirus``` +2. Enter the following command, and press Enter: + ``` + sc qc WdBoot + ``` + If the ELAM driver is enabled, the output will be: - For example, in Group Policy: + ``` + [SC] QueryServiceConfig SUCCESS - ``` - ``` -- After clearing the policy, run the onboarding steps again on the endpoint. + SERVICE_NAME: WdBoot + TYPE : 1 KERNEL_DRIVER + START_TYPE : 0 BOOT_START + ERROR_CONTROL : 1 NORMAL + BINARY_PATH_NAME : \SystemRoot\system32\drivers\WdBoot.sys + LOAD_ORDER_GROUP : Early-Launch + TAG : 0 + DISPLAY_NAME : Windows Defender Boot Driver + DEPENDENCIES : + SERVICE_START_NAME : + ``` + If the ELAM driver is disabled the output will be: + ``` + [SC] QueryServiceConfig SUCCESS -- You can also check the following registry key values to verify that the policy is disabled: + SERVICE_NAME: WdBoot + TYPE : 1 KERNEL_DRIVER + START_TYPE : 0 DEMAND_START + ERROR_CONTROL : 1 NORMAL + BINARY_PATH_NAME : \SystemRoot\system32\drivers\WdBoot.sys + LOAD_ORDER_GROUP : _Early-Launch + TAG : 0 + DISPLAY_NAME : Windows Defender Boot Driver + DEPENDENCIES : + SERVICE_START_NAME : + ``` - 1. Open the registry ```key HKEY_LOCAL_MACHINE\ SOFTWARE\Policies\Microsoft\Windows Defender```. - 2. Find the value ```DisableAntiSpyware```. - 3. Ensure that the value is set to 0. +#### Enable the ELAM driver - ![Image of registry key for Windows Defender](images/atp-disableantispyware-regkey.png) +1. Open an elevated PowerShell console on the endpoint: + + a. Click **Start**, type **powershell**. + + b. Right-click **Command prompt** and select **Run as administrator**. + +2. Run the following PowerShell cmdlet: + + ```text + 'Set-ExecutionPolicy -ExecutionPolicy Bypass’ + ``` +3. Run the following PowerShell script: + + ```text + Add-Type @' + using System; + using System.IO; + using System.Runtime.InteropServices; + using Microsoft.Win32.SafeHandles; + using System.ComponentModel; + + public static class Elam{ + [DllImport("Kernel32", CharSet=CharSet.Auto, SetLastError=true)] + public static extern bool InstallELAMCertificateInfo(SafeFileHandle handle); + + public static void InstallWdBoot(string path) + { + Console.Out.WriteLine("About to call create file on {0}", path); + var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read); + var handle = stream.SafeFileHandle; + + Console.Out.WriteLine("About to call InstallELAMCertificateInfo on handle {0}", handle.DangerousGetHandle()); + if (!InstallELAMCertificateInfo(handle)) + { + Console.Out.WriteLine("Call failed."); + throw new Win32Exception(Marshal.GetLastWin32Error()); + } + Console.Out.WriteLine("Call successful."); + } + } + '@ + + $driverPath = $env:SystemRoot + "\System32\Drivers\WdBoot.sys" + [Elam]::InstallWdBoot($driverPath) + ``` diff --git a/windows/keep-secure/troubleshoot-windows-defender-advanced-threat-protection.md b/windows/keep-secure/troubleshoot-windows-defender-advanced-threat-protection.md index 4cb0a35b53..fd485e8645 100644 --- a/windows/keep-secure/troubleshoot-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/troubleshoot-windows-defender-advanced-threat-protection.md @@ -46,7 +46,6 @@ U.S. region: - winatpfeedback.windows.com - winatpmanagement.windows.com - winatponboarding.windows.com -- winatpservicehealth.windows.com EU region: @@ -58,18 +57,11 @@ EU region: - winatpfeedback.windows.com - winatpmanagement.windows.com - winatponboarding.windows.com -- winatpservicehealth.windows.com ### Windows Defender ATP service shows event or error logs in the Event Viewer See the topic [Review events and errors on endpoints with Event Viewer](event-error-codes-windows-defender-advanced-threat-protection.md) for a list of event IDs that are reported by the Windows Defender ATP service. The topic also contains troubleshooting steps for event errors. -### Windows Defender ATP service fails to start after a reboot and shows error 577 - -If onboarding endpoints successfully completes but Windows Defender ATP does not start after a reboot and shows error 577, check that Windows Defender is not disabled by a policy. - -For more information, see [Ensure that Windows Defender is not disabled by policy](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md#ensure-that-windows-defender-is-not-disabled-by-a-policy). - ### Related topic - [Troubleshoot Windows Defender Advanced Threat Protection onboarding issues](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md) diff --git a/windows/keep-secure/troubleshoot-windows-defender-in-windows-10.md b/windows/keep-secure/troubleshoot-windows-defender-in-windows-10.md index ac8772f7b7..df382bc1fe 100644 --- a/windows/keep-secure/troubleshoot-windows-defender-in-windows-10.md +++ b/windows/keep-secure/troubleshoot-windows-defender-in-windows-10.md @@ -2222,7 +2222,7 @@ Description of the error.

    The support for your operating system has expired. Windows Defender is no longer supported on your operating system, has stopped functioning, and is not protecting against malware threats.

    -Event ID: 2050

    Symbolic name:

    MALWAREPROTECTION_SAMPLESUBMISSION_UPLOADED

    Message:

    The antimalware engine has uploaded a file for further analysis.
    Filename <uploaded filename>
    Sha256: <file SHA>

    Description:

    A file was uploaded to the Windows Defender Antimalware cloud for further analysis or processing.

    + Event ID: 3002 diff --git a/windows/keep-secure/trusted-platform-module-overview.md b/windows/keep-secure/trusted-platform-module-overview.md index ba05130ce1..a1b3a32c2d 100644 --- a/windows/keep-secure/trusted-platform-module-overview.md +++ b/windows/keep-secure/trusted-platform-module-overview.md @@ -1,6 +1,6 @@ --- title: Trusted Platform Module Technology Overview (Windows 10) -description: This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. +description: This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. The topic provides links to other resources about the TPM. ms.assetid: face8932-b034-4319-86ac-db1163d46538 ms.prod: w10 ms.mktglfcycl: deploy @@ -14,70 +14,64 @@ author: brianlic-msft **Applies to** - Windows 10 -- Windows Server 2016 -This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. +This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. The topic provides links to other resources about the TPM. -## Feature description +## Feature description Trusted Platform Module (TPM) technology is designed to provide hardware-based, security-related functions. A TPM chip is a secure crypto-processor that is designed to carry out cryptographic operations. The chip includes multiple physical security mechanisms to make it tamper resistant, and malicious software is unable to tamper with the security functions of the TPM. Some of the key advantages of using TPM technology are that you can: - Generate, store, and limit the use of cryptographic keys. - - Use TPM technology for platform device authentication by using the TPM’s unique RSA key, which is burned into itself. - - Help ensure platform integrity by taking and storing security measurements. The most common TPM functions are used for system integrity measurements and for key creation and use. During the boot process of a system, the boot code that is loaded (including firmware and the operating system components) can be measured and recorded in the TPM. The integrity measurements can be used as evidence for how a system started and to make sure that a TPM-based key was used only when the correct software was used to boot the system. TPM-based keys can be configured in a variety of ways. One option is to make a TPM-based key unavailable outside the TPM. This is good to mitigate phishing attacks because it prevents the key from being copied and used without the TPM. TPM-based keys can also be configured to require an authorization value to use them. If too many incorrect authorization guesses occur, the TPM will activate its dictionary attack logic and prevent further authorization value guesses. -Different versions of the TPM are defined in specifications by the Trusted Computing Group (TCG). For more information, consult the [TCG Web site](http://www.trustedcomputinggroup.org/work-groups/trusted-platform-module/). +Different versions of the TPM are defined in specifications by the Trusted Computing Group (TCG). For more information, consult the TCG Web site (). -### Automatic initialization of the TPM with Windows 10 +Windows can automatically provision and manage the TPM. Group Policy settings can be configured to control whether the TPM owner authorization value is backed up in Active Directory. Because the TPM state persists across operating system installations, TPM information is stored in a location in Active Directory that is separate from computer objects. Depending on an enterprise’s security goals, Group Policy can be configured to allow or prevent local administrators from resetting the TPM’s dictionary attack logic. Standard users can use the TPM, but Group Policy controls limit how many authorization failures standard users can attempt so that one user is unable to prevent other users or the administrator from using the TPM. TPM technology can also be used as a virtual smart card and for secure certificate storage. With BitLocker Network Unlock, domain-joined computers are not prompted for a BitLocker PIN. -Starting with Windows 10, the operating system automatically initializes and takes ownership of the TPM. This means that in most cases, we recommend that you avoid configuring the TPM through the TPM management console, **TPM.msc**. There are a few exceptions, mostly related to resetting or performing a clean installation on a PC. For more information, see [Clear all the keys from the TPM](initialize-and-configure-ownership-of-the-tpm.md#clear-all-the-keys-from-the-tpm). - -In certain specific enterprise scenarios limited to Windows 10, versions 1507 and 1511, Group Policy might be used to back up the TPM owner authorization value in Active Directory. Because the TPM state persists across operating system installations, this TPM information is stored in a location in Active Directory that is separate from computer objects. - -## Practical applications +## Practical applications Certificates can be installed or created on computers that are using the TPM. After a computer is provisioned, the RSA private key for a certificate is bound to the TPM and cannot be exported. The TPM can also be used as a replacement for smart cards, which reduces the costs associated with creating and disbursing smart cards. Automated provisioning in the TPM reduces the cost of TPM deployment in an enterprise. New APIs for TPM management can determine if TPM provisioning actions require physical presence of a service technician to approve TPM state change requests during the boot process. -Antimalware software can use the boot measurements of the operating system start state to prove the integrity of a computer running Windows 10 or Windows Server 2016. These measurements include the launch of Hyper-V to test that datacenters using virtualization are not running untrusted hypervisors. With BitLocker Network Unlock, IT administrators can push an update without concerns that a computer is waiting for PIN entry. +Antimalware software can use the boot measurements of the operating system start state to prove the integrity of a computer running Windows 10, Windows 8.1, Windows 8, Windows Server 2012 R2, or Windows Server 2012. These measurements include the launch of Hyper-V to test that datacenters using virtualization are not running untrusted hypervisors. With BitLocker Network Unlock, IT administrators can push an update without concerns that a computer is waiting for PIN entry. -The TPM has several Group Policy settings that might be useful in certain enterprise scenarios. For more info, see [TPM Group Policy Settings](trusted-platform-module-services-group-policy-settings.md). +The TPM has several Group Policy settings that can be used to manage how it is used. These settings can be used to manage the owner authorization value, the blocked TPM commands, the standard user lockout, and the backup of the TPM to AD DS. For more info, see [Trusted Platform Module Services Group Policy Settings](trusted-platform-module-services-group-policy-settings.md). -## New and changed functionality +## New and changed functionality -For more info on new and changed functionality for Trusted Platform Module in Windows 10, see [What's new in Trusted Platform Module?](https://technet.microsoft.com/itpro/windows/whats-new/whats-new-windows-10-version-1507-and-1511#trusted-platform-module). +For more info on new and changed functionality for Trusted Platform Module in Windows 10, see [What's new in Trusted Platform Module?](../whats-new/whats-new-windows-10-version-1507-and-1511.md#trusted-platform-module). -## Device health attestation +## Device health attestation Device health attestation enables enterprises to establish trust based on hardware and software components of a managed device. With device heath attestation, you can configure an MDM server to query a health attestation service that will allow or deny a managed device access to a secure resource. Some things that you can check on the device are: - Is Data Execution Prevention supported and enabled? - - Is BitLocker Drive Encryption supported and enabled? - - Is SecureBoot supported and enabled? -> [!NOTE] -> The device must be running Windows 10 and it must support at least TPM 2.0. +>**Note:**  The device must be running Windows 10 and it must support at least TPM 2.0. +  +## Supported versions -## Supported versions +| TPM version | Windows 10 | Windows Server 2012 R2, Windows 8.1, and Windows RT | Windows Server 2012, Windows 8, and Windows RT | Windows Server 2008 R2 and Windows 7 | +| - | - | - | - | - | +| TPM 1.2| X| X| X| X| +| TPM 2.0| X| X| X| X| -| TPM version | Windows 10 | Windows Server 2016 | -|-------------|------------|---------------------| -| TPM 1.2 | X | X | -| TPM 2.0 | X | X | +## Additional Resources -## Related topics - -- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) -- [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](https://technet.microsoft.com/itpro/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies#bkmk-tpmconfigurations) +- [TPM Fundamentals](tpm-fundamentals.md) +- [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) +- [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) +- [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md) +- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](http://technet.microsoft.com/library/jj592683.aspx) +  +  diff --git a/windows/keep-secure/trusted-platform-module-services-group-policy-settings.md b/windows/keep-secure/trusted-platform-module-services-group-policy-settings.md index 27fa6ec7db..d927f73825 100644 --- a/windows/keep-secure/trusted-platform-module-services-group-policy-settings.md +++ b/windows/keep-secure/trusted-platform-module-services-group-policy-settings.md @@ -13,94 +13,102 @@ author: brianlic-msft **Applies to** - Windows 10 -- Windows Server 2016 This topic for the IT professional describes the Trusted Platform Module (TPM) Services that can be controlled centrally by using Group Policy settings. +## + The TPM Services Group Policy settings are located at: **Computer Configuration\\Administrative Templates\\System\\Trusted Platform Module Services\\** -| Setting | Windows 10, version 1607 and Windows Server 2016 | Windows 10, version 1511 and Windows 10, version 1507 | -|-----------------|--------------------------------------------------|-------------------------------------------------------| -| [Turn on TPM backup to Active Directory Domain Services](#turn-on-tpm-backup-to-active-directory-domain-services) | | X | -| [Configure the list of blocked TPM commands](#configure-the-list-of-blocked-tpm-commands) | X | X | -| [Ignore the default list of blocked TPM commands](#ignore-the-default-list-of-blocked-tpm-commands) | X | X | -| [Ignore the local list of blocked TPM commands](#ignore-the-local-list-of-blocked-tpm-commands) | X | X | -| [Configure the level of TPM owner authorization information available to the operating system](#configure-the-level-of-tpm-owner-authorization-information-available-to-the-operating-system) | X | X | -| [Standard User Lockout Duration](#standard-user-lockout-duration) | X | X | -| [Standard User Individual Lockout Threshold](#standard-user-individual-lockout-threshold) | X | X | -| [Standard User Total Lockout Threshold](#standard-user-total-lockout-threshold) | X | X | +| Setting | Windows 10, version 1607 | Windows 10, version 1511 and Windows 10, version 1507 | Windows Server 2012 R2, Windows 8.1 and Windows RT | Windows Server 2012, Windows 8 and Windows RT | Windows Server 2008 R2 and Windows 7 | Windows Server 2008 and Windows Vista | +| - | - | - | - | - | - | - | +| [Turn on TPM backup to Active Directory Domain Services](#bkmk-tpmgp-addsbu) | | X| X| X| X| X| +| [Configure the list of blocked TPM commands](#bkmk-tpmgp-clbtc)| X| X| X| X| X| X| +| [Ignore the default list of blocked TPM commands](#bkmk-tpmgp-idlb) | X| X| X| X| X| X| +| [Ignore the local list of blocked TPM commands](#bkmk-tpmgp-illb) | X| X| X| X| X| X| +| [Configure the level of TPM owner authorization information available to the operating system](#bkmk-tpmgp-oauthos)| | X| X| X||| +| [Standard User Lockout Duration](#bkmk-tpmgp-suld)| X| X| X| X||| +| [Standard User Individual Lockout Threshold](#bkmk-individual)| X| X| X| X||| +| [Standard User Total Lockout Threshold](#bkmk-total)| X| X| X| X|||| -### Turn on TPM backup to Active Directory Domain Services +### Turn on TPM backup to Active Directory Domain Services This policy setting allows you to manage the Active Directory Domain Services (AD DS) backup of TPM owner information. +>[!NOTE] +>This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). + + TPM owner information includes a cryptographic hash of the TPM owner password. Certain TPM commands can be run only by the TPM owner. This hash authorizes the TPM to run these commands. -> [!IMPORTANT] -> The **Turn on TPM backup to Active Directory Domain Services** is not available in the Windows 10, version 1607 and Windows Server 2016 and later versions of the ADMX files. +>[!IMPORTANT] +>To back up TPM owner information from a computer running Windows 10, version 1507, Windows 10, version 1511, Windows 8.1, or Windows 8, you might need to first set up appropriate schema extensions and access control settings on the domain so that the AD DS backup can succeed. Windows Server 2012 R2 and Windows Server 2012 include the required schema extensions by default. For more information, see [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md). This functionality is discontinued starting with Windows 10, version 1607. If you enable this policy setting, TPM owner information will be automatically and silently backed up to AD DS when you use Windows to set or change a TPM owner password. When this policy setting is enabled, a TPM owner password cannot be set or changed unless the computer is connected to the domain and the AD DS backup succeeds. If you disable or do not configure this policy setting, TPM owner information will not be backed up to AD DS. -### Configure the list of blocked TPM commands +>[!NOTE] +> The **Turn on TPM backup to Active Directory Domain Services** is not available in the Windows 10, version 1607 and Windows Server 2016 and later versions of the ADMX files. + + +### Configure the list of blocked TPM commands This policy setting allows you to manage the Group Policy list of Trusted Platform Module (TPM) commands that are blocked by Windows. -If you enable this policy setting, Windows will block the specified commands from being sent to the TPM on the computer. TPM commands are referenced by a command number. For example, command number 129 is **TPM\_OwnerReadInternalPub**, and command number 170 is **TPM\_FieldUpgrade**. To find the command number that is associated with each TPM command, at the command prompt, type **tpm.msc** to open the TPM Management Console and navigate to the **Command Management** section. +>**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). +  +If you enable this policy setting, Windows will block the specified commands from being sent to the TPM on the computer. TPM commands are referenced by a command number. For example, command number 129 is **TPM\_OwnerReadInternalPub**, and command number 170 is **TPM\_FieldUpgrade**. To find the command number that is associated with each TPM command, at the command prompt, type **tpm.msc**to open the TPM Management Console and navigate to the **Command Management** section. If you disable or do not configure this policy setting, only those TPM commands that are specified through the default or local lists can be blocked by Windows. The default list of blocked TPM commands is preconfigured by Windows. - You can view the default list by typing **tpm.msc** at the command prompt, navigating to the **Command Management** section, and exposing the **On Default Block List** column. - - The local list of blocked TPM commands is configured outside of Group Policy by running the TPM Management Console or scripting using the **Win32\_Tpm** interface. For information how to enforce or ignore the default and local lists of blocked TPM commands, see -- [Ignore the default list of blocked TPM commands](#ignore-the-default-list-of-blocked-tpm-commands) - -- [Ignore the local list of blocked TPM commands](#ignore-the-local-list-of-blocked-tpm-commands) - -### Ignore the default list of blocked TPM commands +- [Ignore the default list of blocked TPM commands](#bkmk-tpmgp-idlb) +- [Ignore the local list of blocked TPM commands](#bkmk-tpmgp-illb) +### Ignore the default list of blocked TPM commands This policy setting allows you to enforce or ignore the computer's default list of blocked Trusted Platform Module (TPM) commands. -The default list of blocked TPM commands is preconfigured by Windows. You can view the default list by typing **tpm.msc** at the command prompt to open the TPM Management Console, navigating to the **Command Management** section, and exposing the **On Default Block List** column. Also see the related policy setting, [Configure the list of blocked TPM commands](#configure-the-list-of-blocked-tpm-commands). +>**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). +  +The default list of blocked TPM commands is preconfigured by Windows. You can view the default list by typing **tpm.msc** at the command prompt to open the TPM Management Console, navigating to the **Command Management** section, and exposing the **On Default Block List** column. Also see the related policy setting, [Configure the list of blocked TPM commands](#bkmk-tpmgp-clbtc). If you enable this policy setting, the Windows operating system will ignore the computer's default list of blocked TPM commands, and it will block only those TPM commands that are specified by Group Policy or the local list. If you disable or do not configure this policy setting, Windows will block the TPM commands in the default list, in addition to the commands that are specified by Group Policy and the local list of blocked TPM commands. -### Ignore the local list of blocked TPM commands +### Ignore the local list of blocked TPM commands This policy setting allows you to enforce or ignore the computer's local list of blocked Trusted Platform Module (TPM) commands. -The local list of blocked TPM commands is configured outside of Group Policy by typing **tpm.msc** at the command prompt to open the TPM Management Console, or scripting using the **Win32\_Tpm** interface. (The default list of blocked TPM commands is preconfigured by Windows.) Also see the related policy setting, [Configure the list of blocked TPM commands](#configure-the-list-of-blocked-tpm-commands). +>**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). +  +The local list of blocked TPM commands is configured outside of Group Policy by typing **tpm.msc** at the command prompt to open the TPM Management Console, or scripting using the **Win32\_Tpm** interface. (The default list of blocked TPM commands is preconfigured by Windows.) Also see the related policy setting to **Configure the list of blocked TPM commands**. If you enable this policy setting, the Windows operating system will ignore the computer's local list of blocked TPM commands, and it will block only those TPM commands that are specified by Group Policy or the default list. If you disable or do not configure this policy setting, Windows will block the TPM commands in the local list, in addition to the commands that are specified in Group Policy and the default list of blocked TPM commands. -### Configure the level of TPM owner authorization information available to the operating system +### Configure the level of TPM owner authorization information available to the operating system This policy setting configures how much of the TPM owner authorization information is stored in the registry of the local computer. Depending on the amount of TPM owner authorization information that is stored locally, the Windows operating system and TPM-based applications can perform certain actions in the TPM that require TPM owner authorization without requiring the user to enter the TPM owner password. -> [!IMPORTANT] -> This policy setting is not available in the Windows 10, version 1607 and Windows Server 2016 and later versions of the ADMX files. - +>**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). +  There are three TPM owner authentication settings that are managed by the Windows operating system. You can choose a value of **Full**, **Delegate**, or **None**. - **Full**   This setting stores the full TPM owner authorization, the TPM administrative delegation blob, and the TPM user delegation blob in the local registry. With this setting, you can use the TPM without requiring remote or external storage of the TPM owner authorization value. This setting is appropriate for scenarios that do not require you to reset the TPM anti-hammering logic or change the TPM owner authorization value. Some TPM-based applications may require that this setting is changed before features that depend on the TPM anti-hammering logic can be used. - - **Delegated**   This setting stores only the TPM administrative delegation blob and the TPM user delegation blob in the local registry. This setting is appropriate for use with TPM-based applications that depend on the TPM antihammering logic. This is the default setting in Windows. - - **None**   This setting provides compatibility with previous operating systems and applications. You can also use it for scenarios when TPM owner authorization cannot be stored locally. Using this setting might cause issues with some TPM-based applications. -> [!NOTE] -> If the operating system managed TPM authentication setting is changed from **Full** to **Delegated**, the full TPM owner authorization value will be regenerated, and any copies of the previously set TPM owner authorization value will be invalid. - +>**Note:**  If the operating system managed TPM authentication setting is changed from **Full** to **Delegated**, the full TPM owner authorization value will be regenerated, and any copies of the previously set TPM owner authorization value will be invalid. +  **Registry information** Registry key: HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\TPM @@ -109,41 +117,43 @@ DWORD: OSManagedAuthLevel The following table shows the TPM owner authorization values in the registry. -| Value Data | Setting | -|------------|-----------| -| 0 | None | -| 2 | Delegated | -| 4 | Full | - +| Value Data | Setting | +| - | - | +| 0 | None| +| 2 | Delegated| +| 4 | Full|   If you enable this policy setting, the Windows operating system will store the TPM owner authorization in the registry of the local computer according to the TPM authentication setting you choose. -If you disable or do not configure this policy setting, and the **Turn on TPM backup to Active Directory Domain Services** policy setting is also disabled or not configured, the default setting is to store the full TPM authorization value in the local registry. If this policy is disabled or not +If you disable or do not configure this policy setting, and the **Turn on TPM backup to Active Directory Domain Services** policy setting is also disabled or not configured, the default setting is to store the full TPM authorization value in the local registry. If this policy is disabled or not configured, and the **Turn on TPM backup to Active Directory Domain Services** policy setting is enabled, only the administrative delegation and the user delegation blobs are stored in the local registry. -### Standard User Lockout Duration +### Standard User Lockout Duration -This policy setting allows you to manage the duration in minutes for counting standard user authorization failures for Trusted Platform Module (TPM) commands requiring authorization. An authorization failure occurs each time a standard user sends a command to the TPM and receives an error response that indicates an authorization failure occurred. Authorization failures that are older than the duration you set are ignored. If the number of TPM commands with an authorization failure within the lockout duration equals a threshold, a standard user is prevented from sending commands that require +This policy setting allows you to manage the duration in minutes for counting standard user authorization failures for Trusted Platform Module (TPM) commands requiring authorization. An authorization failure occurs each time a standard user sends a command to the TPM and receives an error response that indicates an authorization failure occurred. Authorization failures that are older than the duration you set are ignored. If the number of TPM commands with an authorization failure within the lockout duration equals a threshold, a standard user is prevented from sending commands that require authorization to the TPM. +>**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). +  The TPM is designed to protect itself against password guessing attacks by entering a hardware lockout mode when it receives too many commands with an incorrect authorization value. When the TPM enters a lockout mode, it is global for all users (including administrators) and for Windows features such as BitLocker Drive Encryption. This setting helps administrators prevent the TPM hardware from entering a lockout mode by slowing the speed at which standard users can send commands that require authorization to the TPM. For each standard user, two thresholds apply. Exceeding either threshold prevents the user from sending a command that requires authorization to the TPM. Use the following policy settings to set the lockout duration: -- [Standard User Individual Lockout Threshold](#standard-user-individual-lockout-threshold)   This value is the maximum number of authorization failures that each standard user can have before the user is not allowed to send commands that require authorization to the TPM. - -- [Standard User Total Lockout Threshold](#standard-user-total-lockout-threshold)   This value is the maximum total number of authorization failures that all standard users can have before all standard users are not allowed to send commands that require authorization to the TPM. +- [Standard User Individual Lockout Threshold](#bkmk-individual)   This value is the maximum number of authorization failures that each standard user can have before the user is not allowed to send commands that require authorization to the TPM. +- [Standard User Total Lockout Threshold](#bkmk-total)   This value is the maximum total number of authorization failures that all standard users can have before all standard users are not allowed to send commands that require authorization to the TPM. An administrator with the TPM owner password can fully reset the TPM's hardware lockout logic by using the TPM Management Console (tpm.msc). Each time an administrator resets the TPM's hardware lockout logic, all prior standard user TPM authorization failures are ignored. This allows standard users to immediately use the TPM normally. If you do not configure this policy setting, a default value of 480 minutes (8 hours) is used. -### Standard User Individual Lockout Threshold +### Standard User Individual Lockout Threshold This policy setting allows you to manage the maximum number of authorization failures for each standard user for the Trusted Platform Module (TPM). This value is the maximum number of authorization failures that each standard user can have before the user is not allowed to send commands that require authorization to the TPM. If the number of authorization failures for the user within the duration that is set for the **Standard User Lockout Duration** policy setting equals this value, the standard user is prevented from sending commands that require authorization to the Trusted Platform Module (TPM). +>**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). +  This setting helps administrators prevent the TPM hardware from entering a lockout mode by slowing the speed at which standard users can send commands that require authorization to the TPM. An authorization failure occurs each time a standard user sends a command to the TPM and receives an error response indicating an authorization failure occurred. Authorization failures older than the duration are ignored. @@ -152,20 +162,29 @@ An administrator with the TPM owner password can fully reset the TPM's hardware If you do not configure this policy setting, a default value of 4 is used. A value of zero means that the operating system will not allow standard users to send commands to the TPM, which might cause an authorization failure. -### Standard User Total Lockout Threshold +### Standard User Total Lockout Threshold This policy setting allows you to manage the maximum number of authorization failures for all standard users for the Trusted Platform Module (TPM). If the total number of authorization failures for all standard users within the duration that is set for the **Standard User Lockout Duration** policy equals this value, all standard users are prevented from sending commands that require authorization to the Trusted Platform Module (TPM). +>**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). +  This setting helps administrators prevent the TPM hardware from entering a lockout mode because it slows the speed standard users can send commands requiring authorization to the TPM. An authorization failure occurs each time a standard user sends a command to the TPM and receives an error response indicating an authorization failure occurred. Authorization failures older than the duration are ignored. +For each standard user two thresholds apply. Exceeding either threshold will prevent the standard user from sending a command to the TPM that requires authorization. + +1. The standard user individual lockout value is the maximum number of authorization failures each standard user may have before the user is not allowed to send commands requiring authorization to the TPM. +2. The standard user total lockout threshold value is the maximum total number of authorization failures all standard users may have before all standard users are not allowed to send commands requiring authorization to the TPM. +The TPM is designed to protect itself against password guessing attacks by entering a hardware lockout mode when it receives too many commands with an incorrect authorization value. When the TPM enters a lockout mode, it is global for all users (including administrators) and for Windows features +such as BitLocker Drive Encryption.. + An administrator with the TPM owner password can fully reset the TPM's hardware lockout logic by using the TPM Management Console (tpm.msc). Each time an administrator resets the TPM's hardware lockout logic, all prior standard user TPM authorization failures are ignored. This allows standard users to immediately use the TPM normally. If you do not configure this policy setting, a default value of 9 is used. A value of zero means that the operating system will not allow standard users to send commands to the TPM, which might cause an authorization failure. -## Related topics +## Additional resources -- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) +- [Trusted Platform Module Technology Overview](trusted-platform-module-overview.md) - [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](https://technet.microsoft.com/itpro/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies#bkmk-tpmconfigurations) \ No newline at end of file +- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](http://technet.microsoft.com/library/jj592683.aspx) diff --git a/windows/keep-secure/trusted-platform-module-top-node.md b/windows/keep-secure/trusted-platform-module-top-node.md deleted file mode 100644 index ad6428c661..0000000000 --- a/windows/keep-secure/trusted-platform-module-top-node.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Trusted Platform Module (Windows 10) -description: This topic for the IT professional provides links to information about the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -localizationpriority: high -author: brianlic-msft ---- - -# Trusted Platform Module - -**Applies to** -- Windows 10 -- Windows Server 2016 - -Trusted Platform Module (TPM) technology is designed to provide hardware-based, security-related functions. A TPM chip is a secure crypto-processor that helps you with actions such as generating, storing, and limiting the use of cryptographic keys. The following topics provide details. - - - -| Topic | Description | -|-------|-------------| -| [Trusted Platform Module Overview](trusted-platform-module-overview.md) | Provides an overview of the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. | -| [TPM fundamentals](tpm-fundamentals.md) | Provides background about how a TPM can work with cryptographic keys. Also describes technologies that work with the TPM, such as TPM-based virtual smart cards. | -| [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) | Describes TPM services that can be controlled centrally by using Group Policy settings. | -| [Back up the TPM recovery information to AD DS](backup-tpm-recovery-information-to-ad-ds.md) | For Windows 10, version 1511 and Windows 10, version 1507 only, describes how to back up a computer’s TPM information to Active Directory Domain Services. | -| [Manage TPM commands](manage-tpm-commands.md) | Describes methods by which a local or domain administrator can block or allow specific TPM commands. | -| [Manage TPM lockout](manage-tpm-lockout.md) | Describes how TPM lockout works (to help prevent tampering or malicious attacks), and outlines ways to work with TPM lockout settings. | -| [Change the TPM owner password](change-the-tpm-owner-password.md) | In most cases, applies to Windows 10, version 1511 and Windows 10, version 1507 only. Tells how to change the TPM owner password. | -| [View status, clear, or troubleshoot the TPM](initialize-and-configure-ownership-of-the-tpm.md) | Describes actions you can take through the TPM snap-in, TPM.msc: view TPM status, troubleshoot TPM initialization, and clear keys from the TPM. Also, for TPM 1.2 and Windows 10, version 1507 or 1511, describes how to turn the TPM on or off. | -| [Understanding PCR banks on TPM 2.0 devices](switch-pcr-banks-on-tpm-2-0-devices.md) | Provides background about what happens when you switch PCR banks on TPM 2.0 devices. | -| [TPM recommendations](tpm-recommendations.md) | Discusses aspects of TPMs such as the difference between TPM 1.2 and 2.0, and the Windows 10 features for which a TPM is required or recommended. | diff --git a/windows/keep-secure/understanding-applocker-default-rules.md b/windows/keep-secure/understanding-applocker-default-rules.md index f0b744d7ad..b0aa99f22e 100644 --- a/windows/keep-secure/understanding-applocker-default-rules.md +++ b/windows/keep-secure/understanding-applocker-default-rules.md @@ -42,4 +42,5 @@ These permissions settings are applied to this folder for app compatibility. How ## Related topics - [How AppLocker works](how-applocker-works-techref.md) -- [Create AppLocker default rules](create-applocker-default-rules.md) \ No newline at end of file +  +  diff --git a/windows/keep-secure/understanding-applocker-rule-collections.md b/windows/keep-secure/understanding-applocker-rule-collections.md index bfe5fd07ce..b8adef234c 100644 --- a/windows/keep-secure/understanding-applocker-rule-collections.md +++ b/windows/keep-secure/understanding-applocker-rule-collections.md @@ -33,5 +33,3 @@ For info about how to enable the DLL rule collection, see [Enable the DLL rule c ## Related topics - [How AppLocker works](how-applocker-works-techref.md) -- [Understanding AppLocker default rules](understanding-applocker-default-rules.md) - diff --git a/windows/keep-secure/use-applocker-and-software-restriction-policies-in-the-same-domain.md b/windows/keep-secure/use-applocker-and-software-restriction-policies-in-the-same-domain.md index 0fa2a8f258..17fe40b6a1 100644 --- a/windows/keep-secure/use-applocker-and-software-restriction-policies-in-the-same-domain.md +++ b/windows/keep-secure/use-applocker-and-software-restriction-policies-in-the-same-domain.md @@ -61,7 +61,7 @@ The following table compares the features and functions of Software Restriction

    Enforcement mode

    SRP works in the “deny list mode” where administrators can create rules for files that they do not want to allow in this Enterprise whereas the rest of the file are allowed to run by default.

    -

    SRP can also be configured in the “allow list mode” so that by default all files are blocked and administrators need to create allow rules for files that they want to allow.

    +

    SRP can also be configured in the “allow list mode” such that the by default all files are blocked and administrators need to create allow rules for files that they want to allow.

    AppLocker by default works in the “allow list mode” where only those files are allowed to run for which there is a matching allow rule.

    diff --git a/windows/keep-secure/using-event-viewer-with-applocker.md b/windows/keep-secure/using-event-viewer-with-applocker.md index 7a3b0f4f8d..1b1b80e64f 100644 --- a/windows/keep-secure/using-event-viewer-with-applocker.md +++ b/windows/keep-secure/using-event-viewer-with-applocker.md @@ -46,7 +46,7 @@ The following table contains information about the events that you can use to de | 8005| Information| *<File name> * was allowed to run.| Specifies that the script or .msi file is allowed by an AppLocker rule.| | 8006 | Warning| *<File name> * was allowed to run but would have been prevented from running if the AppLocker policy were enforced.| Applied only when the **Audit only ** enforcement mode is enabled. Specifies that the script or .msi file would be blocked if the **Enforce rules ** enforcement mode were enabled. | | 8007 | Error| *<File name> * was not allowed to run.| Access to *<file name> * is restricted by the administrator. Applied only when the **Enforce rules ** enforcement mode is set either directly or indirectly through Group Policy inheritance. The script or .msi file cannot run.| -| 8008| Error| AppLocker disabled on the SKU.| Added in Windows Server 2012 and Windows 8.| +| 8007| Error| AppLocker disabled on the SKU.| Added in Windows Server 2012 and Windows 8.| | 8020| Information| Packaged app allowed.| Added in Windows Server 2012 and Windows 8.| | 8021| Information| Packaged app audited.| Added in Windows Server 2012 and Windows 8.| | 8022| Information| Packaged app disabled.| Added in Windows Server 2012 and Windows 8.| diff --git a/windows/keep-secure/using-owa-with-wip.md b/windows/keep-secure/using-owa-with-wip.md deleted file mode 100644 index f4046b30a6..0000000000 --- a/windows/keep-secure/using-owa-with-wip.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Using Outlook Web Access with Windows Information Protection (WIP) (Windows 10) -description: Options for using Outlook Web Access (OWA) with Windows Information Protection (WIP). -keywords: WIP, Windows Information Protection, EDP, Enterprise Data Protection, WIP and OWA configuration -ms.prod: w10 -ms.mktglfcycl: explore -ms.sitesec: library -ms.pagetype: security -localizationpriority: high ---- - -# Using Outlook Web Access with Windows Information Protection (WIP) -**Applies to:** - -- Windows 10, version 1607 -- Windows 10 Mobile - ->Learn more about what features and functionality are supported in each Windows edition at [Compare Windows 10 Editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare). - -Because Outlook Web Access (OWA) can be used both personally and as part of your organization, you have the following options to configure it with Windows Information Protection (WIP): - -|Option |OWA behavior | -|-------|-------------| -|Disable OWA. Employees can only use Microsoft Outlook 2016 or the Office 365 Mail app. | Disabled. | -|Don't configure outlook.office.com in any of your networking settings. |All mailboxes are automatically marked as personal. This means employees attempting to copy work content into OWA receive prompts and that files downloaded from OWA aren't automatically protected as corporate data. | -|Do all of the following:
    • Create a domain (such as mail.contoso.com, redirecting to outlook.office.com) that can be used by your employees to access work email.
    • Add the new domain to the Enterprise Cloud Resources network element in your WIP policy.
    • Add the following URLs to the Neutral Resources network element in your WIP policy:
      • outlook.office365.com
      • outlook.office.com
      • outlook-sdf.office.com
      • attachment.outlook.office.net
    |Inbox content accessed through the new domain is automatically marked as corporate data, while content accessed through personal email is automatically marked as personal. | -|Add outlook.office.com to the Enterprise Cloud Resources network element in your WIP policy. |All mailboxes are automatically marked as corporate. This means any personal inboxes hosted on Office 365 are also automatically marked as corporate data. | - ->[!NOTE] ->These limitations don’t apply to Outlook 2016 or to the Office 365 Mail and Calendar apps. These apps will work properly, marking an employee’s mailbox as corporate data, regardless of how you’ve configured outlook.office.com in your network settings. - - - - - diff --git a/windows/keep-secure/windows-credential-theft-mitigation-guide-abstract.md b/windows/keep-secure/windows-credential-theft-mitigation-guide-abstract.md deleted file mode 100644 index 44a10d1bbe..0000000000 --- a/windows/keep-secure/windows-credential-theft-mitigation-guide-abstract.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Windows 10 Credential Theft Mitigation Guide Abstract (Windows 10) -description: Provides a summary of the Windows 10 credential theft mitigation guide. -ms.assetid: 821ddc1a-f401-4732-82a7-40d1fff5a78a -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -author: justinha ---- - -# Windows 10 Credential Theft Mitigation Guide Abstract - -**Applies to** -- Windows 10 - -This topic provides a summary of the Windows 10 credential theft mitigation guide, which can be downloaded from the [Microsoft Download Center](http://download.microsoft.com/download/C/1/4/C14579CA-E564-4743-8B51-61C0882662AC/Windows 10 credential theft mitigation guide.docx). -This guide explains how credential theft attacks occur and the strategies and countermeasures you can implement to mitigate them, following these security stages: - -- Identify high-value assets -- Protect against known and unknown threats -- Detect pass-the-hash and related attacks -- Respond to suspicious activity -- Recover from a breach - -![Security stages](images\security-stages.png) - -## Attacks that steal credentials - -Learn about the different types of attacks that are used to steal credentials, and the factors that can place your organization at risk. -The types of attacks that are covered include: - -- Pass the hash -- Kerberos pass the ticket -- Kerberos golden ticket and silver ticket -- Key loggers -- Shoulder surfing - -## Credential protection strategies - -This part of the guide helps you consider the mindset of the attacker, with prescriptive guidance about how to prioritize high-value accounts and computers. -You'll learn how to architect a defense against credential theft: - -- Establish a containment model for account privileges -- Harden and restrict administrative hosts -- Ensure that security configurations and best practices are implemented - -## Technical countermeasures for credential theft - -Objectives and expected outcomes are covered for each of these countermeasures: - -- Use Windows 10 with Credential Guard -- Restrict and protect high-privilege domain accounts -- Restrict and protect local accounts with administrative privileges -- Restrict inbound network traffic - -Many other countermeasures are also covered, such as using Microsoft Passport and Windows Hello, or multifactor authentication. - -## Detecting credential attacks - -This sections covers how to detect the use of stolen credentials and how to collect computer events to help you detect credential theft. - -## Responding to suspicious activity - -Learn Microsoft's recommendations for responding to incidents, including how to recover control of compromised accounts, how to investigate attacks, and how to recover from a breach. - - diff --git a/windows/keep-secure/windows-defender-advanced-threat-protection.md b/windows/keep-secure/windows-defender-advanced-threat-protection.md index 0a9feddff7..7a77dece05 100644 --- a/windows/keep-secure/windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/windows-defender-advanced-threat-protection.md @@ -21,8 +21,6 @@ localizationpriority: high - Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) ->Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=technet-wd-atp-abovefoldlink1) -> >For more info about Windows 10 Enterprise Edition features and functionality, see [Windows 10 Enterprise edition](https://www.microsoft.com/WindowsForBusiness/buy). Windows Defender Advanced Threat Protection (Windows Defender ATP) is a security service that enables enterprise customers to detect, investigate, and respond to advanced threats on their networks. @@ -32,7 +30,7 @@ Windows Defender ATP uses the following combination of technology built into Win - **Endpoint behavioral sensors**: Embedded in Windows 10, these sensors collect and process behavioral signals from the operating system (for example, process, registry, file, and network communications) - and sends this sensor data to your private, isolated, cloud instance of Windows Defender ATP. + and sends this telemetry to your private, isolated, cloud instance of Windows Defender ATP. - **Cloud security analytics**: Leveraging big-data, machine-learning, and @@ -47,7 +45,7 @@ Windows Defender ATP uses the following combination of technology built into Win and augmented by threat intelligence provided by partners, threat intelligence enables Windows Defender ATP to identify attacker tools, techniques, and procedures, and generate alerts when these - are observed in collected sensor data. + are observed in collected telemetry. The following diagram shows these Windows Defender ATP service components: @@ -93,6 +91,3 @@ Topic | Description [Troubleshoot Windows Defender Advanced Threat Protection](troubleshoot-windows-defender-advanced-threat-protection.md) | This topic contains information to help IT Pros find workarounds for the known issues and troubleshoot issues in Windows Defender ATP. [Review events and errors on endpoints with Event Viewer](event-error-codes-windows-defender-advanced-threat-protection.md)| Review events and errors associated with event IDs to determine if further troubleshooting steps are required. [Windows Defender compatibility](defender-compatibility-windows-defender-advanced-threat-protection.md) | Learn about how Windows Defender works in conjunction with Windows Defender ATP. - -## Related topic -[Windows Defender ATP helps detect sophisticated threats](https://www.microsoft.com/itshowcase/Article/Content/854/Windows-Defender-ATP-helps-detect-sophisticated-threats) diff --git a/windows/keep-secure/windows-defender-block-at-first-sight.md b/windows/keep-secure/windows-defender-block-at-first-sight.md index a31f43f6ee..8abf7c0806 100644 --- a/windows/keep-secure/windows-defender-block-at-first-sight.md +++ b/windows/keep-secure/windows-defender-block-at-first-sight.md @@ -30,9 +30,6 @@ It is enabled by default when certain pre-requisite settings are also enabled. I When a Windows Defender client encounters a suspicious but undetected file, it queries our cloud protection backend. The cloud backend will apply heuristics, machine learning, and automated analysis of the file to determine the files as malicious or clean. -> [!NOTE] -> The Block at first sight feature only use the cloud protection backend for executable files that are downloaded from the Internet, or originating from the Internet zone. A hash value of the EXE file is checked via the cloud backend to determine if this is a previously undetected file. - If the cloud backend is unable to make a determination, the file will be locked by Windows Defender while a copy is uploaded to the cloud. Only after the cloud has received the file will Windows Defender release the lock and let the file run. The cloud will perform additional analysis to reach a determination, blocking all future encounters of that file. In many cases this process can reduce the response time to new malware from hours to seconds. diff --git a/windows/keep-secure/windows-defender-in-windows-10.md b/windows/keep-secure/windows-defender-in-windows-10.md index 58ecb02cde..7ad3e53061 100644 --- a/windows/keep-secure/windows-defender-in-windows-10.md +++ b/windows/keep-secure/windows-defender-in-windows-10.md @@ -18,7 +18,7 @@ author: jasesso Windows Defender in Windows 10 is a built-in antimalware solution that provides security and antimalware management for desktops, portable computers, and servers. This topic provides an overview of Windows Defender, including a list of system requirements and new features. -For more important information about running Windows Defender on a server platform, see [Windows Defender Overview for Windows Server](https://technet.microsoft.com/windows-server-docs/security/windows-defender/windows-defender-overview-windows-server). +For more important information about running Windows Defender on a server platform, see [Windows Defender Overview for Windows Server Technical Preview](https://technet.microsoft.com/library/dn765478.aspx). Take advantage of Windows Defender by configuring settings and definitions using the following tools: - Microsoft Active Directory *Group Policy* for settings diff --git a/windows/keep-secure/wip-app-enterprise-context.md b/windows/keep-secure/wip-app-enterprise-context.md deleted file mode 100644 index b4ebd4ced4..0000000000 --- a/windows/keep-secure/wip-app-enterprise-context.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Determine the Enterprise Context of an app running in Windows Information Protection (WIP) (Windows 10) -description: Use the Task Manager to determine whether an app is considered work, personal or exempt by Windows Information Protection (WIP). -keywords: WIP, Windows Information Protection, EDP, Enterprise Data Protection, WIP and Task Manager, app context, enterprise context -ms.prod: w10 -ms.mktglfcycl: explore -ms.sitesec: library -ms.pagetype: security -localizationpriority: high ---- - -# Determine the Enterprise Context of an app running in Windows Information Protection (WIP) -**Applies to:** - -- Windows 10, version 1607 -- Windows 10 Mobile - ->Learn more about what features and functionality are supported in each Windows edition at [Compare Windows 10 Editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare). - -Use Task Manager to check the context of your apps while running in Windows Information Protection (WIP) to make sure that your organization's policies are applied and running correctly. - -## Viewing the Enterprise Context column in Task Manager -You need to add the Enterprise Context column to the **Details** tab of the Task Manager. - -1. Make sure that you have an active WIP policy deployed and turned on in your organization. - -2. Open the Task Manager (taskmgr.exe), click the **Details** tab, right-click in the column heading area, and click **Select columns**. - - The **Select columns** box appears. - - ![Task Manager, Select column box with Enterprise Context option selected](images/wip-select-column.png) - -3. Scroll down and check the **Enterprise Context** option, and then click **OK** to close the box. - - The **Enterprise Context** column should now be available in Task Manager. - - ![Task Manager, Enterprise Context column highlighted](images/wip-taskmgr.png) - -## Review the Enterprise Context -The **Enterprise Context** column shows you what each app can do with your enterprise data: - -- **Domain.** Shows the employee's work domain (such as, corp.contoso.com). This app is considered work-related and can freely touch and open work data and resources. - -- **Personal.** Shows the text, *Personal*. This app is considered non-work-related and can't touch any work data or resources. - -- **Exempt.** Shows the text, *Exempt*. WIP policies don't apply to these apps (such as, system components). - - >[!IMPORTANT] - >Enlightened apps can change between Work and Personal, depending on the data being touched. For example, Microsoft Word 2016 shows as **Personal** when an employee opens a personal letter, but changes to **Work** when that same employee opens the company financials. - - - - - - diff --git a/windows/keep-secure/working-with-applocker-rules.md b/windows/keep-secure/working-with-applocker-rules.md index c6fd38667f..9c528133ef 100644 --- a/windows/keep-secure/working-with-applocker-rules.md +++ b/windows/keep-secure/working-with-applocker-rules.md @@ -89,7 +89,6 @@ The following table describes how a publisher condition is applied. | Option | The publisher condition allows or denies… | -|---|---| | **All signed files** | All files that are signed by any publisher.| | **Publisher only**| All files that are signed by the named publisher.| | **Publisher and product name**| All files for the specified product that are signed by the named publisher.| @@ -124,7 +123,7 @@ When you choose the file hash rule condition, the system computes a cryptographi ## AppLocker default rules -AppLocker includes default rules, which are intended to help ensure that the files that are required for Windows to operate properly are allowed in an AppLocker rule collection. For background, see [Understanding AppLocker default rules](understanding-applocker-default-rules.md), and for steps, see [Create AppLocker default rules](create-applocker-default-rules.md). +AppLocker allows you to generate default rules for each rule collection. Executable default rule types include: diff --git a/windows/manage/.vscode/settings.json b/windows/manage/.vscode/settings.json deleted file mode 100644 index 20af2f68a6..0000000000 --- a/windows/manage/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -// Place your settings in this file to overwrite default and user settings. -{ -} \ No newline at end of file diff --git a/windows/manage/TOC.md b/windows/manage/TOC.md index d68415cde7..54af0df920 100644 --- a/windows/manage/TOC.md +++ b/windows/manage/TOC.md @@ -1,21 +1,7 @@ # [Manage and update Windows 10](index.md) ## [Administrative Tools in Windows 10](administrative-tools-in-windows-10.md) -## [Cortana integration in your business or enterprise](cortana-at-work-overview.md) -### [Testing scenarios using Cortana in your business or organization](cortana-at-work-testing-scenarios.md) -#### [Test scenario 1 - Sign-in to Azure AD and use Cortana to manage the notebook](cortana-at-work-scenario-1.md) -#### [Test scenario 2 - Test scenario 2 - Perform a quick search with Cortana at work](cortana-at-work-scenario-2.md) -#### [Test scenario 3 - Set a reminder for a specific location using Cortana at work](cortana-at-work-scenario-3.md) -#### [Test scenario 4 - Use Cortana at work to find your upcoming meetings](cortana-at-work-scenario-4.md) -#### [Test scenario 5 - Use Cortana to send email to a co-worker](cortana-at-work-scenario-5.md) -#### [Test scenario 6 - Use Cortana and Windows Information Protection (WIP) to help protect your organization’s data on a device](cortana-at-work-scenario-6.md) -### [Set up and test Cortana with Office 365 in your organization](cortana-at-work-o365.md) -### [Set up and test Cortana with Microsoft Dynamics CRM (Preview feature) in your organization](cortana-at-work-crm.md) -### [Set up and test Cortana for Power BI in your organization](cortana-at-work-powerbi.md) -### [Set up and test custom voice commands in Cortana for your organization](cortana-at-work-voice-commands.md) -### [Use Group Policy and mobile device management (MDM) settings to configure Cortana in your organization](cortana-at-work-policy-settings.md) -### [Send feedback about Cortana at work back to Microsoft](cortana-at-work-feedback.md) +## [Cortana integration in your business or enterprise](manage-cortana-in-enterprise.md) ## [Update Windows 10 in the enterprise](waas-update-windows-10.md) -### [Quick guide to Windows as a service](waas-quick-start.md) ### [Overview of Windows as a service](waas-overview.md) ### [Prepare servicing strategy for Windows 10 updates](waas-servicing-strategy-windows-10-updates.md) ### [Build deployment rings for Windows 10 updates](waas-deployment-rings-windows-10-updates.md) @@ -38,15 +24,13 @@ ### [Manage Windows 10 and Windows Store tips, tricks, and suggestions](manage-tips-and-suggestions.md) ### [New policies for Windows 10](new-policies-for-windows-10.md) ### [Group Policies that apply only to Windows 10 Enterprise and Windows 10 Education](group-policies-for-enterprise-and-education-editions.md) -### [Changes to Group Policy settings for Windows 10 Start menu](changes-to-start-policies-in-windows-10.md) +### [Changes to Group Policy settings for Windows 10 Start](changes-to-start-policies-in-windows-10.md) ### [Windows 10 Mobile and MDM](windows-10-mobile-and-mdm.md) ### [Introduction to configuration service providers (CSPs)](how-it-pros-can-use-configuration-service-providers.md) ## [Windows Spotlight on the lock screen](windows-spotlight.md) ## [Manage Windows 10 Start and taskbar layout](windows-10-start-layout-options-and-policies.md) ### [Configure Windows 10 taskbar](configure-windows-10-taskbar.md) ### [Customize and export Start layout](customize-and-export-start-layout.md) -### [Start layout XML for desktop editions of Windows 10 (reference)](start-layout-xml-desktop.md) -### [Start layout XML for mobile editions of Windows 10 (reference)](start-layout-xml-mobile.md) ### [Customize Windows 10 Start and taskbar with Group Policy](customize-windows-10-start-screens-by-using-group-policy.md) ### [Customize Windows 10 Start and taskbar with ICD and provisioning packages](customize-windows-10-start-screens-by-using-provisioning-packages-and-icd.md) ### [Customize Windows 10 Start with mobile device management (MDM)](customize-windows-10-start-screens-by-using-mobile-device-management.md) diff --git a/windows/manage/administrative-tools-in-windows-10.md b/windows/manage/administrative-tools-in-windows-10.md index a7d5203f8a..3db6a42541 100644 --- a/windows/manage/administrative-tools-in-windows-10.md +++ b/windows/manage/administrative-tools-in-windows-10.md @@ -26,6 +26,9 @@ The tools in the folder might vary depending on which edition of Windows you are These tools were included in previous versions of Windows and the associated documentation for each tool should help you use these tools in Windows 10. The following list links to documentation for each tool. +**Tip**   +If the content that is linked to a tool in the following list doesn't provide the information you need to use that tool, send us a comment by using the **Was this page helpful?** feature on this **Administrative Tools in Windows 10** page. Details about the information you want for a tool will help us plan future content. +   - [Component Services]( https://go.microsoft.com/fwlink/p/?LinkId=708489) @@ -46,8 +49,7 @@ These tools were included in previous versions of Windows and the associated doc - [Windows Firewall with Advanced Security](https://go.microsoft.com/fwlink/p/?LinkId=708503) - [Windows Memory Diagnostic]( https://go.microsoft.com/fwlink/p/?LinkId=708507) ->[!TIP]   ->If the content that is linked to a tool in the following list doesn't provide the information you need to use that tool, send us a comment by using the **Was this page helpful?** feature on this **Administrative Tools in Windows 10** page. Details about the information you want for a tool will help us plan future content.  +    diff --git a/windows/manage/change-history-for-manage-and-update-windows-10.md b/windows/manage/change-history-for-manage-and-update-windows-10.md index c9e8313b65..50f89c5dea 100644 --- a/windows/manage/change-history-for-manage-and-update-windows-10.md +++ b/windows/manage/change-history-for-manage-and-update-windows-10.md @@ -12,27 +12,6 @@ author: jdeckerMS This topic lists new and updated topics in the [Manage and update Windows 10](index.md) documentation for [Windows 10 and Windows 10 Mobile](../index.md). ->If you're looking for **update history** for Windows 10, see [Windows 10 and Windows Server 2016 update history](https://support.microsoft.com/help/12387/windows-10-update-history). - -## January 2017 - -| New or changed topic | Description | -| --- | --- | -| [Cortana integration in your business or enterprise](cortana-at-work-overview.md) | New | -| [Start layout XML for desktop editions of Windows 10](start-layout-xml-desktop.md) | New (previously published in Hardware Dev Center on MSDN) | -| [Start layout XML for mobile editions of Windows 10](start-layout-xml-mobile.md) | New (previously published in Hardware Dev Center on MSDN) | -| [Quick guide to Windows as a service](waas-quick-start.md) | Added video that explains how Windows as a service works. | - - - -## December 2016 - -| New or changed topic | Description | -| --- | --- | -| [Quick guide to Windows as a service](waas-quick-start.md) | New | -| [Manage Windows 10 in your organization - transitioning to modern management](manage-windows-10-in-your-organization-modern-management.md) | Added video demonstration of the latest in modern management for Windows 10 | -| [Windows Store for Business overview](windows-store-for-business-overview.md) | Updated list of supported markets. | - ## November 2016 | New or changed topic | Description | diff --git a/windows/manage/changes-to-start-policies-in-windows-10.md b/windows/manage/changes-to-start-policies-in-windows-10.md index 6cba8aeed7..743009e354 100644 --- a/windows/manage/changes-to-start-policies-in-windows-10.md +++ b/windows/manage/changes-to-start-policies-in-windows-10.md @@ -1,5 +1,5 @@ --- -title: Changes to Group Policy settings for Windows 10 Start menu (Windows 10) +title: Changes to Group Policy settings for Windows 10 Start (Windows 10) description: Windows 10 has a brand new Start experience. ms.assetid: 612FB68A-3832-451F-AA97-E73791FEAA9F keywords: ["group policy", "start menu", "start screen"] diff --git a/windows/manage/configure-devices-without-mdm.md b/windows/manage/configure-devices-without-mdm.md index 04ba35f499..b28734a5f6 100644 --- a/windows/manage/configure-devices-without-mdm.md +++ b/windows/manage/configure-devices-without-mdm.md @@ -104,14 +104,11 @@ When you run Windows ICD, you have several options for creating your package. 6. Toggle **On** or **Off** for wireless network connectivity. If you select **On**, enter the SSID, type, and (if required) password for the wireless network. 7. Click **Enroll into Active Directory**. 8. Toggle **Yes** or **No** for Active Directory enrollment. If you select **Yes**, enter the credentials for an account with permissions to enroll the device. (Optional) Enter a user name and password to create a local administrator account. - > [!WARNING] > If you don't create a local administrator account and the device fails to enroll in Active Directory for any reason, you will have to reimage the device and start over. As a best practice, we recommend: - > - >- Use a least-privileged domain account to join the device to the domain. - >- Create a temporary administrator account to use for debugging or reprovisioning if the device fails to enroll successfully. - >- [Use Group Policy to delete the temporary administrator account](https://blogs.technet.microsoft.com/canitpro/2014/12/10/group-policy-creating-a-standard-local-admin-account/) after the device is enrolled in Active Directory. - + - Use a least-privileged domain account to join the device to the domain. + - Create a temporary administrator account to use for debugging or reprovisioning if the device fails to enroll successfully. + - [Use Group Policy to delete the temporary administrator account](https://blogs.technet.microsoft.com/canitpro/2014/12/10/group-policy-creating-a-standard-local-admin-account/) after the device is enrolled in Active Directory. 9. Click **Finish**. 10. Review your settings in the summary. You can return to previous pages to change your selections. Then, under **Protect your package**, toggle **Yes** or **No** to encrypt the provisioning package. If you select **Yes**, enter a password. This password must be entered to apply the encrypted provisioning package. 11. Click **Create**. diff --git a/windows/manage/configure-windows-10-taskbar.md b/windows/manage/configure-windows-10-taskbar.md index bd5e26f4ba..8f9c046ff2 100644 --- a/windows/manage/configure-windows-10-taskbar.md +++ b/windows/manage/configure-windows-10-taskbar.md @@ -17,14 +17,14 @@ Starting in Windows 10, version 1607, administrators can pin additional apps to You can specify different taskbar configurations based on device locale and region. There is no limit on the number of apps that you can pin. You specify apps using the [Application User Model ID (AUMID)](https://go.microsoft.com/fwlink/p/?LinkId=614867) or Desktop Application Link Path (the local path to the application). -If you specify an app to be pinned that is not provisioned for the user on the computer, the pinned icon won't appear on the taskbar. +If you specify an app to be pinned that is not installed on the computer, it won't appear on the taskbar. -The order of apps in the XML file dictates the order of pinned apps on the taskbar from left to right, to the right of any existing apps pinned by the user. +The order of apps in the xml file dictates order of apps on taskbar from left to right, to the right of any existing apps pinned by user. > [!NOTE] > In operating systems configured to use a right-to-left language, the taskbar order will be reversed. -The following example shows how apps will be pinned: Windows default apps to the left (blue circle), apps pinned by the user in the center (orange triangle), and apps that you pin using the XML file to the right (green square). +The following example shows how apps will be pinned: Windows default apps to the left (blue circle), apps pinned by the user in the center (orange triangle), and apps that you pin using XML to the right (green square). ![Windows left, user center, enterprise to the right](images/taskbar-generic.png) @@ -41,21 +41,21 @@ To configure the taskbar: 3. Apply the layout modification XML file to devices using [Group Policy](customize-windows-10-start-screens-by-using-group-policy.md) or a [provisioning package created in Windows Imaging and Configuration Designer (Windows ICD)](customize-windows-10-start-screens-by-using-provisioning-packages-and-icd.md). >[!IMPORTANT] ->If you use a provisioning package to configure the taskbar, your configuration will be reapplied each time the explorer.exe process restarts. If your configuration pins an app and the user then unpins that app, the user's change will be overwritten the next time the configuration is applied. To apply a taskbar configuration that allows users to make changes that will persist, apply your configuration by using Group Policy. +>If you use a provisioning package to configure the taskbar, your configuration will be reapplied each time the explorer.exe process restarts. If your configuration pins an app and the user unpins that app, the user's change will be overwritten the next time the configuration is applied. To apply a taskbar configuration and allow users to make changes that will persist, apply your configuration by using Group Policy. ### Tips for finding AUMID and Desktop Application Link Path In the layout modification XML file, you will need to add entries for applications in the XML markup. In order to pin an application, you need either its AUMID or Desktop Application Link Path. The easiest way to find this data for an application is to: -1. Pin the application to the Start menu on a reference or testing PC. +1. Pin the application to the Start menu 2. Open Windows PowerShell and run the `Export-StartLayout` cmdlet. 3. Open the generated XML file. -4. Look for an entry corresponding to the app you pinned. +4. Look for an entry corresponding to the app you pinned . 5. Look for a property labeled `AppUserModelID` or `DesktopApplicationLinkPath`. -### Sample taskbar configuration XML file +### Sample taskbar configuration XML ```xml @@ -75,7 +75,7 @@ The easiest way to find this data for an application is to: ``` -### Sample taskbar configuration added to Start layout XML file +### Sample taskbar configuration added to Start layout XML ```xml @@ -139,7 +139,7 @@ The `` section will append listed apps to the tas ![additional apps pinned to taskbar](images/taskbar-default-plus.png) -## Remove default apps and add your own +##Remove default apps and add your own By adding `PinListPlacement="Replace"` to ``, you remove all default pinned apps; only the apps that you specify will be pinned to the taskbar. @@ -218,7 +218,7 @@ The following example shows you how to configure taskbars by country or region. ``` -When the preceding example XML file is applied, the resulting taskbar for computers in the US or UK: +When the preceding example XML is applied, the resulting taskbar for computers in the US or UK: ![taskbar for US and UK locale](images/taskbar-region-usuk.png) @@ -289,9 +289,7 @@ The resulting taskbar for computers in any other country region: ## Related topics -[Manage Windows 10 Start and taskbar layout ](windows-10-start-layout-options-and-policies.md) - -[Customize and export Start layout](customize-and-export-start-layout.md) +[Manage Windows 10 Start and taskbar layout ](windows-10-start-layout-options-and-policies.md)[Customize and export Start layout](customize-and-export-start-layout.md) [Customize Windows 10 Start and taskbar with Group Policy](customize-windows-10-start-screens-by-using-group-policy.md) diff --git a/windows/manage/configure-windows-telemetry-in-your-organization.md b/windows/manage/configure-windows-telemetry-in-your-organization.md index a7f9bbef7e..3bb9df599b 100644 --- a/windows/manage/configure-windows-telemetry-in-your-organization.md +++ b/windows/manage/configure-windows-telemetry-in-your-organization.md @@ -148,7 +148,6 @@ The following table defines the endpoints for telemetry services: | Connected User Experience and Telemetry component | v10.vortex-win.data.microsoft.com
    settings-win.data.microsoft.com | | [Windows Error Reporting](http://msdn.microsoft.com/library/windows/desktop/bb513641.aspx) | watson.telemetry.microsoft.com | | [Online Crash Analysis](http://msdn.microsoft.com/library/windows/desktop/ee416349.aspx) | oca.telemetry.microsoft.com | -| OneDrive app for Windows 10 | vortex.data.microsoft.com/collect/v1 | ### Data use and access diff --git a/windows/manage/connect-to-remote-aadj-pc.md b/windows/manage/connect-to-remote-aadj-pc.md index 8424e7c1c3..b05c575380 100644 --- a/windows/manage/connect-to-remote-aadj-pc.md +++ b/windows/manage/connect-to-remote-aadj-pc.md @@ -25,7 +25,7 @@ From its release, Windows 10 has supported remote connections to PCs that are jo ## Set up - Both PCs (local and remote) must be running Windows 10, version 1607. Remote connection to an Azure AD-joined PC that is running earlier versions of Windows 10 is not supported. -- Ensure [Remote Credential Guard](../keep-secure/remote-credential-guard.md), a new feature in Windows 10, version 1607, is turned off on the client PC that you are using to connect to the remote PC. +- Ensure [Remote Credential Guard](../keep-secure/remote-credential-guard.md), a new feature in Windows 10, version 1607, is turned off on the client PC. - On the PC that you want to connect to: 1. Open system properties for the remote PC. 2. Enable **Allow remote connections to this computer** and select **Allow connections only from computers running Remote Desktop with Network Level Authentication**. diff --git a/windows/manage/cortana-at-work-crm.md b/windows/manage/cortana-at-work-crm.md deleted file mode 100644 index 834bde8a92..0000000000 --- a/windows/manage/cortana-at-work-crm.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Set up and test Cortana with Microsoft Dynamics CRM (Preview feature) in your organization (Windows 10) -description: How to set up Cortana to help your salespeople get proactive insights on important CRM activities, including sales leads, accounts, and opportunities; presenting the most relevant info at any given time. -ms.prod: w10 -ms.mktglfcycl: manage -ms.sitesec: library -localizationpriority: high ---- - -# Set up and test Cortana with Microsoft Dynamics CRM (Preview feature) in your organization -**Applies to:** - -- Windows 10, Windows Insider Program -- Windows 10 Mobile, Windows Insider Program - ->[!IMPORTANT] ->Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. - -Cortana integration is a Preview feature that's available for your test or dev environment, starting with the CRM Online 2016 Update. If you decide to use this Preview feature, you'll need to turn in on and accept the license terms. After that, your salespeople will get proactive insights from Cortana on important CRM activities, including sales leads, accounts, and opportunities; presenting the most relevant info at any given time. This can even include getting company-specific news that surfaces when the person is meeting with a representative from another company. - ->[!NOTE] ->For more info about Dynamics CRM integration, how to turn on Cortana, and how to provide feedback, see [Preview feature: Set up Cortana integration](http://go.microsoft.com/fwlink/p/?LinkId=746819). - -![Cortana at work, showing the sales data pulled from Dynamics CRM](images/cortana-crm-screen.png) - -## Turn on Cortana with Dynamics CRM in your organization -You must be a CRM administrator to turn on and use Preview features. For more info about what Preview features are and how to use them, see [What are Preview features and how do I enable them](http://go.microsoft.com/fwlink/p/?LinkId=746817)? - -**To turn on Cortana with Dynamics CRM** - -1. Go to **Settings**, and then click **Administration**. - -2. Choose **System Settings**, and then click the **Previews** tab. - -3. Read the license terms, and if you agree, select the **I’ve read and agree to the license terms** check box. - -4. For each preview feature you want to enable, click **Yes**. - -## Turn on Cortana with Dynamics CRM on your employees’ devices -You must tell your employees to turn on Cortana, before they’ll be able to use it with Dynamics CRM. - -**To turn on local Cortana with Dynamics CRM** - -1. Click on the **Cortana** search box in the taskbar, and then click the **Notebook** icon. - -2. Click on **Connected Services**, click **Dynamics CRM**, and then click **Connect**. - - ![Cotana at work, showing how to turn on the connected services for Dynamics CRM](images/cortana-connect-crm.png) - - The employee can also disconnect by clicking **Disconnect** from the **Dynamics CRM** screen. - -## Turn off Cortana with Dynamics CRM -Cortana can only access data in Dynamics CRM when it’s turned on. If you don’t want Cortana to access your corporate data, you can turn it off. - -**To turn off Cortana with Dynamics CRM** -1. Go to **Settings**, and then click **Administration**. - -2. Choose **System Settings**, and then click the **Previews** tab. - -3. Click **No** for **Cortana**. - - All Dynamics CRM functionality related to Cortana is turned off in your organization. \ No newline at end of file diff --git a/windows/manage/cortana-at-work-feedback.md b/windows/manage/cortana-at-work-feedback.md deleted file mode 100644 index ca24c22703..0000000000 --- a/windows/manage/cortana-at-work-feedback.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Send feedback about Cortana at work back to Microsoft (Windows 10) -description: How to send feedback to Microsoft about Cortana at work. -ms.prod: w10 -ms.mktglfcycl: manage -ms.sitesec: library -localizationpriority: high ---- - -# Send feedback about Cortana at work back to Microsoft -**Applies to:** - -- Windows 10, Windows Insider Program -- Windows 10 Mobile, Windows Insider Program - ->[!IMPORTANT] ->Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. - -We ask that you report bugs and issues. To provide feedback, you can click the **Feedback** icon in the Cortana window. When you send this form to Microsoft it also includes troubleshooting info, in case you run into problems. - -![Cortana at work, showing how to provide feedback to Microsoft](images/cortana-feedback.png) - -If you don't want to use the feedback tool in Cortana, you can add feedback through the general Windows Insider Preview feedback app. For info about the Insider Preview feedback app, see [How to use Windows Insider Preview – Updates and feedback](http://windows.microsoft.com/en-us/windows/preview-updates-feedback-pc). - diff --git a/windows/manage/cortana-at-work-o365.md b/windows/manage/cortana-at-work-o365.md deleted file mode 100644 index d58663dc00..0000000000 --- a/windows/manage/cortana-at-work-o365.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Set up and test Cortana with Office 365 in your organization (Windows 10) -description: How to connect Cortana to Office 365 so your employees are notified about regular meetings, unusual events, such as meetings over lunch or during a typical commute time, and about early meetings, even setting an alarm so the employee isn’t late. -ms.prod: w10 -ms.mktglfcycl: manage -ms.sitesec: library -localizationpriority: high ---- - -# Set up and test Cortana with Office 365 in your organization -**Applies to:** - -- Windows 10, Windows Insider Program -- Windows 10 Mobile, Windows Insider Program - ->[!IMPORTANT] ->Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. - -Cortana in Windows 10 is already great at letting your employees quickly see what the day is going to look like, do meeting prep work like researching people in LinkedIn or getting documents ready, see where and when their meetings are going to be, get a sense of travel times to and from work, and even get updates from a calendar for upcoming trips. - -But Cortana works even harder when she connects to Office 365, helping employees to be notified about unusual events, such as meetings over lunch or during a typical commute time, and about early meetings, even setting an alarm so the employee isn’t late. - -![Cortana at work, showing the day's schedule pulled from Office 365](images/cortana-o365-screen.png) - -We’re continuing to add more and more capabilities to Cortana so she can become even more helpful with your productivity-related tasks, such as emailing, scheduling, and other tasks that are important to help you be successful. - ->[!NOTE] ->For a quick review of the frequently asked questions about Cortana and Office 365 integration, see the blog post, [An early look at Cortana integration with Office 365](http://go.microsoft.com/fwlink/p/?LinkId=717379). - -## Before you begin -There are a few things to be aware of before you start using Cortana with Office 365 in your organization. - -- **Software requirements.** O365 integration with Cortana is available in all countries/regions where Cortana is supported for consumers today. This includes the United States, United Kingdom, Canada, France, Italy, Germany, Spain, China, Japan, India, and Australia. As Cortana comes to more countries, it will also become available to organizations. - -- **Azure Active Directory (Azure AD) account.** Before your employees can use Cortana in your org, they must be logged in using their Azure AD account through Cortana’s notebook. They must also authorize Cortana to access Office 365 on their behalf. - -- **Office 365 Trust Center.** Cortana isn't a service covered by the Office 365 Trust Center. [Learn more about how Cortana treats your data](http://go.microsoft.com/fwlink/p/?LinkId=536419). - -- **Troubleshooting tips.** If you run into issues, check out these [troubleshooting tips](http://go.microsoft.com/fwlink/p/?LinkId=620763). - -## Turn on Cortana with Office 365 on employees’ devices -You must tell your employees to turn on Cortana before they’ll be able to use it with Office 365. - -**To turn on local Cortana with Office 365** - -1. Click on the **Cortana** search box in the taskbar, and then click the **Notebook** icon. - -2. Click on **Connected Services**, click **Office 365**, and then click **Connect**. - - ![Cotana at work, showing how to turn on the connected services for Office 365](images/cortana-connect-o365.png) - - The employee can also disconnect by clicking **Disconnect** from the **Office 365** screen. - -## Turn off Cortana with Office 365 -Cortana can only access data in your Office 365 org when it’s turned on. If you don’t want Cortana to access your corporate data, you can turn it off in the Office 365 admin center. - -**To turn off Cortana with Office 365** -1. [Sign in to Office 365](http://www.office.com/signin) using your Azure AD account. - -2. Go to the [Office 365 admin center](https://support.office.com/en-us/article/Office-365-admin-center-58537702-d421-4d02-8141-e128e3703547). - -3. Expand **Service Settings**, and select **Cortana**. - -4. Click **Cortana** to toggle Cortana off. - - All Office 365 functionality related to Cortana is turned off in your organization and your employees are unable to use her at work. - - - - - - diff --git a/windows/manage/cortana-at-work-overview.md b/windows/manage/cortana-at-work-overview.md deleted file mode 100644 index 96064364c3..0000000000 --- a/windows/manage/cortana-at-work-overview.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Cortana integration in your business or enterprise (Windows 10) -description: The world’s first personal digital assistant helps users get things done, even at work. Cortana includes powerful configuration options specifically to optimize for unique small to medium-sized business and enterprise environments. -ms.prod: w10 -ms.mktglfcycl: manage -ms.sitesec: library -localizationpriority: high ---- - -# Cortana integration in your business or enterprise -**Applies to:** - -- Windows 10, Windows Insider Program -- Windows 10 Mobile, Windows Insider Program - ->[!IMPORTANT] ->Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. - -## Who is Cortana? -Cortana is Microsoft’s personal digital assistant, who helps busy people get things done, even while at work. -Cortana has powerful configuration options, specifically optimized for your business. By signing in with an Azure Active Directory (Azure AD) account, your employees can give Cortana access to their enterprise/work identity, while getting all the functionality Cortana provides to them outside of work. - -Using Azure AD also means that you can remove an employee’s profile (for example, when an employee leaves your organization) while respecting Windows Information Protection (WIP) policies and ignoring enterprise content, such as emails, calendar items, and people lists that are marked as enterprise data. - -![Cortana at work, showing the About me screen](images/cortana-about-me.png) - -## Where is Cortana available for use in my organization? -You can use Cortana at work in all countries/regions where Cortana is supported for consumers. This includes the United States, United Kingdom, Canada, France, Italy, Germany, Spain, China, Japan, India, and Australia. As Cortana comes to more countries, she will also become available to enterprise customers. - -Cortana is available on Windows 10, Windows Insider Program and with limited functionality on Windows Phone 8.1, Windows Insider Program. - -## Required hardware and software -Cortana requires the following hardware and software to successfully run the included scenario in your organization. - -|Hardware |Description | -|---------|------------| -|Microphone |For speech interaction with Cortana. If you don't have a microphone, you can still interact with Cortana by typing in the Cortana Search Box in the taskbar. | -|Windows Phone |For location-specific reminders. You can also use a desktop device to run through this scenario, but location accuracy is usually better on phones. | -|Desktop devices |For non-phone-related scenarios. | - - -|Software |Minimum version | -|---------|------------| -|Client operating system |

    + ## ![Deploy Windows 10 for education](images/windows.png) Upgrade + +
    +

    [Upgrade Windows 10 Pro to Pro Education from Windows Store for Business](windows-10-pro-to-pro-edu-upgrade.md)
    If you have an education tenant and use Windows 10 Pro in your schools now, find out how you can opt-in to a free upgrade to Windows 10 Pro Education.

    +
    + + ## Related topics - [Try it out: virtual labs and how-to videos for Windows 10 Education](https://technet.microsoft.com/en-us/windows/dn610356) diff --git a/education/windows/school-get-minecraft.md b/education/windows/school-get-minecraft.md index 0adea43fb7..8668054826 100644 --- a/education/windows/school-get-minecraft.md +++ b/education/windows/school-get-minecraft.md @@ -58,6 +58,51 @@ Qualified education institutions can purchase Minecraft: Education Edition licen - You’ll receive an email with a link to Windows Store for Business. - Sign in to [Windows Store for Business](https://www.microsoft.com/business-store) to distribute and manage the Minecraft: Education Edition licenses. For more information on distribution options, see [Distribute Minecraft](#distribute-minecraft) +## Minecraft: Education Edition payment options +You can pay for Minecraft: Education Edition with a debit or credit card, or with an invoice. + + +### Debit or credit cards + +During the purchase, click **Get started! Add a way to pay.** Provide the info needed for your debit or credit card. + +### Invoices + +Invoices are now a supported payment method for Minecraft: Education Edition. There are a few requirements: +- Admins only (not supported for Teachers) +- $500 invoice minimum for your initial purchase +- $15,000 invoice maximum (for all invoices within your organization) + +**To pay with an invoice** + +1. During the purchase, click **Get started! Add a way to pay.** + + ![Buy page for an app, showing the link for Get started! Add a way to pay.](images/mcee-add-payment-method.png) + +2. Select the Invoice option, and provide the info needed for an invoice. The **PO number** item allows you to add a tracking number or info that is meaningful to your organization. + + ![Invoice Details page showing items that need to be completed for an invoice. PO number is highlighted.](images/mcee-invoice-info.png) + +### Find your invoice + +After you've finished the purchase, you can find your invoice by checking **Minecraft: Education Edition** in your **Inventory**. + +> **Note**: After you complete a purchase, it can take up to twenty-four hours for the app to appear in **Inventory**. + +**To view your invoice** +1. In Windows Store for Business, click **Manage** and then click **Inventory**. +2. Click **Minecraft: Education Edition** in the list of apps. +3. On **Minecraft: Education Edition**, click **View Bills**. + + ![Minecraft: Education Edition app details page with view bills link highlighted](images/mcee-view-bills.png) + +4. On **Invoice Bills**, click the invoice number to view and download your invoice. It downloads as a .pdf. + + ![Minecraft: Education Edition app details page with view bills link highlighted](images/mcee-invoice-bills.png) + +The **Payment Instructions** section on the first page of the invoice has information on invoice amount, due date, and how to pay with electronic funds transfer, or with a check. + + ## Distribute Minecraft After Minecraft: Education Edition is added to your Windows Store for Business inventory, you have three options: diff --git a/education/windows/take-a-test-multiple-pcs.md b/education/windows/take-a-test-multiple-pcs.md index 7d5f5d6c0e..2eb0b2849a 100644 --- a/education/windows/take-a-test-multiple-pcs.md +++ b/education/windows/take-a-test-multiple-pcs.md @@ -17,8 +17,8 @@ author: jdeckerMS Many schools use online testing for formative and summative assessments. It's critical that students use a secure browser that prevents them from using other computer or Internet resources during the test. The **Take a Test** app in Windows 10, Version 1607, creates the right environment for taking a test: -- A Microsoft Edge browser window opens, showing just the test and nothing else. -- The clipboard is cleared. +- Take a Test shows just the test and nothing else. +- Take a Test clears the clipboard. - Students aren’t able to go to other websites. - Students can’t open or access other apps. - Students can't share, print, or record their screens. diff --git a/education/windows/take-a-test-single-pc.md b/education/windows/take-a-test-single-pc.md index 92667b4abd..5b6d36d46b 100644 --- a/education/windows/take-a-test-single-pc.md +++ b/education/windows/take-a-test-single-pc.md @@ -9,7 +9,7 @@ ms.pagetype: edu author: jdeckerMS --- -# Set up Take a Test on a single PC +# Set up Take a Test on a single PC **Applies to:** - Windows 10 @@ -17,8 +17,8 @@ author: jdeckerMS The **Take a Test** app in Windows 10, Version 1607, creates the right environment for taking a test: -- A Microsoft Edge browser window opens, showing just the test and nothing else. -- The clipboard is cleared. +- Take a Test shows just the test and nothing else. +- Take a Test clears the clipboard. - Students aren’t able to go to other websites. - Students can’t open or access other apps. - Students can't share, print, or record their screens. @@ -28,6 +28,7 @@ The **Take a Test** app in Windows 10, Version 1607, creates the right environme > [!TIP] > To exit **Take a Test**, press Ctrl+Alt+Delete. + ## How you use Take a Test ![Use test account or test url in Take a Test](images/take-a-test-flow.png) @@ -38,7 +39,7 @@ The **Take a Test** app in Windows 10, Version 1607, creates the right environme ## Set up a dedicated test account - + @@ -60,10 +61,10 @@ The **Take a Test** app in Windows 10, Version 1607, creates the right environme ## Provide link to test -Anything hosted on the web can be presented in a locked down manner, not just assessments. To lock down online content, just embed a URL with a specific prefix and devices will be locked down when users follow the link. We recommend using this method for lower stakes assessments. +Anything hosted on the web can be presented in a locked down manner, not just assessments. To lock down online content, just embed a URL with a specific prefix and devices will be locked down when users follow the link. We recommend using this method for lower stakes assessments. 1. Create a link to the test URL. Use **ms-edu-secureassessment:** before the URL and **!enforceLockdown** after the URL. -``` +``` ms-edu-secureassessment:!enforceLockdown ``` > [!NOTE] @@ -79,9 +80,3 @@ ms-edu-secureassessment:!enforceLockdown [Set up Take a Test on multiple PCs](take-a-test-multiple-pcs.md) [Take a Test app technical reference](take-a-test-app-technical.md) - - - - - - diff --git a/education/windows/windows-10-pro-to-pro-edu-upgrade.md b/education/windows/windows-10-pro-to-pro-edu-upgrade.md new file mode 100644 index 0000000000..cb88389ec9 --- /dev/null +++ b/education/windows/windows-10-pro-to-pro-edu-upgrade.md @@ -0,0 +1,259 @@ +--- +title: Windows 10 Pro to Pro Education upgrade +description: Describes how IT Pros can opt into a Windows 10 Pro Education upgrade from the Windows Store for Business. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: edu +author: CelesteDG +--- + +# Upgrade Windows 10 Pro to Pro Education from Windows Store for Business + +Windows 10 Pro Education is a new offering in Windows 10 Anniversary Update (Windows 10, version 1607). This edition builds on the commercial version of Windows 10 Pro and provides important management controls needed in schools by providing education-specific default settings. + +If you have an education tenant and use Windows 10 Pro in your schools now, global administrators can opt-in to a free upgrade to Windows 10 Pro Education through the Windows Store for Business. To take advantage of this offering, make sure you meet the [requirements for upgrade](#requirements-for-upgrade). + +Starting with Windows 10, version 1607, academic institutions can easily move from Windows 10 Pro to Windows 10 Pro Education—no keys and no reboots. After one of your users enters the Azure AD credentials associated with a Windows 10 Pro Education license, the operating system turns from Windows 10 Pro to Windows 10 Pro Education and all the appropriate Windows 10 Pro Education features are unlocked. When a license expires or is transferred to another user, the Windows 10 Pro Education device seamlessly steps back down to Windows 10 Pro. + +Previously, only schools or organizations purchasing devices as part of the Shape the Future K-12 program or with a Microsoft Volume Licensing Agreement could deploy Windows 10 Pro Education to their users. Now, if you have a Azure AD for your organization, you can take advantage of the Windows 10 Pro Education features. + +When you upgrade to Windows 10 Pro Education, you get the following benefits: + +- **Windows 10 Pro Education edition**. Devices currently running Windows 10 Pro, version 1607 can get Windows 10 Pro Education Current Branch (CB). This benefit does not include Long Term Service Branch (LTSB). +- **Support from one to hundreds of users**. The Windows 10 Pro Education program does not have a limitation on the number of licenses an organization can have. +- **Roll back to Windows 10 Pro at any time**. When a user leaves the domain or you turn off the setting to automatic upgrade to Windows 10 Pro Education, the device reverts seamlessly to Windows 10 Pro edition (after a grace period of up to 30 days). + +In summary, the Windows 10 Pro Education free upgrade through the Windows Store for Business is an upgrade offering that provides organizations easier, more flexible access to the benefits of Windows 10 Pro Education edition. + +## Compare Windows 10 Pro and Pro Education editions + +In Windows 10, version 1607, the Windows 10 Pro Education edition contains the same features as the Windows 10 Pro edition except for the following differences: + +- Cortana is removed from Windows 10 Pro Education +- Options to manage Windows 10 tips and tricks and Windows Store suggestions + +See [Windows 10 editions for education customers](windows-editions-for-education-customers.md) for more info about Windows 10 Pro Education and you can also [Compare Windows 10 Editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare) to find out more about the features we support in other editions of Windows 10. + +## Requirements for upgrade + +Before you upgrade from Windows 10 Pro to Windows 10 Pro Education, make sure you meet these requirements: +- Devices must be: + - Running Windows 10 Pro, version 1607 + - Must be Azure Active Directory joined, or domain joined with Azure AD Connect. Customers who are federated with Azure Active Directory are also eligible. For more information, see [Review requirements on devices](#review-requirements-on-devices). + + If you haven't domain joined your devices already, [prepare for deployment of Windows 10 Pro Education licenses](#preparing-for-deployment-of-windows-10-pro-education-licenses). +- The user making the changes must be a member of the Azure AD global administrator group. +- The Azure AD tenant must be recognized as an education approved tenant. +- You must have a Windows Store for Business account. + +## Upgrade from Windows 10 Pro to Windows 10 Pro Education +Once you enable the setting to upgrade Windows 10 Pro to Windows 10 Pro Education, the upgrade will begin only after a user signs in to their device. The setting applies to the entire organization so you cannot select which users will receive the upgrade. + +**To turn on the automatic upgrade from Windows 10 Pro to Windows 10 Pro Education** +1. Sign in to [Windows Store for Business](https://businessstore.microsoft.com/en-us/Store/Apps) with your work or school account. + + If this is the first time you're signing into the Store, you'll be prompted to accept the Windows Store for Business Terms of Use. +2. Go to **Manage > Account information**. +3. In the **Account information** page, look for the **Automatic Windows 10 Pro Education upgrade** section and follow the link. + + You will see the following page informing you that your school is eligible for a free automatic upgrade from Windows 10 Pro to Windows 10 Pro Education. + + ![Eligible for free Windows 10 Pro to Windows 10 Pro Education upgrade](images/wsfb_win10_pro_to proedu_upgrade_eligibility_page.png) + + **Figure 1** - Upgrade Windows 10 Pro to Windows 10 Pro Education + +4. Select **I understand enabling this setting will impact all devices running Windows 10 Pro in my organization**. +5. Click **Send me email with a link to enable this upgrade** to receive an email with a link to the upgrade. + + ![Email with Windows 10 Pro to Pro Education upgrade link](images/wsfb_win10_pro_to_proedu_email_upgrade_link.png) + + **Figure 2** - Email notification with a link to enable the upgrade + +6. Click **Enable the automatic upgrade now** to turn on automatic upgrades. + + ![Enable the automatic upgrade](images/wsfb_win10_pro_to proedu_upgrade_enable.png). + + **Figure 3** - Enable the automatic upgrade + + Enabling the automatic upgrade also triggers an email message notifying all global administrators in your organization about the upgrade. It also contains a link that enables any global administrators to cancel the upgrade, if they choose. For more info about rolling back or canceling the upgrade, see [Roll back Windows 10 Pro Education to Windows 10 Pro](#roll-back-windows-10-pro-education-to-windows-10-pro). + + ![Email informing other global admins about the upgrade](images/wsfb_win10_pro_to proedu_upgrade_email_global_admins.png). + + **Figure 4** - Notification email sent to all global administrators + +7. Click **Close** in the **Success** page. + + In the **Upgrade Windows 10 Pro to Windows 10 Pro Education** page, you will see a message informing you when the upgrade was enabled and the name of the admin who enabled the upgrade. + + ![Summary page about the upgrade](images/wsfb_win10_pro_to proedu_upgrade_summary.png) + + **Figure 5** - Details about the automatic upgrade + + +## Explore the upgrade experience + +So what will the users experience? How will they upgrade their devices? + +### For existing Azure AD domain joined devices +Existing Azure AD domain joined devices will be upgraded from Windows 10 Pro to Windows 10 Pro Education the next time the user logs in. That's it! No additional steps are needed. + +### For new devices that are not Azure AD domain joined +Now that you've turned on the setting to automatically upgrade Windows 10 Pro to Windows 10 Pro Education, the users are ready to upgrade their devices running Windows 10 Pro, version 1607 edition to Windows 10 Pro Education edition. + +#### Step 1: Join users’ devices to Azure AD + +Users can join a device to Azure AD the first time they start the device (during setup), or they can join a device that they already use running Windows 10 Pro, version 1607. + +**To join a device to Azure AD the first time the device is started** + +1. During the initial setup, on the **Who owns this PC?** page, select **My organization**, and then click **Next**, as illustrated in **Figure 6**. + + Who owns this PC? page in Windows 10 setup + + **Figure 6** - The “Who owns this PC?” page in initial Windows 10 setup + +2. On the **Choose how you’ll connect** page, select **Join Azure AD**, and then click **Next**, as illustrated in **Figure 7**. + + Choose how you'll connect - page in Windows 10 setup + + **Figure 7** - The “Choose how you’ll connect” page in initial Windows 10 setup + +3. On the **Let’s get you signed in** page, enter the Azure AD credentials, and then click **Sign in**, as illustrated in **Figure 8**. + + Let's get you signed in - page in Windows 10 setup + + **Figure 8** - The “Let’s get you signed in” page in initial Windows 10 setup + +Now the device is Azure AD joined to the company’s subscription. + +**To join a device to Azure AD when the device already has Windows 10 Pro, version 1607 installed and set up** + +1. Go to **Settings > Accounts > Access work or school**, as illustrated in **Figure 9**. + + Connect to work or school configuration + + **Figure 9** - Connect to work or school configuration in Settings + +2. In **Set up a work or school account**, click **Join this device to Azure Active Directory**, as illustrated in **Figure 10**. + + Set up a work or school account + + **Figure 10** - Set up a work or school account + +3. On the **Let’s get you signed in** page, enter the Azure AD credentials, and then click **Sign in**, as illustrated in **Figure 11**. + + Let's get you signed in - dialog box + + **Figure 11** - The “Let’s get you signed in” dialog box + +Now the device is Azure AD joined to the company’s subscription. + +#### Step 2: Sign in using Azure AD account + +Once the device is joined to your Azure AD subscription, the user will sign in by using his or her Azure AD account, as illustrated in **Figure 12**. The Windows 10 Pro Education license associated with the user will enable Windows 10 Pro Education edition capabilities on the device. + +Sign in, Windows 10 + +**Figure 12** - Sign in by using Azure AD account + +#### Step 3: Verify that Pro Education edition is enabled + +You can verify the Windows 10 Pro Education in **Settings > Update & Security > Activation**, as illustrated in **Figure 13**. + + + +**Figure 13** - Windows 10 Pro Education in Settings + +Windows 10 activated and subscription active + +If there are any problems with the Windows 10 Pro Education license or the activation of the license, the **Activation** panel will display the appropriate error message or status. You can use this information to help you diagnose the licensing and activation process. + +## Troubleshoot the user experience + +In some instances, users may experience problems with the Windows 10 Pro Education upgrade. The most common problems that users may experience are as follows: + +- The existing Windows 10 Pro, version 1607 operating system is not activated. + +- The Windows 10 Pro Education upgrade has lapsed or has been removed. + +Use the following figures to help you troubleshoot when users experience these common problems: + + + +**Figure 13** - Illustrates a device in a healthy state, where Windows 10 Pro, version 1607 is activated and the Windows 10 Pro Education upgrade is active. + +Windows 10 activated and subscription active + + + +**Figure 14** - Illustrates a device on which Windows 10 Pro, version 1607 is not activated, but the Windows 10 Pro Education upgrade is active. + +Windows 10 not activated and subscription active

    + + +### Review requirements on devices + +Devices must be running Windows 10 Pro, version 1607, and be Azure Active Directory joined, or domain joined with Azure AD Connect. Customers who are federated with Azure Active Directory are also eligible. You can use the following procedures to review whether a particular device meets requirements. + +**To determine if a device is Azure Active Directory joined** + +1. Open a command prompt and type **dsregcmd /status**. + +2. Review the output under Device State. If the **AzureAdJoined** status is YES, the device is Azure Active Directory joined. + +**To determine the version of Windows 10** + +- At a command prompt, type: + **winver** + + A popup window will display the Windows 10 version number and detailed OS build information. + + If a device is running a previous version of Windows 10 Pro (for example, version 1511), it will not be upgraded to Windows 10 Pro Education when a user signs in, even if the user has been assigned a license. + +## Roll back Windows 10 Pro Education to Windows 10 Pro + +If your organization has the Windows 10 Pro to Windows 10 Pro Education upgrade enabled, and you decide to roll back to Windows 10 Pro or to cancel the upgrade, you can do this by: +- Logging into Windows Store for Business page and turning off the automatic upgrade. +- Selecting the link to turn off the automatic upgrade from the notification email sent to all global administrators. + +Once the automatic upgrade to Windows 10 Pro Education is turned off, the change is effective immediately. Devices that were upgraded will revert to Windows 10 Pro only after the license has been refreshed (every 30 days) and the next time the user signs in. This means that a user whose device was upgraded may not immediately see Windows 10 Pro Education rolled back to Windows 10 Pro for up to 30 days. However, users who haven't signed in during the time that an upgrade was enabled and then turned off will never see their device change from Windows 10 Pro. + +**To roll back Windows 10 Pro Education to Windows 10 Pro** +1. Log in to [Windows Store for Business](https://businessstore.microsoft.com/en-us/Store/Apps) with your school or work account, or follow the link from the notification email to turn off the automatic upgrade. +2. Select **Manage > Account information** and locate the section **Automatic Windows 10 Pro Education upgrade** and follow the link. +3. In the **Upgrade Windows 10 Pro to Windows 10 Pro Education** page, select **Turn off the automatic upgrade to Windows 10 Pro Education**. + + ![Turn off automatic upgrade to Windows 10 Pro Education](images/wsfb_win10_pro_to proedu_upgrade_disable.png) + + **Figure 15** - Link to turn off the automatic upgrade + +4. You will be asked if you're sure that you want to turn off automatic upgrades to Windows 10 Pro Education. Click **Yes**. +5. Click **Close** in the **Success** page. +6. In the **Upgrade Windows 10 Pro to Windows 10 Pro Education** page, you will see information on when the upgrade was disabled. + + If you decide later that you want to turn on automatic upgrades again, you can do this from the **Upgrade Windows 10 Pro to Windows 10 Pro Education**. + +## Preparing for deployment of Windows 10 Pro Education licenses + +If you have on-premises Active Directory Domain Services (AD DS) domains, users will use their domain-based credentials to sign in to the AD DS domain. Before you start deploying Windows 10 Pro Education to users, you need to synchronize the identities in the on-premises AD DS domain with Azure AD. + +You need to synchronize these identities so that users will have a *single identity* that they can use to access their on-premises apps and cloud services that use Azure AD (such as Windows 10 Pro Education). This means that users can use their existing credentials to sign in to Azure AD and access the cloud services that you provide and manage for them. + +**Figure 16** illustrates the integration between the on-premises AD DS domain with Azure AD. [Microsoft Azure Active Directory Connect](http://www.microsoft.com/en-us/download/details.aspx?id=47594) (Azure AD Connect) is responsible for synchronization of identities between the on-premises AD DS domain and Azure AD. Azure AD Connect is a service that you can install on-premises or in a virtual machine in Azure. + +![Illustration of Azure Active Directory Connect](images/windows-ad-connect.png) + +**Figure 16** - On-premises AD DS integrated with Azure AD + +For more information about integrating on-premises AD DS domains with Azure AD, see these resources: +- [Integrating your on-premises identities with Azure Active Directory](http://azure.microsoft.com/en-us/documentation/articles/active-directory-aadconnect/) +- [Azure AD + Domain Join + Windows 10](https://blogs.technet.microsoft.com/enterprisemobility/2016/02/17/azure-ad-domain-join-windows-10/) + +## Related topics + +[Deploy Windows 10 in a school](deploy-windows-10-in-a-school.md) + +[Deploy Windows 10 in a school district](deploy-windows-10-in-a-school-district.md) + +[Compare Windows 10 editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare) diff --git a/windows/deploy/TOC.md b/windows/deploy/TOC.md index 4fed1981ec..906b45e238 100644 --- a/windows/deploy/TOC.md +++ b/windows/deploy/TOC.md @@ -11,6 +11,9 @@ #### [Deploy Windows](upgrade-analytics-deploy-windows.md) #### [Review site discovery](upgrade-analytics-review-site-discovery.md) ### [Troubleshoot Upgrade Analytics](troubleshoot-upgrade-analytics.md) +## [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md) +### [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) +### [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) ## [Deploy Windows 10 with the Microsoft Deployment Toolkit](deploy-windows-10-with-the-microsoft-deployment-toolkit.md) ### [Get started with the Microsoft Deployment Toolkit (MDT)](get-started-with-the-microsoft-deployment-toolkit.md) #### [Key features in MDT 2013 Update 2](key-features-in-mdt-2013.md) @@ -50,8 +53,17 @@ ## [Windows 10 upgrade paths](windows-10-upgrade-paths.md) ## [Windows 10 edition upgrade](windows-10-edition-upgrades.md) ## [Provisioning packages for Windows 10](provisioning-packages.md) -### [Provision PCs with common settings for initial deployment](provision-pcs-for-initial-deployment.md) -### [Provision PCs with apps and certificates for initial deployments](provision-pcs-with-apps-and-certificates.md) +### [How provisioning works in Windows 10](provisioning-how-it-works.md) +### [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +### [Create a provisioning package](provisioning-create-package.md) +### [Apply a provisioning package](provisioning-apply-package.md) +### [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +### [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +### [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +### [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +### [NFC-based device provisioning](provisioning-nfc.md) +### [Windows ICD command-line interface (reference)](provisioning-command-line.md) +### [Create a provisioning package with multivariant settings](provisioning-multivariant.md) ## [Deploy Windows To Go in your organization](deploy-windows-to-go.md) ## [Upgrade a Windows Phone 8.1 to Windows 10 Mobile with Mobile Device Management](upgrade-windows-phone-8-1-to-10.md) ## [Sideload apps in Windows 10](sideload-apps-in-windows-10.md) diff --git a/windows/deploy/assign-applications-using-roles-in-mdt-2013.md b/windows/deploy/assign-applications-using-roles-in-mdt-2013.md index a6e7d69377..d8b4505c51 100644 --- a/windows/deploy/assign-applications-using-roles-in-mdt-2013.md +++ b/windows/deploy/assign-applications-using-roles-in-mdt-2013.md @@ -122,11 +122,11 @@ Figure 14. ZTIGather.log displaying the application GUID belonging to the Adobe ## Related topics [Set up MDT for BitLocker](set-up-mdt-2013-for-bitlocker.md) -[Configure MDT deployment share rules](configure-mdt-deployment-share-rules.md) -[Configure MDT for UserExit scripts](configure-mdt-2013-for-userexit-scripts.md) -[Simulate a Windows 10 deployment in a test environment](simulate-a-windows-10-deployment-in-a-test-environment.md) -[Use the MDT database to stage Windows 10 deployment information](use-the-mdt-database-to-stage-windows-10-deployment-information.md) -[Use web services in MDT](use-web-services-in-mdt-2013.md) -[Use Orchestrator runbooks with MDT](use-orchestrator-runbooks-with-mdt-2013.md) +
    [Configure MDT deployment share rules](configure-mdt-deployment-share-rules.md) +
    [Configure MDT for UserExit scripts](configure-mdt-2013-for-userexit-scripts.md) +
    [Simulate a Windows 10 deployment in a test environment](simulate-a-windows-10-deployment-in-a-test-environment.md) +
    [Use the MDT database to stage Windows 10 deployment information](use-the-mdt-database-to-stage-windows-10-deployment-information.md) +
    [Use web services in MDT](use-web-services-in-mdt-2013.md) +
    [Use Orchestrator runbooks with MDT](use-orchestrator-runbooks-with-mdt-2013.md)     diff --git a/windows/deploy/change-history-for-deploy-windows-10.md b/windows/deploy/change-history-for-deploy-windows-10.md index f7e67993e5..88557fd56f 100644 --- a/windows/deploy/change-history-for-deploy-windows-10.md +++ b/windows/deploy/change-history-for-deploy-windows-10.md @@ -11,6 +11,26 @@ author: greg-lindsay # Change history for Deploy Windows 10 This topic lists new and updated topics in the [Deploy Windows 10](index.md) documentation for [Windows 10 and Windows 10 Mobile](../index.md). +## January 2017 +| New or changed topic | Description | +|----------------------|-------------| +| [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md) | New | +| [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) | New | +| [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) | New | +| [Apply a provisioning package](provisioning-apply-package.md) | New (previously published in other topics) | +| [Create a provisioning package for Windows 10](provisioning-create-package.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Create a provisioning package with multivariant settings](provisioning-multivariant.md) | New (previously published in Hardware Dev Center on MSDN) | +| [How provisioning works in Windows 10](provisioning-how-it-works.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) | New (previously published in Hardware Dev Center on MSDN) | +| [NFC-based device provisioning](provisioning-nfc.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Windows ICD command-line interface (reference)](provisioning-command-line.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Get started with Upgrade Analytics](upgrade-analytics-get-started.md) | Updated exit code table with suggested fixes, and added link to the Upgrade Analytics blog | +| [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) | Instructions for applying the provisioning package moved to [Apply a provisioning package](provisioning-apply-package.md) | +| [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) | Instructions for applying the provisioning package moved to [Apply a provisioning package](provisioning-apply-package.md) | + + ## October 2016 | New or changed topic | Description | |----------------------|-------------| diff --git a/windows/deploy/create-a-windows-10-reference-image.md b/windows/deploy/create-a-windows-10-reference-image.md index 4954dd3dcd..7f4671ccf1 100644 --- a/windows/deploy/create-a-windows-10-reference-image.md +++ b/windows/deploy/create-a-windows-10-reference-image.md @@ -167,7 +167,7 @@ If you need to add many applications, you can take advantage of the PowerShell s 2. Import the snap-in and create the PSDrive by running the following commands in an elevated PowerShell prompt: ``` syntax - Import-Topic "C:\Program Files\Microsoft Deployment Toolkit\bin\MicrosoftDeploymentToolkit.psd1" + Import-Module "C:\Program Files\Microsoft Deployment Toolkit\bin\MicrosoftDeploymentToolkit.psd1" New-PSDrive -Name "DS001" -PSProvider MDTProvider -Root "E:\MDTBuildLab" ``` diff --git a/windows/deploy/images/PoC.png b/windows/deploy/images/PoC.png index de735060713214af014b38b0b9fd530ff38203d8..6d7b7eb5afa6b48cb34df12dd0b44be230fd3c5f 100644 GIT binary patch literal 139787 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%0A{co3N_^dbY)h)$$tN*pT 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 T(Qn*a2k721x><34Y~bm`Kq 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 diff --git a/windows/deploy/images/package.png b/windows/deploy/images/package.png index f5e975e3e92e22d17610159988ef2735725b3b84..535773ad9541890c1e5100ac5a241de37e52d6cc 100644 GIT binary patch literal 11050 zcmcI~cT`i`+omFdiipZpM5>A)7XhURNN6G;A|Rkr11c90Y0?RhAaE6x5$ZFL>}B$f0|x|nS6srA9C)X_LAGYs_Eh#ul6gP)J&i1l_Ux&K z3b7yT=lwqT^oC>5o;^pt?jCzjT)6pc&z?Uq=GTqxgu5i^;*ydZoJkLw>&ii ztK9~?Wst3-BO=e6r#(tn#{p`ky*JZYc4=}UiAJtzMaen!9z7>psOQad9xU|dJ45Sh z&#Ri-nu!z6n^P{tq2$b^JW{gcJ{BIP@w%k{?xNOdkv3%W<|LufcjDeu_RnYd9}HIei3u0m3v-*(S^sWKZN>|J*{W<=E_K~Rj^4$Ecc>4p`$un2Q1+{a8|6RL z@Y~~u;cV2YZZFp2RPbqXO9$<^31N7>&-3;e*4;zP)?kVqULyvn{MjN+aT*-Og-u)D=9W9n(KM9jW%WlGoVXH{CZb69R#E2J>jqz!)+o4d4p1r zt)Kg*-kGPtPy(++MNbmq!ClLJ{*WNOD-6ia_6(GN_`nAbEdXvQn%U!qFr2Px(TB@- z2JKrzk@Qq8-(bTq+fz@v($0IeT-4o~jl*wT@fk~bF^b-(CnL`Aq2-*$E*wm+5YyakS zr2l;IbiQ?Cq_aI_^2THUR!VUt9EPhglLi$bnG3o2D9U0+RTQyvVkb>bQ@p4J@)e^X zGv^!Wv{ARJd0OibbCYr2{B(z`>a^t#+>hg9P~BzieNjTLv>r^As`=pc+`3GZX%D7B z5V_2Jl3x*SJ{W$ByvbWwgG1wmQ;ak@FWf&%NdRP?cC}mf|8Cv=zc#jfoHE1ywNh$< zW;!sEaeC<;`{sMy9rfMP22~>ltGOD<_Wj_9`o)6QQZ31?@`z+P-Xu&m2T`j-MF-P%;v*q%`Pgo#Co7cK zqHwp?`Bl=LMjv*_A@1Qsb*M+t8D;8?w4yHcGe(dBIxJIvhJhR(W`ki)`B7uFWzSnd zJDV)C!Oz-s2h$u+J>QYetGtN{ymccbdKgt=kAXal3>jU>2hx;I;wm%IK2;i*q;JqW z=XX>q&Y7plAdbsV^D;C2U0tJp3+86`eT&MX=3PYIiU^P;Z2 z4M{krI&axNN?qv7)q0}6+%#V*;g70zb-GI(t(rOCmue>MSmDxKV^xiZLe>i@ya2u* z^4&$6H(X@IrlMI4G3GTfOj1&b$G4zB81*l!DtY=91EYQxoWx zxX}X`>ANg7;qh20`eKP>F|jAB#N*w^sJ3#M_dYhBhl!Ujm>{bM?KUqe>|7yUPGDz? zAQU52C~5QQ?)jaCCdT6o1YYorkoTouis;x)wP51bCTjOKO5d-@HR-X+t2 z6+*4x#hbhgIeb3LC5@I;lla{5Itb0|^S`$eIkP=@6$f4pvSUv0wP6joYc^W)ZKs1d zsNHuBTIl`Ab~P1voB(hX6bM+h6IZoL`~|>F#A(A4y#7}6vDID@&wcVeiz3Mi%|9} zpW33XJHB4|hS?FuRrmpdTu-0!bd~-Ulsd|i(In{%95|(Pulz>aZW`BEp_Elw!5^&6 zwV(6iZusw9>Eo40AnV)55?GEtW-ZD84t(pIf-SN~6$9A6KlW&a$@M+ZXVM4u@bXs} zBeM~8et+}vz2t>lf2%L&X`WlGQH*QJ*a@wZo_PVLA)RO9?=((@I)^MblakAg^?j;* z2JFPrH{U0yl#&j6erI@PEO_*6zC!-2g;ytwYaLBL$9G@)nb8z#$=BavUQ#{z1jxp0 z2zSg(GBuNUfv!W!d*iot!ydU<(=({{0wHVt6wz;vz4D&Ds2g&dMK{=??@kGrY=I4t zzF~XnYUfUsN6?_iluO8V1EtOza48$jK+CT@ zY5WcLmf-jvbtJhhigJpfxpg zxR9KEY`qh{r&GZQU^ews)KI6#edO=lOUdW9#k4>=v8vb?^VrYf)3t`cr$?URZ8r8C zb_bARazIcM{H1AEN zKYl)6T2}ewVo=?r4kX|(`OJZ^$pAB!a6vX$m9&jaBTGI z%Q%}e7-@+lHJ1o-FI^F7(od^ox?C60-@&LLt!#`TU$}fBge-G6*3hHY|qOYA4tF zD8BFqQ=Q4`)5)gOltdDizr*OeZINVpmfx?2rL^SPHu{`AYPcU=_dp_D$@R44Jq%-9 zWkMuf)Ag*x^@+>pUfL?m3ds8Lr;M5m^%YD_N&34UCm@QW5)6<;(7c}0RN^`5wr@It zqrk9Y>s22ZhgjS%PfQ3aHp2ZAIri&L(+-0|W0v6!{T9J+B(s{5l;vl>Z=Shx)BZIo zIovA@kiG5~07Om!vMw*OTGSUUr@*UGB@#~eT|RqN3gvGfigS zJ7&h=_75?8iD{?(NgBV&AK?5OtKi+A5FJl5_u^LUSb zMH_Pc?6)MWgMWnR4MhVFNoWJ(Ep9_m5OeP6_V7x)x4$quG2@|VekRIq3?ivc zdCBs6@-qm39INA(H&+%hSwx(0f4Lm#2hg5&V-02vYGALQ zo}hJT$0Yaxr)T9;>cN&5k&DfS(BZo>K+Z1Wwwqpazrdf2iZ8g{le$8w6&`s2{63hd zvRu7-0yQsHk{Y<1ae1ZkBlhg;>E`q!m?Lc1PdF6XFfFfsEdg zzSG0Xn82w9%8L~Pm_WxquPr#q!E6`F9y~}3ZanAu*%?fVhO*OuY&B{6+;d&7_xSJs zlMj+BN#dNGZE5Qrpid`8O>D=@a`t?Shu{)XJ={F4!>b$CCFn$9hgGw!L)d0l)*1kG z<}oR>J8qPKpgXUp$@THuN&g1%*)?J-a^{2U?*Ez~|68CwRKBFgXp%F}>1gnqa)L4^ zc$7fzvM)Auhj=$D}HZ2PP>?!3y!>!W}))&hyi<*cQ-j<_nUES$o7(be(<0aWI7c#!&IC7MNvu&Uk7O!e$$#mB~tJMjkW zpOoP$NJxYZG$sJav_P$jsd5AM8KJBD-1Zsa^w|5_6saA|Ne@>oh>g+ulGA3W$~ z7oq?55rlv*`sm{0SuXM31r0ABy_YOM8CA_u17nu#MnP{K z@A%AtZK6t8vw{W=QlVoH6r)ERk-=Ue{W_$g&vs|;+f+*UHNCsKIT>Wf%22XLfFDAf z3*Mu62>9{ol3V3wdcdb&_LDpAJ1ml71f{b(Fssj1i`f0z^NDp*-8KRbVu!mF;CXz1 z63^=q74#_@v( z5s-MwA)2Rb3|neV-6@ewVjLJN5BuR&QoQs@Bt4(eEn(s(uPBCv)%nCN*+9&58XBxq z-JyC{gnt3$8f(eZCYqL6`s?pReBtVz{TuNz5N*ph8()P~Z_VorW;m3Hea5FG_^M5Y zi~<>x`4=Q6E>=%nFslrUu?G20HdVuFgC<&Ke>5E-CaDoFh|pCqY+6LW6(>{k73VLv z97-13;UxBKO2bFjF%@P8s2#l?3)Cx-BGcwaTgD&vine9O&41=x>JCeefzlMQjZ4Oe8YqyfT$=c1v^W)U(-vKMw!6 z4gs+`3l(Si`79i-#NM<6^2a{J5SuTEQR`l@y8Lgm&iK0Sv&Gfy;CdGjJ1~Tm?l5?$q3TjLTytl$+Ml}=@u=39n{7TZ@l_;SSuCC$Xio_ zGv=D+lgqHCxdzb?y(^N)_BP(cWFf!Omr2K=0yoz>-}Uh*nk`V+ok=4y#wwEmw9fT$ zUGqVbEO%*!TOnOm8qFm|Tfr6bo?c@~{sCMAyddxISzn9AmTm zwE#~dNC&c(;8uj2YNvbi{W0-C;xM4Go%hKz^}o6TOt&M;oYU7u+1b>;y( z+(*zxA0#kp%o^q!2NtTv#YvxIb7pqH5i9RTDbnhnMVyn@MnHBz>}_5VMW^e7{9|bv zt&@u8_&#YNn)VKxZpP6*BDRqvp>=Nsve|+UHdy<5LJY`vpkl{8SqE{IF=U6g{CfT8 zLQL*4KmErhHNpb1!`I*UdXH8v>E5d2$*QC7x)higBm7Kq)-ZPqx}&|Mpt@wqPkGv( zr!$;|VH0`jrc1@F@?$dn%*vSp&D}+;%eeMT>`3#wIuBJZr?QqM1t9a5^cp*#gm`>& z-)l$xo%2$-#$1@vo6L|1FNiy5eXq?z;fV`n}c`WUd9oOw7jGAUVG93 zO5mC8X?xWrXk8TJ+F95uk=GGL=X-;gh$@*Q z&dK(uxfA3!^b$+F{ja(Fzo*E7o^D&OW%R6lXUejQ^n9TLpw(C@;1cSk*{oNjc&WMF zrIPJ*Sv4D;)_EJcbp4Yb3mP=%@kIpu%a~ldo(heUTk?J-A>mr?z5U<>pUXs&u>^W& zYAEBDA;GkWtaTu#VW3WRQu64pgG0Vk!$UTru~%06G!& z0vEtGbXov5K<~|#F;N^SGu$(;w+}Yjah2bHx>OgXmNz5|eY;}9QFDBabv^n%JGd8Zwrv|3kJF5BfVx3j=Sh56K-ORBOr2h&S; zV@b8CUcYLg`6^Cp0=8z`iy+nYQupW7<;ASz(({_hIzE7vJ`(XqCY_zL@&S8=r%V+2 z|0&ipJ{pyO0~>|NUFVzm!1y4#@v)-UlE%4zp{M^!&TW4mr9s;&n@5P;WGQTd2JuRE zmW;)M*089@14nKm1VDTl@}bHh9#9z7>wUFRd*wzJ+}M)niBbeQ18)xgCBE^NeUVEB z)@hhLe(A)xzz1;mPJH z`__8JT^*4U0KSwWg>!N2Ki+5bsY77y-n6wENgOG68qT}EFOJRsTC6c=bx>+Xw&1SL zBJNA6l)<|mdFPj;*f*v~R!bgjLHctFUc^LNF z|7VH!Uqi>CbbjUurF(aH;O(@gOHiLCW3bDJ>*G0v4B-KdID|xpi5M`QhWd@l)N#8K zJ>*tcdTLFw7&hO%nC#BmFA)s{XD4EoT-f=zZx}{bdDg2dcRlhy(EX5aYckp5o_RLD zGiW_wUYe}1(q|IPE55(6x~k~w%~QGl;~wLl@O&Cz_Srs)&S2$%!|Im}d;fT|)+nX@ zh?Ey(#e;#SJ0qGEOR38d++QlF)vpwFIP;dCS=ysyW#@(>>$ny~i`UvM*hxL$`2mi} zCgi?8{o%`d*1_!=?|X_rW~7ruCm!Dv12$bwpZYS8(dSvz)zZ+Ta=+n(aS?9wm`(Dj zhdV!zA8CPER3c4HEuE%f_9BpT6nlo^RUSnrCStiHng#)`)RQ3tmj^}Al!>4WVyB4? zo!woN(e0iB7xL}da%p<{;56xthvg0XWfANJRnZ=Evu1Z)%aEfETB_&fqJ%C>89RFR zD&Z_?NpuCSz*%^8x9Ego&xwaR#_8u9Y+w>LGB%q`nnOvi5K+I8vy{4-cHUx8n@j`u zK=&FC3BCtZ=OgH^Q8cyos~|@QSjmI@G1s@DDZZvT2#+&^-)@KapSM(nV2PZ__vT}?rAIPUN2Rwy>7+K2QefGBw>O2P4sqqanO6k*rT zDMB!CyBaI)Y`ydikom4x3ogGBC6Tykm8Sty!ZWNE?!a8$zEC4fn4qO6x;EqMh-kw0 zKwVXJA409r7vw5~^9}5>2$sCohwfnXdbJ zXzQt&wRbgd7Ghe)QO`TWCx2!}DA*$>sH10%SFV3Z)}DJA@kFrOoH?f>*$vyX{6r>v zHYVbUJrf;E9)lvl%J{~&TK=v)^hoS>mYIBR){33->-B`QTGPMf``4{o_%dzH2orUf z2lRzLMQ}MTMJC$mW?e_NTf>c6iNx5SbS|mVr;pysKKTSmKXA%weXY0jdv?iWo>YvUhFsTEeGvxRAS)fzx81 zl8s8gqthG9A5L4dQ3ODLqcO`Uz{)PZ_#6}vm~}Fcsg+xZ9@}~R#qPyc>s!xm%o5$qRJIJ>F zLWy`I%siGGpmOZO0UwvTT;yxPFGyl&liw{(WVL@YF>^f(8zQ=R4&Mv!bl2=n>Rq1u zaVtL%z|<8l`%?Vsva&16`&y5j$~Bz@V#P_W?7a%7j2CQiYYCN4F5weScbLH7mkDMV z-PI{xkbB(swQEqJv(Ee??A69lAGwW{K$O)fZ;)rdFA&A8(dD8|N-~7G<6`@hyTbju zfAkkZx@)lL#{Ip9vp@Mv6ZRL8-lKF~X=z!DfyRSF?tipiiwVk(@HUnuocdH1WqLmm zd=ZDKInt?Xusqu&5(nS!#4=b(s%!H*&qF0u;MH|OZRuf zw^~1`R0MvRf7!$0ms&*n)`UG|5Vf|Ei-Et&K%KECbT#!rInNutLGjjvUq#gX8!Z6)o(!BRUpp13LH#I2?moL2Yw48rE=-o%+@jyu z)d=^mx+ONzNvBMiK%L-ZluIYc27$`6+=k;4)IKd4GPBKGEg$Birn^}W99^w4i9O>G zv_8mGoW}Y2hVkC2qdO}^{8~ADbT5eDb+pGEK5F1aM|Pz)^eVu`80lGASCiN|$tUo{ z>dsMIYBc)dOei6r)E*AGa#=&}Knx#)TkG{&Iy5_CUIU&$zi}mX+%^oS0B*Op0>F z2b`~picHMf?!3wbeWPXj-82BMpAI$Fdn2=5^_1`S1JLuV4`U67h=v4X(UCsuqv;AZ z&iWo#znO~~JBBu7xCN)+<_SHG19dw@l!L+xL?H1Y$Z-S!e(UL|a{C3qvfORiy~sT> zj?i=Y6_L=!^2jH8o$3@U>LKwUgu^}Q?LgO|yZV3EEC#qZ7!0aSA$nT?&>rNUS!S(j zbzRWQ)U0ULfN~mZ(cbe+_eloKozq#SjERc0k=M5w@y@N`I;i3VImvDXM`%}#%CVlE z)U-1*R?Rq0a^wV;ND?-7ZL}nM8S5X`8S(wo4kFpjo@nSop?p%!oW~zVyI<%rZDtLN zv4(}aiSHDBb*ccBmL3mWVe$qWojBdWOcFl$vQG-U-Jn%!M8kO0c13RfRuw7nWKU#t z`o569B`-j9p>qfdXHjw!1rT$a&pY_R85tB0hV-`V12~<+Z68eANUU&f9C5#^8MZtb zQ9e}%mf!hHYzDZ*2P+}rz?ynTX9Yn}lfhn(6u7|S3_8t1|LI!3c}16`a!-`ooY@5p zy>DwjO#`h_dMaL&F(A(pari-4tDO1G|IJJEUno-YTuQ%n)vcl?-WD>onoR!GcBBl; zQ(33~7pl?lpBS7Vd5`*X?(V97u+tLcU1`&LiNf7pvG&@^TYhBg$RiWIvIa*+U4ks@ zpZ@$x*~Lbr8)+JxQv~eKUCbK7+ugRuN=Nz}+T!WaW&+GJ114Y&W7J+DKiD>;Td}0* z+05U|i>Gq@_}};FzS!m17C+X)W!*~L!k9cHeusy5FZ$}bDcEPeBd@jbBuUd^udnV0 zGOP6xGyIzY-Ps2H7x149(u#hbBE$zT)sG@h0(Q&bAFDn0Ep8)MzX~ZqJYT*;9h23Y z;_wikw0Y1ph%{`G+kWM&9&bMYsnO?cJnqNK%Bdl{>fRr9ZM%XiPbCZZO9v`LlQ=$D zljP8UCHJCZjhwP`?IX(^X(hJ}a0<(@C3NXVPEfy2$=W0Hw4r`kgQ8qNq+{js}%JA$Dgl#*XkC@u{@#eOF;7`>6r|7q!wpvwskBAf0(NvDT_C z`>p(p;ah25!Pb!8tLbJiQ}Q`!4>eF)0)$#2X5!BPsj# z?sO|vm6w!0*)=p>#!A{*FQo_qQg8!iGC=F4Oa9ZSh;k{a$)@IBz(ReO^HL1sivP5W zbrOW%Fd>%~C;bd>rK_CO_$~u?TfnQ1sQZ}nJrK$e&(4$+_B7qk-1QQ8joH0#hY7;p zSnGrCP{V7!^T`{UX>B=FY(W-qaJasr!F!9mlbfIXcvv;Ur{q z_R+`HTKjq1j`qANHh9tDlWYi?)Ge{csj@CT$h|e(4CbTj)XLLJ&EXuMu}|-$Ct^;j zX$h{MzKy8SHCQ?E_y_d(Uf6Uj3VR>GJYu{1p~VS;*JaNdE&v%ZD%)HA09-eD5a)J0 z!E@^YPrg$GOHckfcFIC}s~eDedzxJljQs9(7n{V_b8e5FYqwPRqyAttL|^)Sh?M_G zp&Pnw$Qt%yjrPbeZ3u1zFW& znoU@bL;Y6oqLES*V)u zjDDxvw>NT0zNVaL+8Tgc#idjYlCJ-v>?rU$7XUy+hEPUwr`? zPmneL0TuvRDmpC9RbOtdUoCQyA-5BH2QAqq0+$!DJg5ri`5^ zgkhwRtx?&R`FX$Zd){;2@A>|o=iX=eJonx|p3gn!o^um!!C~yIysQ8KfZgzho*4iD zq@Kk4%=9PLqwpK!i31|dVAlaPL;T-Q5|F!&i4FjOO$8r1Go0isem888004ye=LC{` zD_l>&;akQQ`X?R=g>rIo3JVL1ii%2w49LpL%0~_=DJfmOdi7fDkhZq=^~b|77|b~3 z0~`*w$QZS@wsy!Fb98ic$9(kg@bK~R@hut;E}sYq2?+}ei>aPWNJvO-n99h=$j;8r z$;rt*k=AJp22)sASX5M0TwGjsBAw*&^788H>bkl*EEbEy;oh7`-y9x~Z*On!=;-L` z>LL<}Boe7_{L8?=z~JEE$jHd2PoKue$0sKzKY#u_Gc!Xbljr8<78Vv37Z=yo)@U@E zwA~~L0N`*l)YGvDo?4rj_ngw^A#K9?wg`q?mp$dyyBjVz$cfsVCF07rsGN zsNkb4M-+VPBLTX#Ekn>^uZ{V|oHAL?98sa#`miI^gqp#iHOY707eH{&qxD(#BXF!k zOgrW{U|1P+XvgzYN{prpHS_K7=e|3h>l_8J2`}qlKh3XPt?IFO-Hg4OFVF7U%mc#4 z_l)B++v$Z04|fDRQO}k6kzx~mfIlw&=$chNWWO@vcQf^?<9-IL!zWI9&yLz*cMToq zsh)B`efr7@J!~OuL0n+q$E?KsqBUE)lNeJ5j}~-h2-TX!?nJCQd!v zyZ-gm9V3<(1wLA`0bsy$kfht*3Xf!Y@jU22f}UGJU^e8C7;$d(4TN~>H*0iel)k#8 zA5i5{6q}8bSfbh=>NMJI0axiw-RW=Dn=Tyby?u7xCdWqf=#O@kP}Se5kk()H320_=6XN1tG?1y}zM4~iz!+wgqb>zBs|cl# z?^*S1EFL&(mh90^#6I?_^_^!m|l@IanaKvp%ljn!ONJ4ra- zqA*I!3%phCloa*!MH|qD9m~}|3qC0>_fl)0=iqCW)D!Ai+(v^NkFz`dlwRP!(>#O-fu&RIu-%54NV#9Xk>{ z$6MIFt(lX10n+eW0Ci2(W=GLa< z6KCYkfGD@mggxq!(sAk{3g2*MzCaO~?J{v{rqS}vZj9e=niOHWd1d%PmvG|I`0#Lj z|3@}J)>NatwJ?<=ezaPg4gpl&5_cV~!$}u#hHmt&X34F6W8FF8f-`z)?8+O6s5US< zn5sA}L55XKTA)0JLp;5lEtkaX2xj?jR#`#EDP@DxjrC@zCZTGSRLi-m*8+FOSaRbY zRgO;wKqXYq`Vdwp4?Lwh3cYlD`#zG1SDh~8_F;PvAu7aCqkSx0RL27L5N>s#=RlwvzSZA5AzN)X*y zV}2=!0@hAP0m5weGpcbxsX4t@0W#y5H=LCl8`V53GKie*sYV;SD8j)7ds$QX_MP#( zU;81y<0D=|p*2upIAe`z!HG%bF=d21yzOx4>3^kZuF29Y;-^n}Lg0#$rn3gsFe5ns z1~MUsCRZ&%GXJ~!=kl}v-`4*WcOx6?4X+I|(4yza%S#PF&~X^mm%Q9S&{E%(IP{2d zjQm`ydm&y&n2k6m$IM0-<-{1JPm!x&o;|rbaP9oYpp})4XhTKvC5$H6%hi|K0ogFd z&&*IF1!rK2J4-JQ*l0`?(l680KzjaO!y4d&Elx2zK+gNsmUW>IJ@1IMYoa$)h82<4 z&!t_qVmf=?9fgC_SxEHiIh)+_4Vl-6+e#5Z(y5`xd7+1_1x~6j`WWR@b`~w8YFx}} zkI!e=ral1>Cud%%!e4bjaS{tPl=tt(Gvt|Wo$(y*HbGb13Ed2jfho?4lqpu?Dz+f< znBMjfWnrnUtS;|;V6ZiVaBfTIX+k6S^5~sG0fKF(4wG>kH66spHPp|j`j9J*X$2rz zrES*c^WA?iGWpKU!V3?DCzY$C7BuNKnMi7AkI~iKJcb9QM{%>Y`N|(HnVlG7+Z&79 z^xne?7rqU=Et1m0JBkL9^&axHX+o5{J*gTI3~%KUQ-Y{i|Esm34Vnp?txAqIwQifo z6_$A*6+efR!_8Cj%4^R8VhAw&+A};p& zy6kD6cb6Ws$f`8{(tFu0^OTzuUhJn@VlL`pum1}d*vn^Dv?kXJ`N1BNO-*WP0zS&)#gU@@o^? zowTr=e*Ak?hhXSp7=;=?h&ml#P)vdMW*|Z~jg?}n903k790{bu2$vB?;1v*s1FZ{y z{1g0F`VanBK)?G+oijXahUPwZG%c{ZxhCU%Hq!H45Z{@88c%(?W)R`H&(wZDf$6ta zzELYv^Td{hx8uYFdcw|ugSslC5!zY~)OsL`rrEn64W5pY*dtEiMASHlazJxkMMuKS zjNXpc7=1u`;9_UddT_(>4L*kIJmygV8@Ni2=ae?{2ga|HX$l+npK=0i)B#smujFV* zhK1u#X@AI28c4oI;oNs_yPrk1xSTm>R_QhqfRaJ2ca0imr4?dXZrn^~sDEZ$VT-*T z#QxN(+~MwxkXfuQbcgdnGn^>GR9d6nqXRadxKGwY!k6gTIp?KctAzpnC~6u2=2sd< z8U?@Gf8FEnCb`N4iL-JIkW;Yo&mM!{eMe_xE;834&Gy2y|61=I>oTbjg(OwpH?vSd z*DL)!wq0pP2_l!9EHrn3jZ^neZ3XU%^5ce(u6ZBDb>0ik!){y}-*R2GNsBo*FlCJ; zghK=4+cIK8EV8P}Y08&DXrCfe=|1jlbt@j7G8Zx^cAP=Y3$=HC{-Fvk_G1R8>mQD_ zLUU%rog)hr@h{7ju%%P8OZFnuHMdX>u=qD_y)oWKhc6c@O$cn~Q8zE+LK7?|XdHs3 zA>tNlMhh8K6e6v{PWEV#jO^LR7$#?^9YNX?F)@Q@v8o@27cT8QO#ac6tDUz=u)?ne z#n$p>2^{A5-#W*3n#mpKTFo8aM82r^mBdmaGbV1#Q7lHTL%09&PAJs<^}-c4`VUf* z^%f){r&@=>Lz=3+PFgzV($g8YohO-3gyqJwdL>fh7`sYg`R{c;LhkVju>*uXs|rMH z8KeLdDZlCZ3Ipqu9QEE|uKsfY{JnekhO8%FTRlD9yy`|C`lU1S&|&yjw=nKmX+}wi zCd4)M(6>+jw^5*&2c;qX7!Wq3^jv3h4(RK(Dd|N}LupLeGURvuAb5W+VZo1r%l8Kx z$x*|UXDhWpQ@ct{0+{Nr>}`s+TTPzI*PS&Ty8epKTRn^bTC8D zn-~ASrdG4Ij2Fxdly7g?i=Z>jlr@|?9xvI5Ks0_f8`Zch$f%I3fsAKwCY618bPCl zrRbXoSQ4lU73-mxbgjzB!25+5pSQ&wmM}uk#y2QZhfUNwFl6U#Rc^rTYwI&fX2n}` zh}#}{<0~xv-<5@!8j+6#REN6TJXS*una{0>jDZ4^=rrwk%RI(1gNGiL@|Jni)w;%e z{2CG3Q}VM47sVmz&8MrXP>clv+TEIz+fEMw0%I3rm6U=7xCnXg&;GustwQ0Kk2EgT zZsS%JupIl^CV%5btJ78_X4L#NGo`Hr30QU>Y;Zl};~ZLmr+3V>23otl!6xko0?VHf zQv+V1hx-R?m7}cd8}<**P*YQ86z5RTB3bEAGSR+o7yRdc@M?h&Q`3aGW&9455V`*x zc|=FK%XL|n-uktw`y316LooWe|9=mf$5N6%Uz{_bN9QI}@<0jnkFz7U!8BSKq{Nk5 zKM}-?Xllu)18zRO>B=V$<$y3V#nN{H=h1$DJMAmN{4%nKNAO){&cBND!z{zl?Ir(R zH55FJ0e*TmQTQ-3cB1eCfb;mrBU799XfB_h(dKtPVqEI2+Msho$_KW3c#vGl#;4rW zvAT!K^KBt@T_&9Lk3ah*i>1DA?BG_!$bYPnW)WY%qmiOG%AtkO4_;4Wu$jNG%xd|}W$QK20xe|rU@olN2t_Up?!20#)1rk$fVS!4@3 z91V8M0cQ#%4j1w5@4?4{`d8{o|LXal&E|j%a}6QCGsCX@hlanPzghW*oPVMJ;)(;( cL1Mc9 [!IMPORTANT] > When you build a provisioning package, you may include sensitive information in the project files and in the provisioning package (.ppkg) file. Although you have the option to encrypt the .ppkg file, project files are not encrypted. You should store the project files in a secure location and delete the project files when they are no longer needed. -## Apply package -1. Start with a computer on the first-run setup screen. If the PC has gone past this screen, reset the PC to start over. To reset the PC, go to **Settings** > **Update & security** > **Recovery** > **Reset this PC**. - - ![The first screen to set up a new PC](images/oobe.jpg) - -2. Insert the USB drive. Windows Setup will recognize the drive and ask if you want to set up the device. Select **Set up**. - - ![Set up device?](images/setupmsg.jpg) - -3. The next screen asks you to select a provisioning source. Select **Removable Media** and tap **Next**. - - ![Provision this device](images/prov.jpg) - -4. Select the provisioning package (\*.ppkg) that you want to apply, and tap **Next**. - - ![Choose a package](images/choose-package.png) - -5. Select **Yes, add it**. - - ![Do you trust this package?](images/trust-package.png) - + **Next step**: [How to apply a provisioning package](provisioning-apply-package.md) ## Learn more -- [Build and apply a provisioning package]( https://go.microsoft.com/fwlink/p/?LinkId=629651) - Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) - Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922)   +## Related topics -  +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) diff --git a/windows/deploy/provision-pcs-with-apps-and-certificates.md b/windows/deploy/provision-pcs-with-apps-and-certificates.md index 2a918f8202..6e4614a977 100644 --- a/windows/deploy/provision-pcs-with-apps-and-certificates.md +++ b/windows/deploy/provision-pcs-with-apps-and-certificates.md @@ -4,7 +4,7 @@ description: Create a provisioning package to apply settings to a PC running Win ms.assetid: 66D14E97-E116-4218-8924-E2A326C9367E keywords: ["runtime provisioning", "provisioning package"] ms.prod: W10 -ms.mktglfcycl: manage +ms.mktglfcycl: deploy ms.sitesec: library author: jdeckerMS localizationpriority: high @@ -57,7 +57,7 @@ Use the Windows Imaging and Configuration Designer (ICD) tool included in the Wi 3. Go to **Runtime settings** > **ProvisioningCommands** > **DeviceContext** > **CommandLine** and specify the command line that needs to be executed to install the app. This is a single command line (such as a script, executable, or msi) that triggers a silent install of your CommandFiles. Note that the install must execute silently (without displaying any UI). For MSI installers use, the `msiexec /quiet` option. > [!NOTE] -> If you are installing more than one app, then use CommandLine to invoke the script or batch file that orchestrates installation of the files. For more information, see [Install a Win32 app using a provisioning package](https://msdn.microsoft.com/library/windows/hardware/mt703295%28v=vs.85%29.aspx). +> If you are installing more than one app, then use `CommandLine` to invoke the script or batch file that orchestrates installation of the files. For more information, see [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md). ### Add a universal app to your package @@ -170,66 +170,27 @@ If your build is successful, the name of the provisioning package, output direct -## Apply package - -### During initial setup, from a USB drive - -1. Start with a computer on the first-run setup screen. If the PC has gone past this screen, reset the PC to start over. To reset the PC, go to **Settings** > **Update & security** > **Recovery** > **Reset this PC**. - - ![The first screen to set up a new PC](images/oobe.jpg) - -2. Insert the USB drive. Windows Setup will recognize the drive and ask if you want to set up the device. Select **Set up**. - - ![Set up device?](images/setupmsg.jpg) - -3. The next screen asks you to select a provisioning source. Select **Removable Media** and tap **Next**. - - ![Provision this device](images/prov.jpg) - -4. Select the provisioning package (\*.ppkg) that you want to apply, and tap **Next**. - - ![Choose a package](images/choose-package.png) - -5. Select **Yes, add it**. - - ![Do you trust this package?](images/trust-package.png) - -6. Read and accept the Microsoft Software License Terms. - - ![Sign in](images/license-terms.png) - -7. Select **Use Express settings**. - - ![Get going fast](images/express-settings.png) - -8. If the PC doesn't use a volume license, you'll see the **Who owns this PC?** screen. Select **My work or school owns it** and tap **Next**. - - ![Who owns this PC?](images/who-owns-pc.png) - -9. On the **Choose how you'll connect** screen, select **Join Azure AD** or **Join a domain** and tap **Next**. - - ![Connect to Azure AD](images/connect-aad.png) - -10. Sign in with your domain, Azure AD, or Office 365 account and password. When you see the progress ring, you can remove the USB drive. - - ![Sign in](images/sign-in-prov.png) - - -### After setup, from a USB drive, network folder, or SharePoint site - -On a desktop computer, navigate to **Settings** > **Accounts** > **Work access** > **Add or remove a management package** > **Add a package**, and select the package to install. - -![add a package option](images/package.png) +**Next step**: [How to apply a provisioning package](provisioning-apply-package.md) ## Learn more -- [Build and apply a provisioning package]( https://go.microsoft.com/fwlink/p/?LinkId=629651) - Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) - Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922)   - - +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) diff --git a/windows/deploy/provisioning-apply-package.md b/windows/deploy/provisioning-apply-package.md new file mode 100644 index 0000000000..417c9e9e75 --- /dev/null +++ b/windows/deploy/provisioning-apply-package.md @@ -0,0 +1,119 @@ +--- +title: Apply a provisioning package (Windows 10) +description: Provisioning packages can be applied to a device during the first-run experience (OOBE) and after ("runtime"). +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Apply a provisioning package + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +Provisioning packages can be applied to a device during the first-run experience (out-of-box experience or "OOBE") and after ("runtime"). + +## Desktop editions + +### During initial setup, from a USB drive + +1. Start with a computer on the first-run setup screen. If the PC has gone past this screen, reset the PC to start over. To reset the PC, go to **Settings** > **Update & security** > **Recovery** > **Reset this PC**. + + ![The first screen to set up a new PC](images/oobe.jpg) + +2. Insert the USB drive. Windows Setup will recognize the drive and ask if you want to set up the device. Select **Set up**. + + ![Set up device?](images/setupmsg.jpg) + +3. The next screen asks you to select a provisioning source. Select **Removable Media** and tap **Next**. + + ![Provision this device](images/prov.jpg) + +4. Select the provisioning package (\*.ppkg) that you want to apply, and tap **Next**. + + ![Choose a package](images/choose-package.png) + +5. Select **Yes, add it**. + + ![Do you trust this package?](images/trust-package.png) + +6. Read and accept the Microsoft Software License Terms. + + ![Sign in](images/license-terms.png) + +7. Select **Use Express settings**. + + ![Get going fast](images/express-settings.png) + +8. If the PC doesn't use a volume license, you'll see the **Who owns this PC?** screen. Select **My work or school owns it** and tap **Next**. + + ![Who owns this PC?](images/who-owns-pc.png) + +9. On the **Choose how you'll connect** screen, select **Join Azure AD** or **Join a domain** and tap **Next**. + + ![Connect to Azure AD](images/connect-aad.png) + +10. Sign in with your domain, Azure AD, or Office 365 account and password. When you see the progress ring, you can remove the USB drive. + + ![Sign in](images/sign-in-prov.png) + +### After setup, from a USB drive, network folder, or SharePoint site + +On a desktop computer, navigate to **Settings** > **Accounts** > **Access work or school** > **Add or remove a provisioning package** > **Add a package**, and select the package to install. + +![add a package option](images/package.png) + +## Mobile editions + +### Using removable media + +1. Insert an SD card containing the provisioning package into the device. +2. Navigate to **Settings** > **Accounts** > **Access work or school** > **Add or remove a provisioning package** > **Add a package**, and select the package to install. + + ![add a package option](images/packages-mobile.png) + +3. Click **Add**. + +4. On the device, the **Is this package from a source you trust?** message will appear. Tap **Yes, add it**. + + ![Is this package from a source you trust](images/package-trust.png) + +### Copying the provisioning package to the device + +1. Connect the device to your PC through USB. + +2. On the PC, select the provisioning package that you want to use to provision the device and then drag and drop the file to your device. + +3. On the device, the **Is this package from a source you trust?** message will appear. Tap **Yes, add it**. + + ![Is this package from a source you trust](images/package-trust.png) + + +# + + +## Learn more + +- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) + +- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) \ No newline at end of file diff --git a/windows/deploy/provisioning-command-line.md b/windows/deploy/provisioning-command-line.md new file mode 100644 index 0000000000..d5c52aabac --- /dev/null +++ b/windows/deploy/provisioning-command-line.md @@ -0,0 +1,68 @@ +--- +title: Windows ICD command-line interface (Windows 10) +description: +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Windows ICD command-line interface (reference) + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +You can use the Windows Imaging and Configuration Designer (ICD) command-line interface (CLI) to automate the building of provisioning packages and Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) and Windows 10 Mobile or Windows 10 IoT Core (IoT Core) images. + +- IT pros can use the Windows ICD CLI to require less re-tooling of existing processes. You must run the Windows ICD CLI from a command window with administrator privileges. + +- You must use the Windows ICD CLI and edit the customizations.xml sources to create an image and/or provisioning package with multivariant support. You need the customizations.xml file as one of the inputs to the Windows ICD CLI to build a provisioning package. For more information, see [Create a provisioning package with multivariant settings](provisioning-multivariant.md). + + + +## Syntax + +``` +icd.exe /Build-ProvisioningPackage /CustomizationXML: /PackagePath: +[/StoreFile:] [/MSPackageRoot:] [/OEMInputXML:] +[/ProductName:] [/Variables::] [[+|-]Encrypted] [[+|-]Overwrite] [/?] +``` + +## Switches and arguments + +| Switch | Required? | Arguments | +| --- | --- | --- | +| /CustomizationXML | No | Specifies the path to a Windows provisioning XML file that contains the customization assets and settings. For more information, see Windows provisioning answer file. | +| /PackagePath | Yes | Specifies the path and the package name where the built provisioning package will be saved. | +| /StoreFile | No


    See Important note. | For partners using a settings store other than the default store(s) used by Windows ICD, use this parameter to specify the path to one or more comma-separated Windows settings store file. By default, if you don't specify a settings store file, the settings store that's common to all Windows editions will be loaded by Windows ICD.


    **Important** If you use this parameter, you must not use /MSPackageRoot or /OEMInputXML. | +| /Variables | No | Specifies a semicolon separated and macro pair. The format for the argument must be =. | +| Encrypted | No | Denotes whether the provisioning package should be built with encryption. Windows ICD auto-generates the decryption password and includes this information in the output.


    Precede with + for encryption or - for no encryption. The default is no encryption. | +| Overwrite | No | Denotes whether to overwrite an existing provisioning package.


    Precede with + to overwrite an existing package or - if you don't want to overwrite an existing package. The default is false (don't overwrite). | +| /? | No | Lists the switches and their descriptions for the command-line tool or for certain commands. | + + + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) +  + + + + + diff --git a/windows/deploy/provisioning-create-package.md b/windows/deploy/provisioning-create-package.md new file mode 100644 index 0000000000..51b609a8ea --- /dev/null +++ b/windows/deploy/provisioning-create-package.md @@ -0,0 +1,148 @@ +--- +title: Create a provisioning package (Windows 10) +description: With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Create a provisioning package for Windows 10 + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +You use Windows Imaging and Configuration Designer (ICD) to create a provisioning package (.ppkg) that contains customization settings. You can apply the provisioning package to a device running Windows 10. + +>[Learn how to install Windows ICD.](provisioning-install-icd.md) + +## Start a new project + +1. Open Windows ICD: + - From either the Start screen or Start menu search, type 'Imaging and Configuration Designer' and click on the Windows ICD shortcut, + + or + + - Navigate to `C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Imaging and Configuration Designer\x86` (on an x64 computer) or `C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Imaging and Configuration Designer\x86\ICD.exe` (on an x86 computer), and then double-click **ICD.exe**. + +2. Select your desired option on the **Start** page, which offers three options for creating a provisioning package, as shown in the following image: + + ![Simple provisioning or provision school devices or advanced provisioning](images/icd-create-options.png) + + - The **Simple provisioning** and **Provision school devices** options provide wizard-style walkthroughs for creating a provisioning package based on a set of common settings. + - The **Advanced provisioning** option opens a new project with all **Runtime settings** available. + >[!TIP] + >You can start a project in the simple editor and then switch the project to the advanced editor. + > + >![Switch to advanced editor](images/icd-switch.png) + +3. Enter a name for your project, and then click **Next**. + +4. Select the settings you want to configure, based on the type of device, and then click **Next**. The following table describes the options. + + | Windows edition | Settings available for customization | Provisioning package can apply to | + | --- | --- | --- | + | All Windows editions | Common settings | All Windows 10 devices | + | All Windows desktop editions | Common settings and settings specific to desktop devices | All Windows 10 desktop editions (Home, Pro, Enterprise, Pro Education, Enterprise Education) | + | All Windows mobile editions | Common settings and settings specific to mobile devices | All Windows 10 Mobile devices | + | Windows 10 IoT Core | Common settings and settings specific to Windows 10 IoT Core | All Windows 10 IoT Core devices | + | Windows 10 Holographic | Common settings and settings specific to Windows 10 Holographic | [Microsoft HoloLens](https://technet.microsoft.com/itpro/hololens/hololens-provisioning) | + | Common to Windows 10 Team edition | Common settings and settings specific to Windows 10 Team | [Microsoft Surface Hub](https://technet.microsoft.com/itpro/surface-hub/provisioning-packages-for-certificates-surface-hub) | + +5. On the **Import a provisioning package (optional)** page, you can click **Finish** to create your project, or browse to and select an existing provisioning packge to import to your project, and then click **Finish**. + +>[!TIP] +>**Import a provisioning package** can make it easier to create different provisioning packages that all have certain settings in common. For example, you could create a provisioning package that contains the settings for your organization's network, and then import it into other packages you create so you don't have to reconfigure those common settings repeatedly. + +After you click **Finish**, Windows ICD will open the appropriate walkthrough page if you selected **Simple provisioning** or **Provision school devices**, or the **Available customizations** pane if you selected **Advanced provisioning**. The remainder of this topic will explain the **Advanced provisioning scenario**. + +- For instructions on **Simple provisioning**, see [Provision PCs with common settings](provision-pcs-for-initial-deployment.md). +- For instructions on **Provision school devices**, see [Set up student PCs to join domain](https://technet.microsoft.com/edu/windows/set-up-students-pcs-to-join-domain). + + +## Configure settings + +For an advanced provisioning project, Windows ICD opens the **Available customizations** pane. The example in the following image is based on **All Windows desktop editions** settings. + +![What the ICD interface looks like](images/icd-runtime.png) + +The settings in Windows ICD are based on Windows 10 configuration service providers (CSPs). To learn more about CSPs, see [Introduction to configuration service providers (CSPs) for IT pros](https://technet.microsoft.com/itpro/windows/manage/how-it-pros-can-use-configuration-service-providers). + +The process for configuring settings is similar for all settings. The following table shows an example. + + + + + + + +
    ![step one](images/one.png)
    Expand a category.
    ![Expand Certificates category](images/icd-step1.png)
    ![step two](images/two.png)
    Select a setting.
    ![Select ClientCertificates](images/icd-step2.png)
    ![step three](images/three.png)
    Enter a value for the setting. Click **Add** if the button is displayed.
    ![Enter a name for the certificate](images/icd-step3.png)
    ![step four](images/four.png)
    Some settings, such as this example, require additional information. In **Available customizations**, select the value you just created, and additional settings are displayed.
    ![Additional settings for client certificate](images/icd-step4.png)
    ![step five](images/five.png)
    When the setting is configured, it is displayed in the **Selected customizations** pane.
    ![Selected customizations pane](images/icd-step5.png)
    + +For details on each specific setting, see [Windows Provisioning settings reference](https://msdn.microsoft.com/library/windows/hardware/dn965990.aspx). The reference topic for a setting is also displayed in Windows ICD when you select the setting, as shown in the following image. + +![Windows ICD opens the reference topic when you select a setting](images/icd-setting-help.png) + + + ## Build package + +1. After you're done configuring your customizations, click **Export** and select **Provisioning Package**. + + ![Export on top bar](images/icd-export-menu.png) + +2. In the **Describe the provisioning package** window, enter the following information, and then click **Next**: + - **Name** - This field is pre-populated with the project name. You can change this value by entering a different name in the **Name** field. + - **Version (in Major.Minor format** - - Optional. You can change the default package version by specifying a new value in the **Version** field. + - **Owner** - Select **IT Admin**. For more information, see [Precedence for provisioning packages](provisioning-how-it-works.md#precedence-for-provisioning-packages). + - **Rank (between 0-99)** - Optional. You can select a value between 0 and 99, inclusive. The default package rank is 0. + +3. In the **Select security details for the provisioning package** window, you can select to encrypt and/or sign a provisioning package with a selected certificate. Both selections are optional. Click **Next** after you make your selections. + + - **Encrypt package** - If you select this option, an auto-generated password will be shown on the screen. + - **Sign package** - If you select this option, you must select a valid certificate to use for signing the package. You can specify the certificate by clicking **Select** and choosing the certificate you want to use to sign the package. + + >[!NOTE] + >You should only configure provisioning package security when the package is used for device provisioning and the package has contents with sensitive security data such as certificates or credentials that should be prevented from being compromised. When applying an encrypted and/or signed provisioning package, either during OOBE or through the setting UI, the package can be decrypted, and if signed, be trusted without explicit user consent. An IT administrator can set policy on a user device to restrict the removal of required packages from the device, or the provisioning of potentially harmful packages on the device. + > + >If a provisioning package is signed by a trusted provisioner, it can be installed on a device without a prompt for user consent. In order to enable trusted provider certificates, you must set the **TrustedProvisioners** setting prior to installing the trusted provisioning package. This is the only way to install a package without user consent. To provide additional security, you can also set **RequireProvisioningPackageSignature**, which prevents users from installing provisioning packages that are not signed by a trusted provisioner. + +4. In the **Select where to save the provisioning package** window, specify the output location where you want the provisioning package to go once it's built, and then click **Next**. By default, Windows ICD uses the project folder as the output location. + +5. In the **Build the provisioning package** window, click **Build**. The provisioning package doesn't take long to build. The project information is displayed in the build page and the progress bar indicates the build status. + + If you need to cancel the build, click Cancel. This cancels the current build process, closes the wizard, and takes you back to the Customizations Page. + +6. If your build fails, an error message will show up that includes a link to the project folder. You can scan the logs to determine what caused the error. Once you fix the issue, try building the package again. + + If your build is successful, the name of the provisioning package, output directory, and project directory will be shown. + + If you choose, you can build the provisioning package again and pick a different path for the output package. To do this, click **Back** to change the output package name and path, and then click **Next** to start another build. + +7. When you are done, click **Finish** to close the wizard and go back to the Customizations page. + +**Next step**: [How to apply a provisioning package](provisioning-apply-package.md) + +## Learn more + +- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) + +- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) + + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) \ No newline at end of file diff --git a/windows/deploy/provisioning-how-it-works.md b/windows/deploy/provisioning-how-it-works.md new file mode 100644 index 0000000000..1f9b72eb6c --- /dev/null +++ b/windows/deploy/provisioning-how-it-works.md @@ -0,0 +1,184 @@ +--- +title: How provisioning works in Windows 10 (Windows 10) +description: A provisioning package (.ppkg) is a container for a collection of configuration settings. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# How provisioning works in Windows 10 + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +Provisioning packages in Windows 10 provide IT administrators with a simplified way to apply configuration settings to Windows 10 devices. Windows Imaging and Configuration Designer (Windows ICD) is a tool that makes it easy to create a provisioning package. Windows ICD is contained in the [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit). + +## Provisioning packages + +A provisioning package contains specific configurations/settings and assets that can be provided through a removable media or simply downloaded to the device. + +To enable adding multiple sets of settings or configurations, the configuration data used by the provisioning engine is built out of multiple configuration sources that consist of separate provisioning packages. Each provisioning package contains the provisioning data from a different source. + +A provisioning package (.ppkg) is a container for a collection of configuration settings. The package has the following format: + +- Package metadata – The metadata contains basic information about the package such as package name, description, version, ranking, and so on. + +- XML descriptors – Each descriptor defines a customization asset or configuration setting included in the package. + +- Asset payloads – The payloads of a customization asset or a configuration setting associated with an app or data asset. + +You can use provisioning packages for runtime device provisioning by accessing the package on a removable media attached to the device, through near field communication (NFC), or by downloading from a remote source location. + +## Precedence for provisioning packages + +When multiple provisioning packages are available for device provisioning, the combination of package owner type and package rank level defined in the package manifest is used to resolve setting conflicts. The pre-defined package owner types are listed below in the order of lowest to highest owner type precedence: + +1. Microsoft + +2. Silicon Vender + +3. OEM + +4. System Integrator + +5. Mobile Operator + +6. IT Admin + +The valid value range of package rank level is 0 to 99. + +When setting conflicts are encountered, the final values provisioned on the device are determined by the owner type precedence and the rank level of the packages containing the settings. For example, the value of a setting in a package with owner **System Integrator** and rank level **3** takes precedence over the same setting in a package with owner **OEM** and rank level **4**. This is because the System Integrator owner type has the higher precedence over the OEM owner type. For packages with the same owner type, the package rank level determines the package from which the setting values get provisioned on the device. + +## Windows provisioning XML + +Windows provisioning XML is the framework that allows Microsoft and OEM components to declare end-user configurable settings and the on-device infrastructure for applying the settings with minimal work by the component owner. + +Settings for each component can be declared within that component's package manifest file. These declarations are turned into settings schema that are used by Windows ICD to expose the potential settings to users to create customizations in the image or in provisioning packages. Windows ICD translates the user configuration, which is declared through Windows provisioning answer file(s), into the on-device provisioning format. + +When the provisioning engine selects a configuration, the Windows provisioning XML is contained within the selected provisioning data and is passed through the configuration manager and then to the Windows provisioning CSP. The Windows provisioning CSP then takes and applies the provisioning to the proper location for the actual component to use. + +## Provisioning engine + +The provisioning engine is the core component for managing provisioning and configuration at runtime in a device running Windows 10. + +The provisioning engine provides the following functionality: + +- Provisioning configuration at any time when the device is running including first boot and setup or OOBE. It is also extensible to other points during the run-time of the device. +- Reading and combining settings from multiple sources of configuration that may be added to an image by Microsoft, the OEM, or system integrator, or added by IT/education administrators or users to the device at run-time. Configuration sources may be built into the image or from provisioning packages added to the device. +- Responding to triggers or events and initiating a provisioning stage. +- Authenticating the provisioning packages. +- Selecting a set of configuration based on the stage and a set of keys—such as the SIM, MCC/MNC, IMSI range, and so on—that map to a specific configuration then passing this configuration to the configuration management infrastructure to be applied. +- Working with OOBE and the control panel UI to allow user selection of configuration when a specific match cannot be determined. + +## Configuration manager + +The configuration manager provides the unified way of managing Windows 10 devices. Configuration is mainly done through the Open Mobile Alliance (OMA) Device Management (DM) and Client Provisioning (CP) protocols. The configuration manager handles and parses these protocol requests from different channels and passes them down to Configuration Service Providers (CSPs) to perform the specific management requests and settings. + +The provisioning engine relies on configuration manager for all of the actual processing and application of a chosen configuration. The provisioning engine determines the stage of provisioning and, based on a set of keys, determines the set of configuration to send to the configuration manager. The configuration manager in turn parses and calls into the CSPs for the setting to be applied. + +Underneath the configuration manager are the CSPs. Each section of configuration translates to a particular CSP to handle interpreting into an action on the device. Each CSP translates the instructions in the configuration and calls into the appropriate APIs and components to perform the requested provisioning actions. + +## Policy and resource manager + +The policy, resource, and context manager components manage the enrollment and unenrollment of devices into enterprise environments. The enrollment process into an enterprise is essentially the provisioning of configuration and device management policies that the enterprise wants to enforce on the device. This is usually done through the explicit signing up of the device to an enterprise's device management server over a network connection. This provides the user with the ability to access the enterprise's resources through the device and the enterprise with a means to manage and control access and manage and control the device itself. + +The key differences between enterprise enrollment and the configuration performed by the provisioning engine are: +- Enrollment enforces a limited and controlled set of policies on the device that the user may not have full control over. The provisioning engine exposes a larger set of settings that configure more aspects of the device and are generally user adjustable. +- The policy manager manages policy settings from multiple entities and performs a selection of the setting based on priority of the entities. The provisioning engine applies the settings and does not offer a means of prioritizing settings from different sources. The more specific provisioning is the last one applied and the one that is used. +- Individual policy settings applied from different enrollment entities are stored so they can be removed later during unenrollment. This enables the user to remove enterprise policy and return the device to a state without the enterprise restrictions and any sensitive data. The provisioning engine does not maintain individual provisioning settings or a means to roll back all applied settings. + +In Windows 10, the application of policy and enrollment through provisioning is required to support cases where an enterprise or educational institution does not have a DM server for full device management. The provisioning engine supports provisioning enrollment and policy through its configuration and integrates with the existing policy and resource manager components directly or through the configuration manager. + +## Triggers and stages + +Triggers are events during the lifetime of the system that start a provisioning stage. Some examples of triggers are: boot, OOBE, SIM change, user added, administrator added, user login, device update, and various manual triggers (such as deployment over USB or launched from an email attachment or USB flash drive). + +When a trigger occurs, provisioning is initiated for a particular provisioning stage. The stages are grouped into sets based on the scope of the settings: +- **Static**: First stage run for provisioning to apply configuration settings to the system to set up OOBE or apply device-wide settings that cannot be done when the image is being created. +- **System**: Run during OOBE and configure system-wide settings. +- **UICC**: UICC stages run for each new UICC in a device to handle configuration and branding based on the identity of the UICC or SIM card. This enables the runtime configuration scenarios where an OEM can maintain one image that can be configured for multiple operators. +- **Update**: Runs after an update to apply potential updated settings changes. +- **User**: runs during a user account first run to configure per-user settings. + + + + + + + + + +## Device provisioning during OOBE + +The provisioning engine always applies provisioning packages persisted in the C:\Recovery\Customizations folder on the OS partition. When the provisioning engine applies provisioning packages in the %ProgramData%\Microsoft\Provisioning folder, certain runtime setting applications, such as the setting to install and configure Windows apps, may be extended past the OOBE pass and continually be processed in the background when the device gets to the desktop. Settings for configuring policies and certain crucial system configurations are always be completed before the first point at which they must take effect. + +Device users can apply a provisioning package from a remote source when the device first boots to OOBE. The device provisioning during OOBE is only triggered after the language, locale, time zone, and other settings on the first OOBE UI page are configured. On all Windows devices, device provisioning during OOBE can be triggered by 5 fast taps on the Windows hardware key. When device provisioning is triggered, the provisioning UI is displayed in the OOBE page. The provisioning UI allows users to select a provisioning package acquired from a remote source, such as through NFC or a removable media. + +The following table shows how device provisioning can be initiated when a user first boots to OOBE. + + +| Package delivery | Initiation method | Supported device | +| --- | --- | --- | +| Removable media - USB drive or SD card
    (Packages must be placed at media root) | 5 fast taps on the Windows key to launch the provisioning UI |All Windows devices | +| From an administrator device through machine to machine NFC or NFC tag
    (The administrator device must run an app that can transfer the package over NFC) | 5 fast taps on the Windows key to launch the provisioning UI | Windows 10 Mobile devices and IoT Core devices | + +The provisioning engine always copies the acquired provisioning packages to the %ProgramData%\Microsoft\Provisioning folder before processing them during OOBE. The provisioning engine always applies provisioning packages embedded in the installed Windows image during Windows Setup OOBE pass regardless of whether the package is signed and trusted. When the provisioning engine applies an encrypted provisioning package on an end-user device during OOBE, users must first provide a valid password to decrypt the package. The provisioning engine also checks whether a provisioning package is signed and trusted; if it's not, the user must provide consent before the package is applied to the device. + +When the provisioning engine applies provisioning packages during OOBE, it applies only the runtime settings from the package to the device. Runtime settings can be system-wide configuration settings, including security policy, Windows app install/uninstall, network configuration, bootstrapping MDM enrollment, provisioning of file assets, account and domain configuration, Windows edition upgrade, and more. The provisioning engine also checks for the configuration settings on the device, such as region/locale or SIM card, and applies the multivariant settings with matching condition(s). + +## Device provisioning at runtime + +At device runtime, standalone provisioning packages can be applied by user initiation. Only runtime configuration settings including multivariant settings contained in a provisioning package can be applied at device runtime. + +The following table shows when provisioning at device runtime can be initiated. + +| Package delivery | Initiation method | Supported device | +| --- | --- | --- | +| Removable media - USB drive or SD card
    (Packages must be placed at media root) | **Settings** > **Accounts** > **Access work or school** > **Add or remove a provisioning package** | All Windows devices | +| Downloaded from a network connection and copied to a local folder | Double-click the package file | Windows 10 for desktop editions devices | +| From an administrator device connected to the target device through USB tethering | Drag and drop the package file onto the target device | Windows 10 Mobile devices and IoT Core devices | + +When applying provisioning packages from a removable media attached to the device, the Settings UI allows viewing contents of a package before selecting the package for provisioning. To minimize the risk of the device being spammed by applying provisioning packages from unknown sources, a provisioning package can be signed and encrypted. Partners can also set policies to limit the application of provisioning packages at device runtime. Applying provisioning packages at device runtime requires administrator privilege. If the package is not signed or trusted, a user must provide consent before the package is applied to the device. If the package is encrypted, a valid password is needed to decrypt the package before it can be applied to the device. + +When applying multiple provisioning packages to a device, the provisioning engine resolves settings with conflicting configuration values from different packages by evaluating the package ranking using the combination of package owner type and package rank level defined in the package metadata. A configuration setting applied from a provisioning package with the highest package ranking will be the final value applied to the device. + +After a standalone provisioning package is applied to the device, the package is persisted in the %ProgramData%\Microsoft\Provisioning folder on the device. Provisioning packages can be removed by an administrator by using the **Add or remove a provisioning package** available under **Settings** > **Accounts** > **Access work or school**. However, Windows 10 doesn't provide an uninstall option to revert runtime settings when removing a provisioning package from the device. + + +## Learn more + +- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) + +- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) + + + + +  + +  + + + + + diff --git a/windows/deploy/provisioning-install-icd.md b/windows/deploy/provisioning-install-icd.md new file mode 100644 index 0000000000..9727bc089d --- /dev/null +++ b/windows/deploy/provisioning-install-icd.md @@ -0,0 +1,106 @@ +--- +title: Install Windows Imaging and Configuration Designer (Windows 10) +description: Learn how to install and run Windows ICD. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Install Windows Imaging and Configuration Designer (ICD) + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +Use the Windows Imaging and Configuration Designer (ICD) tool in the Windows Assessment and Deployment Kit (ADK) to create provisioning packages to easily configure devices running Windows 10. Windows ICD is primarily designed for use by IT departments for business and educational institutions who need to provision bring-your-own-device (BYOD) and business-supplied devices. + +## Supported platforms + +Windows ICD can create provisioning packages for Windows 10 desktop and mobile editions, including Windows 10 IoT Core. You can run Windows ICD on the following operating systems: + +- Windows 10 - x86 and amd64 +- Windows 8.1 Update - x86 and amd64 +- Windows 8.1 - x86 and amd64 +- Windows 8 - x86 and amd64 +- Windows 7 - x86 and amd64 +- Windows Server 2016 +- Windows Server 2012 R2 Update +- Windows Server 2012 R2 +- Windows Server 2012 +- Windows Server 2008 R2 + +## Install Windows ICD + +1. Go to [Download the Windows ADK](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit) and select **Get Windows ADK** for the version of Windows 10 that you want to create provisioning packages for (version 1511 or version 1607). + + >[!NOTE] + >The rest of this procedure uses Windows ADK for Windows 10, version 1607 as an example. + +2. Save **adksetup.exe** and then run it. + +3. On the **Specify Location** page, select an installation path and then click **Next**. + >[!NOTE] + >The estimated disk space listed on this page applies to the full Windows ADK. If you only install Windows ICD, the space requirement is approximately 32 MB. +4. Make a selection on the **Windows Kits Privacy** page, and then click **Next**. + +5. Accept the **License Agreement**, and then click **Next**. + +6. On the **Select the features you want to install** page, clear all selections except **Configuration Designer**, and then click **Install**. + + ![Only Configuration Designer selected for installation](images/icd-install.png) + +## Current Windows ICD limitations + + +- You can only run one instance of Windows ICD on your computer at a time. + +- Be aware that when adding apps and drivers, all files stored in the same folder will be imported and may cause errors during the build process. + +- The Windows ICD UI does not support multivariant configurations. Instead, you must use the Windows ICD command-line interface to configure multivariant settings. For more information, see [Create a provisioning package with multivariant settings](provisioning-multivariant.md). + +- While you can open multiple projects at the same time within Windows ICD, you can only build one project at a time. + +- In order to enable the simplified authoring jscripts to work on a server SKU running Windows ICD, you need to explicitly enable **Allow websites to prompt for information using scripted windows**. Do this by opening Internet Explorer and then navigating to **Settings** > **Internet Options** > **Security** -> **Custom level** > **Allow websites to prompt for information using scripted windows**, and then choose **Enable**. + +- If you copy a Windows ICD project from one PC to another PC, make sure that all the associated files for the deployment assets, such as apps and drivers, are copied along with the project to the same path as it was on the original PC. + + For example, when you add a driver to a provisioned package, you must copy the .INF file to a local directory on the PC that is running Windows ICD. If you don't do this, and attempt to use a copied version of this project on a different PC, Windows ICD might attempt to resolve the path to the files that point to the original PC. + +- **Recommended**: Before starting, copy all source files to the PC running Windows ICD, rather than using external sources like network shares or removable drives. This reduces the risk of interrupting the build process from a temporary network issue or from disconnecting the USB device. + +**Next step**: [How to create a provisioning package](provisioning-create-package.md) + +## Learn more + +- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) + +- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) + + + +  + +  + + + + + diff --git a/windows/deploy/provisioning-multivariant.md b/windows/deploy/provisioning-multivariant.md new file mode 100644 index 0000000000..3bc7652233 --- /dev/null +++ b/windows/deploy/provisioning-multivariant.md @@ -0,0 +1,322 @@ +--- +title: Create a provisioning package with multivariant settings (Windows 10) +description: Create a provisioning package with multivariant settings to customize the provisioned settings. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Create a provisioning package with multivariant settings + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +Multivariant provisioning packages enable you to create a single provisioning package that can work for multiple locales. + +To provision multivariant settings, you must create a provisioning package with defined **Conditions** and **Settings** that are tied to these conditions. When you install this package on a Windows 10 device, the provisioning engine applies the matching condition settings at every event and triggers provisioning. + +The following events trigger provisioning on Windows 10 devices: + +| Event | Windows 10 Mobile | Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) | +| --- | --- | --- | +| System boot | Supported | Supported | +| Operating system update | Supported | Planned | +| Package installation during device first run experience | Supported | Supported | +| Detection of SIM presence or update | Supported | Not supported | +| Package installation at runtime | Supported | Supported | +| Roaming detected | Supported | Not supported | + +## Target, TargetState, Condition, and priorities + +Targets describe keying for a variant and must be described or pre-declared before being referenced by the variant. + +- You can define multiple **Target** child elements for each **Id** that you need for the customization setting. + +- Within a **Target** you can define multiple **TargetState** elements. + +- Within a **TargetState** element you can create multiple **Condition** elements. + +- A **Condition** element defines the matching type between the condition and the specified value. + +The following table shows the conditions supported in Windows 10 provisioning: + +>[!NOTE] +>You can use any of these supported conditions when defining your **TargetState**. + +| Condition Name | Condition priority | Windows 10 Mobile | Windows 10 for desktop editions | Value type | Value description | +| --- | --- | --- | --- | --- | --- | +| MNC | P0 | Supported | N/A | Digit string | Use to target settings based on the Mobile Network Code (MNC) value. | +| MCC | P0 | Supported | N/A | Digit string | Use to target settings based on the Mobile Country Code (MCC) value. | +| SPN | P0 | Supported | N/A | String | Use to target settings based on the Service Provider Name (SPN) value. | +| PNN | P0 | Supported | N/A | String | Use to target settings based on public land mobile network (PLMN) Network Name value. | +| GID1 | P0 | Supported | N/A | Digit string | Use to target settings based on the Group Identifier (level 1) value. | +| ICCID | P0 | Supported | N/A | Digit string | Use to target settings based on the Integrated Circuit Card Identifier (ICCID) value. | +| Roaming | P0 | Supported | N/A | Boolean | Use to specify roaming. Set the value to **1** (roaming) or **0** (non-roaming). | +| UICC | P0 | Supported | N/A | Enumeration | Use to specify the UICC state. Set the value to one of the following:


    - 0 - Empty
    - 1 - Ready
    - 2 - Locked | +| UICCSLOT | P0 | Supported | N/A | Digit string | Use to specify the UICC slot. Set the value one of the following:


    - 0 - Slot 0
    - 1 - Slot 1 | +| ProcessorType | P1 | Supported | Supported | String | Use to target settings based on the processor type. | +| ProcessorName | P1 | Supported | Supported | String | Use to target settings based on the processor name. | +| AoAc | P1 | Supported | Supported | Boolean | Set the value to 0 or 1. | +| PowerPlatformRole | P1 | Supported | Supported | Enumeration | Indicates the preferred power management profile. Set the value based on the POWER_PLATFORM_ROLE enumeration. | +| Architecture | P1 | Supported | Supported | String | Matches the PROCESSOR_ARCHITECTURE environment variable. | +| Server | P1 | Supported | Supported | Boolean | Set the value to 0 or 1. | +| Region | P1 | Supported | Supported | Enumeration | Use to target settings based on country/region. | +| Lang | P1 | Supported | Supported | Enumeration | Use to target settings based on language code. | +| ROMLANG | P1 | Supported | N/A | Digit string | Use to specify the PhoneROMLanguage that's set for DeviceTargeting. This condition is used primarily to detect variants for China. For example, you can use this condition and set the value to "0804". | + +The matching types supported in Windows 10 are: + +| Matching type | Syntax | Example | +| --- | --- | --- | +| Straight match | Matching type is specified as-is | <Condition Name="ProcessorName" Value="Barton" /> | +| Regex match | Matching type is prefixed by "Pattern:" | <Condition Name="ProcessorName" Value="Pattern:.*Celeron.*" /> | +| Numeric range match | Matching type is prefixed by "!Range:" | <Condition Name="MNC" Value="!Range:400, 550" /> | + + +- When all **Condition** elements are TRUE, **TargetState** is TRUE (**AND** logic). + +- If any of the **TargetState** elements is TRUE, **Target** is TRUE (**OR** logic), and **Id** can be used for the setting customization. + + +You can define more than one **TargetState** within a provisioning package to apply variant settings that match device conditions. When the provisioning engine evalues each **TargetState**, more than one **TargetState** may fit current device conditions. To determine the order in which the variant settings are applied, the system assigns a priority to every **TargetState**. + +A variant setting that matches a **TargetState** with a lower priority is applied before the variant that matches a **TargetState** with a higher priority. Variant settings that match more than one **TargetState** with equal priority are applied according to the order that each **TargetState** is defined in the provisioning package. + +The **TargetState** priority is assigned based on the conditions priority and the priority evaluation rules are as followed: + +1. **TargetState** with P0 conditions is higher than **TargetState** without P0 conditions. + + +2. **TargetState** with P1 conditions is higher than **TargetState** without P0 and P1 conditions. + + +3. If N₁>N₂>0, the **TargetState** priority with N₁ P0 conditions is higher than the **TargetState** with N₂ P1 conditions. + + +4. For **TargetState** without P0 conditions, if N₁>N₂>0 **TargetState** with N₁ P1 conditions is higher than the **TargetState** with N₂ P1 conditions. + + +5. For **TargetState** without P0 and P1 conditions, if N₁>N₂>0 **TargetState** priority with N₁ P2 conditions is higher than the **TargetState** with N₂ P2 conditions. + + +6. For rules 3, 4, and 5, if N₁=N₂, **TargetState** priorities are considered equal. + + +## Create a provisioning package with multivariant settings + +Follow these steps to create a provisioning package with multivariant capabilities. + + +1. Build a provisioning package and configure the customizations you need to apply during certain conditions. For more information, see [Create a provisioning package](provisioning-create-package.md). + + +2. After you've [configured the settings](provisioning-create-package.md#configure-settings), save the project. + + +3. Open the project folder and copy the customizations.xml file. + +4. Use an XML or text editor to open the customizations.xml file. + + The customizations.xml file holds the package metadata (including the package owner and rank) and the settings that you configured when you created your provisioning package. The Customizations node contains a Common section, which contains the customization settings. + + The following example shows the contents of a sample customizations.xml file. + + ```XML + + + + {6aaa4dfa-00d7-4aaa-8adf-73c6a7e2501e} + My Provisioning Package + 1.0 + OEM + 50 + + + + + + 0 + 0 + 0 + + + 0 + + + + + + ``` + +4. Edit the customizations.xml file and create a **Targets** section to describe the conditions that will handle your multivariant settings. + + The following example shows the customizations.xml, which has been modified to include several conditions including **ProcessorName**, **ProcessorType**, **MCC**, and **MNC**. + + ```XML + + + + {6aaa4dfa-00d7-4aaa-8adf-73c6a7e2501e} + My Provisioning Package + 1.0 + OEM + 50 + + + + + + 0 + 0 + 0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + ``` + +5. In the customizations.xml file, create a **Variant** section for the settings you need to customize. To do this: + + a. Define a child **TargetRefs** element. + + b. Within the **TargetRefs** element, define a **TargetRef** element. You can define multiple **TargetRef** elements for each **Id** that you need to apply to customized settings. + + c. Move compliant settings from the **Common** section to the **Variant** section. + + If any of the TargetRef elements matches the Target, all settings in the Variant are applied (OR logic). + + >[!NOTE] + >You can define multiple Variant sections. Settings that reside in the **Common** section are applied unconditionally on every triggering event. + + The following example shows the customizations.xml updated to include a **Variant** section and the moved settings that will be applied if the conditions for the variant are met. + + ```XML + + + + {6aaa4dfa-00d7-4aaa-8adf-73c6a7e2501e} + My Provisioning Package + 1.0 + OEM + 50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 1 + 1 + + + 1 + + + + + + + ``` + +6. Save the updated customizations.xml file and note the path to this updated file. You will need the path as one of the values for the next step. + + +7. Use the [Windows ICD command-line interface](provisioning-command-line.md) to create a provisioning package using the updated customizations.xml. + + For example: + + ``` + icd.exe /Build-ProvisioningPackage /CustomizationXML:"C:\CustomProject\customizations.xml" /PackagePath:"C:\CustomProject\output.ppkg" /StoreFile:C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Imaging and Configuration Designer\x86\Microsoft-Common-Provisioning.dat" + ``` + + +In this example, the **StoreFile** corresponds to the location of the settings store that will be used to create the package for the required Windows edition. + +>[!NOTE] +>The provisioning package created during this step will contain the multivariant settings. You can use this package either as a standalone package that you can apply to a Windows device or use it as the base when starting another project. + + + + + + + + + + + + + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) + +  + + + + + diff --git a/windows/deploy/provisioning-nfc.md b/windows/deploy/provisioning-nfc.md new file mode 100644 index 0000000000..114e6d5545 --- /dev/null +++ b/windows/deploy/provisioning-nfc.md @@ -0,0 +1,153 @@ +--- +title: NFC-based device provisioning (Windows 10) +description: +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# NFC-based device provisioning + + +**Applies to** + +- Windows 10 Mobile + +Near field communication (NFC) enables Windows 10 Mobile Enterprise and Windows 10 Mobile devices to communicate with an NFC tag or another NFC-enabled transmitting device. Enterprises that do bulk provisioning can use NFC-based device provisioning to provide a provisioning package to the device that's being provisioned. NFC provisioning is simple and convenient and it can easily store an entire provisioning package. + +The NFC provisioning option enables the administrator to provide a provisioning package during initial device setup or the out-of-box experience (OOBE) phase. Administrators can use the NFC provisioning option to transfer provisioning information to persistent storage by tapping an unprovisioned mobile device to an NFC tag or NFC-enabled device. To use NFC for pre-provisioning a device, you must either prepare your own NFC tags by storing your provisioning package to a tag as described in this section, or build the infrastructure needed to transmit a provisioning package between an NFC-enabled device and a mobile device during OOBE. + +## Provisioning OOBE UI + +All Windows 10 Mobile Enterprise and Windows 10 Mobile images have the NFC provisioning capability incorporated into the operating system. On devices that support NFC and are running Windows 10 Mobile Enterprise or Windows 10 Mobile, NFC-based device provisioning provides an additional mechanism to provision the device during OOBE. + +On all Windows devices, device provisioning during OOBE can be triggered by 5 fast taps on the Windows hardware key, which shows the **Provision this device** screen. In the **Provision this device** screen, select **NFC** for NFC-based provisioning. + +![Example of Provision this device screen](images/nfc.png) + +If there is an error during NFC provisioning, the device will show a message if any of the following errors occur: + +- **NFC initialization error** - This can be caused by any error that occurs before data transfer has started. For example, if the NFC driver isn't enabled or there's an error communicating with the proximity API. +- **Interrupted download or incomplete package transfer** - This error can happen if the peer device is out of range or the transfer is aborted. This error can be caused whenever the device being provisioned fails to receive the provisioning package in time. +- **Incorrect package format** - This error can be caused by any protocol error that the operating system encounters during the data transfer between the devices. +- **NFC is disabled by policy** - Enterprises can use policies to disallow any NFC usage on the managed device. In this case, NFC functionality is not enabled. + +## NFC tag + +You can use an NFC tag for minimal provisioning and use an NFC-enabled device tag for larger provisioning packages. + +The protocol used for NFC-based device provisioning is similar to the one used for NFC provisioning on Windows Embedded 8.1 Handheld, which supported both single-chunk and multi-chunk transfer when the total transfer didn't fit in one NDEP message size. In Windows 10, the provisioning stack contains the following changes: + +- **Protocol namespace** - The protocol namespace has changed from Windows.WEH.PreStageProv.Chunk to Windows.ProvPlugins.Chunk. +- **Tag data type** - The tag data type has changed from UTF-8 into binary raw data. + + +>[!NOTE] +>The NFC tag doesn't go in the secondary device. You can transfer the NFC tag by using a provisioning package from device-to-device using the NFC radio or by re-reading the provisioning package from an NFC tag. + +### NFC tag components + +NFC tags are suitable for very light applications where minimal provisioning is required. The size of NFC tags that contain provisioning packages is typically 4 KB to 10 KB. + +To write to an NFC tag, you will need to use an NFC Writer tool, or you can use the [ProximityDevice class API](https://msdn.microsoft.com/library/windows/apps/windows.networking.proximity.proximitydevice.aspx) to write your own custom tool to transfer your provisioning package file to your NFC tag. The tool must publish a binary message (write) a Chunk data type to your NFC tag. + +The following table describes the information that is required when writing to an NFC tag. + +| Required field | Description | +| --- | --- | +| **Type** | Windows.ProvPlugins.Chunk

    The receiving device uses this information to understand information in the Data field. | +| **Data** | Tag data with small header in raw binary format that contains a chunk of the provisioning package to be transferred. | + + + +### NFC provisioning helper + +The NFC provisioning helper device must split the provisioning package raw content into multiple parts and publish these in order. Each part should follow the following format: + +
    **Version**
    (1 byte)
    **Leading**
    (1 byte)
    **Order**
    (1 byte)
    **Total**
    (1 byte)
    **Chunk payload**
    (N bytes)
    + +For each part: +- **Version** should always be 0x00. +- **Leading byte** should always be 0xFF. +- **Order** represents which message chunk (out of the whole message) the part belongs to. The Order begins with zero (0). +- **Total** represents the total number of chunks to be transferred for the whole message. +- **Chunk payload** represents each of the split parts. + +The NFC provisioning helper device must publish the record in a type of Windows.ProvPlugins.Chunk. + +**Code example** + +The following example shows how to write to an NFC tag. This example assumes that the tag is already in range of the writing device. + +``` + private async void WriteProvPkgToTag(IStorageFile provPkgFile) + { + var buffer = await FileIO.ReadBufferAsync(provPkgFile); + if (null == buffer) + { + return; + } + + var proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault(); + if (null == proximityDevice) + { + return; + } + + var dataWriter = new DataWriter(); + var header = new NfcProvHeader(); + + header.version = NFC_PROV_MESSAGE_CURRENT_VERSION; // Currently the supported version is 0x00. + header.leading = NFC_PROV_MESSAGE_LEADING_BYTE; // The leading byte should be always 0xFF. + header.index = 0; // Assume we only have 1 chunk. + header.total = 1; // Assume we only have 1 chunk. + + // Write the header first and then the raw data of the provisioning package. + dataWriter.WriteBytes(GetBytes(header)); + dataWriter.WriteBuffer(buffer); + + var chunkPubId = proximityDevice.PublishBinaryMessage( + "Windows:WriteTag.ProvPlugins.Chunk", + dataWriter.DetachBuffer()); + } +``` + + +### NFC-enabled device tag components + +Provisioning from an NFC-enabled source device allows for larger provisioning packages than can be transferred using an NFC tag. When provisioning from an NFC-enabled device, we recommend that the total file size not exceed 120 KB. Be aware that the larger the NFC file is, the longer it will take to transfer the provisioning file. Depending on your NFC hardware, the transfer time for a 120 KB file will vary between 2.5 seconds and 10 seconds. + +To provision from an NFC-enabled source device, use [ProximityDevice class API](https://msdn.microsoft.com/library/windows/apps/windows.networking.proximity.proximitydevice.aspx) to write your own custom tool that transfers your provisioning package in chunks to your target mobile device. The tool must publish binary messages (transmit) a Header message, followed by one or more Chunk messages. The Header specifies the total amount of data that will be transferred to the target device; the Chunks must contain binary raw data formatted provisioning data, as shown in the NFC tag components section. + +For detailed information and code samples on how to implement an NFC-enabled device tag, see **ConvertToNfcMessageAsync** in [this GitHub NfcProvisioner Universal Windows app example](https://github.com/Microsoft/Windows-universal-samples/blob/master/Samples/NfcProvisioner/cs/Scenario1.xaml.cs). The sample app shows you how to host the provisioning package on a master device so that you can transfer it to the receiving device. + + + + + + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) + +  + +  + + + + + diff --git a/windows/deploy/provisioning-packages.md b/windows/deploy/provisioning-packages.md index 47223a7427..ebb4a064c3 100644 --- a/windows/deploy/provisioning-packages.md +++ b/windows/deploy/provisioning-packages.md @@ -3,9 +3,8 @@ title: Provisioning packages (Windows 10) description: With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. ms.assetid: 287706E5-063F-4AB5-902C-A0DF6D0730BC ms.prod: w10 -ms.mktglfcycl: explore +ms.mktglfcycl: deploy ms.sitesec: library -ms.pagetype: mobile author: jdeckerMS localizationpriority: high --- @@ -18,15 +17,17 @@ localizationpriority: high - Windows 10 - Windows 10 Mobile -Windows provisioning makes it easy for IT administrators to configure end-user devices without imaging. Using Windows Provisioning, an IT administrator can easily specify desired configuration and settings required to enroll the devices into management (through a wizard-driven user interface) and then apply that configuration to target devices in a matter of minutes. It is best suited for small- to medium-sized businesses with deployments that range from tens to a few hundred computers. +Windows provisioning makes it easy for IT administrators to configure end-user devices without imaging. Using Windows provisioning, an IT administrator can easily specify desired configuration and settings required to enroll the devices into management and then apply that configuration to target devices in a matter of minutes. It is best suited for small- to medium-sized businesses with deployments that range from tens to a few hundred computers. -With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. +A provisioning package (.ppkg) is a container for a collection of configuration settings. With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. Provisioning packages are simple enough that with a short set of written instructions, a student or non-technical employee can use them to configure their device. This can result in a significant reduction in the time required to configure multiple devices in your organization. +The [Windows Assessment and Deployment Kit (ADK) for Windows 10](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit) includes the Imaging and Configuration Designer (ICD), a tool for configuring provisioning packages. + ## New in Windows 10, Version 1607 -The Windows Assessment and Deployment Kit (ADK) for Windows 10 includes the Imaging and Configuration Designer (ICD), a tool for configuring images and runtime settings which are then built into provisioning packages. Windows ICD for Windows 10, Version 1607, simplifies common provisioning scenarios. +Windows ICD for Windows 10, Version 1607, simplifies common provisioning scenarios. ![Configuration Designer options](images/icd.png) @@ -74,7 +75,7 @@ Provisioning packages can be: ## What you can configure -The following table provides some examples of what can be configured using provisioning packages. +The following table provides some examples of what you can configure using provisioning packages. | Customization options | Examples | |--------------------------|-----------------------------------------------------------------------------------------------| @@ -92,42 +93,26 @@ The following table provides some examples of what can be configured using provi For details about the settings you can customize in provisioning packages, see [Windows Provisioning settings reference]( https://go.microsoft.com/fwlink/p/?LinkId=619012). -## Creating a provisioning package - - -With Windows 10, you can use the Windows Imaging and Configuration Designer (ICD) tool to create provisioning packages. To install Windows ICD and create provisioning packages, you must [install the Windows Assessment and Deployment Kit (ADK) for Windows 10](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit). - -When you run ADKsetup.exe for Windows 10, version 1607, select the following feature from the **Select the features you want to install** dialog box: - -- **Configuration Designer** - -![Choose Configuration Designer](images/adk-install.png) - -> [!NOTE] -> In previous versions of the Windows 10 ADK, you had to install additional features for Windows ICD to run. Starting in version 1607, you can install Windows ICD without other ADK features. - -After you install Windows ICD, you can use it to create a provisioning package. For detailed instructions on how to create a provisioning package, see [Build and apply a provisioning package](https://go.microsoft.com/fwlink/p/?LinkID=629651). - -## Applying a provisioning package to a device - - -Provisioning packages can be applied both during image deployment and during runtime. For information on how to apply a provisioning package to a Windows 10-based device, see [Build and apply a provisioning package](https://go.microsoft.com/fwlink/p/?LinkID=629651). - ## Learn more +- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) -[Windows 10: Deployment](https://go.microsoft.com/fwlink/p/?LinkId=533708) +- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) ## Related topics -- [Provision PCs with common settings for initial deployment](provision-pcs-for-initial-deployment.md) -- [Provision PCs with apps and certificates for initial deployments](provision-pcs-with-apps-and-certificates.md) -- [Configure devices without MDM](../manage/configure-devices-without-mdm.md) -- [Set up a shared or guest PC with Windows 10](../manage/set-up-shared-or-guest-pc.md) -- [Configure devices without MDM](../manage/configure-devices-without-mdm.md) -- [Set up a device for anyone to use (kiosk mode)](../manage/set-up-a-device-for-anyone-to-use.md) -- [Customize Windows 10 Start and taskbar with ICD and provisioning packages](../manage/customize-windows-10-start-screens-by-using-provisioning-packages-and-icd.md) -- [Set up student PCs to join domain](https://technet.microsoft.com/edu/windows/set-up-students-pcs-to-join-domain) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) + diff --git a/windows/deploy/provisioning-script-to-install-app.md b/windows/deploy/provisioning-script-to-install-app.md new file mode 100644 index 0000000000..8754c66299 --- /dev/null +++ b/windows/deploy/provisioning-script-to-install-app.md @@ -0,0 +1,222 @@ +--- +title: Use a script to install a desktop app in provisioning packages (Windows 10) +description: With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Use a script to install a desktop app in provisioning packages + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +This walkthrough describes how to leverage the ability to include scripts in a Windows 10 provisioning package to install Win32 applications. Scripted operations other than installing apps can also be performed, however, some care is needed in order to avoid unintended behavior during script execution (see Remarks below). + +>**Prerequisite**: [Windows Assessment and Deployment Kit (ADK) for Windows 10](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit), version 1511 or higher + +>[!NOTE] +>This scenario is only supported for installing applications on Windows 10 for desktop, version 1511 or higher. + +## Assemble the application assets + +1. On the device where you’re authoring the package, place all of your assets in a known location. Each asset must have a unique filename, because all files will be copied to the same temp directory on the device. It’s common for many apps to have an installer called ‘install.exe’ or similar, and there may be name overlap because of that. To fix this, you can use the technique described in the next step to include a complete directory structure that is then expanded into the temp directory on the device. The most common use for this would be to include a subdirectory for each application. + +2. If you need to include a directory structure of files, you will need to cab the assets for easy inclusion in the provisioning packages. + +## Cab the application assets + +1. Create a .DDF file as below, replacing *file1* and *file2* with the files you want to package, and adding the name of file/directory. + + ``` + ;*** MSDN Sample Source Code MakeCAB Directive file example + + ; + + .OPTION EXPLICIT ; Generate errors on variable typos + + .set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory + + .Set MaxDiskFileCount=1000; Limit file count per cabinet, so that + + ; scanning is not too slow + + .Set FolderSizeThreshold=200000 ; Aim for ~200K per folder + + .Set CompressionType=MSZIP + + ;** All files are compressed in cabinet files + + .Set Cabinet=on + + .Set Compress=on + + ;------------------------------------------------------------------- + + ;** CabinetNameTemplate = name of cab + + ;** DiskDirectory1 = output directory where cab will be created + + ;------------------------------------------------------------------- + + .Set CabinetNameTemplate=tt.cab + + .Set DiskDirectory1=. + + ;------------------------------------------------------------------- + + ; Replace with actual files you want to package + + ;------------------------------------------------------------------- + + + + + + ;*** + ``` + +2. Use makecab to create the cab files. + + ``` + Makecab -f + ``` + +## Create the script to install the application + +Create a script to perform whatever work is needed to install the application(s). The following examples are provided to help get started authoring the orchestrator script that will execute the required installers. In practice, the orchestrator script may reference many more assets than those in these examples. + +>[!NOTE] +>All actions performed by the script must happen silently, showing no UI and requiring no user interaction. +> +>The scripts will be run on the device in system context. + +### Debugging example + +Granular logging is not built in, so the logging must be built into the script itself. Here is an example script that logs ‘Hello World’ to a logfile. When run on the device, the logfile will be available after provisioning is completed. As you will see in the following examples, it’s recommended that you log each action that your script performs. + +``` +set LOGFILE=%SystemDrive%\HelloWorld.log +echo Hello, World >> %LOGFILE% +``` +### .exe example + +This example script shows how to create a log output file on the system drive, install an app from a .exe installer, and echo the results to the log file. + +``` +set LOGFILE=%SystemDrive%\Fiddler_install.log +echo Installing Fiddler.exe >> %LOGFILE% +fiddler4setup.exe /S >> %LOGFILE% +echo result: %ERRORLEVEL% >> %LOGFILE% +``` + +### .msi example + +This is the same as the previous installer, but installs the app from an MSI installer. Notice that msiexec is called with the /quiet flag in order to meet the silent requirement of scripts run from within a provisioning package. + +``` +set LOGFILE=%SystemDrive%\IPOverUsb_install.log +echo Installing IpOverUsbInstaller.msi >> %LOGFILE% +msiexec /i IpOverUsbInstaller.msi /quiet >> %LOGFILE% +echo result: %ERRORLEVEL% >> %LOGFILE% +``` + +### PowerShell example + +This is an example script with logging that shows how to run a powershell script from the provisioning commands setting. Note that the PowerShell script referenced from this example must also be included in the package, and obey the same requirements as all scripts run from within the provisioning package: it must execute silently, with no user interaction. + +``` +set LOGFILE=%SystemDrive%\my_powershell_script.log +echo Running my_powershell_script.ps1 in system context >> %LOGFILE% +echo Executing "PsExec.exe -accepteula -i -s cmd.exe /c powershell.exe my_powershell_script.ps1" >> %LOGFILE% +PsExec.exe -accepteula -i -s cmd.exe /c powershell.exe my_powershell_script.ps1' >> %LOGFILE% +echo result: %ERRORLEVEL% >> %LOGFILE% +``` + +### Extract from a .CAB example + +This example script shows expansion of a .cab from the provisioning commands script, as well as installation of the expanded setup.exe + +``` +set LOGFILE=%SystemDrive%\install_my_app.log +echo Expanding installer_assets.cab >> %LOGFILE% +expand -r installer_assets.cab -F:* . >> %LOGFILE% +echo result: %ERRORLEVEL% >> %LOGFILE% +echo Installing MyApp >> %LOGFILE% +setup.exe >> %LOGFILE% +echo result: %ERRORLEVEL% >> %LOGFILE% +``` + +### Calling multiple scripts in the package + +You are currently allowed one CommandLine per PPKG. The batch files shown above are orchestrator scripts that manage the installation and calls any other scripts included in the PPKG. The orchestrator script is what should be invoked from the CommandLine specified in the package. + +Here’s a table describing this relationship, using the PowerShell example from above: + + +|ICD Setting | Value | Description | +| --- | --- | --- | +| ProvisioningCommands/DeviceContext/CommandLine | cmd /c PowerShell_Example.bat | The command line needed to invoke the orchestrator script. | +| ProvisioningCommands/DeviceContext/CommandFiles | PowerShell_Example.bat | The single orchestrator script referenced by the command line that handles calling into the required installers or performing any other actions such as expanding cab files. This script must do the required logging. | +| ProvisioningCommands/DeviceContext/CommandFiles | my_powershell_script.ps1 | Other assets referenced by the orchestrator script. In this example there is only one, but there could be many assets referenced here. One common use case is using the orchestrator to call a series of install.exe or setup.exe installers to install several applications. Each of those installers must be included as an asset here. | + + +### Add script to provisioning package + +When you have the batch file written and the referenced assets ready to include, you can add them to a provisioning package in the Window Imaging and Configuration Designer (Windows ICD). + +Using ICD, specify the full details of how the script should be run in the CommandLine setting in the provisioning package. This includes flags or any other parameters that you would normally type on the command line. So for example if the package contained an app installer called install.exe and a script used to automate the install called InstallMyApp.bat, the `ProvisioningCommands/DeviceContext/CommandLine` setting should be configured to: + +``` +cmd /c InstallMyApp.bat +``` + +In ICD, this looks like: + +![Command line in Selected customizations](images/icd-script1.png) + +You also need to add the relevant assets for that command line including the orchestrator script and any other assets it references such as installers or .cab files. + +In ICD, that is done by adding files under the `ProvisioningCommands/DeviceContext/CommandFiles` setting. + +![Command files in Selected customizations](images/icd-script2.png) + +When you are done, [build the package](provisioning-create-package.md#build-package). + + +### Remarks +1. No user interaction or console output is supported via ProvisioningCommands. All work needs to be silent. If your script attempts to do any of the following it will cause undefined behavior, and could put the device in an unrecoverable state if executed during setup or the Out of Box Experience: + a. Echo to console + b. Display anything on the screen + c. Prompt the user with a dialog or install wizard +2. When applied at first boot, provisioning runs early in the boot sequence and before a user context has been established; care must be taken to only include installers that can run at this time. Other installers can be provisioned via a management tool. +3. If the device is put into an unrecoverable state because of a bad script, you can reset it using [recovery options in Windows 10](https://support.microsoft.com/help/12415/windows-10-recovery-options). +4. The CommandFile assets are deployed on the device to a temporary folder unique to each package. + a. For packages added during the out of box experience, this is usually in `%WINDIR%\system32\config\systemprofile\appdata\local\Temp\ProvisioningPkgTmp\<{PackageIdGuid}>\Commands` + b. For packages added by double-clicking on an already deployed device, this will be in the temp folder for the user executing the PPKG: `%TMP%\ProvisioningPkgTmp\<{PackageIdGuid}>\Commands` +5. The command line will be executed with the directory the CommandFiles were deployed to as the working directory. This means you do not need to specific the full path to assets in the command line or from within any script. +6. The runtime provisioning component will attempt to run the scripts from the PPKG at the earliest point possible, depending on the stage when the PPKG was added. For example, if the package was added during the Out-of-Box Experience, it will be run immediately after the package is applied, while the Out-of-Box Experience is still happening. This is before the user account configuration options are presented to the user. A spinning progress dialog will appear and “please wait” will be displayed on the screen. + + >[!NOTE] + >There is a timeout of 30 minutes for the provisioning process at this point. All scripts and installs need to complete within this time. +7. The scripts are executed in the background as the rest of provisioning continues to run. For packages added on existing systems using the double-click to install, there is no notification that provisioning or script execution has completed + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) \ No newline at end of file diff --git a/windows/deploy/provisioning-uninstall-package.md b/windows/deploy/provisioning-uninstall-package.md new file mode 100644 index 0000000000..b3836ede88 --- /dev/null +++ b/windows/deploy/provisioning-uninstall-package.md @@ -0,0 +1,98 @@ +--- +title: Settings changed when you uninstall a provisioning package (Windows 10) +description: This topic lists the settings that are reverted when you uninstall a provisioning package. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Settings changed when you uninstall a provisioning package + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +When you uninstall a provisioning package, only certain settings are revertible. This topic lists the settings that are reverted when you uninstall a provisioning package. + + +As an administrator, you can uninstall by using the **Add or remove a package for work or school** option available under **Settings** > **Accounts** > **Access work or school**. + +When a provisioning package is uninstalled, some of its settings are reverted, which means the value for the setting is changed to the next available or default value. Not all settings, however, are revertible. + +Only settings in the following lists are revertible. + +## Registry-based settings + +The registry-based settings that are revertible when a provisioning package is uninstalled all fall under these categories, which you can find in the Graphical User Interface of the Windows Imaging and Configuration Designer (Windows ICD). + + +- [Wi-Fi Sense](https://msdn.microsoft.com/library/windows/hardware/mt219706.aspx) +- [CountryAndRegion](https://msdn.microsoft.com/library/windows/hardware/mt219726.aspx) +- DeviceManagement / PGList/ LogicalProxyName +- UniversalAppInstall / LaunchAppAtLogin +- [Power](https://msdn.microsoft.com/library/windows/hardware/dn953704.aspx) +- [TabletMode](https://msdn.microsoft.com/library/windows/hardware/mt297550.aspx) +- [Maps](https://msdn.microsoft.com/library/windows/hardware/mt131464.aspx) +- [Browser](https://msdn.microsoft.com/library/windows/hardware/mt573151.aspx) +- [DeviceFormFactor](https://msdn.microsoft.com/library/windows/hardware/mt243449.aspx) +- [USBErrorsOEMOverride](https://msdn.microsoft.com/library/windows/hardware/mt769908.aspx) +- [WeakCharger](https://msdn.microsoft.com/library/windows/hardware/mt346401.aspx) + + + +## CSP-based settings + +Here is the list of revertible settings based on configuration service providers (CSPs). + +[ActiveSync CSP](https://msdn.microsoft.com/library/windows/hardware/dn920017.aspx) +[AppLocker CSP](https://msdn.microsoft.com/library/windows/hardware/dn920019.aspx) +[BrowserFavorite CSP](https://msdn.microsoft.com/library/windows/hardware/dn914758.aspx) +[CertificateStore CSP](https://msdn.microsoft.com/library/windows/hardware/dn920021.aspx) +[ClientCertificateInstall CSP](https://msdn.microsoft.com/library/windows/hardware/dn920023.aspx) +[RootCATrustedCertificates CSP](https://msdn.microsoft.com/library/windows/hardware/dn904970.aspx) +[CM_CellularEntries CSP](https://msdn.microsoft.com/library/windows/hardware/dn914761.aspx) +[CM_ProxyEntries CSP](https://msdn.microsoft.com/library/windows/hardware/dn914762.aspx) +[CMPolicy CSP](https://msdn.microsoft.com/library/windows/hardware/dn914760.aspx) +[CMPolicyEnterprise CSP](https://msdn.microsoft.com/library/windows/hardware/mt706463.aspx) +[EMAIL2 CSP](https://msdn.microsoft.com/library/windows/hardware/dn904953.aspx) +[EnterpriseAPN CSP](https://msdn.microsoft.com/library/windows/hardware/dn958617.aspx) +[EnterpriseAppManagement CSP](https://msdn.microsoft.com/library/windows/hardware/dn904955.aspx) +[EnterpriseDesktopAppManagement CSP](https://msdn.microsoft.com/library/windows/hardware/dn958620.aspx) +[EnterpriseModernAppManagement CSP](https://msdn.microsoft.com/library/windows/hardware/dn904956.aspx) +[NAP CSP](https://msdn.microsoft.com/library/windows/hardware/dn914767.aspx) +[PassportForWork CSP](https://msdn.microsoft.com/library/windows/hardware/dn987099.aspx) +[Provisioning CSP](https://msdn.microsoft.com/library/windows/hardware/mt203665.aspx) +[PROXY CSP](https://msdn.microsoft.com/library/windows/hardware/dn914770.aspx) +[SecureAssessment CSP](https://msdn.microsoft.com/library/windows/hardware/mt718628.aspx) +[VPN CSP](https://msdn.microsoft.com/library/windows/hardware/dn904978.aspx) +[VPNv2 CSP](https://msdn.microsoft.com/library/windows/hardware/dn914776.aspx) +[WiFi CSP](https://msdn.microsoft.com/library/windows/hardware/dn904981.aspx) + + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) + +  + +  + + + + + diff --git a/windows/deploy/troubleshoot-upgrade-analytics.md b/windows/deploy/troubleshoot-upgrade-analytics.md index b6c6f5d87b..468de1e275 100644 --- a/windows/deploy/troubleshoot-upgrade-analytics.md +++ b/windows/deploy/troubleshoot-upgrade-analytics.md @@ -1,4 +1,4 @@ ---- +--- title: Troubleshoot Upgrade Analytics (Windows 10) description: Provides troubleshooting information for Upgrade Analytics. ms.prod: w10 @@ -7,7 +7,7 @@ author: MaggiePucciEvans # Troubleshoot Upgrade Analytics -If you’re having issues seeing data in Upgrade Analytics after running the Upgrade Analytics Deployment script, make sure it completes successfully without any errors. Check the output of the script in the command window and/or log UA_dateTime_machineName.txt to ensure all steps were completed successfully. In addition, we recommend that you wait at least 48 hours before checking OMS for data after the script first completes without reporting any error. +If you’re having issues seeing data in Upgrade Analytics after running the Upgrade Analytics Deployment script, make sure it completes successfully without any errors. Check the output of the script in the command window and/or log UA_dateTime_machineName.txt to ensure all steps were completed successfully. In addition, we recommend that you wait at least 48 hours before checking OMS for data after the script first completes without reporting any error. If you still don’t see data in Upgrade Analytics, follow these steps: @@ -25,9 +25,14 @@ If you still don’t see data in Upgrade Analytics, follow these steps: If you want to stop using Upgrade Analytics and stop sending telemetry data to Microsoft, follow these steps: -1. Unsubscribe from the Upgrade Analytics solution in the OMS portal. +1. Unsubscribe from the Upgrade Analytics solution in the OMS portal. In the OMS portal, go to **Settings** > **Connected Sources** > **Windows Telemetry** and choose the **Unsubscribe** option. -2. Disable the Customer Experience Improvement Program on computers running Windows 7 SP1 or 8.1. On computers running Windows 10, set the telemetry level to Security. + ![Upgrade Analytics unsubscribe](images/upgrade-analytics-unsubscribe.png) -3. Delete the CommercialDataOptin key in *HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\DataCollection* +2. Disable the Commercial Data Opt-in Key on computers running Windows 7 SP1 or 8.1. On computers running Windows 10, set the telemetry level to **Security**: + **Windows 7 and Windows 8.1**: Delete CommercialDataOptIn registry property from *HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection* + **Windows 10**: Follow the instructions in the [Configure Windows telemetry in your organization](https://technet.microsoft.com/itpro/windows/manage/configure-windows-telemetry-in-your-organization#enterprise-management) topic. + +3. If you enabled **Internet Explorer Site Discovery**, you can disable Internet Explorer data collection by setting the *IEDataOptIn* registry key to value "0". The IEDataOptIn key can be found under: *HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection*. +4. You can also remove the “CommercialId” key from: "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection". **This is an optional step**. diff --git a/windows/deploy/upgrade-analytics-get-started.md b/windows/deploy/upgrade-analytics-get-started.md index 188a73c081..1455ee624e 100644 --- a/windows/deploy/upgrade-analytics-get-started.md +++ b/windows/deploy/upgrade-analytics-get-started.md @@ -1,4 +1,4 @@ ---- +--- title: Get started with Upgrade Analytics (Windows 10) description: Explains how to get started with Upgrade Analytics. ms.prod: w10 @@ -53,7 +53,7 @@ If you are not using OMS: After you’ve signed in to Operations Management Suite and added the Upgrade Analytics solution to your workspace, complete the following tasks to establish communication and enable data sharing between user computers, Microsoft secure data centers, and Upgrade Analytics. -## Generate your commercial ID key +## Generate your commercial ID key Microsoft uses a unique commercial ID to map information from user computers to your OMS workspace. Generate your commercial ID key in OMS and then deploy it to user computers. @@ -77,14 +77,14 @@ For Upgrade Analytics to receive and display upgrade readiness data from Microso To enable data sharing, whitelist the following endpoints. Note that you may need to get approval from your security group to do this. -Note: The compatibility update KB runs under the computer’s system account and does not support user authenticated proxies. +Note: The compatibility update KB runs under the computer’s system account. If you are using user authenticated proxies, read [this blog post](https://go.microsoft.com/fwlink/?linkid=838688) to learn what you need to do to run it under the logged on user account. | **Endpoint** | **Function** | |---------------------------------------------------------|-----------| -| `https://v10.vortex-win.data.microsoft.com/collect/v1` | Connected User Experience and Telemetry component endpoint. User computers send data to Microsoft through this endpoint. | -| `https://settings-win.data.microsoft.com/settings` | Enables the compatibility update KB to send data to Microsoft. | -| `https://go.microsoft.com/fwlink/?LinkID=544713`
    `https://compatexchange1.trafficmanager.net/CompatibilityExchangeService.svc/extended` | This service provides driver information about whether there will be a driver available post-upgrade for the hardware on the system. | -| `https://vortex.data.microsoft.com/health/keepalive`
    `https://settings.data.microsoft.com/qos`
    `https://compatexchange1.trafficmanager.net/CompatibilityExchangeService.svc` | These endpoints are used to validate that user computers are sharing data with Microsoft. | +| `https://v10.vortex-win.data.microsoft.com/collect/v1`

    `https://Vortex-win.data.microsoft.com/health/keepalive` | Connected User Experience and Telemetry component endpoint. User computers send data to Microsoft through this endpoint. | +| `https://settings.data.microsoft.com/qos` | Enables the compatibility update KB to send data to Microsoft. | +| `https://go.microsoft.com/fwlink/?LinkID=544713`
    `https://compatexchange1.trafficmanager.net/CompatibilityExchangeService.svc` | This service provides driver information about whether there will be a driver available post-upgrade for the hardware on the system. | + ## Deploy the compatibility update and related KBs @@ -92,8 +92,8 @@ The compatibility update KB scans your computers and enables application usage t | **Operating System** | **KBs** | |----------------------|-----------------------------------------------------------------------------| -| Windows 8.1 | [KB 2976978](http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB2976978)
    Performs diagnostics on the Windows 8.1 systems that participate in the Windows Customer Experience Improvement Program. These diagnostics help determine whether compatibility issues may be encountered when the latest Windows operating system is installed.
    For more information about this KB, see
    [KB 3150513](https://catalog.update.microsoft.com/v7/site/Search.aspx?q=3150513)
    Provides updated configuration and definitions for compatibility diagnostics performed on the system.
    For more information about this KB, see
    NOTE: KB2976978 must be installed before you can download and install KB3150513. | -| Windows 7 SP1 | [KB2952664](http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB2952664)
    Performs diagnostics on the Windows 7 SP1 systems that participate in the Windows Customer Experience Improvement Program. These diagnostics help determine whether compatibility issues may be encountered when the latest Windows operating system is installed.
    For more information about this KB, see
    [KB 3150513](https://catalog.update.microsoft.com/v7/site/Search.aspx?q=3150513)
    Provides updated configuration and definitions for compatibility diagnostics performed on the system.
    For more information about this KB, see
    NOTE: KB2952664 must be installed before you can download and install KB3150513. | +| Windows 8.1 | [KB 2976978](http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB2976978)
    Performs diagnostics on the Windows 8.1 systems that participate in the Windows Customer Experience Improvement Program. These diagnostics help determine whether compatibility issues may be encountered when the latest Windows operating system is installed.
    For more information about this KB, see

    [KB 3150513](https://catalog.update.microsoft.com/v7/site/Search.aspx?q=3150513)
    Provides updated configuration and definitions for compatibility diagnostics performed on the system.
    For more information about this KB, see
    NOTE: KB2976978 must be installed before you can download and install KB3150513. | +| Windows 7 SP1 | [KB2952664](http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB2952664)
    Performs diagnostics on the Windows 7 SP1 systems that participate in the Windows Customer Experience Improvement Program. These diagnostics help determine whether compatibility issues may be encountered when the latest Windows operating system is installed.
    For more information about this KB, see

    [KB 3150513](https://catalog.update.microsoft.com/v7/site/Search.aspx?q=3150513)
    Provides updated configuration and definitions for compatibility diagnostics performed on the system.
    For more information about this KB, see
    NOTE: KB2952664 must be installed before you can download and install KB3150513. | IMPORTANT: Restart user computers after you install the compatibility update KBs for the first time. @@ -117,7 +117,7 @@ To ensure that user computers are receiving the most up to date data from Micros To automate many of the steps outlined above and to troubleshoot data sharing issues, you can run the [Upgrade Analytics deployment script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409), developed by Microsoft. -> The following guidance applies to version 11.30.16 or later of the Upgrade Analytics deployment script. If you are using an older version, please download the latest from [Download Center](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409). +> The following guidance applies to version 11.11.16 or later of the Upgrade Analytics deployment script. If you are using an older version, please download the latest from [Download Center](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409). The Upgrade Analytics deployment script does the following: @@ -137,7 +137,7 @@ The Upgrade Analytics deployment script does the following: To run the Upgrade Analytics deployment script: -1. Download the [Upgrade Analytics deployment script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) and extract UpgradeAnalytics.zip. Inside, there are two folders: Pilot and Deployment. The Pilot folder contains advanced logging that can help troubleshoot issues and is inteded to be run from an elevated command prompt. The Deployment folder offers a lightweight script intended for broad deployment through ConfigMgr or other software deployment system. We recommend manually running the Pilot version of the script on 5-10 machines to verify that everything is configured correctly. Once you have confirmed that data is flowing successfully, proceed to run the Deployment version throughout your organization. +1. Download the [Upgrade Analytics deployment script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) and extract UpgradeAnalytics.zip. Inside, there are two folders: Pilot and Deployment. The Pilot folder contains advanced logging that can help troubleshoot issues and is intended to be run from an elevated command prompt. The Deployment folder offers a lightweight script intended for broad deployment through ConfigMgr or other software deployment system. We recommend manually running the Pilot version of the script on 5-10 machines to verify that everything is configured correctly. Once you have confirmed that data is flowing successfully, proceed to run the Deployment version throughout your organization. 2. Edit the following parameters in RunConfig.bat: @@ -165,40 +165,45 @@ To run the Upgrade Analytics deployment script: 4. After you finish editing the parameters in RunConfig.bat, you are ready to run the script. If you are using the Pilot version, run RunConfig.bat from an elevated command prompt. If you are using the Deployment version, use ConfigMgr or other software deployment service to run RunConfig.bat as system. -The deployment script displays the following exit codes to let you know if it was successful, or if an error was encountered. +The deployment script displays the following exit codes to let you know if it was successful, or if an error was encountered.

    -
    Exit codeMeaning -
    0Success -
    1Unexpected error occurred while executing the script -
    2Error when logging to console. $logMode = 0. -
    3Error when logging to console and file. $logMode = 1. -
    4Error when logging to file. $logMode = 2. -
    5Error when logging to console and file. $logMode = unknown. -
    6The commercialID parameter is set to unknown. Modify the script. -
    7Function -CheckCommercialId: Unexpected failure. -
    8Failure to create registry key path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection. -
    9Error when writing CommercialId to registry. -
    10Error when writing CommercialDataOptIn to registry. -
    11Function -SetupCommercialId: Unexpected failure. -
    12Can’t connect to Microsoft – Vortex. Check your network/proxy settings. -
    13Can’t connect to Microsoft – setting. Check your network/proxy settings. -
    14Can’t connect to Microsoft – compatexchange. Check your network/proxy settings. -
    15Error connecting to Microsoft. Check your network/proxy settings. -
    16Machine requires reboot. -
    17Function -CheckRebootRequired: Unexpected failure. -
    18Outdated compatibility update KB package. Update via Windows Update/WSUS. -
    19This machine doesn’t have the proper KBs installed. Make sure you have recent compatibility update KB downloaded. -
    20Error writing RequestAllAppraiserVersions registry key. -
    21Function – SetRequestAllAppraiserVersions: Unexpected failure. -
    22RunAppraiser failed with unexpected exception. -
    23Error finding system variable %WINDIR%. -
    24SetIEDataOptIn failed when writing IEDataOptIn to registry. -
    25SetIEDataOptIn failed with unexpected exception. -
    26The operating system is LTSB SKU. The script does not support LTSB SKUs. -
    27The operating system is Server SKU. The script does not support Server SKUs. +
    Exit codeMeaningSuggested fix +
    0Success +
    1Unexpected error occurred while executing the script The files in the deployment script are likely corrupted. Download the [latest script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) from the download center and try again. +
    2Error when logging to console. $logMode = 0. Try changing the $logMode value to **1** and try again. +
    3Error when logging to console and file. $logMode = 1.Verify that you have set the logPath parameter in RunConfig.bat, and that the configuration script has access to connect and write to this location. +
    4Error when logging to file. $logMode = 2.Verify that you have set the logPath parameter in RunConfig.bat, and that the configuration script has access to connect and write to this location. +
    5Error when logging to console and file. $logMode = unknown.Verify that you have set the logPath parameter in RunConfig.bat, and that the configuration script has access to connect and write to this location. +
    6The commercialID parameter is set to unknown. Modify the script.Set the value for CommercialID in runconfig.bat file. +
    8Failure to create registry key path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection. Verify that the configuration script has access to this location. +
    9Error when writing CommercialId to registry.Verify that the configuration script has access to this location. +
    10Error when writing CommercialDataOptIn to registry.Verify that the configuration script has access to this location. +
    11Function -SetupCommercialId: Unexpected failure.Verify that the configuration script has access to this location. +
    12Can’t connect to Microsoft – Vortex. Check your network/proxy settings.Verify that the required endpoints are whitelisted correctly. +
    13Can’t connect to Microsoft – setting. Verify that the required endpoints are whitelisted correctly. +
    14Can’t connect to Microsoft – compatexchange. Verify that the required endpoints are whitelisted. +
    15Error connecting to Microsoft:Unexpected failure. +
    16Machine requires reboot. The reboot is required to complete the installation of the compatibility update and related KBs. Reboot the machine before running the Upgrade Analytics deployment script. +
    17Function -CheckRebootRequired: Unexpected failure.The reboot is required to complete the installation of the compatibility update and related KBs. Reboot the machine before running the Upgrade Analytics deployment script. +
    18Outdated compatibility update KB package. Update via Windows Update/WSUS. +The configuration script detected a version of the Compatibility update module that is older than the minimum required to correctly collect the data required by Upgrade Analytics solution. Use the latest version of the Compatibility update for Windows 7 SP1/Windows 8.1. +
    19The compatibility update failed with unexpected exception. The files in the deployment script are likely corrupted. Download the [latest script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) from the download center and try again. +
    20Error writing RequestAllAppraiserVersions registry key. This registry key is required for data collection to work correctly. Verify that the configuration script has access to this location. +
    21Function – SetRequestAllAppraiserVersions: Unexpected failure.This registry key is required for data collection to work correctly. Verify that the configuration script has access to this location. +
    22RunAppraiser failed with unexpected exception. Check %windir%\System32 directory for a file called CompatTelRunner.exe. If the file does not exist, reinstall the required compatibility updates which include this file, and check your organization group policy to make sure it does not remove this file. +
    23Error finding system variable %WINDIR%. Make sure that this environment variable is available on the machine. +
    24SetIEDataOptIn failed when writing IEDataOptIn to registry. Verify that the deployment script in running in a context that has access to the registry key. +
    25SetIEDataOptIn failed with unexpected exception. The files in the deployment script are likely corrupted. Download the latest script from the [download center](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) and try again. +
    26The operating system is Server or LTSB SKU. The script does not support Server or LTSB SKUs. +
    27The script is not running under System account.The Upgrade Analytics configuration script must be run as system. +
    28Could not create log file at the specified logPath. Make sure the deployment script has access to the location specified in the logPath parameter. +
    29 Connectivity check failed for proxy authentication. Install the cumulative updates on the machine and enable the `DisableEnterpriseAuthProxy` authentication proxy setting. The `DisableEnterpriseAuthProxy` setting is enabled by default for Windows 7. For Windows 8.1 machines, set the `DisableEnterpriseAuthProxy` setting to **0** (not disabled). For more information on authentication proxy support, see [this blog post](https://go.microsoft.com/fwlink/?linkid=838688). +
    30Connectivity check failed. Registry key property `DisableEnterpriseAuthProxy` is not enabled. The `DisableEnterpriseAuthProxy` setting is enabled by default for Windows 7. For Windows 8.1 machines, set the `DisableEnterpriseAuthProxy` setting to **0** (not disabled). For more information on authentication proxy support, see [this blog post](https://go.microsoft.com/fwlink/?linkid=838688). +
    31There is more than one instance of the Upgrade Analytics data collector running at the same time on this machine. Use the Windows Task Manager to check if CompatTelRunner.exe is running, and wait until it has completed to rerun the script. +**The Upgrade Analytics task is scheduled to run daily at 3 a.m.**
    @@ -206,4 +211,3 @@ The deployment script displays the following exit codes to let you know if it wa ## Seeing data from computers in Upgrade Analytics After data is sent from computers to Microsoft, it generally takes 48 hours for the data to populate in Upgrade Analytics. The compatibility update KB takes several minutes to run. If the KB does not get a chance to finish running or if the computers are inaccessible (turned off or sleeping for example), data will take longer to populate in Upgrade Analytics. For this reason, you can expect most your computers to be populated in OMS in about 1-2 weeks after deploying the KB and configuration to user computers. - diff --git a/windows/deploy/upgrade-analytics-requirements.md b/windows/deploy/upgrade-analytics-requirements.md index 3d55cd49a6..0dd920f998 100644 --- a/windows/deploy/upgrade-analytics-requirements.md +++ b/windows/deploy/upgrade-analytics-requirements.md @@ -1,4 +1,4 @@ ---- +--- title: Upgrade Analytics requirements (Windows 10) description: Provides requirements for Upgrade Analytics. ms.prod: w10 @@ -43,6 +43,8 @@ See [Windows 7, Windows 8, and Windows 8.1 appraiser telemetry events and fields `https://v10.vortex-win.data.microsoft.com/collect/v1` +`https://vortex-win.data.microsoft.com/health/keepalive` + `https://settings-win.data.microsoft.com/settings` `https://vortex.data.microsoft.com/health/keepalive` diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md new file mode 100644 index 0000000000..057d16d9f6 --- /dev/null +++ b/windows/deploy/windows-10-poc-mdt.md @@ -0,0 +1,634 @@ +--- +title: Step by step - Deploy Windows 10 in a test lab using MDT +description: Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit (MDT) +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: deploy +author: greg-lindsay +--- + + +# Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit + +**Applies to** + +- Windows 10 + +**Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in the following guide: +- [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md) + +Please complete all steps in the prerequisite guide before starting this guide. This guide requires about 5 hours to complete, but can require less time or more time depending on the speed of the Hyper-V host. After completing the current guide, also see the companion guide: +- [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) + +The PoC environment is a virtual network running on Hyper-V with three virtual machines (VMs): +- **DC1**: A contoso.com domain controller, DNS server, and DHCP server. +- **SRV1**: A dual-homed contoso.com domain member server, DNS server, and default gateway providing NAT service for the PoC network. +- **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been shadow-copied from a physical computer on your corporate network. + +>This guide uses the Hyper-V server role. If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. + +## In this guide + +This guide provides instructions to install and configure the Microsoft Deployment Toolkit (MDT) to deploy a Windows 10 image. + +Topics and procedures in this guide are summarized in the following table. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed. + +
    + + +
    TopicDescriptionTime + +
    [About MDT](#about-mdt)A high-level overview of the Microsoft Deployment Toolkit (MDT).Informational +
    [Install MDT](#install-mdt)Download and install MDT.40 minutes +
    [Create a deployment share and reference image](#create-a-deployment-share-and-reference-image)A reference image is created to serve as the template for deploying new images.90 minutes +
    [Deploy a Windows 10 image using MDT](#deploy-a-windows-10-image-using-mdt)The reference image is deployed in the PoC environment.60 minutes +
    [Refresh a computer with Windows 10](#refresh-a-computer-with-windows-10)Export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings.60 minutes +
    [Replace a computer with Windows 10](#replace-a-computer-with-windows-10)Back up an existing client computer, then restore this backup to a new computer.60 minutes +
    [Troubleshooting logs, events, and utilities](#troubleshooting-logs-events-and-utilities)Log locations and troubleshooting hints.Informational +
    + +
    + +## About MDT + +MDT performs deployments by using the Lite Touch Installation (LTI), Zero Touch Installation (ZTI), and User-Driven Installation (UDI) deployment methods. +- LTI is the deployment method used in the current guide, requiring only MDT and performed with a minimum amount of user interaction. +- ZTI is fully automated, requiring no user interaction and is performed using MDT and System Center Configuration Manager. After completing the steps in the current guide, see [Step by step: Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) to use the ZTI deployment method in the PoC environment. +- UDI requires manual intervention to respond to installation prompts such as machine name, password and language settings. UDI requires MDT and System Center Configuration Manager. + +## Install MDT + +1. On SRV1, temporarily disable IE Enhanced Security Configuration for Administrators by typing the following commands at an elevated Windows PowerShell prompt: + + ``` + $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" + Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 0 + Stop-Process -Name Explorer + ``` +2. Download and install the 64-bit version of [Microsoft Deployment Toolkit (MDT)](https://www.microsoft.com/en-us/download/details.aspx?id=54259) on SRV1 using the default options. As of the writing of this guide, the latest version of MDT was 8443. + +3. Download and install the latest [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit) on SRV1 using the default installation settings. The current version is the ADK for Windows 10, version 1607. Installation might require several minutes to acquire all components. + +3. If desired, re-enable IE Enhanced Security Configuration: + + ``` + Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 1 + Stop-Process -Name Explorer + ``` + +## Create a deployment share and reference image + +A reference image serves as the foundation for Windows 10 devices in your organization. + +1. In [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md), the Windows 10 Enterprise .iso file was saved to the c:\VHD directory as **c:\VHD\w10-enterprise.iso**. The first step in creating a deployment share is to mount this file on SRV1. To mount the Windows 10 Enterprise DVD on SRV1, open an elevated Windows PowerShell prompt on the Hyper-V host computer and type the following command: + + ``` + Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\w10-enterprise.iso + ``` +2. On SRV1, verify that the Windows Enterprise installation DVD is mounted as drive letter D. + +3. The Windows 10 Enterprise installation files will be used to create a deployment share on SRV1 using the MDT deployment workbench. To open the deployment workbench, click **Start**, type **deployment**, and then click **Deployment Workbench**. + +4. To enable quick access to the application, right-click **Deployment Workbench** on the taskbar and then click **Pin this program to the taskbar**. + +5. In the Deployment Workbench console, right-click **Deployment Shares** and select **New Deployment Share**. + +6. Use the following settings for the New Deployment Share Wizard: + - Deployment share path: **C:\MDTBuildLab**
    + - Share name: **MDTBuildLab$**
    + - Deployment share description: **MDT build lab**
    + - Options: click **Next** to accept the default
    + - Summary: click **Next**
    + - Progress: settings will be applied
    + - Confirmation: click **Finish** + + +7. Expand the **Deployment Shares** node, and then expand **MDT build lab**. + +8. Right-click the **Operating Systems** node, and then click **New Folder**. Name the new folder **Windows 10**. Complete the wizard using default values and click **Finish**. + +9. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. + +10. Use the following settings for the Import Operating System Wizard: + - OS Type: **Full set of source files**
    + - Source: **D:\\**
    + - Destination: **W10Ent_x64**
    + - Summary: click **Next** + - Progress: wait for files to be copied + - Confirmation: click **Finish** + + >For purposes of this test lab, we will only add the prerequisite .NET Framework feature. Commerical applications (ex: Microsoft Office) will not be added to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. + +11. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: + - Task sequence ID: **REFW10X64-001**
    + - Task sequence name: **Windows 10 Enterprise x64 Default Image**
    + - Task sequence comments: **Reference Build**
    + - Template: **Standard Client Task Sequence** + - Select OS: click **Windows 10 Enterprise Evaluation in W10Ent_x64 install.wim** + - Specify Product Key: **Do not specify a product key at this time** + - Full Name: **Contoso** + - Organization: **Contoso** + - Internet Explorer home page: **http://www.contoso.com** + - Admin Password: **Do not specify an Administrator password at this time** + - Summary: click **Next** + - Confirmation: click **Finish** + + +12. Edit the task sequence to add the Microsoft NET Framework 3.5, which is required by many applications. To edit the task sequence, double-click **Windows 10 Enterprise x64 Default Image** that was created in the previous step. + +13. Click the **Task Sequence** tab. Under **State Restore** click **Tatto** to highlight it, then click **Add** and choose **New Group**. + +14. On the Properties tab of the group that was created in the previous step, change the Name from **New Group** to **Custom Tasks (Pre-Windows Update)** and then click **Apply**. Click another location in the window to see the name change. + +15. Click the **Custom Tasks (Pre-Windows Update)** group again, click **Add**, point to **Roles**, and then click **Install Roles and Features**. + +16. Under **Select the roles and features that should be installed**, select **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** and then click **Apply**. + +17. Enable Windows Update in the task sequence by clicking the **Windows Update (Post-Application Installation)** step, clicking the **Options** tab, and clearing the **Disable this step** checkbox. + + >Note: Since we are not installing applications in this test lab, there is no need to enable the Windows Update Pre-Application Installation step. However, you should enable this step if you are also installing applications. + +18. Click **OK** to complete editing the task sequence. + +19. The next step is to configure the MDT deployment share rules. To configure rules in the Deployment Workbench, right-click **MDT build lab (C:\MDTBuildLab)** and click **Properties**, and then click the **Rules** tab. + +20. Replace the default rules with the following text: + + ``` + [Settings] + Priority=Default + + [Default] + _SMSTSORGNAME=Contoso + UserDataLocation=NONE + DoCapture=YES + OSInstall=Y + AdminPassword=pass@word1 + TimeZoneName=Pacific Standard Time + OSDComputername=#Left("PC-%SerialNumber%",7)# + JoinWorkgroup=WORKGROUP + HideShell=YES + FinishAction=SHUTDOWN + DoNotCreateExtraPartition=YES + ApplyGPOPack=NO + SkipAdminPassword=YES + SkipProductKey=YES + SkipComputerName=YES + SkipDomainMembership=YES + SkipUserData=YES + SkipLocaleSelection=YES + SkipTaskSequence=NO + SkipTimeZone=YES + SkipApplications=YES + SkipBitLocker=YES + SkipSummary=YES + SkipRoles=YES + SkipCapture=NO + SkipFinalSummary=NO + ``` + +21. Click **Apply** and then click **Edit Bootstrap.ini**. Replace the contents of the Bootstrap.ini file with the following text, and save the file: + + ``` + [Settings] + Priority=Default + + [Default] + DeployRoot=\\SRV1\MDTBuildLab$ + UserDomain=CONTOSO + UserID=MDT_BA + UserPassword=pass@word1 + SkipBDDWelcome=YES + ``` + +22. Click **OK** to complete the configuration of the deployment share. + +23. Right-click **MDT build lab (C:\MDTBuildLab)** and then click **Update Deployment Share**. + +24. Accept all default values in the Update Deployment Share Wizard by clicking **Next** twice. The update process will take 5 to 10 minutes. When it has completed, click **Finish**. + +25. Copy **c:\MDTBuildLab\Boot\LiteTouchPE_x86.iso** on SRV1 to the **c:\VHD** directory on the Hyper-V host computer. Note that in MDT, the x86 boot image can deploy both x86 and x64 operating systems, except on computers based on Unified Extensible Firmware Interface (UEFI). + + >Hint: To copy the file, right-click the **LiteTouchPE_x86.iso** file and click **Copy** on SRV1, then open the **c:\VHD** folder on the Hyper-V host, right-click inside the folder and click **Paste**. + +26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: + +
    +
    +
    +    New-VM REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB
    +    Set-VMMemory REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
    +    Set-VMDvdDrive REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
    +    Start-VM REFW10X64-001
    +    vmconnect localhost REFW10X64-001
    +	
    +
    + + The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. + +27. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. + +28. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes, and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. + + Additional system restarts will occur to complete updating and preparing the operating system. Setup will complete the following procedures: + + - Install the Windows 10 Enterprise operating system. + - Install added applications, roles, and features. + - Update the operating system using Windows Update (or WSUS if optionally specified). + - Stage Windows PE on the local disk. + - Run System Preparation (Sysprep) and reboot into Windows PE. + - Capture the installation to a Windows Imaging (WIM) file. + - Turn off the virtual machine.

    + + This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server (SRV1). The file name is **REFW10X64-001.wim**. + +## Deploy a Windows 10 image using MDT + +This procedure will demonstrate how to deploy the reference image to the PoC environment using MDT. + +1. On SRV1, open the MDT Deployment Workbench console, right-click **Deployment Shares**, and then click **New Deployment Share**. Use the following values in the New Deployment Share Wizard: + - **Deployment share path**: C:\MDTProd + - **Share name**: MDTProd$ + - **Deployment share description**: MDT Production + - **Options**: accept the default + + +2. Click **Next**, verify the new deployment share was added successfully, then click **Finish**. + +3. In the Deployment Workbench console, expand the MDT Production deployment share, right-click **Operating Systems**, and then click **New Folder**. Name the new folder **Windows 10** and complete the wizard using default values. + +4. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. + +5. On the **OS Type** page, choose **Custom image file** and then click **Next**. + +6. On the Image page, browse to the **C:\MDTBuildLab\Captures\REFW10X64-001.wim** file created in the previous procedure, click **Open**, and then click **Next**. + +7. On the Setup page, select **Copy Windows 7, Windows Server 2008 R2, or later setup files from the specified path**. + +8. Under **Setup source directory**, browse to **C:\MDTBuildLab\Operating Systems\W10Ent_x64** click **OK** and then click **Next**. + +9. On the Destination page, accept the default Destination directory name of **REFW10X64-001**, click **Next** twice, wait for the import process to complete, and then click **Finish**. + +10. In the **Operating Systems** > **Windows 10** node, double-click the operating system that was added to view its properties. Change the operating system name to **Windows 10 Enterprise x64 Custom Image** and then click **OK**. See the following example: + + ![custom image](images/image.png) + + +### Create the deployment task sequence + +1. Using the Deployment Workbench, right-click **Task Sequences** under the **MDT Production** node, click **New Folder** and create a folder with the name: **Windows 10**. + +2. Right-click the **Windows 10** folder created in the previous step, and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: + - Task sequence ID: W10-X64-001 + - Task sequence name: Windows 10 Enterprise x64 Custom Image + - Task sequence comments: Production Image + - Select Template: Standard Client Task Sequence + - Select OS: Windows 10 Enterprise x64 Custom Image + - Specify Product Key: Do not specify a product key at this time + - Full Name: Contoso + - Organization: Contoso + - Internet Explorer home page: http://www.contoso.com + - Admin Password: pass@word1 + +### Configure the MDT production deployment share + +1. On SRV1, open an elevated Windows PowerShell prompt and type the following commands: + + ``` + copy-item "C:\Program Files\Microsoft Deployment Toolkit\Templates\Bootstrap.ini" C:\MDTProd\Control\Bootstrap.ini -Force + copy-item "C:\Program Files\Microsoft Deployment Toolkit\Templates\CustomSettings.ini" C:\MDTProd\Control\CustomSettings.ini -Force + ``` +2. In the Deployment Workbench console on SRV1, right-click the **MDT Production** deployment share and then click **Properties**. + +3. Click the **Rules** tab and replace the rules with the following text (don't click OK yet): + + ``` + [Settings] + Priority=Default + + [Default] + _SMSTSORGNAME=Contoso + OSInstall=YES + UserDataLocation=AUTO + TimeZoneName=Pacific Standard Time + OSDComputername=#Left("PC-%SerialNumber%",7)# + AdminPassword=pass@word1 + JoinDomain=contoso.com + DomainAdmin=administrator + DomainAdminDomain=CONTOSO + DomainAdminPassword=pass@word1 + ScanStateArgs=/ue:*\* /ui:CONTOSO\* + USMTMigFiles001=MigApp.xml + USMTMigFiles002=MigUser.xml + HideShell=YES + ApplyGPOPack=NO + SkipAppsOnUpgrade=NO + SkipAdminPassword=YES + SkipProductKey=YES + SkipComputerName=YES + SkipDomainMembership=YES + SkipUserData=YES + SkipLocaleSelection=YES + SkipTaskSequence=NO + SkipTimeZone=YES + SkipApplications=NO + SkipBitLocker=YES + SkipSummary=YES + SkipCapture=YES + SkipFinalSummary=NO + EventService=http://SRV1:9800 + ``` + **Note**: The contents of the Rules tab are added to c:\MDTProd\Control\CustomSettings.ini. + + >In this example a **MachineObjectOU** entry is not provided. Normally this entry describes the specific OU where new client computer objects are created in Active Directory. However, for the purposes of this test lab clients are added to the default computers OU, which requires that this parameter be unspecified. + + If desired, edit the follow line to include or exclude other users when migrating settings. Currently, the command is set to user exclude (ue) all users except for CONTOSO users specified by the user include option (ui): + + ``` + ScanStateArgs=/ue:*\* /ui:CONTOSO\* + ``` + + For example, to migrate **all** users on the computer, replace this line with the following: + + ``` + ScanStateArgs=/all + ``` + + For more information, see [ScanState Syntax](https://technet.microsoft.com/library/cc749015.aspx). + +4. Click **Edit Bootstap.ini** and replace text in the file with the following text: + + ``` + [Settings] + Priority=Default + + [Default] + DeployRoot=\\SRV1\MDTProd$ + UserDomain=CONTOSO + UserID=MDT_BA + UserPassword=pass@word1 + SkipBDDWelcome=YES + ``` +5. Click **OK** when finished. + +### Update the deployment share + +1. Right-click the **MDT Production** deployment share and then click **Update Deployment Share**. + +2. Use the default options for the Update Deployment Share Wizard. The update process requires 5 to 10 minutes to complete. + +3. Click **Finish** when the update is complete. + +### Enable deployment monitoring + +1. In the Deployment Workbench console, right-click **MDT Production** and then click **Properties**. + +2. On the **Monitoring** tab, select the **Enable monitoring for this deployment share** checkbox, and then click **OK**. + +3. Verify the monitoring service is working as expected by opening the following link on SRV1 in Internet Explorer: [http://localhost:9800/MDTMonitorEvent/](http://localhost:9800/MDTMonitorEvent/). If you do not see "**You have created a service**" at the top of the page, see [Troubleshooting MDT 2012 Monitoring](https://blogs.technet.microsoft.com/mniehaus/2012/05/10/troubleshooting-mdt-2012-monitoring/). + +4. Close Internet Explorer. + +### Configure Windows Deployment Services + +1. Initialize Windows Deployment Services (WDS) by typing the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + WDSUTIL /Verbose /Progress /Initialize-Server /Server:SRV1 /RemInst:"C:\RemoteInstall" + WDSUTIL /Set-Server /AnswerClients:All + ``` + +2. Click **Start**, type **Windows Deployment**, and then click **Windows Deployment Services**. + +3. In the Windows Deployment Services console, expand **Servers**, expand **SRV1.contoso.com**, right-click **Boot Images**, and then click **Add Boot Image**. + +4. Browse to the **C:\MDTProd\Boot\LiteTouchPE_x64.wim** file, click **Open**, click **Next**, and accept the defaults in the Add Image Wizard. Click **Finish** to complete adding a boot image. + +### Deploy the client image + +1. Before using WDS to deploy a client image, you must temporarily disable the external network adapter on SRV1. This is just an artifact of the lab environment. In a typical deployment environment WDS would not be installed on the default gateway. + + >**Note**: Do not disable the *internal* network interface. To quickly view IP addresses and interface names configured on the VM, type **Get-NetIPAddress | ft interfacealias, ipaddress** + + Assuming the external interface is named "Ethernet 2", to disable the *external* interface on SRV1, open a Windows PowerShell prompt on SRV1 and type the following command: + + ``` + Disable-NetAdapter "Ethernet 2" -Confirm:$false + ``` + +2. Next, switch to the Hyper-V host and open an elevated Windows PowerShell prompt. Create a generation 2 VM on the Hyper-V host that will load its OS using PXE. To create this VM, type the following commands at an elevated Windows PowerShell prompt: + + ``` + New-VM –Name "PC2" –NewVHDPath "c:\vhd\pc2.vhdx" -NewVHDSizeBytes 60GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 + Set-VMMemory -VMName "PC2" -DynamicMemoryEnabled $true -MinimumBytes 720MB -MaximumBytes 2048MB -Buffer 20 + ``` + >Dynamic memory is configured on the VM to conserve resources. However, this can cause memory allocation to be reduced past what is required to install an operating system. If this happens, reset the VM and begin the OS installation task sequence immediately. This ensures the VM memory allocation is not decreased too much while it is idle. + +3. Start the new VM and connect to it: + + ``` + Start-VM PC2 + vmconnect localhost PC2 + ``` +4. When prompted, hit ENTER to start the network boot process. + +5. In the Windows Deployment Wizard, choose the **Windows 10 Enterprise x64 Custom Image** and then click **Next**. + +6. After MDT lite touch installation has started, be sure to re-enable the external network adapter on SRV1. This is needed so the client can use Windows Update after operating system installation is complete.To re-enable the external network interface, open an elevated Windows PowerShell prompt on SRV1 and type the following command: + + ``` + Enable-NetAdapter "Ethernet 2" + ``` +7. On SRV1, in the Deployment Workbench console, click on **Monitoring** and view the status of installation. Right-click **Monitoring** and click **Refresh** if no data is displayed. +8. OS installation requires about 10 minutes. When the installation is complete, the system will reboot automatically, configure devices, and install updates, requiring another 10-20 minutes. When the new client computer is finished updating, click **Finish**. You will be automatically signed in to the local computer as administrator. + + ![finish](images/deploy-finish.png) + + +This completes the demonstration of how to deploy a reference image to the network. To conserve resources, turn off the PC2 VM before starting the next section. + +## Refresh a computer with Windows 10 + +This section will demonstrate how to export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings. The scenario will use PC1, a computer that was cloned from a physical device to a VM, as described in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md). + +If the PC1 VM is not already running, then start and connect to it: + + ``` + Start-VM PC1 + vmconnect localhost PC1 + ``` + +1. Switch back to the Hyper-V host and create a checkpoint for the PC1 VM so that it can easily be reverted to its current state for troubleshooting purposes and to perform additional scenarios. Checkpoints are also known as snapshots. To create a checkpoint for the PC1 VM, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Checkpoint-VM -Name PC1 -SnapshotName BeginState + ``` + +2. Sign on to PC1 using the CONTOSO\Administrator account. + + >Specify **contoso\administrator** as the user name to ensure you do not sign on using the local administrator account. You must sign in with this account so that you have access to the deployment share. + +3. Open an elevated command prompt on PC1 and type the following: + + ``` + cscript \\SRV1\MDTProd$\Scripts\Litetouch.vbs + ``` + + **Note**: Litetouch.vbs must be able to create the C:\MININT directory on the local computer. + +4. Choose the **Windows 10 Enterprise x64 Custom Image** and then click **Next**. + +5. Choose **Do not back up the existing computer** and click **Next**. + + **Note**: The USMT will still back up the computer. + +6. Lite Touch Installation will perform the following actions: + - Back up user settings and data using USMT. + - Install the Windows 10 Enterprise X64 operating system. + - Update the operating system via Windows Update. + - Restore user settings and data using USMT. + + You can review the progress of installation on SRV1 by clicking on the **Monitoring** node in the deployment workbench. When OS installation is complete, the computer will restart, set up devices, and configure settings. + +7. Sign in with the CONTOSO\Administrator account and verify that all CONTOSO domain user accounts and data have been migrated to the new operating system, or other user accounts as specified [previously](#configure-the-mdt-production-deployment-share). + +8. Create another checkpoint for the PC1 VM so that you can review results of the computer refresh later. To create a checkpoint, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Checkpoint-VM -Name PC1 -SnapshotName RefreshState + ``` + +9. Restore the PC1 VM to it's previous state in preparation for the replace procedure. To restore a checkpoint, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Restore-VMSnapshot -VMName PC1 -Name BeginState -Confirm:$false + Start-VM PC1 + vmconnect localhost PC1 + ``` + +10. Sign in to PC1 using the contoso\administrator account. + +## Replace a computer with Windows 10 + +At a high level, the computer replace process consists of:
    +- A special replace task sequence that runs the USMT backup and an optional full Window Imaging (WIM) backup.
    +- A standard OS deployment on a new computer. At the end of the deployment, the USMT backup from the old computer is restored. + +### Create a backup-only task sequence + +1. On SRV1, in the deployment workbench console, right-click the MDT Production deployment share, click **Properties**, click the **Rules** tab, and change the line **SkipUserData=YES** to **SkipUserData=NO**. +2. Click **OK**, right-click **MDT Production**, click **Update Deployment Share** and accept the default options in the wizard to update the share. +3. Type the following commands at an elevated Windows PowerShell prompt on SRV1: + + ``` + New-Item -Path C:\MigData -ItemType directory + New-SmbShare -Name MigData$ -Path C:\MigData -ChangeAccess EVERYONE + icacls C:\MigData /grant '"contoso\administrator":(OI)(CI)(M)' + ``` +4. On SRV1 in the deployment workbench, under **MDT Production**, right-click the **Task Sequences** node, and click **New Folder**. +5. Name the new folder **Other**, and complete the wizard using default options. +6. Right-click the **Other** folder and then click **New Task Sequence**. Use the following values in the wizard: + - **Task sequence ID**: REPLACE-001 + - **Task sequence name**: Backup Only Task Sequence + - **Task sequence comments**: Run USMT to back up user data and settings + - **Template**: Standard Client Replace Task Sequence (note: this is not the default template) +7. Accept defaults for the rest of the wizard and then click **Finish**. The replace task sequence will skip OS selection and settings. +8. Open the new task sequence that was created and review it. Note the type of capture and backup tasks that are present. Click **OK** when you are finished reviewing the task sequence. + +### Run the backup-only task sequence + +1. If you are not already signed on to PC1 as **contoso\administrator**, sign in using this account. To verify the currently signed in account, type the following command at an elevated command prompt: + + ``` + whoami + ``` +2. To ensure a clean environment before running the backup task sequence, type the following at an elevated Windows PowerShell prompt on PC1: + + ``` + Remove-Item c:\minint -recurse + Remove-Item c:\_SMSTaskSequence -recurse + Restart-Computer + ``` +2. Sign in to PC1 using the contoso\administrator account, and then type the following at an elevated command prompt: + + ``` + cscript \\SRV1\MDTProd$\Scripts\Litetouch.vbs + ``` +3. Complete the deployment wizard using the following: + - **Task Sequence**: Backup Only Task Sequence + - **User Data**: Specify a location: **\\SRV1\MigData$\PC1** + - **Computer Backup**: Do not back up the existing computer. +4. While the task sequence is running on PC1, open the deployment workbench console on SRV1 and click the **Monitoring* node. Press F5 to refresh the console, and view the status of current tasks. +5. Verify that **The user state capture was completed successfully** is displayed, and click **Finish** when the capture is complete. +6. On SRV1, verify that the file **USMT.MIG** was created in the **C:\MigData\PC1\USMT** directory. See the following example: + + ``` + PS C:\> dir C:\MigData\PC1\USMT + + Directory: C:\MigData\PC1\USMT + + Mode LastWriteTime Length Name + ---- ------------- ------ ---- + -a--- 9/6/2016 11:34 AM 14248685 USMT.MIG + ``` +### Deploy PC3 + +1. On the Hyper-V host, type the following commands at an elevated Windows PowerShell prompt: + + ``` + New-VM –Name "PC3" –NewVHDPath "c:\vhd\pc3.vhdx" -NewVHDSizeBytes 60GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 + Set-VMMemory -VMName "PC3" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 + ``` +2. Temporarily disable the external network adapter on SRV1 again, so that we can successfully boot PC3 from WDS. To disable the adapter, type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + Disable-NetAdapter "Ethernet 2" -Confirm:$false + ``` +3. Start and connect to PC3 by typing the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Start-VM PC3 + vmconnect localhost PC3 + ``` +4. When prompted, press ENTER for network boot. + +6. On PC3, ue the following settings for the Windows Deployment Wizard: + - **Task Sequence**: Windows 10 Enterprise x64 Custom Image + - **Move Data and Settings**: Do not move user data and settings + - **User Data (Restore)**: Specify a location: **\\SRV1\MigData$\PC1** +5. When OS installation has started on PC1, re-enable the external network adapter on SRV1 by typing the following command on SRV1: + + ``` + Enable-NetAdapter "Ethernet 2" + ``` +7. Setup will install the Windows 10 Enterprise operating system, update via Windows Update, and restore the user settings and data from PC1. + +8. When PC3 has completed installing the OS, sign in to PC3 using the contoso\administrator account. When the PC completes updating, click **Finish**. + +9. Verify that settings have been migrated from PC1, and then shut down PC3 in preparation for the next procedure. + +## Troubleshooting logs, events, and utilities + +Deployment logs are available on the client computer in the following locations: +- Before the image is applied: X:\MININT\SMSOSD\OSDLOGS +- After the system drive has been formatted: C:\MININT\SMSOSD\OSDLOGS +- After deployment: %WINDIR%\TEMP\DeploymentLogs + +You can review WDS events in Event Viewer at: **Applications and Services Logs > Microsoft > Windows > Deployment-Services-Diagnostics**. By default, only the **Admin** and **Operational** logs are enabled. To enable other logs, right-click the log and then click **Enable Log**. + +Tools for viewing log files, and to assist with troubleshooting are available in the [System Center 2012 R2 Configuration Manager Toolkit](https://www.microsoft.com/en-us/download/details.aspx?id=50012) + +Also see [Resolve Windows 10 upgrade errors](resolve-windows-10-upgrade-errors.md) for detailed troubleshooting information. + +## Related Topics + +[Microsoft Deployment Toolkit](https://technet.microsoft.com/en-US/windows/dn475741)
    +[Prepare for deployment with MDT 2013](prepare-for-windows-deployment-with-mdt-2013.md) + +  + + + + + diff --git a/windows/deploy/windows-10-poc-sc-config-mgr.md b/windows/deploy/windows-10-poc-sc-config-mgr.md new file mode 100644 index 0000000000..d9278a15c5 --- /dev/null +++ b/windows/deploy/windows-10-poc-sc-config-mgr.md @@ -0,0 +1,1040 @@ +--- +title: Deploy Windows 10 using System Center Configuration Manager +description: Deploy Windows 10 in a test lab using System Center Configuration Manager +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: deploy +author: greg-lindsay +--- + +# Deploy Windows 10 in a test lab using System Center Configuration Manager + +**Applies to** + +- Windows 10 + +**Important**: This guide leverages the proof of concept (PoC) environment, and some settings that are configured in the following guides: +- [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md) +- [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) + +Please complete all steps in these guides before attempting the procedures in this guide. If you wish to skip the Windows 10 deployment procedures in the MDT guide and move directly to this guide, you must at least install MDT and the Windows ADK before performing procedures in this guide. All steps in the first guide are required before attempting the procedures in this guide. + +The PoC environment is a virtual network running on Hyper-V with three virtual machines (VMs): +- **DC1**: A contoso.com domain controller, DNS server, and DHCP server. +- **SRV1**: A dual-homed contoso.com domain member server, DNS server, and default gateway providing NAT service for the PoC network. +- **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been cloned from a physical computer on your corporate network for testing purposes. + +This guide leverages the Hyper-V server role to perform procedures. If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. + +>Multiple features and services are installed on SRV1 in this guide. This is not a typical installation, and is only done to set up a lab environment with a bare minimum of resources. However, if less than 4 GB of RAM is allocated to SRV1 in the Hyper-V console, some procedures will be extremely slow to complete. If resources are limited on the Hyper-V host, consider reducing RAM allocation on DC1 and PC1, and then increasing the RAM allocation on SRV1. You can adjust RAM allocation for a VM by right-clicking the VM in the Hyper-V Manager console, clicking **Settings**, clicking **Memory**, and modifying the value next to **Maximum RAM**. + +## In this guide + +This guide provides end-to-end instructions to install and configure System Center Configuration Manager, and use it to deploy a Windows 10 image. Depending on the speed of your Hyper-V host, the procedures in this guide will require 6-10 hours to complete. + +Topics and procedures in this guide are summarized in the following table. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed. + +
    + + +
    TopicDescriptionTime + +
    [Install prerequisites](#install-prerequisites)Install prerequisite Windows Server roles and features, download, install and configure SQL Server, configure firewall rules, and install the Windows ADK.60 minutes +
    [Install System Center Configuration Manager](#install-system-center-configuration-manager)Download System Center Configuration Manager, configure prerequisites, and install the package.45 minutes +
    [Download MDOP and install DaRT](#download-mdop-and-install-dart)Download the Microsoft Desktop Optimization Pack 2015 and install DaRT 10.15 minutes +
    [Prepare for Zero Touch installation](#prepare-for-zero-touch-installation)Prerequisite procedures to support Zero Touch installation.60 minutes +
    [Create a boot image for Configuration Manager](#create-a-boot-image-for-configuration-manager)Use the MDT wizard to create the boot image in Configuration Manager.20 minutes +
    [Create a Windows 10 reference image](#create-a-windows-10-reference-image)This procedure can be skipped if it was done previously, otherwise instructions are provided to create a reference image.0-60 minutes +
    [Add a Windows 10 operating system image](#add-a-windows-10-operating-system-image)Add a Windows 10 operating system image and distribute it.10 minutes +
    [Create a task sequence](#Create a task sequence)Create a Configuration Manager task sequence with MDT integration using the MDT wizard15 minutes +
    [Finalize the operating system configuration](#finalize-the-operating-system-configuration)Enable monitoring, configure rules, and distribute content.30 minutes +
    [Deploy Windows 10 using PXE and Configuration Manager](#deploy-windows-10-using-pxe-and-configuration-manager)Deploy Windows 10 using Configuration Manager deployment packages and task sequences.60 minutes +
    [Refresh a client with Windows 10 using Configuration Manager](#refresh-a-client-with-windows-10-using-configuration-manager)Use a task sequence to refresh a client with Windows 10 using Configuration Manager and MDT90 minutes +
    [Replace a client with Windows 10 using Configuration Manager](#replace-a-client-with-windows-10-using-configuration-manager)Replace a client computer with Windows 10 using Configuration Manager.90 minutes + +
    + +
    + +## Install prerequisites + +1. Before installing System Center Configuration Manager, we must install prerequisite services and features. Type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + Install-WindowsFeature Web-Windows-Auth,Web-ISAPI-Ext,Web-Metabase,Web-WMI,BITS,RDC,NET-Framework-Features,Web-Asp-Net,Web-Asp-Net45,NET-HTTP-Activation,NET-Non-HTTP-Activ + ``` + + >If the request to add features fails, retry the installation by typing the command again. + +2. Download [SQL Server 2012 SP2](https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2014-sp2) from the Microsoft Evaluation Center as an .ISO file on the Hyper-V host computer. Save the file to the **C:\VHD** directory. +3. When you have downloaded the file **SQLServer2014SP2-FullSlipstream-x64-ENU.iso** and placed it in the C:\VHD directory, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\SQLServer2014SP2-FullSlipstream-x64-ENU.iso + ``` + + This command mounts the .ISO file to drive D on SRV1. + +4. Type the following command at an elevated Windows PowerShell prompt on SRV1 to install SQL Server 2012 SP2: + + ``` + D:\setup.exe /q /ACTION=Install /ERRORREPORTING="False" /FEATURES=SQLENGINE,RS,IS,SSMS,TOOLS,ADV_SSMS,CONN /INSTANCENAME=MSSQLSERVER /INSTANCEDIR="C:\Program Files\Microsoft SQL Server" /SQLSVCACCOUNT="NT AUTHORITY\System" /SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS" /SQLSVCSTARTUPTYPE=Automatic /AGTSVCACCOUNT="NT AUTHORITY\SYSTEM" /AGTSVCSTARTUPTYPE=Automatic /RSSVCACCOUNT="NT AUTHORITY\System" /RSSVCSTARTUPTYPE=Automatic /ISSVCACCOUNT="NT AUTHORITY\System" /ISSVCSTARTUPTYPE=Disabled /ASCOLLATION="Latin1_General_CI_AS" /SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS" /TCPENABLED="1" /NPENABLED="1" /IAcceptSQLServerLicenseTerms + ``` + Installation will take several minutes. When installation is complete, the following output will be displayed: + + ``` + Microsoft (R) SQL Server 2014 12.00.5000.00 + Copyright (c) Microsoft Corporation. All rights reserved. + + Microsoft (R) .NET Framework CasPol 2.0.50727.7905 + Copyright (c) Microsoft Corporation. All rights reserved. + + Success + Microsoft (R) .NET Framework CasPol 2.0.50727.7905 + Copyright (c) Microsoft Corporation. All rights reserved. + + Success + One or more affected files have operations pending. + You should restart your computer to complete this process. + PS C:\> + ``` +5. Type the following commands at an elevated Windows PowerShell prompt on SRV1: + + ``` + New-NetFirewallRule -DisplayName “SQL Server” -Direction Inbound –Protocol TCP –LocalPort 1433 -Action allow + New-NetFirewallRule -DisplayName “SQL Admin Connection” -Direction Inbound –Protocol TCP –LocalPort 1434 -Action allow + New-NetFirewallRule -DisplayName “SQL Database Management” -Direction Inbound –Protocol UDP –LocalPort 1434 -Action allow + New-NetFirewallRule -DisplayName “SQL Service Broker” -Direction Inbound –Protocol TCP –LocalPort 4022 -Action allow + New-NetFirewallRule -DisplayName “SQL Debugger/RPC” -Direction Inbound –Protocol TCP –LocalPort 135 -Action allow + ``` + +7. Download and install the latest [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit) on SRV1 using the default installation settings. The current version is the ADK for Windows 10, version 1607. Installation might require several minutes to acquire all components. + +## Install System Center Configuration Manager + +1. On SRV1, temporarily disable IE Enhanced Security Configuration for Administrators by typing the following commands at an elevated Windows PowerShell prompt: + + ``` + $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" + Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 0 + Stop-Process -Name Explorer + ``` + +2. Download [System Center Configuration Manager and Endpoint Protection](https://www.microsoft.com/en-us/evalcenter/evaluate-system-center-configuration-manager-and-endpoint-protection) on SRV1 (download the executable file anywhere on SRV1), double-click the file, enter **C:\configmgr** for **Unzip to folder**, and click **Unzip**. The C:\configmgr directory will be automatically created. Click **OK** and then close the **WinZip Self-Extractor** dialog box when finished. + +3. Before starting the installation, verify that WMI is working on SRV1. See the following examples. Verify that **Running** is displayed under **Status** and **True** is displayed next to **TcpTestSucceeded**: + + ``` + Get-Service Winmgmt + + Status Name DisplayName + ------ ---- ----------- + Running Winmgmt Windows Management Instrumentation + + Test-NetConnection -ComputerName 192.168.0.2 -Port 135 -InformationLevel Detailed + + ComputerName : 192.168.0.2 + RemoteAddress : 192.168.0.2 + RemotePort : 135 + AllNameResolutionResults : + MatchingIPsecRules : + NetworkIsolationContext : Internet + InterfaceAlias : Ethernet + SourceAddress : 192.168.0.2 + NetRoute (NextHop) : 0.0.0.0 + PingSucceeded : True + PingReplyDetails (RTT) : 0 ms + TcpTestSucceeded : True + ``` + You can also verify WMI using the WMI console by typing **wmimgmt.msc**, right-clicking **WMI Control (Local)** in the console tree, and then clicking **Properties**. + + If the WMI service is not started, attempt to start it or reboot the computer. If WMI is running but errors are present, see [WMIDiag](https://blogs.technet.microsoft.com/askperf/2015/05/12/wmidiag-2-2-is-here/) for troubleshooting information. + +4. To extend the Active Directory schema, type the following command at an elevated Windows PowerShell prompt: + + ``` + cmd /c C:\configmgr\SMSSETUP\BIN\X64\extadsch.exe + ``` + +5. Temporarily switch to the DC1 VM, and type the following command at an elevated command prompt on DC1: + + ``` + adsiedit.msc + ``` + +6. Right-click **ADSI Edit**, click **Connect to**, select **Default** under **Computer** and then click **OK**. +7. Expand **Default naming context**>**DC=contoso,DC=com**, right-click **CN=System**, point to **New**, and then click **Object**. +8. Click **container** and then click **Next**. +9. Next to **Value**, type **System Management**, click **Next**, and then click **Finish**. +10. Right-click **CN=system Management** and then click **Properties**. +11. On the **Security** tab, click **Add**, click **Object Types**, select **Computers**, and click **OK**. +12. Under **Enter the object names to select**, type **SRV1** and click **OK**. +13. The **SRV1** computer account will be highlighted, select **Allow** next to **Full control**. +14. Click **Advanced**, click **SRV1 (CONTOSO\SRV1$)** and click **Edit**. +15. Next to **Applies to**, choose **This object and all descendant objects**, and then click **OK** three times. +16. Close the ADSI Edit console and switch back to SRV1. +17. To start Configuration Manager installation, type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + cmd /c C:\configmgr\SMSSETUP\BIN\X64\Setup.exe + ``` +18. Provide the following in the System Center Configuration Manager Setup Wizard: + - **Before You Begin**: Read the text and click *Next*. + - **Getting Started**: Choose **Install a Configuration Manager primary site** and select the **Use typical installation options for a stand-alone primary site** checkbox. + - Click **Yes** in response to the popup window. + - **Product Key**: Choose **Install the evaluation edition of this Product**. + - **Microsoft Software License Terms**: Read the terms and then select the **I accept these license terms** checkbox. + - **Prerequisite Licenses**: Review license terms and select all three checkboxes on the page. + - **Prerequisite Downloads**: Choose **Download required files** and enter **c:\windows\temp** next to **Path**. + - **Site and Installation Settings**: Site code: **PS1**, Site name: **Contoso**. + - use default settings for all other options + - **Usage Data**: Read the text and click **Next**. + - **Service Connection Point Setup**: Accept the default settings (SRV1.contoso.com is automatically added under Select a server to use). + - **Settings Summary**: Review settings and click **Next**. + - **Prerequisite Check**: No failures should be listed. Ignore any warnings and click **Begin Install**. + + >There should be at most three warnings present: WSUS on site server, configuration for SQL Server memory usage, and SQL Server process memory allocation. These warnings can safely be ignored. + + Depending on the speed of the Hyper-V host and resources allocated to SRV1, installation can require approximately one hour. Click **Close** when installation is complete. + +19. If desired, re-enable IE Enhanced Security Configuration at this time on SRV1: + + ``` + Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 1 + Stop-Process -Name Explorer + ``` + +## Download MDOP and install DaRT + +1. Download the [Microsoft Desktop Optimization Pack 2015](https://msdn.microsoft.com/en-us/subscriptions/downloads/#ProductFamilyId=597) to the Hyper-V host using an MSDN subscription. Download the .ISO file (mu_microsoft_desktop_optimization_pack_2015_x86_x64_dvd_5975282.iso) to the C:\VHD directory on the Hyper-V host. + +2. Type the following command at an elevated Windows PowerShell prompt on the Hyper-V host to mount the MDOP file on SRV1: + + ``` + Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\mu_microsoft_desktop_optimization_pack_2015_x86_x64_dvd_5975282.iso + ``` +3. Type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + cmd /c "D:\DaRT\DaRT 10\Installers\en-us\x64\MSDaRT100.msi" + ``` +4. Install DaRT 10 using default settings. +5. Type the following commands at an elevated Windows PowerShell prompt on SRV1: + + ``` + Copy-Item "C:\Program Files\Microsoft DaRT\v10\Toolsx64.cab" -Destination "C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x64" + Copy-Item "C:\Program Files\Microsoft DaRT\v10\Toolsx86.cab" -Destination "C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x86" + ``` + +## Prepare for Zero Touch installation + +This section contains several procedures to support Zero Touch installation with System Center Configuration Manager. + +### Create a folder structure + +1. Type the following commands at a Windows PowerShell prompt on SRV1: + + ``` + New-Item -ItemType Directory -Path "C:Sources\OSD\Boot" + New-Item -ItemType Directory -Path "C:Sources\OSD\OS" + New-Item -ItemType Directory -Path "C:\Sources\OSD\Settings" + New-Item -ItemType Directory -Path "C:\Sources\OSD\Branding" + New-Item -ItemType Directory -Path "C:\Sources\OSD\MDT" + New-Item -ItemType Directory -Path "C:\Logs" + New-SmbShare -Name Sources$ -Path C:\Sources -ChangeAccess EVERYONE + New-SmbShare -Name Logs$ -Path C:\Logs -ChangeAccess EVERYONE + ``` + +### Enable MDT ConfigMgr integration + +1. On SRV1, click **Start**, type **configmgr**, and then click **Configure ConfigMgr Integration**. +2. Type **PS1** next to **Site code**, and then click **Next**. +3. Verify **The process completed successfully** is displayed, and then click **Finish**. + +### Configure client settings + +1. On SRV1, click **Start**, type **configuration manager**, right-click **Configuration Manager Console**, and then click **Pin to Taskbar**. +2. Click **Desktop**, and then launch the Configuration Manager console from the taskbar. +3. If the console notifies you that an update is available, click **OK**. It is not necessary to install updates to complete this lab. +4. In the console tree, open the **Administration** workspace (in the lower left corner) and click **Client Settings**. +5. In the display pane, double-click **Default Client Settings**. +6. Click **Computer Agent**, next to **Organization name displayed in Software Center** type **Contoso**, and then click **OK**. + +### Configure the network access account + +1. In the Administration workspace, expand **Site Configuration** and click **Sites**. +2. On the **Home** ribbon at the top of the console window, click **Configure Site Components** and then click **Software Distribution**. +3. On the **Network Access Account** tab, choose **Specify the account that accesses network locations**. +4. Click the yellow starburst and then click **New Account**. +5. Click **Browse** and then under **Enter the object name to select**, type **CM_NAA** and click **OK**. +6. Next to **Password** and **Confirm Password**, type **pass@word1**, and then click **OK** twice. + +### Configure a boundary group + +1. In the Administration workspace, expand **Hierary Configuration**, right-click **Boundaries** and then click **Create Boundary**. +2. Next to **Description**, type **PS1**, next to **Type** choose **Active Directory Site**, and then click **Browse**. +3. Choose **Default-First-Site-Name** and then click **OK** twice. +4. In the Administration workspace, right-click **Boundary Groups** and then click **Create Boundary Group**. +5. Next to **Name**, type **PS1 Site Assignment and Content Location**, click **Add**, select the **Default-First-Site-Name** boundary and then click **OK**. +6. On the **References** tab in the **Create Boundary Group** window select the **Use this boundary group for site assignment** checkbox. +7. Click **Add**, select the **\\\SRV1.contoso.com** checkbox, and then click **OK** twice. + +### Enable PXE on the distribution point + +1. Deterime the MAC address of the internal network adapter on SRV1. To determine this, type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + (Get-NetAdapter "Ethernet").MacAddress + ``` + >If the internal network adapter, assigned an IP address of 192.168.0.2, is not named "Ethernet" then replace the name "Ethernet" in the previous command with the name of this network adapter. You can review the names of network adapters and the IP addresses assigned to them by typing **ipconfig**. + +2. In the System Center Configuration Manager console, in the **Administration** workspace, click **Distribution Points**. +3. In the display pane, right-click **SRV1.CONTOSO.COM** and then click **Properties**. +4. On the PXE tab, select the following settings: + - Enable PXE support for clients. Click **Yes** in the popup that appears. + - Allow this distribution point to respond to incoming PXE requests + - Enable unknown computer support. Click **OK** in the popup that appears. + - Require a password when computers use PXE + - Password and Confirm password: pass@word1 + - Respond to PXE requests on specific network interfaces: Click the yellow starburst and then enter the MAC address determined in the first step of this procedure. + + See the following example: + + Config Mgr PXE + +5. Click **OK**. +6. Type the following command at an elevated Windows PowerShell prompt on SRV1, and verify that the files displayed are present: + + ``` + cmd /c dir /b C:\RemoteInstall\SMSBoot\x64 + + abortpxe.com + bootmgfw.efi + bootmgr.exe + pxeboot.com + pxeboot.n12 + wdsmgfw.efi + wdsnbp.com + ``` + >If these files are not present, type the following command at an elevated Windows PowerShell prompt to open the Configuration Manager Trace Log Tool. In the tool, click **File**, click **Open**, and then open the **distmgr.log** file. If errors are present, they will be highlighted in red: + + ``` + Invoke-Item 'C:\Program Files\Microsoft Configuration Manager\tools\cmtrace.exe' + ``` + + The log file will updated continuously while Configuration Manager is running. Wait for Configuration Manager to repair any issues that are present, and periodically re-check that the files are present in the C:\RemoteInstall\SMSBoot\x64 directory. Close the Configuration Manager Trace Log Tool when done. You will see the following line in distmgr.log that indicates the C:\RemoteInstall directory is being populated with necessary files: + + Running: WDSUTIL.exe /Initialize-Server /REMINST:"C:\RemoteInstall" + + Once the files are present in C:\RemoteInstall, you can close the cmtrace tool. + +### Create a branding image file + +1. If you have a bitmap (.BMP) image for suitable use as a branding image, copy it to the C:\Sources\OSD\Branding folder on SRV1. Otherwise, use the following step to copy a simple branding image. +2. Type the following command at an elevated Windows PowerShell prompt: + + ``` + copy "C:\ProgramData\Microsoft\User Account Pictures\user.bmp" "C:\Sources\OSD\Branding\contoso.bmp" + ``` + >You can open C:\Sources\OSD\Branding\contoso.bmp in MSPaint.exe if desired to customize this image. + + +## Create a boot image for Configuration Manager + +1. In the Configuration Manager console, in the **Software Library** workspace, expand **Operating Systems**, right-click **Boot Images**, and then click **Create Boot Image using MDT**. +2. On the Package Source page, under **Package source folder to be created (UNC Path):**, type **\\\SRV1\Sources$\OSD\Boot\Zero Touch WinPE x64**, and then click **Next**. + - The Zero Touch WinPE x64 folder does not yet exist. The folder will be created later. +3. On the General Settings page, type **Zero Touch WinPE x64** next to **Name**, and click **Next**. +4. On the Options page, under **Platform** choose **x64**, and click **Next**. +5. On the Components page, in addition to the default selection of **Microsoft Data Access Components (MDAC/ADO) support**, select the **Microsoft Diagnostics and Recovery Toolkit (DaRT)** checkbox, and click **Next**. +6. On the Customization page, select the **Use a custom background bitmap file** checkbox, and under **UNC path**, type or browse to **\\\SRV1\Sources$\OSD\Branding\contoso.bmp**, and then click **Next** twice. It will take a few minutes to generate the boot image. +7. Click **Finish**. +8. In the console display pane, right-click the **Zero Touch WinPE x64** boot image, and then click **Distribute Content**. +9. In the Distribute Content Wizard, click **Next**, click **Add** and select **Distribution Point**, select the **SRV1.CONTOSO.COM** checkbox, click **OK**, click **Next** twice, and then click **Close**. +10. Use the CMTrace application to view the **distmgr.log** file again and verify that the boot image has been distributed. To open CMTrace, type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + Invoke-Item 'C:\Program Files\Microsoft Configuration Manager\tools\cmtrace.exe' + ``` + >In the trace tool, click **Tools** on the menu and choose **Find**. Search for "**STATMSG: ID=2301**". For example: + + ``` + STATMSG: ID=2301 SEV=I LEV=M SOURCE="SMS Server" COMP="SMS_DISTRIBUTION_MANAGER" SYS=SRV1.CONTOSO.COM SITE=PS1 PID=2476 TID=4636 GMTDATE=Wed Sep 14 22:11:09.363 2016 ISTR0="Configuration Manager Client Upgrade Package" ISTR1="PS100003" ISTR2="" ISTR3="" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=1 AID0=400 AVAL0="PS100003" SMS_DISTRIBUTION_MANAGER 9/14/2016 3:11:09 PM 4636 (0x121C) + ``` +11. You can also review status by clicking the **Zero Touch WinPE x64** image, and then clicking **Content Status** under **Related Objects** in the bottom right-hand corner of the console, or by entering **\Monitoring\Overview\Distribution Status\Content Status** on the location bar in the console. Doublt-click **Zero Touch WinPE x64** under **Content Status** in the console tree and verify that a status of **Successfully distributed content** is displayed on the **Success** tab. +12. In the **Software Library** workspace, double-click **Zero Touch WinPE x64** and then click the **Data Source** tab. +13. Select the **Deploy this boot image from the PXE-enabled distribution point** checkbox, and click **OK**. +14. Review the distmgr.log file again for "**STATMSG: ID=2301**" and verify that there are three folders under **C:\RemoteInstall\SMSImages** with boot images. See the following example: + + ``` + cmd /c dir /s /b C:\RemoteInstall\SMSImages + + C:\RemoteInstall\SMSImages\PS100004 + C:\RemoteInstall\SMSImages\PS100005 + C:\RemoteInstall\SMSImages\PS100006 + C:\RemoteInstall\SMSImages\PS100004\boot.PS100004.wim + C:\RemoteInstall\SMSImages\PS100005\boot.PS100005.wim + C:\RemoteInstall\SMSImages\PS100006\WinPE.PS100006.wim + ``` + + >The first two images (*.wim files) are default boot images. The third is the new boot image with DaRT. + +## Create a Windows 10 reference image + +If you have already completed steps in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) then you have already created a Windows 10 reference image. In this case, skip to the next procedure in this guide: [Add a Windows 10 operating system image](#add-a-windows-10-operating-system-image). If you have not yet created a Windows 10 reference image, complete the steps in this section. + +1. In [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md) the Windows 10 Enterprise .iso file was saved to the c:\VHD directory as **c:\VHD\w10-enterprise.iso**. The first step in creating a deployment share is to mount this file on SRV1. To mount the Windows 10 Enterprise DVD on SRV1, open an elevated Windows PowerShell prompt on the Hyper-V host computer and type the following command: + + ``` + Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\w10-enterprise.iso + ``` +2. Verify that the Windows Enterprise installation DVD is mounted on SRV1 as drive letter D. + +3. The Windows 10 Enterprise installation files will be used to create a deployment share on SRV1 using the MDT deployment workbench. To open the deployment workbench, click **Start**, type **deployment**, and then click **Deployment Workbench**. + +4. In the Deployment Workbench console, right-click **Deployment Shares** and select **New Deployment Share**. + +5. Use the following settings for the New Deployment Share Wizard: + - Deployment share path: **C:\MDTBuildLab**
    + - Share name: **MDTBuildLab$**
    + - Deployment share description: **MDT build lab**
    + - Options: click **Next** to accept the default
    + - Summary: click **Next**
    + - Progress: settings will be applied
    + - Confirmation: click **Finish** + +6. Expand the **Deployment Shares** node, and then expand **MDT build lab**. + +7. Right-click the **Operating Systems** node, and then click **New Folder**. Name the new folder **Windows 10**. Complete the wizard using default values and click **Finish**. + +7. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. + +8. Use the following settings for the Import Operating System Wizard: + - OS Type: **Full set of source files**
    + - Source: **D:\\**
    + - Destination: **W10Ent_x64**
    + - Summary: click **Next** + - Confirmation: click **Finish** + +9. For purposes of this test lab, we will not add applications, such as Microsoft Office, to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. + +10. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node under **MDT Build Lab** and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: + - Task sequence ID: **REFW10X64-001**
    + - Task sequence name: **Windows 10 Enterprise x64 Default Image**
    + - Task sequence comments: **Reference Build**
    + - Template: **Standard Client Task Sequence** + - Select OS: click **Windows 10 Enterprise Evaluation in W10Ent_x64 install.wim** + - Specify Product Key: **Do not specify a product key at this time** + - Full Name: **Contoso** + - Organization: **Contoso** + - Internet Explorer home page: **http://www.contoso.com** + - Admin Password: **Do not specify an Administrator password at this time** + - Summary: click **Next** + - Confirmation: click **Finish** + +11. Edit the task sequence to add the Microsoft NET Framework 3.5, which is required by many applications. To edit the task sequence, double-click **Windows 10 Enterprise x64 Default Image** that was created in the previous step. + +12. Click the **Task Sequence** tab. Under **State Restore** click **Tatto** to highlight it, then click **Add** and choose **New Group**. A new group will be added under Tattoo. + +13. On the Properties tab of the group that was created in the previous step, change the Name from New Group to **Custom Tasks (Pre-Windows Update)** and then click **Apply**. To see the name change, click **Tattoo**, then click the new group again. + +14. Click the **Custom Tasks (Pre-Windows Update)** group again, click **Add**, point to **Roles**, and then click **Install Roles and Features**. + +15. Under **Select the roles and features that should be installed**, select **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** and then click **Apply**. + +16. Enable Windows Update in the task sequence by clicking the **Windows Update (Post-Application Installation)** step, clicking the **Options** tab, and clearing the **Disable this step** checkbox. + >Note: Since we are not installing applications in this test lab, there is no need to enable the Windows Update Pre-Application Installation step. However, you should enable this step if you are also installing applications. + +17. Click **OK** to complete editing the task sequence. + +18. The next step is to configure the MDT deployment share rules. To configure rules in the Deployment Workbench, right-click MDT build lab (C:\MDTBuildLab) and click **Properties**, and then click the **Rules** tab. + +19. Replace the default rules with the following text: + + ``` + [Settings] + Priority=Default + + [Default] + _SMSTSORGNAME=Contoso + UserDataLocation=NONE + DoCapture=YES + OSInstall=Y + AdminPassword=pass@word1 + TimeZoneName=Pacific Standard TimeZoneName + OSDComputername=#Left("PC-%SerialNumber%",7)# + JoinWorkgroup=WORKGROUP + HideShell=YES + FinishAction=SHUTDOWN + DoNotCreateExtraPartition=YES + ApplyGPOPack=NO + SkipAdminPassword=YES + SkipProductKey=YES + SkipComputerName=YES + SkipDomainMembership=YES + SkipUserData=YES + SkipLocaleSelection=YES + SkipTaskSequence=NO + SkipTimeZone=YES + SkipApplications=YES + SkipBitLocker=YES + SkipSummary=YES + SkipRoles=YES + SkipCapture=NO + SkipFinalSummary=NO + ``` + +20. Click **Apply** and then click **Edit Bootstrap.ini**. Replace the contents of the Bootstrap.ini file with the following text, and save the file: + + ``` + [Settings] + Priority=Default + + [Default] + DeployRoot=\\SRV1\MDTBuildLab$ + UserDomain=CONTOSO + UserID=MDT_BA + UserPassword=pass@word1 + SkipBDDWelcome=YES + ``` + +21. Click **OK** to complete the configuration of the deployment share. + +22. Right-click **MDT build lab (C:\MDTBuildLab)** and then click **Update Deployment Share**. + +23. Accept all default values in the Update Deployment Share Wizard by clicking **Next**. The update process will take 5 to 10 minutes. When it has completed, click **Finish**. + +24. Copy **c:\MDTBuildLab\Boot\LiteTouchPE_x86.iso** on SRV1 to the **c:\VHD** directory on the Hyper-V host computer. Note that in MDT, the x86 boot image can deploy both x86 and x64 operating systems, except on computers based on Unified Extensible Firmware Interface (UEFI). + + >Hint: Top copy the file, right-click the **LiteTouchPE_x86.iso** file and click **Copy** on SRV1, then open the **c:\VHD** folder on the Hyper-V host, right-click inside the folder and click **Paste**. + +25. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: + + ``` + New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB + Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20 + Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso + Start-VM REFW10X64-001 + vmconnect localhost REFW10X64-001 + ``` +26. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. + +27. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. + + Additional system restarts will occur to complete updating and preparing the operating system. Setup will complete the following procedures: + + - Install the Windows 10 Enterprise operating system. + - Install added applications, roles, and features. + - Update the operating system using Windows Update (or WSUS if optionally specified). + - Stage Windows PE on the local disk. + - Run System Preparation (Sysprep) and reboot into Windows PE. + - Capture the installation to a Windows Imaging (WIM) file. + - Turn off the virtual machine. + + This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host and your network's download speed. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on SRV1. The file name is **REFW10X64-001.wim**. + +## Add a Windows 10 operating system image + +1. Type the following commands at an elevated Windows PowerShell prompt on SRV1: + + ``` + New-Item -ItemType Directory -Path "C:Sources\OSD\OS\Windows 10 Enterprise x64" + cmd /c copy /z "C:\MDTBuildLab\Captures\REFW10X64-001.wim" "C:\Sources\OSD\OS\Windows 10 Enterprise x64" + ``` + +2. In the Configuration Manager console, in the **Software Library** workspace, expand **Operating Systems**, right-click **Operating System Images**, and then click **Add Operating System Image**. + +3. On the Data Source page, under **Path:**, type or browse to **\\\SRV1\Sources$\OSD\OS\Windows 10 Enterprise x64\REFW10X64-001.wim**, and click **Next**. + +4. On the General page, next to **Name:**, type **Windows 10 Enterprise x64**, click **Next** twice, and then click **Close**. + +5. Distribute the operating system image to the SRV1 distribution point by right-clicking the **Windows 10 Enterprise x64** operating system image and then clicking **Distribute Content**. + +6. In the Distribute Content Wizard, click **Next**, click **Add**, click **Distribution Point**, add the **SRV1.CONTOSO.COM** distribution point, click **OK**, click **Next** twice and then click **Close**. + +7. Enter **\Monitoring\Overview\Distribution Status\Content Status** on the location bar, click **Windows 10 Enterprise x64**, and monitor the status of content distribution until it is successful and no longer in progress. Refresh the view with the F5 key or by right-clicking **Windows 10 Enterprise x64** and clicking **Refresh**. Processing of the image on the site server can take several minutes. + + >If content distribution is not successful, verify that sufficient disk space is available. + +## Create a task sequence + +>Complete this section slowly. There are a large number of similar settings from which to choose. + +1. In the Configuration Manager console, in the **Software Library** workspace expand **Operating Systems**, right-click **Task Sequences**, and then click **Create MDT Task Sequence**. + +2. On the Choose Template page, select the **Client Task Sequence** template and click **Next**. + +3. On the General page, type **Windows 10 Enterprise x64** under **Task sequence name:** and then click **Next**. + +4. On the Details page, enter the following settings:
    + - Join a domain: contoso.com
    + - Account: click **Set**
    + - User name: contoso\CM_JD
    + - Password: pass@word1
    + - Confirm password: pass@word1
    + - Click **OK**
    + - Windows Settings
    + - User name: Contoso
    + - Organization name: Contoso
    + - Product key: \
    + - Administrator Account: Enable the account and specify the local administrator password
    + - Password: pass@word1
    + - Confirm password: pass@word1
    + - Click Next
    + +5. On the Capture Settings page, accept the default settings and click **Next**. + +6. On the Boot Image page, browse and select the **Zero Touch WinPE x64** boot image package and then click **Next**. + +7. On the MDT Package page, select **Create a new Microsoft Deployment Toolkit Files package**, under **Package source folder to be created (UNC Path):**, type **\\\SRV1\Sources$\OSD\MDT\MDT 2013**, and then click **Next**. + +8. On the MDT Details page, next to **Name:** type **MDT 2013** and then click **Next**. + +9. On the OS Image page, browse and select the **Windows 10 Enterprise x64** package, and then click **Next**. + +10. On the Deployment Method page, accept the default settings for **Zero Touch Installation** and click **Next**. + +11. On the Client Package page, browse and select the **Microsoft Corporation Configuration Manager Client package** and then click **Next**. + +12. On the USMT Package page, browse and select the **Microsoft Corporation User State Migration Tool for Windows 8 10.0.14393.0** package, and then click **Next**. + +13. On the Settings Package page, select **Create a new settings package**, and under **Package source folder to be created (UNC Path):**, type **\\\SRV1\Sources$\OSD\Settings\Windows 10 x64 Settings**, and then click **Next**. + +14. On the Settings Details page, next to **Name:**, type **Windows 10 x64 Settings**, and click **Next**. + +15. On the Sysprep Package page, click **Next** twice. + +16. On the Confirmation page, click **Finish**. + +### Edit the task sequence + +1. In the Configuration Manager console, in the **Software Library** workspace, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Edit**. + +2. Scroll down to the **Install** group and click the **Set Variable for Drive Letter** action. + +3. Change the Value under **OSDPreserveDriveLetter** from **False** to **True**, and then click **Apply**. + +4. In the **State Restore** group, click the **Set Status 5** action, click **Add** in the upper left corner, point to **User State**, and click **Request State Store**. This adds a new action immediately after **Set Status 5**. + +5. Configure the **Request State Store** action that was just added with the following settings:
    + - Request state storage location to: **Restore state from another computer**
    + - Select the **If computer account fails to connect to state store, use the Network Access account** checkbox.
    + - Options tab: Select the **Continue on error** checkbox.
    + - Add Condition: **Task Sequence Variable**:
    + - Variable: **USMTLOCAL**
    + - Condition: **not equals**
    + - Value: **True**
    + - Click **OK**.
    + - Click **Apply**
    . + +6. In the **State Restore** group, click **Restore User State**, click **Add**, point to **User State**, and click **Release State Store**. + +7. Configure the **Release State Store** action that was just added with the following settings:
    + - Options tab: Select the **Continue on error** checkbox.
    + - Add Condition: **Task Sequence Variable**:
    + - Variable: **USMTLOCAL**
    + - Condition: **not equals**
    + - Value: **True**
    + - Click **OK**.
    + - Click **OK**
    . + + +## Finalize the operating system configuration + +>If you completed all procedures in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) then the MDT deployment share is already present on SRV1. In this case, skip the first four steps below and begin with step 5 to edit CustomSettings.ini. + +1. In the MDT deployment workbench on SRV1, right-click **Deployment Shares** and then click **New Deployment Share**. + +2. Use the following settings for the New Deployment Share Wizard: + - Deployment share path: **C:\MDTProduction**
    + - Share name: **MDTProduction$**
    + - Deployment share description: **MDT Production**
    + - Options: click **Next** to accept the default
    + - Summary: click **Next**
    + - Progress: settings will be applied
    + - Confirmation: click **Finish** + +3. Right-click the **MDT Production** deployment share, and click **Properties**. + +4. Click the **Monitoring** tab, select the **Enable monitoring for this deployment share** checkbox, and then click **OK**. + +5. Type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + notepad "C:\Sources\OSD\Settings\Windows 10 x64 Settings\CustomSettings.ini" + ``` +6. Replace the contents of the file with the following text, and then save the file: + + ``` + [Settings] + Priority=Default + Properties=OSDMigrateConfigFiles,OSDMigrateMode + + [Default] + DoCapture=NO + ComputerBackupLocation=NONE + OSDMigrateMode=Advanced + OSDMigrateAdditionalCaptureOptions=/ue:*\* /ui:CONTOSO\* + OSDMigrateConfigFiles=Miguser.xml,Migapp.xml + SLSHARE=\\SRV1\Logs$ + EventService=http://SRV1:9800 + ApplyGPOPack=NO + ``` +7. Return to the Configuration Manager console, and in the Software Library workspace, expand **Application Management**, click **Packages**, right-click **Windows 10 x64 Settings**, and then click **Update Distribution Points**. Click **OK** in the popup that appears. + +8. In the Software Library workspace, expand **Operating Systems**, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Distribute Content**. + +9. In the Distribute Content Wizard, click **Next** twice, click **Add**, click **Distribution Point**, select the **SRV1.CONTOSO.COM** distribution point, click **OK**, click **Next** twice and then click **Close**. + +10. Enter **\Monitoring\Overview\Distribution Status\Content Status\Windows 10 Enterprise x64** on the location bar, double-click **Windows 10 Enterprise x64**, and monitor the status of content distribution until it is successful and no longer in progress. Refresh the view with the F5 key or by right-clicking **Windows 10 Enterprise x64** and clicking **Refresh**. + +### Create a deployment for the task sequence + +1. In the Software Library workspace, expand **Operating Systems**, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Deploy**. + +2. On the General page, next to **Collection**, click **Browse**, select the **All Unknown Computers** collection, click **OK**, and then click **Next**. + +3. On the Deployment Settings page, use the following settings:
    + - Purpose: **Available**
    + - Make available to the following: **Only media and PXE**
    + - Click **Next**.
    +4. Click **Next** five times to accept defaults on the Scheduling, User Experience, Alerts, and Distribution Points pages. + +5. Click **Close**. + +## Deploy Windows 10 using PXE and Configuration Manager + +1. Type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + New-VM –Name "PC4" –NewVHDPath "c:\vhd\pc4.vhdx" -NewVHDSizeBytes 40GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 + Set-VMMemory -VMName "PC4" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 + Start-VM PC4 + vmconnect localhost PC4 + ``` + +2. Press ENTER when prompted to start the network boot service. + +3. In the Task Sequence Wizard, provide the password: **pass@word1**, and then click **Next**. + +4. Before you click Next in the Task Sequence Wizard, press the **F8** key. A command prompt will open. + +5. At the command prompt, type **explorer.exe** and review the Windows PE file structure. + +6. The smsts.log file is critical for troubleshooting any installation problems that might be encountered. Depending on the deployment phase, the smsts.log file is created in different locations: + - X:\windows\temp\SMSTSLog\smsts.log before disks are formatted. + - x:\smstslog\smsts.log after disks are formatted. + - c:\_SMSTaskSequence\Logs\Smstslog\smsts.log before the System Center Configuration Manager client is installed. + - c:\windows\ccm\logs\Smstslog\smsts.log after the System Center Configuration Manager client is installed. + - c:\windows\ccm\logs\smsts.log when the task sequence is complete. + + Note: If a reboot is pending on the client, the reboot will be blocked as long as the command window is open. + +7. In the explorer window, click **Tools** and then click **Map Network Drive**. + +8. Do not map a network drive at this time. If you need to save the smsts.log file, you can use this method to save the file to a location on SRV1. + +9. Close the Map Network Drive window, the Explorer window, and the command prompt. + +10. The **Windows 10 Enterprise x64** task sequence is selected in the Task Sequenc Wizard. Click **Next** to continue with the deployment. + +11. The task sequence will require several minutes to complete. You can monitor progress of the task sequence using the MDT Deployment Workbench under Deployment Shares > MDTProduction > Monitoring. The task sequence will: + - Install Windows 10 + - Install the Configuration Manager client and hotfix + - Join the computer to the contoso.com domain + - Install any applications that were specified in the reference image + +12. When Windows 10 installation has completed, sign in to PC4 using the **contoso\administrator** account. + +13. Right-click **Start**, click **Run**, type **control appwiz.cpl**, press ENTER, click Turn Windows features on or off, and verify that **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** is installed. This is a feature included in the reference image. + +14. Shut down the PC4 VM. + +## Refresh a client with Windows 10 using Configuration Manager + +>Before starting this section, you can delete computer objects from Active Directory that were created as part of previous deployment procedures. Use the Active Directory Users and Computers console to remove stale entries under contoto.com\Computers, but **do not delete the computer account (hostname) for PC1**. There should be at least two computer accounts present in the contoso.com\Computers container: one for SRV1, and one for the hostname of PC1. It is not required to delete the stale entries, this is only done to remove clutter. + +### Install the Configuration Manager client on PC1 + +1. Verify that PC1 is in its original state, which was saved as a checkpoint and then restored in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md). + +2. If a PC1 checkpoint has not already been saved, then save a checkpoint by typing the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Checkpoint-VM -Name PC1 -SnapshotName BeginState + ``` +3. On SRV1, in the Configuration Manager console, in the Administration workspace, expand **Hierarcy Configuration** and click on **Discovery Methods**. +4. Double-click **Active Directory System Discovery** and on the **General** tab select the **Enable Active Directory System Discovery** checkbox. +5. Click the yellow starburst, click **Browse**, select **contoso\Computers**, and then click **OK** three times. +6. When a popup dialog box asks if you want to run full discovery, click **Yes**. +7. In the Assets and Compliance workspace, expand **Devices** and click **All Systems**. Verify that a computer account for SRV1 and PC1 are displayed. See the following example (GREGLIN-PC1 is the hostname of PC1 in this example): + + ![assets](images/sccm-assets.png) + + >If you only see the **Devices** parent node, you can add and view device collections in the tree by clicking **Device Collections** and then double-clicking a device collection. + + The **Client** column indicates that the Configuration Manager client is not currently installed. This procedure will be carried out next. + +8. Sign in to PC1 using the contoso\administrator account and type the following at an elevated command prompt to remove any pre-existing client configuration, if it exists: + + ``` + sc stop ccmsetup + "\\SRV1\c$\Program Files\Microsoft Configuration Manager\Client\CCMSetup.exe" /Uninstall + ``` + >If PC1 still has Configuration Manager registry settings that were applied by Group Policy, startup scripts, or other policies in its previous domain, these might not all be removed by CCMSetup /Uninstall and can cause problems with installation or registration of the client in its new environment. It might be necessary to manually remove these settings if they are present. For more information, see [Manual removal of the SCCM client](https://blogs.technet.microsoft.com/michaelgriswold/2013/01/02/manual-removal-of-the-sccm-client/). + +9. On PC1, temporarily stop Windows Update from queuing items for download and clear all BITS jobs from the queue: + + ``` + net stop wuauserv + net stop BITS + ``` + + Verify that both services were stopped successfully, then type the following at an elevated command prompt: + + ``` + del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat" + net start BITSexit + bitsadmin /list /allusers + ``` + + Verify that BITSAdmin displays 0 jobs. + +10. To install the Configuration Manager client as a standalone process, type the following at an elevated command prompt: + + ``` + "\\SRV1\c$\Program Files\Microsoft Configuration Manager\Client\CCMSetup.exe" /mp:SRV1.contoso.com /logon SMSSITECODE=PS1 + ``` +11. On PC1, using file explorer, open the **C:\Windows\ccmsetup** directory. During client installation, files will be downloaded here. +12. Installation progress will be captured in the file: **c:\windows\ccmsetup\logs\ccmsetup.log**. You can periodically open this file in notepad, or you can type the following command at an elevated Windows PowerShell prompt to monitor installation progress: + + ``` + Get-Content -Path c:\windows\ccmsetup\logs\ccmsetup.log -Wait + ``` + + Installation might require several minutes, and display of the log file will appear to hang while some applications are installed. This is normal. When setup is complete, verify that **CcmSetup is existing with return code 0** is displayed on the last line of the ccmsetup.log file and then press **CTRL-C** to break out of the Get-Content operation. A return code of 0 indicates that installation was successful and you should now see a directory created at **C:\Windows\CCM** that contains files used in registration of the client with its site. + +13. On PC1, open the Configuration Manager control panel applet by typing the following command: + + ``` + control smscfgrc + ``` + +14. Click the **Site** tab and click **Find Site**. The client will report that it has found the PS1 site. See the following example: + + ![site](images/sccm-site.png) + + If the client is not able to find the PS1 site, review any error messages that are displayed in **C:\Windows\CCM\Logs\ClientIDManagerStartup.log** and **LocationServices.log**. + +15. On SRV1, in the Assets and Compliance workspace, click **All Desktop and Server Clients** and verify that the computer account for PC1 is displayed here with **Yes** and **Active** in the **Client** and **Client Activity** columns, respectively. You might have to refresh the view and wait few minutes for the client to appear here. See the following example: + + ![client](images/sccm-client.png) + + >It might take several minutes for the client to fully register with the site and complete a client check. When it is complete you will see a green check mark over the client icon as shown above. + +### Create a device collection and deployment + +1. On SRV1, in the Configuration Manager console, in the Asset and Compliance workspace, right-click **Device Collections** and then click **Create Device Collection**. + +2. Use the following settings in the **Create Device Collection Wizard**: + - General > Name: **Install Windows 10 Enterprise x64**
    + - General > Limiting collection: **All Systems**
    + - Membership Rules > Add Rule: **Direct Rule**
    + - The **Create Direct Membership Rule Wizard** opens, click **Next**
    + - Search for Resources > Resource class: **System Resource**
    + - Search for Resources > Attribute name: **Name**
    + - Search for Resources > Value: **%**
    + - Select Resources > Value: Select the computername associated with the PC1 VM
    + - Click **Next** twice and then click **Close** in both windows. + +3. Double-click the Install Windows 10 Enterprise x64 device collection and verify that the PC1 computer account is displayed. + +4. In the Software Library workspace, expand **Operating Systems**, click **Task Sequences**, right-click **Windows 10 Enterprise x64** and then click **Deploy**. + +5. Use the following settings in the Deploy Sofware wizard: + - General > Collection: Click Browse and select **Install Windows 10 Enterprise x64**
    + - Deployment Settings > Purpose: **Available**
    + - Deployment Settings > Make available to the following: **Configuration Manager clients, media and PXE**
    + - Scheduling > Click **Next**
    + - User Experience > Click **Next**
    + - Alerts > Click **Next**
    + - Distribution Points > Click **Next**
    + - Summary > Click **Next**
    + - Verify that the wizard completed successfully and then click **Close** + +6. **Important** Before initiating a computer refresh, save a checkpoint for all three computers: PC1, SRV1, and DC1. This ensures that we can restore all computers, including Active Directory and the Configuration Manager client status to the pre-Windows 10 installation state prior to running the replace procedure. To save checkpoints, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Checkpoint-VM -Name PC1 -SnapshotName cm-start + Checkpoint-VM -Name SRV1 -SnapshotName cm-start + Checkpoint-VM -Name DC1 -SnapshotName cm-start + ``` + +### Initiate the computer refresh + +1. On SRV1, in the Assets and Compliance workspace, click **Device Collections** and then double-click **Install Windows 10 Enterprise x64**. +2. Right-click the computer account for PC1, point to **Client Notification**, click **Download Computer Policy**, and click **OK** in the popup dialog box. +3. On PC1, in the notification area, click **New sofware is available** and then click **Open Sofware Center**. +4. In the Sofware Center, click **Operating Systems**, click **Windows 10 Enterprise x64**, click **Install** and then click **INSTALL OPERATING SYSTEM**. See the following example: + + ![installOS](images/sccm-install-os.png) + + The computer will restart several times during the installation process. Installation includes downloading updates, reinstalling the Configuration Manager Client Agent, and restoring the user state. You can view status of the installation in the Configuration Manager console by accessing the Monitoring workspace, clicking **Deployments**, and then double-clicking the deployment associated with the **Install Windows 10 Enterprise x64** collection. Under **Asset Details**, right-click the device and then click **More Details**. Click the **Status** tab to see a list of tasks that have been performed. See the following example: + + ![asset](images/sccm-asset.png) + + You can also monitor progress of the installation by using the MDT deployment workbench and viewing the **Monitoring** node under **Deployment Shares\MDT Production**. + + When installation has completed, sign in using the contoso\administrator account or the contoso\user1 account and verify that applications and settings have been successfully backed up and restored to your new Windows 10 Enterprise operating system. + + ![post-refresh](images/sccm-post-refresh.png) + +5. Save checkpoints for all VMs if you wish to review their status at a later date. This is not required. To save a checkpoint for all VMs, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Checkpoint-VM -Name DC1 -SnapshotName cm-refresh + Checkpoint-VM -Name SRV1 -SnapshotName cm-refresh + Checkpoint-VM -Name PC1 -SnapshotName cm-refresh + ``` + +## Replace a client with Windows 10 using Configuration Manager + +Before starting the replace procedure, restore all three VMs using the checkpoints created in the previous procedure. To restore the checkpoints and connect to the VMs again, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + +``` +Restore-VMSnapshot -VMName DC1 -Name cm-start -Confirm:$false +Restore-VMSnapshot -VMName SRV1 -Name cm-start -Confirm:$false +Restore-VMSnapshot -VMName PC1 -Name cm-start -Confirm:$false +Start-VM DC1 +vmconnect localhost DC1 +Start-VM SRV1 +vmconnect localhost SRV1 +Start-VM PC1 +vmconnect localhost PC1 +``` + +>If resources are limited in the Hyper-V environment, SRV1 can require several minutes for all services to start and present the sign-in screen after restoring VMs. Verify that all required services are running, and start any service that are not running. Use the Server Manager dashboard to view and start services. When all services are running, open the Configuration Manager console. + +### Create a replace task sequence + +1. On SRV1, in the Configuration Manager console, in the Software Library workspace, expand **Operating Systems**, right-click **Task Sequences**, and then click **Create MDT Task Sequence**. + +2. On the Choose Template page, select **Client Replace Task Sequence** and click **Next**. + +3. On the General page, type the following: + - Task sequence name: **Replace Task Sequence** + - Task sequence comments: **USMT backup only** + +4. Click **Next**, and on the Boot Image page, browse and select the **Zero Touch WinPE x64** boot image package. Click **OK** and then click **Next** to continue. +5. On the MDT Package page, browse and select the **MDT 2013** package. Click **OK** and then click **Next** to continue. +6. On the USMT Package page, browse and select the **Microsoft Corporation User State Migration Tool for Windows** package. Click **OK** and then click **Next** to continue. +7. On the Settings Package page, browse and select the **Windows 10 x64 Settings** package. Click **OK** and then click **Next** to continue. +8. On the Summary page, review the details and then click **Next**. +9. On the Confirmation page, click **Finish**. + +>If you receive an error at this stage it can be caused by a corrupt MDT integration. To repair it, close the Configuration Manager console, remove MDT integration, and then restore MDT integration. + +### Deploy PC4 + +Create a VM named PC4 to receive the applications and settings from PC1. This VM represents a new computer that will replace PC1. To create this VM, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + +``` +New-VM –Name "PC4" –NewVHDPath "c:\vhd\pc4.vhdx" -NewVHDSizeBytes 60GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 +Set-VMMemory -VMName "PC4" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 +Set-VMNetworkAdapter -VMName PC4 -StaticMacAddress 00-15-5D-83-26-FF +``` + +>Hyper-V enables us to define a static MAC address on PC4. In a real-world scenario you must determine the MAC address of the new computer. + +### Associate PC4 with PC1 + +1. On SRV1 in the Configuration Manager console, in the Assets and Compliance workspace, right-click **Devices** and then click **Import Computer Information**. + +2. On the Select Source page, choose **Import single computer** and click **Next**. + +3. On the Single Computer page, use the following settings: + - Computer Name: **PC4** + - MAC Address: **00:15:5D:83:26:FF** + - Source Computer: + +4. Click **Next**, and then on the User Accounts page choose **Capture and restore all user accounts**. Click **Next** twice to continue. + +5. On the Choose Target Collection page, choose **Add computers to the following collection**, click **Browse**, choose **Install Windows 10 Enterprise x64**, click **OK**, click **Next** twice, and then click **Close**. + +6. Select the User State Migration node and review the computer association in the display pane. + +7. Right-click the association in the display pane and then click **View Recovery Information**. A recovery key has been assigned, but a user state store location has not. Click **Close**. + +8. Click **Device Collections** and then double-click **Install Windows 10 Enterprise x64**. Verify that **PC4** is displayed in the collection. You might have to update and refresh the collection, or wait a few minutes, but do not proceed until PC4 is available. See the following example: + + ![collection](images/sccm-collection.png) + +### Create a device collection for PC1 + +1. On SRV1, in the Configuration Manager console, in the Assets and Compliance workspace, right-click **Device Collections** and then click **Create Device Collection**. + +2. Use the following settings in the **Create Device Collection Wizard**: + - General > Name: **USMT Backup (Replace)**
    + - General > Limiting collection: **All Systems**
    + - Membership Rules > Add Rule: **Direct Rule**
    + - The **Create Direct Membership Rule Wizard** opens, click **Next**
    + - Search for Resources > Resource class: **System Resource**
    + - Search for Resources > Attribute name: **Name**
    + - Search for Resources > Value: **%**
    + - Select Resources > Value: Select the computername associated with the PC1 VM.
    + - Click **Next** twice and then click **Close** in both windows. + +3. Click **Device Collections** and then double-click **USMT Backup (Replace)**. Verify that the computer name/hostname associated with PC1 is displayed in the collection. Do not proceed until this name is displayed. + +### Create a new deployment + +In the Configuration Manager console, in the Software Library workspace, click **Task Sequences**, right-click **Replace Task Sequence**, click **Deploy**, and use the following settings: +- General > Collection: **USMT Backup (Replace)**
    +- Deployment Settings > Purpose: **Available**
    +- Deployment Settings > Make available to the following: **Only Configuration Manager Clients**
    +- Scheduling: Click **Next**
    +- User Experience: Click **Next**
    +- Alerts: Click **Next**
    +- Distribution Points: Click **Next**
    +- Click **Next** and then click **Close**. + +### Verify the backup + +1. On PC1, open the Configuration Manager control panel applet by typing the following command: + + ``` + control smscfgrc + ``` +2. On the **Actions** tab, click **Machine Policy Retrieval & Evaluation Cycle**, click **Run Now**, click **OK**, and then click **OK** again. This is another method that can be used in addition to the Client Notification method used previously. + +3. Using the Software Center as was done in the previous procedure, click **Operating Systems** and then click **Replace Task Sequence**. See the following example: + + ![software](images/sccm-software-cntr.png) + +4. Click **Install** and then click **INSTALL OPERATING SYSTEM**. +5. Allow the **Replace Task Sequence** to complete, then verify that the C:\MigData folder on SRV1 contains the USMT backup. + +### Deploy the new computer + +1. Start PC4 and press ENTER for a network boot when prompted. To start PC4, type the following commands at an elevated Windows Powershell prompt on the Hyper-V host: + + ``` + Start-VM PC4 + vmconnect localhost PC4 + ``` +2. In the **Welcome to the Task Sequence Wizard**, enter **pass@word1** and click **Next**. +3. Choose the **Windows 10 Enterprise X64** image. +4. Setup will install the operating system, install the configuration manager client, join PC4 to the domain, and restore users and settings from PC1. + + +## Related Topics + +[System Center 2012 Configuration Manager Survival Guide](https://social.technet.microsoft.com/wiki/contents/articles/7075.system-center-2012-configuration-manager-survival-guide.aspx#Step-by-Step_Guides) + +  + + + + + diff --git a/windows/keep-secure/TOC.md b/windows/keep-secure/TOC.md index eaedfbf278..7662302c08 100644 --- a/windows/keep-secure/TOC.md +++ b/windows/keep-secure/TOC.md @@ -31,12 +31,15 @@ ##### [Create and deploy a VPN policy for Windows Information Protection (WIP) using Microsoft Intune](create-vpn-and-wip-policy-using-intune.md) #### [Create and deploy a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md) #### [Create and verify an Encrypting File System (EFS) Data Recovery Agent (DRA) certificate](create-and-verify-an-efs-dra-certificate.md) +#### [Determine the Enterprise Context of an app running in Windows Information Protection (WIP)](wip-app-enterprise-context.md) +### [Mandatory tasks and settings required to turn on Windows Information Protection (WIP)](mandatory-settings-for-wip.md) +### [Testing scenarios for Windows Information Protection (WIP)](testing-scenarios-for-wip.md) +### [Limitations while using Windows Information Protection (WIP)](limitations-with-wip.md) ### [General guidance and best practices for Windows Information Protection (WIP)](guidance-and-best-practices-wip.md) -#### [Mandatory tasks and settings required to turn on Windows Information Protection (WIP)](mandatory-settings-for-wip.md) #### [Enlightened apps for use with Windows Information Protection (WIP)](enlightened-microsoft-apps-and-wip.md) #### [Unenlightened and enlightened app behavior while using Windows Information Protection (WIP)](app-behavior-with-wip.md) -#### [Testing scenarios for Windows Information Protection (WIP)](testing-scenarios-for-wip.md) -#### [Limitations while using Windows Information Protection (WIP)](limitations-with-wip.md) +#### [Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP)](recommended-network-definitions-for-wip.md) +#### [Using Outlook Web Access with Windows Information Protection (WIP)](using-owa-with-wip.md) ## [Use Windows Event Forwarding to help with intrusion detection](use-windows-event-forwarding-to-assist-in-instrusion-detection.md) ## [Override Process Mitigation Options to help enforce app-related security policies](override-mitigation-options-for-app-related-security-policies.md) ## [VPN technical guide](vpn-guide.md) @@ -694,16 +697,16 @@ ##### [Smart Cards Debugging Information](smart-card-debugging-information.md) ##### [Smart Card Group Policy and Registry Settings](smart-card-group-policy-and-registry-settings.md) ##### [Smart Card Events](smart-card-events.md) -### [Trusted Platform Module](trusted-platform-module-overview.md) +### [Trusted Platform Module](trusted-platform-module-top-node.md) +#### [Trusted Platform Module Overview](trusted-platform-module-overview.md) #### [TPM fundamentals](tpm-fundamentals.md) #### [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) -#### [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md) -#### [Backup the TPM recovery Information to AD DS](backup-tpm-recovery-information-to-ad-ds.md) +#### [Back up the TPM recovery information to AD DS](backup-tpm-recovery-information-to-ad-ds.md) #### [Manage TPM commands](manage-tpm-commands.md) #### [Manage TPM lockout](manage-tpm-lockout.md) #### [Change the TPM owner password](change-the-tpm-owner-password.md) -#### [Initialize and configure ownership of the TPM](initialize-and-configure-ownership-of-the-tpm.md) -#### [Switch PCR banks on TPM 2.0 devices](switch-pcr-banks-on-tpm-2-0-devices.md) +#### [View status, clear, or troubleshoot the TPM](initialize-and-configure-ownership-of-the-tpm.md) +#### [Understanding PCR banks on TPM 2.0 devices](switch-pcr-banks-on-tpm-2-0-devices.md) #### [TPM recommendations](tpm-recommendations.md) ### [User Account Control](user-account-control-overview.md) #### [How User Account Control works](how-user-account-control-works.md) @@ -740,10 +743,12 @@ ##### [Investigate a domain](investigate-domain-windows-defender-advanced-threat-protection.md) ##### [Manage alerts](manage-alerts-windows-defender-advanced-threat-protection.md) #### [Windows Defender ATP settings](settings-windows-defender-advanced-threat-protection.md) +#### [Windows Defender ATP service status](service-status-windows-defender-advanced-threat-protection.md) #### [Configure SIEM tools to consume alerts](configure-siem-windows-defender-advanced-threat-protection.md) ##### [Configure an Azure Active Directory application for SIEM integration](configure-aad-windows-defender-advanced-threat-protection.md) ##### [Configure Splunk to consume Windows Defender ATP alerts](configure-splunk-windows-defender-advanced-threat-protection.md) ##### [Configure HP ArcSight to consume Windows Defender ATP alerts](configure-arcsight-windows-defender-advanced-threat-protection.md) +#### [Configure email notifications](configure-email-notifications-windows-defender-advanced-threat-protection.md) #### [Troubleshoot Windows Defender ATP](troubleshoot-windows-defender-advanced-threat-protection.md) #### [Review events and errors on endpoints with Event Viewer](event-error-codes-windows-defender-advanced-threat-protection.md) #### [Windows Defender compatibility](defender-compatibility-windows-defender-advanced-threat-protection.md) @@ -871,4 +876,6 @@ ### [Microsoft Passport guide](microsoft-passport-guide.md) ### [Windows 10 Mobile security guide](windows-10-mobile-security-guide.md) ### [Windows 10 security overview](windows-10-security-guide.md) +### [Windows 10 credential theft mitigation guide abstract](windows-credential-theft-mitigation-guide-abstract.md) +### [How to use single sign-on (SSO) over VPN and Wi-Fi connections](how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md) ## [Change history for Keep Windows 10 secure](change-history-for-keep-windows-10-secure.md) diff --git a/windows/keep-secure/access-this-computer-from-the-network.md b/windows/keep-secure/access-this-computer-from-the-network.md index 1cb598fcfd..0d93c1d879 100644 --- a/windows/keep-secure/access-this-computer-from-the-network.md +++ b/windows/keep-secure/access-this-computer-from-the-network.md @@ -1,5 +1,5 @@ --- -title: Access this computer from the network (Windows 10) +title: Access this computer from the network - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Access this computer from the network security policy setting. ms.assetid: f6767bc2-83d1-45f1-847c-54f5362db022 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Access this computer from the network +# Access this computer from the network - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/accounts-guest-account-status.md b/windows/keep-secure/accounts-guest-account-status.md index f9054008ac..527a1357c4 100644 --- a/windows/keep-secure/accounts-guest-account-status.md +++ b/windows/keep-secure/accounts-guest-account-status.md @@ -1,5 +1,5 @@ --- -title: Accounts Guest account status (Windows 10) +title: Accounts Guest account status - security policy setting (Windows 10) description: Describes the best practices, location, values, and security considerations for the Accounts Guest account status security policy setting. ms.assetid: 07e53fc5-b495-4d02-ab42-5b245d10d0ce ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Accounts: Guest account status +# Accounts: Guest account status - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/accounts-rename-guest-account.md b/windows/keep-secure/accounts-rename-guest-account.md index aa06c480c3..c77030e875 100644 --- a/windows/keep-secure/accounts-rename-guest-account.md +++ b/windows/keep-secure/accounts-rename-guest-account.md @@ -1,5 +1,5 @@ --- -title: Accounts Rename guest account (Windows 10) +title: Accounts Rename guest account - security policy setting (Windows 10) description: Describes the best practices, location, values, and security considerations for the Accounts Rename guest account security policy setting. ms.assetid: 9b8052b4-bbb9-4cc1-bfee-ce25390db707 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Accounts: Rename guest account +# Accounts: Rename guest account - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/ad-ds-schema-extensions-to-support-tpm-backup.md b/windows/keep-secure/ad-ds-schema-extensions-to-support-tpm-backup.md index 9ce1e76918..0efd393b76 100644 --- a/windows/keep-secure/ad-ds-schema-extensions-to-support-tpm-backup.md +++ b/windows/keep-secure/ad-ds-schema-extensions-to-support-tpm-backup.md @@ -1,289 +1,5 @@ --- -title: AD DS schema extensions to support TPM backup (Windows 10) -description: This topic provides more details about this change and provides template schema extensions that you can incorporate into your organization. -ms.assetid: beb7097c-e674-4eab-b8e2-6f67c85d1f3f -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -author: brianlic-msft +title: AD DS schema extensions to support TPM backup +redirect_url: https://technet.microsoft.com/library/jj635854.aspx --- -# AD DS schema extensions to support TPM backup - -**Applies to** -- Windows 10, version 1511 -- Windows 10, version 1507 - -**Does not apply to** -- Windows 10, version 1607 or later - -This topic provides more details about this change and provides template schema extensions that you can incorporate into your organization. - -## Why a schema extension is needed - -The TPM owner authorization value is now stored in a separate object which is linked to the Computer object. This value was stored as a property in the Computer object itself for the default Windows Server 2008 R2 schema. Windows Server 2012 domain controllers have the default schema to backup TPM owner authorization information in the separate object. If you are not upgrading your domain controller to Windows Server 2012, you need to extend the schema to support this change. If Active Directory backup of the TPM owner authorization value is enabled in a Windows Server 2008 R2 environment without extending the schema, the TPM provisioning will fail and the TPM will remain in a Not Ready state for computers running Windows 8. The following are the two schema extensions that you can use to bring your Windows Server 2008 R2 domain to parity with Windows Server 2012: - -### TpmSchemaExtension.ldf - -This schema extension brings parity with the Windows Server 2012 schema and is required if you want to store the TPM owner authorization value for a computer running Windows 8 in a Windows Server 2008 R2 AD DS domain. With this extension the TPM owner authorization information will be stored in a separate TPM object linked to the corresponding computer object. - -``` syntax -#=============================================================================== -# -# Active Directory Domain Services schema extension for -# BitLocker Drive Encryption and Trusted Platform Module (TPM) recovery -# -# This file contains attributes and class objects that enable Windows Server -# 2008 and Windows Server 2008 R2 domain controllers to store TPM recovery -# information in a new, TPM-specific location. -# -# Change History: -# 07/2010 - Created -# -# To extend the schema, use the LDIFDE tool on the schema master of the forest. -# -# Sample command: -# ldifde -i -v -f TPMSchemaExtension.ldf -c "DC=X" "DC=nttest,dc=microsoft,dc=com" -k -j . -# -# For more information on LDIFDE tool, see -# http://support.microsoft.com/default.aspx?scid=kb;en-us;237677 -# -#=============================================================================== -#=============================================================================== -# New schema attributes -#=============================================================================== -# -# ms-TPM-Srk-Pub-Thumbprint -# GUID: 19d706eb-4d76-44a2-85d6-1c342be3be37 -# -dn: CN=ms-TPM-Srk-Pub-Thumbprint,CN=Schema,CN=Configuration,DC=X -changetype: add -objectClass: attributeSchema -ldapDisplayName: msTPM-SrkPubThumbprint -adminDisplayName: TPM-SrkPubThumbprint -adminDescription: This attribute contains the thumbprint of the SrkPub corresponding to a particular TPM. This helps to index the TPM devices in the directory. -attributeId: 1.2.840.113556.1.4.2107 -attributeSyntax: 2.5.5.10 -omSyntax: 4 -isSingleValued: TRUE -searchFlags: 11 -schemaIdGuid:: 6wbXGXZNokSF1hw0K+O+Nw== -showInAdvancedViewOnly: TRUE -isMemberOfPartialAttributeSet: FALSE -rangeUpper: 20 -# -# ms-TPM-Owner-Information-Temp -# GUID: c894809d-b513-4ff8-8811-f4f43f5ac7bc -# -dn: CN=ms-TPM-Owner-Information-Temp,CN=Schema,CN=Configuration,DC=X -changetype: add -objectClass: attributeSchema -ldapDisplayName: msTPM-OwnerInformationTemp -adminDisplayName: TPM-OwnerInformationTemp -adminDescription: This attribute contains temporary owner information for a particular TPM. -attributeId: 1.2.840.113556.1.4.2108 -attributeSyntax: 2.5.5.12 -omSyntax: 64 -isSingleValued: TRUE -searchFlags: 640 -rangeUpper: 128 -schemaIdGuid:: nYCUyBO1+E+IEfT0P1rHvA== -showInAdvancedViewOnly: TRUE -isMemberOfPartialAttributeSet: FALSE -# -# ms-TPM-Tpm-Information-For-Computer -# GUID: ea1b7b93-5e48-46d5-bc6c-4df4fda78a35 -# -dn: CN=ms-TPM-Tpm-Information-For-Computer,CN=Schema,CN=Configuration,DC=X -changetype: add -objectClass: attributeSchema -ldapDisplayName: msTPM-TpmInformationForComputer -adminDisplayName: TPM-TpmInformationForComputer -adminDescription: This attribute links a Computer object to a TPM object. -attributeId: 1.2.840.113556.1.4.2109 -attributeSyntax: 2.5.5.1 -omSyntax: 127 -isSingleValued: TRUE -searchFlags: 16 -omObjectClass:: KwwCh3McAIVK -schemaIdGuid:: k3sb6khe1Ua8bE30/aeKNQ== -showInAdvancedViewOnly: TRUE -isMemberOfPartialAttributeSet: FALSE -linkId: 2182 -# -# ms-TPM-TpmInformation-For-Computer-BL -# GUID: 14fa84c9-8ecd-4348-bc91-6d3ced472ab7 -# -dn: CN=ms-TPM-Tpm-Information-For-Computer-BL,CN=Schema,CN=Configuration,DC=X -changetype: add -objectClass: attributeSchema -ldapDisplayName: msTPM-TpmInformationForComputerBL -adminDisplayName: TPM-TpmInformationForComputerBL -adminDescription: This attribute links a TPM object to the Computer objects associated with it. -attributeId: 1.2.840.113556.1.4.2110 -attributeSyntax: 2.5.5.1 -omSyntax: 127 -isSingleValued: FALSE -searchFlags: 0 -omObjectClass:: KwwCh3McAIVK -schemaIdGuid:: yYT6FM2OSEO8kW087Ucqtw== -showInAdvancedViewOnly: TRUE -systemOnly: TRUE -linkId: 2183 -# -# Commit the new attributes -# -dn: -changetype: modify -add: schemaUpdateNow -schemaUpdateNow: 1 -- -# -# Modify the Computer schema to support the TPM link -# -dn: CN=computer,CN=Schema,CN=Configuration,DC=X -changetype: modify -add: mayContain -mayContain: msTPM-TpmInformationForComputer -- -# -# Commit the modification to the computer class -# -dn: -changetype: modify -add: schemaUpdateNow -schemaUpdateNow: 1 -- -#=============================================================================== -# New schema classes -#=============================================================================== -# -# ms-TPM-Information-Objects-Container -# GUID: e027a8bd-6456-45de-90a3-38593877ee74 -# -dn: CN=ms-TPM-Information-Objects-Container,CN=Schema,CN=Configuration,DC=X -changetype: add -objectClass: classSchema -ldapDisplayName: msTPM-InformationObjectsContainer -adminDisplayName: TPM-InformationObjectsContainer -adminDescription: Container for TPM objects. -governsID: 1.2.840.113556.1.5.276 -objectClassCategory: 1 -subClassOf: top -systemMustContain: cn -systemPossSuperiors: domain -systemPossSuperiors: domainDNS -schemaIdGUID:: vagn4FZk3kWQozhZOHfudA== -defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;LOLCCCRP;;;DC) -defaultHidingValue: TRUE -defaultObjectCategory: CN=ms-TPM-Information-Objects-Container,CN=Schema,CN=Configuration,DC=X -# -# ms-TPM-Information-Object -# GUID: 85045b6a-47a6-4243-a7cc-6890701f662c -# -# NOTE: If the 'defaultSecurityDescriptor' value below is changed, -# also change the other '.ldf' files in this directory, as appropriate. -# -dn: CN=ms-TPM-Information-Object,CN=Schema,CN=Configuration,DC=X -changetype: add -objectClass: classSchema -ldapDisplayName: msTPM-InformationObject -adminDisplayName: TPM-InformationObject -adminDescription: This class contains recovery information for a Trusted Platform Module (TPM) device. -governsID: 1.2.840.113556.1.5.275 -objectClassCategory: 1 -subClassOf: top -systemMustContain: msTPM-OwnerInformation -systemMayContain: msTPM-SrkPubThumbprint -systemMayContain: msTPM-OwnerInformationTemp -systemPossSuperiors: 1.2.840.113556.1.5.276 -schemaIdGUID:: alsEhaZHQ0KnzGiQcB9mLA== -defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLO;;;DC)(A;;WP;;;CO) -defaultHidingValue: TRUE -defaultObjectCategory: CN=ms-TPM-Information-Object,CN=Schema,CN=Configuration,DC=X -# -# NOTE: If the 'defaultSecurityDescriptor' value above is changed, -# also change the other '.ldf' files in this directory, as appropriate. -# -# -# Commit the new TPM object class -# -dn: -changetype: modify -add: schemaUpdateNow -schemaUpdateNow: 1 -- -#=============================================================================== -# New objects -#=============================================================================== -# -# Add the TPM container to its location in the directory -# -dn: CN=TPM Devices,DC=X -changetype: add -objectClass: msTPM-InformationObjectsContainer -``` - -You should be aware that only the Computer object that has created the TPM object can update it. This means that any subsequent updates to the TPM objects will not succeed in dual boot scenarios or scenarios where the computer is reimaged resulting in a new AD computer object being created. If you are planning to support such scenarios, you will need to update the schema further as shown in the schema extension example, TpmSchemaExtensionACLChanges.ldf. - -### TpmSchemaExtensionACLChanges.ldf - -This schema update modifies the ACLs on the TPM object to be less restrictive so that any subsequent operating system which takes ownership of the computer object can update the owner authorization value in AD DS. -> **Important**  After implementing this schema update, any computer in the domain can update the OwnerAuth of the TPM object (although it cannot read the OwnerAuth). When using this extension, perform a regular backup of the TPM objects and enable auditing to track the changes for these objects. -  -``` syntax -#=============================================================================== -# -# Active Directory Domain Services schema extension for -# BitLocker Drive Encryption and Trusted Platform Module (TPM) recovery -# -# This file modifies a class object that enables Windows Server 2008 -# and Windows Server 2008 R2 domain controllers to store TPM recovery -# information in a new, TPM-specific location. -# -# This file converts the standard schema extension in which only the creator -# of an 'ms-TPM-Information-Object' can write to the object to the Open -# schema extension in which any Domain Computer can write to the object. -# -# This conversion does not apply to any 'ms-TPM-Information-Object' that -# was created before the conversion. -# -# Change History: -# 12/2011 - Created -# -# To change the schema, use the LDIFDE tool on the schema master of the forest. -# -# Sample command: -# ldifde -i -v -f TpmSchemaExtensionACLChanges.ldf -# -c "DC=X" "DC=nttest,dc=microsoft,dc=com" -k -j . -# -# For more information on LDIFDE tool, see -# http://support.microsoft.com/default.aspx?scid=kb;en-us;237677 -# -#=============================================================================== -# -# Modify the TPM-Information-Object class schema 'defaultSecurityDescriptor' to -# allow any Domain Computer to write its properties (including the TPM OwnerAuth -# value) from allowing only the creating Computer object to write its properties -# -# NOTE: Keep any changes to the 'defaultSecurityDescriptor' value in synchronization -# with the value in the TPM-Information-Object class description in the -# 'TpmSchemaExtension.ldf' file -# -dn: CN=ms-TPM-Information-Object,CN=Schema,CN=Configuration,DC=X -changetype: modify -replace: defaultSecurityDescriptor -defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPLO;;;DC) -- -# -# Commit the modification to the TPM-Information-Object schema -# -dn: -changetype: modify -add: schemaUpdateNow -schemaUpdateNow: 1 -- -``` -  -  diff --git a/windows/keep-secure/add-apps-to-protected-list-using-custom-uri.md b/windows/keep-secure/add-apps-to-protected-list-using-custom-uri.md index 3565476277..9176b41ff8 100644 --- a/windows/keep-secure/add-apps-to-protected-list-using-custom-uri.md +++ b/windows/keep-secure/add-apps-to-protected-list-using-custom-uri.md @@ -19,8 +19,8 @@ localizationpriority: high You can add apps to your Windows Information Protection (WIP) protected app list using the Microsoft Intune custom URI functionality and AppLocker. For more info about how to create a custom URI using Intune, [Windows 10 custom policy settings in Microsoft Intune](https://go.microsoft.com/fwlink/p/?LinkID=691330). ->**Important**
    -Results can be unpredictable if you configure your policy using both the UI and the Custom URI method together. We recommend using a single method for each policy. +>[!IMPORTANT] +>Results can be unpredictable if you configure your policy using both the UI and the Custom URI method together. We recommend using a single method for each policy. ## Add Store apps 1. Go to the AppLocker UI by opening a command line window and running secpol.msc. The local security policy MMC snap-in opens showing the **Security Settings**. @@ -39,13 +39,15 @@ Results can be unpredictable if you configure your policy using both the UI and 5. In the **Rules Preferences** screen, keep the default settings, and then click **Next** to start generating the rules. - >**Note**
    We recommend that you use **Publisher** rules because they only work with apps you've specifically defined and they can be configured to not require updating simply because a new version came out.

    If you can't use **Publisher** rules, we then recommend that you use **File hash** rules. **File hash** rules are a secure alternative that can be used on unsigned code. The primary disadvantage to **File hash** is that every time a binary changes (such as, through servicing updates or upgrades), you'll need to create a new rule. + >[!NOTE] + >We recommend that you use **Publisher** rules because they only work with apps you've specifically defined and they can be configured to not require updating simply because a new version came out.

    If you can't use **Publisher** rules, we then recommend that you use **File hash** rules. **File hash** rules are a secure alternative that can be used on unsigned code. The primary disadvantage to **File hash** is that every time a binary changes (such as, through servicing updates or upgrades), you'll need to create a new rule. 6. In the **Review Rules** screen, look over your rules to make sure they’re right, and then click **Create** to add them to your collection of rules. 7. In the left pane, right-click **AppLocker**, click **Export Policies**, go to where you want to save the XML file and type a file name, click **Save**, and then clear your AppLocker rules. - >**Important**
    Be aware that what you're saving are the actual AppLocker rules using your local policy. You don't want to apply these rules to your employee devices, you just want to use them to create and export the XML content. You must delete the AppLocker rules before you apply your policy. + >[!IMPORTANT] + >Be aware that what you're saving are the actual AppLocker rules using your local policy. You don't want to apply these rules to your employee devices, you just want to use them to create and export the XML content. You must delete the AppLocker rules before you apply your policy. 8. Open the Intune administration console, and go to the **Policy** node, click **Add Policy** from the **Tasks** area, go to **Windows**, click the **Custom Configuration (Windows 10 Desktop and Mobile and later)** policy, click **Create and Deploy a Custom Policy**, and then click **Create Policy**. @@ -85,16 +87,18 @@ After saving the policy, you’ll need to deploy it to your employee’s devices 5. In the **Rules Preferences** screen, keep the default settings, and then click **Next** to start generating the rules. - >**Important**
    You can also use **Path** rules instead of the **File hash** if you have concerns about unsigned files potentially changing the hash value if they're updated in the future. + >[!IMPORTANT] + >You can also use **Path** rules instead of the **File hash** if you have concerns about unsigned files potentially changing the hash value if they're updated in the future. -

    - >**Note**
    We recommend that you use **Publisher** rules because they only work with apps you've specifically defined and they can be configured to not require updating simply because a new version came out.

    If you can't use **Publisher** rules, we then recommend that you use **File hash** rules. **File hash** rules are a secure alternative that can be used on unsigned code. The primary disadvantage to **File hash** is that every time a binary changes (such as, through servicing updates or upgrades), you'll need to create a new rule.

    Finally, there's **Path** rules. **Path** rules are easier to set up and maintain, but can let apps bypass Windows Information Protection (WIP) by simply renaming and moving an unallowed file to match one of the apps on the **Protected App** list. For example, if your **Path** rule says to allow `%PROGRAMFILES%/NOTEPAD.EXE`, it becomes possible to rename DisallowedApp.exe to Notepad.exe, move it into the specified path above, and have it suddenly be allowed. + >[!NOTE] + >We recommend that you use **Publisher** rules because they only work with apps you've specifically defined and they can be configured to not require updating simply because a new version came out.

    If you can't use **Publisher** rules, we then recommend that you use **File hash** rules. **File hash** rules are a secure alternative that can be used on unsigned code. The primary disadvantage to **File hash** is that every time a binary changes (such as, through servicing updates or upgrades), you'll need to create a new rule.

    Finally, there's **Path** rules. **Path** rules are easier to set up and maintain, but can let apps bypass Windows Information Protection (WIP) by simply renaming and moving an unallowed file to match one of the apps on the **Protected App** list. For example, if your **Path** rule says to allow `%PROGRAMFILES%/NOTEPAD.EXE`, it becomes possible to rename DisallowedApp.exe to Notepad.exe, move it into the specified path above, and have it suddenly be allowed. 6. In the **Review Rules** screen, look over your rules to make sure they’re right, and then click **Create** to add them to your collection of rules. 7. In the left pane, right-click **AppLocker**, click **Export Policies**, go to where you want to save the XML file and type a file name, click **Save**, and then clear your AppLocker rules. - >**Important**
    Be aware that what you're saving are the actual AppLocker rules using your local policy. You don't want to apply these rules to your employee devices, you just want to use them to create and export the XML content. You must delete the AppLocker rules before you apply your policy. + >[!IMPORTANT] + >Be aware that what you're saving are the actual AppLocker rules using your local policy. You don't want to apply these rules to your employee devices, you just want to use them to create and export the XML content. You must delete the AppLocker rules before you apply your policy. 8. Open the Intune administration console, and go to the **Policy** node, click **Add Policy** from the **Tasks** area, go to **Windows**, click the **Custom Configuration (Windows 10 Desktop and Mobile and later)** policy, click **Create and Deploy a Custom Policy**, and then click **Create Policy**. @@ -118,7 +122,10 @@ After saving the policy, you’ll need to deploy it to your employee’s devices After saving the policy, you’ll need to deploy it to your employee’s devices. For more info, see the [Deploy your Windows Information Protection (WIP) policy](deploy-wip-policy-using-intune.md) topic. -##Related topics +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). + +## Related topics - [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) - [Deploy your Windows Information Protection (WIP) policy](deploy-wip-policy-using-intune.md) - [Create and deploy a VPN policy for Windows Information Protection (WIP) using Microsoft Intune](create-vpn-and-wip-policy-using-intune.md) diff --git a/windows/keep-secure/allow-log-on-locally.md b/windows/keep-secure/allow-log-on-locally.md index 3cbeacb088..9e4831a223 100644 --- a/windows/keep-secure/allow-log-on-locally.md +++ b/windows/keep-secure/allow-log-on-locally.md @@ -1,5 +1,5 @@ --- -title: Allow log on locally (Windows 10) +title: Allow log on locally - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Allow log on locally security policy setting. ms.assetid: d9e5e1f3-3bff-4da7-a9a2-4bb3e0c79055 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Allow log on locally +# Allow log on locally - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/app-behavior-with-wip.md b/windows/keep-secure/app-behavior-with-wip.md index 55939649d4..bf932d459d 100644 --- a/windows/keep-secure/app-behavior-with-wip.md +++ b/windows/keep-secure/app-behavior-with-wip.md @@ -129,3 +129,6 @@ This table includes info about how enlightened apps might behave, based on your + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). diff --git a/windows/keep-secure/back-up-files-and-directories.md b/windows/keep-secure/back-up-files-and-directories.md index 6f6a7b8805..f338698789 100644 --- a/windows/keep-secure/back-up-files-and-directories.md +++ b/windows/keep-secure/back-up-files-and-directories.md @@ -1,5 +1,5 @@ --- -title: Back up files and directories (Windows 10) +title: Back up files and directories - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Back up files and directories security policy setting. ms.assetid: 1cd6bdd5-1501-41f4-98b9-acf29ac173ae ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Back up files and directories +# Back up files and directories - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/backup-tpm-recovery-information-to-ad-ds.md b/windows/keep-secure/backup-tpm-recovery-information-to-ad-ds.md index 3f72f93ba5..10963dd930 100644 --- a/windows/keep-secure/backup-tpm-recovery-information-to-ad-ds.md +++ b/windows/keep-secure/backup-tpm-recovery-information-to-ad-ds.md @@ -1,6 +1,6 @@ --- -title: Backup the TPM recovery Information to AD DS (Windows 10) -description: This topic for the IT professional describes how to back up a computer’s Trusted Platform Module (TPM) information to Active Directory Domain Services (AD DS) so that you can use AD DS to administer the TPM from a remote computer. +title: Back up the TPM recovery information to AD DS (Windows 10) +description: This topic for the IT professional describes backup of Trusted Platform Module (TPM) information. ms.assetid: 62bcec80-96a1-464e-8b3f-d177a7565ac5 ms.prod: w10 ms.mktglfcycl: deploy @@ -9,556 +9,19 @@ ms.pagetype: security author: brianlic-msft --- -# Backup the TPM recovery Information to AD DS +# Back up the TPM recovery information to AD DS **Applies to** - Windows 10, version 1511 - Windows 10, version 1507 **Does not apply to** -- Windows 10, version 1607 or later -This topic for the IT professional describes how to back up a computer’s Trusted Platform Module (TPM) information to Active Directory Domain Services (AD DS) so that you can use AD DS to administer the TPM from a remote computer. +- Windows 10, version 1607 or later -## About administering TPM remotely +With Windows 10, versions 1511 and 1507, you can back up a computer’s Trusted Platform Module (TPM) information to Active Directory Domain Services (AD DS). By doing this, you can use AD DS to administer the TPM from a remote computer. The procedure is the same as it was for Windows 8.1. For more information, see [Backup the TPM Recovery Information to AD DS](https://technet.microsoft.com/library/dn466534(v=ws.11).aspx). -Backing up the TPM owner information for a computer allows administrators in a domain to remotely configure the TPM security hardware on the local computer. For example, administrators might want to reset the TPM to the manufacturer’s defaults when they decommission or repurpose computers, without having to be present at the computer. +## Related topics -You can use AD DS to store TPM owner information for use in recovery situations where the TPM owner has forgotten the password or where you must take control of the TPM. There is only one TPM owner password per computer; therefore, the hash of the TPM owner password can be stored as an attribute of the computer object in AD DS. The attribute has the common name (CN) of **ms-TPM-OwnerInformation**. - -> **Note:**  The TPM owner authorization value is stored in AD DS, and it is present in a TPM owner password file as a SHA-1 hash of the TPM owner password, which is base 64–encoded. The actual owner password is not stored. -  -Domain controllers running Windows Server 2012 R2 or Windows Server 2012 include the required AD DS schema objects by default. However, if your domain controller is running Windows Server 2008 R2, you need to update the schema as described in [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md). - -This topic contains procedures, some of which are dependent on Visual Basic scripts, to recover TPM information and decommission TPM on remote computers. Sample scripts are available, which you can customize to meet the requirements of your environment. - -In this topic: - -1. [Check status of prerequisites](#bkmk-prereqs) -2. [Set permissions to back up password information](#bkmk-setperms) -3. [Configure Group Policy to back up TPM recovery information in AD DS](#bkmk-configuregp) -4. [Use AD DS to recover TPM information](#bkmk-useit) -5. [Sample scripts](#bkmk-adds-tpm-scripts) - -## Check status of prerequisites - -Before you begin your backup, ensure that the following prerequisites are met: - -1. All domain controllers that are accessible by client computers that will be using TPM services are running Windows Server 2012 R2, Windows Server 2012, or Windows Server 2008 R2 with the updated schema. - - > **Tip:**  For more info about the schema extensions that are required for a TPM backup in Active Directory domains that are running Windows Server 2008 R2, see [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md). -   -2. You have domain administrator rights in the target forest, or you are using an account that has been granted appropriate permissions to extend the schema for the target forest. Members of the Enterprise Admins or Schema Admins groups are examples of accounts that have the appropriate permissions. - -## Set permissions to back up password information - -This procedure uses the sample script [Add-TPMSelfWriteACE.vbs](#bkmk-add-tpmselfwriteace) to add an access control entry (ACE) so that backing up TPM recovery information is possible. A client computer cannot back up TPM owner information until this ACE is added. - -This script is run on the domain controller that you will use to administer the TPM recovery information, and it operates under the following assumptions: - -- You have domain administrator credentials to set permissions for the top-level domain object. -- Your target domain is the same as the domain for the user account that is running the script. For example, running the script as TESTDOMAIN\\admin will extend permissions for TESTDOMAIN. - - > **Note:**  You might need to modify the sample script if you want to set permissions for multiple domains, but you do not have domain administrator accounts for each of those domains. Find the variable **strPathToDomain** in the script, and modify it for your target domain, for example: - `LDAP://DC=testdomain,DC=nttest,DC=microsoft,DC=com` -   -- Your domain is configured so that permissions are inherited from the top-level domain object to targeted computer objects. - - Permissions will not take effect if any container in the hierarchy does not allow inherited permissions. By default, permissions inheritance is set in AD DS. If you are not sure whether your configuration differs from this default, you can continue with the setup steps to set the permissions. - You can then verify your configuration as described later in this topic. Or you can click the **Effective Permissions** button while viewing the properties of a computer object, then check that **Self** is approved to write the **msTPM-OwnerInformation** attribute. - -**To add an ACE to allow TPM recovery information backup** - -1. Open the sample script **Add-TPMSelfWriteACE.vbs**. - - The script contains a permission extension, and you must modify the value of **strPathToDomain** by using your domain name. - -2. Save your modifications to the script. -3. Type the following at a command prompt, and then press ENTER: - - **cscript Add-TPMSelfWriteACE.vbs** - -This script adds a single ACE to the top-level domain object. The ACE is an inheritable permission that allows the computer (SELF) to write to the **ms-TPM-OwnerInformation** attribute for computer objects in the domain. -Complete the following procedure to check that the correct permissions are set and to remove TPM and BitLocker ACEs from the top-level domain, if necessary. - -**Manage ACEs configured on TPM schema objects** - -1. Open the sample script **List-ACEs.vbs**. -2. Modify **List-ACEs.vbs**. - - You must modify: - - Value of **strPathToDomain**: Use your domain name. - - Filter options: The script sets a filter to address BitLocker and TPM schema objects, so you must modify **If IsFilterActive ()** if you want to list or remove other schema objects. - -3. Save your modifications to the script. -4. Type the following at a command prompt, and then press ENTER: - - **cscript List-ACEs.vbs** - - With this script you can optionally remove ACEs from BitLocker and TPM schema objects on the top-level domain. - -## Configure Group Policy to back up TPM recovery information in AD DS - -Use these procedures to configure the [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#bkmk-tpmgp-addsbu) policy setting on a local computer. In a production environment, an efficient way to do this is to create or edit a Group Policy Object (GPO) that can target client computers in the domain. - -**To enable local policy setting to back up TPM recovery information to AD DS** - -1. Sign in to a domain-joined computer by using a domain account that is a member of the local Administrators group. -2. Open the Local Group Policy Editor (gpedit.msc), and in the console tree, navigate to **Computer Configuration\\Administrative Templates\\System**. -3. Click **Trusted Platform Module Services**. -4. Double-click **Turn on TPM backup to Active Directory Domain Services**. -5. Click **Enabled**, and then click **OK**. -> **Important:**  When this setting is enabled, the TPM owner password cannot be set or changed unless the computer is connected to the domain and AD DS backup of the TPM recovery information succeeds. -  -## Use AD DS to recover TPM information - -When you need to recover the TPM owner information from AD DS and use it to manage the TPM, you need to read the **ms-TPM-OwnerInformation** object from AD DS, and then manually create a TPM owner password backup file that can be supplied when TPM owner credentials are required. - -**To obtain TPM owner backup information from AD DS and create a password file** - -1. Sign in to a domain controller by using domain administrator credentials. -2. Copy the sample script file, [Get-TPMOwnerInfo.vbs](#bkmk-get-tpmownerinfo), to a location on your computer. -3. Open a Command Prompt window, and change the default location to the location of the sample script files you saved in the previous step. -4. At the command prompt, type **cscript Get-TPMOwnerInfo.vbs**. - - The expected output is a string that is the hash of the password that you created earlier. - > **Note:**  If you receive the error message, "Active Directory: The directory property cannot be found in the cache," verify that you are using a domain administrator account, which is required to read the **ms-TPM-OwnerInformation** attribute. - - The only exception to this requirement is that if users are the Creator Owner of computer objects that they join to the domain, they can possibly read the TPM owner information for their computer objects. -   -5. Open Notepad or another text editor, and copy the following code sample into the file, and replace *TpmOwnerPasswordHash* with the string that you recorded in the previous step. - - ``` syntax - - - -                 -                 TpmOwnerPasswordHash - - ``` -6. Save this file with a .tpm extension on a removable storage device, such as a USB flash drive. When you access the TPM, and you are required to provide the TPM owner password, choose the option for reading the password from a file and provide the path to this file. - -## Sample scripts - -You can use all or portions of the following sample scripts, which are used in the preceding procedures, to configure AD DS for backing up TPM recovery information. Customization is required depending on how your environment is configured. - -- [Add-TPMSelfWriteACE.vbs: Use to add the access control entry (ACE) for the TPM to AD DS](#bkmk-add-tpmselfwriteace) -- [List-ACEs.vbs: Use to list or remove the ACEs that are configured on BitLocker and TPM schema objects](#bkmk-list-aces) -- [Get-TPMOwnerInfo.vbs: Use to retrieve the TPM recovery information from AD DS for a particular computer](#bkmk-get-tpmownerinfo) - -### Add-TPMSelfWriteACE.vbs - -This script adds the access control entry (ACE) for the TPM to AD DS so that the computer can back up TPM recovery information in AD DS. - -``` syntax -'=============================================================================== -' -' This script demonstrates the addition of an Access Control Entry (ACE) -' to allow computers to write Trusted Platform Module (TPM) -' recovery information to Active Directory. -' -' This script creates a SELF ACE on the top-level domain object, and -' assumes that inheritance of ACL's from the top-level domain object to -' down-level computer objects are enabled. -' -' -' -' Last Updated: 12/05/2012 -' Last Reviewed: 12/05/2012 -' Microsoft Corporation -' -' Disclaimer -' -' The sample scripts are not supported under any Microsoft standard support program -' or service. The sample scripts are provided AS IS without warranty of any kind. -' Microsoft further disclaims all implied warranties including, without limitation, -' any implied warranties of merchantability or of fitness for a particular purpose. -' The entire risk arising out of the use or performance of the sample scripts and -' documentation remains with you. In no event shall Microsoft, its authors, or -' anyone else involved in the creation, production, or delivery of the scripts be -' liable for any damages whatsoever (including, without limitation, damages for loss -' of business profits, business interruption, loss of business information, or -' other pecuniary loss) arising out of the use of or inability to use the sample -' scripts or documentation, even if Microsoft has been advised of the possibility -' of such damages. -' -' Version 1.0.2 - Tested and re-released for Windows 8 and Windows Server 2012 -' -'=============================================================================== -' -------------------------------------------------------------------------------- -' Access Control Entry (ACE) constants -' -------------------------------------------------------------------------------- -'- From the ADS_ACETYPE_ENUM enumeration -Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &H5 'Allows an object to do something -'- From the ADS_ACEFLAG_ENUM enumeration -Const ADS_ACEFLAG_INHERIT_ACE = &H2 'ACE can be inherited to child objects -Const ADS_ACEFLAG_INHERIT_ONLY_ACE = &H8 'ACE does NOT apply to target (parent) object -'- From the ADS_RIGHTS_ENUM enumeration -Const ADS_RIGHT_DS_WRITE_PROP = &H20 'The right to write object properties -Const ADS_RIGHT_DS_CREATE_CHILD = &H1 'The right to create child objects -'- From the ADS_FLAGTYPE_ENUM enumeration -Const ADS_FLAG_OBJECT_TYPE_PRESENT = &H1 'Target object type is present in the ACE -Const ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT = &H2 'Target inherited object type is present in the ACE -' -------------------------------------------------------------------------------- -' TPM and FVE schema object GUID's -' -------------------------------------------------------------------------------- -'- ms-TPM-OwnerInformation attribute -SCHEMA_GUID_MS_TPM_OWNERINFORMATION = "{AA4E1A6D-550D-4E05-8C35-4AFCB917A9FE}" -'- ms-FVE-RecoveryInformation object -SCHEMA_GUID_MS_FVE_RECOVERYINFORMATION = "{EA715D30-8F53-40D0-BD1E-6109186D782C}" -'- Computer object -SCHEMA_GUID_COMPUTER = "{BF967A86-0DE6-11D0-A285-00AA003049E2}" -'Reference: "Platform SDK: Active Directory Schema" -' -------------------------------------------------------------------------------- -' Set up the ACE to allow write of TPM owner information -' -------------------------------------------------------------------------------- -Set objAce1 = createObject("AccessControlEntry") -objAce1.AceFlags = ADS_ACEFLAG_INHERIT_ACE + ADS_ACEFLAG_INHERIT_ONLY_ACE -objAce1.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT -objAce1.Flags = ADS_FLAG_OBJECT_TYPE_PRESENT + ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT -objAce1.Trustee = "SELF" -objAce1.AccessMask = ADS_RIGHT_DS_WRITE_PROP -objAce1.ObjectType = SCHEMA_GUID_MS_TPM_OWNERINFORMATION -objAce1.InheritedObjectType = SCHEMA_GUID_COMPUTER -' -------------------------------------------------------------------------------- -' NOTE: BY default, the "SELF" computer account can create -' BitLocker recovery information objects and write BitLocker recovery properties -' -' No additional ACE's are needed. -' -------------------------------------------------------------------------------- -' -------------------------------------------------------------------------------- -' Connect to Discretional ACL (DACL) for domain object -' -------------------------------------------------------------------------------- -Set objRootLDAP = GetObject("LDAP://rootDSE") -strPathToDomain = "LDAP://" & objRootLDAP.Get("defaultNamingContext") ' e.g. string dc=fabrikam,dc=com -Set objDomain = GetObject(strPathToDomain) -WScript.Echo "Accessing object: " + objDomain.Get("distinguishedName") -Set objDescriptor = objDomain.Get("ntSecurityDescriptor") -Set objDacl = objDescriptor.DiscretionaryAcl - -' -------------------------------------------------------------------------------- -' Add the ACEs to the Discretionary ACL (DACL) and set the DACL -' -------------------------------------------------------------------------------- -objDacl.AddAce objAce1 -objDescriptor.DiscretionaryAcl = objDacl -objDomain.Put "ntSecurityDescriptor", Array(objDescriptor) -objDomain.SetInfo -WScript.Echo "SUCCESS!" -``` - -### List-ACEs.vbs - -This script lists or removes the ACEs that are configured on BitLocker and TPM schema objects for the top-level domain. This enables you to verify that the expected ACEs have been added appropriately or to remove any ACEs that are related to BitLocker or the TPM, if necessary. - -``` syntax -'=============================================================================== -' -' This script lists the access control entries (ACE's) configured on -' Trusted Platform Module (TPM) and BitLocker Drive Encryption (BDE) schema objects -' for the top-level domain. -' -' You can use this script to check that the correct permissions have been set and -' to remove TPM and BitLocker ACE's from the top-level domain. -' -' -' Last Updated: 12/05/2012 -' Last Reviewed: 12/02/2012 -' -' Microsoft Corporation -' -' Disclaimer -' -' The sample scripts are not supported under any Microsoft standard support program -' or service. The sample scripts are provided AS IS without warranty of any kind. -' Microsoft further disclaims all implied warranties including, without limitation, -' any implied warranties of merchantability or of fitness for a particular purpose. -' The entire risk arising out of the use or performance of the sample scripts and -' documentation remains with you. In no event shall Microsoft, its authors, or -' anyone else involved in the creation, production, or delivery of the scripts be -' liable for any damages whatsoever (including, without limitation, damages for loss -' of business profits, business interruption, loss of business information, or -' other pecuniary loss) arising out of the use of or inability to use the sample -' scripts or documentation, even if Microsoft has been advised of the possibility -' of such damages. -' -' Version 1.0.2 - Tested and re-released for Windows 8 and Windows Server 2012 -' -'=============================================================================== -' -------------------------------------------------------------------------------- -' Usage -' -------------------------------------------------------------------------------- -Sub ShowUsage - Wscript.Echo "USAGE: List-ACEs" - Wscript.Echo "List access permissions for BitLocker and TPM schema objects" - Wscript.Echo "" - Wscript.Echo "USAGE: List-ACEs -remove" - Wscript.Echo "Removes access permissions for BitLocker and TPM schema objects" - WScript.Quit -End Sub -' -------------------------------------------------------------------------------- -' Parse Arguments -' -------------------------------------------------------------------------------- -Set args = WScript.Arguments -Select Case args.Count - - Case 0 - ' do nothing - checks for ACE's - removeACE = False - - Case 1 - If args(0) = "/?" Or args(0) = "-?" Then - ShowUsage - Else - If UCase(args(0)) = "-REMOVE" Then - removeACE = True - End If - End If - Case Else - ShowUsage -End Select -' -------------------------------------------------------------------------------- -' Configuration of the filter to show/remove only ACE's for BDE and TPM objects -' -------------------------------------------------------------------------------- -'- ms-TPM-OwnerInformation attribute -SCHEMA_GUID_MS_TPM_OWNERINFORMATION = "{AA4E1A6D-550D-4E05-8C35-4AFCB917A9FE}" -'- ms-FVE-RecoveryInformation object -SCHEMA_GUID_MS_FVE_RECOVERYINFORMATION = "{EA715D30-8F53-40D0-BD1E-6109186D782C}" -' Use this filter to list/remove only ACEs related to TPM and BitLocker -aceGuidFilter = Array(SCHEMA_GUID_MS_TPM_OWNERINFORMATION, _ - SCHEMA_GUID_MS_FVE_RECOVERYINFORMATION) -' Note to script source reader: -' Uncomment the following line to turn off the filter and list all ACEs -'aceGuidFilter = Array() -' -------------------------------------------------------------------------------- -' Helper functions related to the list filter for listing or removing ACE's -' -------------------------------------------------------------------------------- -Function IsFilterActive() - If Join(aceGuidFilter) = "" Then - IsFilterActive = False - Else - IsFilterActive = True - End If -End Function -Function isAceWithinFilter(ace) - aceWithinFilter = False ' assume first not pass the filter - For Each guid In aceGuidFilter - If ace.ObjectType = guid Or ace.InheritedObjectType = guid Then - isAceWithinFilter = True - End If - Next -End Function -Sub displayFilter - For Each guid In aceGuidFilter - WScript.echo guid - Next -End Sub -' -------------------------------------------------------------------------------- -' Connect to Discretional ACL (DACL) for domain object -' -------------------------------------------------------------------------------- -Set objRootLDAP = GetObject("LDAP://rootDSE") -strPathToDomain = "LDAP://" & objRootLDAP.Get("defaultNamingContext") ' e.g. dc=fabrikam,dc=com -Set domain = GetObject(strPathToDomain) -WScript.Echo "Accessing object: " + domain.Get("distinguishedName") -WScript.Echo "" -Set descriptor = domain.Get("ntSecurityDescriptor") -Set dacl = descriptor.DiscretionaryAcl -' -------------------------------------------------------------------------------- -' Show Access Control Entries (ACE's) -' -------------------------------------------------------------------------------- -' Loop through the existing ACEs, including all ACEs if the filter is not active -i = 1 ' global index -c = 0 ' found count - relevant if filter is active -For Each ace In dacl - If IsFilterActive() = False or isAceWithinFilter(ace) = True Then - ' note to script source reader: - ' echo i to show the index of the ACE - - WScript.echo "> AceFlags: " & ace.AceFlags - WScript.echo "> AceType: " & ace.AceType - WScript.echo "> Flags: " & ace.Flags - WScript.echo "> AccessMask: " & ace.AccessMask - WScript.echo "> ObjectType: " & ace.ObjectType - WScript.echo "> InheritedObjectType: " & ace.InheritedObjectType - WScript.echo "> Trustee: " & ace.Trustee - WScript.echo "" - if IsFilterActive() = True Then - c = c + 1 - ' optionally include this ACE in removal list if configured - ' note that the filter being active is a requirement since we don't - ' want to accidentally remove all ACEs - If removeACE = True Then - dacl.RemoveAce ace - End If - end if - End If - i = i + 1 -Next -' Display number of ACEs found -If IsFilterActive() = True Then - WScript.echo c & " ACE(s) found in " & domain.Get("distinguishedName") _ - & " related to BitLocker and TPM" 'note to script source reader: change this line if you configure your own -filter - ' note to script source reader: - ' uncomment the following lines if you configure your own filter - 'WScript.echo "" - 'WScript.echo "The following filter was active: " - 'displayFilter - 'Wscript.echo "" -Else - i = i - 1 - WScript.echo i & " total ACE(s) found in " & domain.Get("distinguishedName") - -End If -' -------------------------------------------------------------------------------- -' Optionally remove ACE's on a filtered list -' -------------------------------------------------------------------------------- -if removeACE = True and IsFilterActive() = True then - descriptor.DiscretionaryAcl = dacl - domain.Put "ntSecurityDescriptor", Array(descriptor) - domain.setInfo - WScript.echo c & " ACE(s) removed from " & domain.Get("distinguishedName") -else - if removeACE = True then - WScript.echo "You must specify a filter to remove ACEs from " & domain.Get("distinguishedName") - - end if -end if -``` - -### Get-TPMOwnerInfo.vbs - -This script retrieves TPM recovery information from AD DS for a particular computer so that you can verify that only domain administrators (or delegated roles) can read backed up TPM recovery information and verify that the information is being backed up correctly. - -``` syntax -'================================================================================= -' -' This script demonstrates the retrieval of Trusted Platform Module (TPM) -' recovery information from Active Directory for a particular computer. -' -' It returns the TPM owner information stored as an attribute of a -' computer object. -' -' Last Updated: 12/05/2012 -' Last Reviewed: 12/05/2012 -' -' Microsoft Corporation -' -' Disclaimer -' -' The sample scripts are not supported under any Microsoft standard support program -' or service. The sample scripts are provided AS IS without warranty of any kind. -' Microsoft further disclaims all implied warranties including, without limitation, -' any implied warranties of merchantability or of fitness for a particular purpose. -' The entire risk arising out of the use or performance of the sample scripts and -' documentation remains with you. In no event shall Microsoft, its authors, or -' anyone else involved in the creation, production, or delivery of the scripts be -' liable for any damages whatsoever (including, without limitation, damages for loss -' of business profits, business interruption, loss of business information, or -' other pecuniary loss) arising out of the use of or inability to use the sample -' scripts or documentation, even if Microsoft has been advised of the possibility -' of such damages. -' -' Version 1.0 - Initial release -' Version 1.1 - Updated GetStrPathToComputer to search the global catalog. -' Version 1.1.2 - Tested and re-released for Windows 8 and Windows Server 2012 -' -'================================================================================= -' -------------------------------------------------------------------------------- -' Usage -' -------------------------------------------------------------------------------- -Sub ShowUsage - Wscript.Echo "USAGE: Get-TpmOwnerInfo [Optional Computer Name]" - Wscript.Echo "If no computer name is specified, the local computer is assumed." - WScript.Quit -End Sub -' -------------------------------------------------------------------------------- -' Parse Arguments -' -------------------------------------------------------------------------------- -Set args = WScript.Arguments -Select Case args.Count - - Case 0 - ' Get the name of the local computer - Set objNetwork = CreateObject("WScript.Network") - strComputerName = objNetwork.ComputerName - - Case 1 - If args(0) = "/?" Or args(0) = "-?" Then - ShowUsage - Else - strComputerName = args(0) - End If - - Case Else - ShowUsage -End Select -' -------------------------------------------------------------------------------- -' Get path to Active Directory computer object associated with the computer name -' -------------------------------------------------------------------------------- -Function GetStrPathToComputer(strComputerName) - ' Uses the global catalog to find the computer in the forest - ' Search also includes deleted computers in the tombstone - Set objRootLDAP = GetObject("LDAP://rootDSE") - namingContext = objRootLDAP.Get("defaultNamingContext") ' e.g. string dc=fabrikam,dc=com - strBase = "" - - Set objConnection = CreateObject("ADODB.Connection") - Set objCommand = CreateObject("ADODB.Command") - objConnection.Provider = "ADsDSOOBject" - objConnection.Open "Active Directory Provider" - Set objCommand.ActiveConnection = objConnection - strFilter = "(&(objectCategory=Computer)(cn=" & strComputerName & "))" - strQuery = strBase & ";" & strFilter & ";distinguishedName;subtree" - objCommand.CommandText = strQuery - objCommand.Properties("Page Size") = 100 - objCommand.Properties("Timeout") = 100 - objCommand.Properties("Cache Results") = False - ' Enumerate all objects found. - Set objRecordSet = objCommand.Execute - If objRecordSet.EOF Then - WScript.echo "The computer name '" & strComputerName & "' cannot be found." - WScript.Quit 1 - End If - ' Found object matching name - Do Until objRecordSet.EOF - dnFound = objRecordSet.Fields("distinguishedName") - GetStrPathToComputer = "LDAP://" & dnFound - objRecordSet.MoveNext - Loop - ' Clean up. - Set objConnection = Nothing - Set objCommand = Nothing - Set objRecordSet = Nothing -End Function -' -------------------------------------------------------------------------------- -' Securely access the Active Directory computer object using Kerberos -' -------------------------------------------------------------------------------- -Set objDSO = GetObject("LDAP:") -strPath = GetStrPathToComputer(strComputerName) -WScript.Echo "Accessing object: " + strPath -Const ADS_SECURE_AUTHENTICATION = 1 -Const ADS_USE_SEALING = 64 '0x40 -Const ADS_USE_SIGNING = 128 '0x80 -Set objComputer = objDSO.OpenDSObject(strPath, vbNullString, vbNullString, _ - ADS_SECURE_AUTHENTICATION + ADS_USE_SEALING + ADS_USE_SIGNING) -' -------------------------------------------------------------------------------- -' Get the TPM owner information from the Active Directory computer object -' -------------------------------------------------------------------------------- -strOwnerInformation = objComputer.Get("msTPM-OwnerInformation") -WScript.echo "msTPM-OwnerInformation: " + strOwnerInformation -``` - -## Additional resources - -- [Trusted Platform Module technology overview](trusted-platform-module-overview.md) -- [TPM fundamentals](tpm-fundamentals.md) -- [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) -- [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -- [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md) -- [Prepare your organization for BitLocker: Planning and Policies](http://technet.microsoft.com/library/jj592683.aspx), see TPM considerations +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) +- [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) \ No newline at end of file diff --git a/windows/keep-secure/basic-audit-logon-events.md b/windows/keep-secure/basic-audit-logon-events.md index 143c150317..dd0764f2b5 100644 --- a/windows/keep-secure/basic-audit-logon-events.md +++ b/windows/keep-secure/basic-audit-logon-events.md @@ -22,6 +22,8 @@ If you define this policy setting, you can specify whether to audit successes, a To set this value to **No auditing**, in the **Properties** dialog box for this policy setting, select the **Define these policy settings** check box and clear the **Success** and **Failure** check boxes. +For information about advanced security policy settings for logon events, see the [Logon/logoff](advanced-security-audit-policy-settings.md#logonlogoff) section in [Advanced security audit policy settings](advanced-security-audit-policy-settings.md). + ## Configure this audit setting You can configure this security setting by opening the appropriate policy under Computer Configuration\\Windows Settings\\Security Settings\\Local Policies\\Audit Policy. diff --git a/windows/keep-secure/bitlocker-basic-deployment.md b/windows/keep-secure/bitlocker-basic-deployment.md index b83692c713..fbc016705b 100644 --- a/windows/keep-secure/bitlocker-basic-deployment.md +++ b/windows/keep-secure/bitlocker-basic-deployment.md @@ -40,7 +40,7 @@ BitLocker encryption can be done using the following methods: ### Encrypting volumes using the BitLocker control panel -Encrypting volumes with the BitLocker control panel is how many users will utilize BitLocker. The name of the BitLocker control panel is BitLocker Drive Encryption. The BitLocker control panel supports encrypting operating system, fixed data and removable data volumes. The BitLocker control panel will organize available drives in the appropriate category based on how the device reports itself to Windows. Only formatted volumes with assigned drive letters will appear properly in the BitLocker control panel applet. +Encrypting volumes with the BitLocker control panel (click **Start**, type **bitlocker**, click **Manage BitLocker**) is how many users will utilize BitLocker. The name of the BitLocker control panel is BitLocker Drive Encryption. The BitLocker control panel supports encrypting operating system, fixed data and removable data volumes. The BitLocker control panel will organize available drives in the appropriate category based on how the device reports itself to Windows. Only formatted volumes with assigned drive letters will appear properly in the BitLocker control panel applet. To start encryption for a volume, select **Turn on BitLocker** for the appropriate drive to initialize the BitLocker Drive Encryption Wizard. BitLocker Drive Encryption Wizard options vary based on volume type (operating system volume or data volume). ### Operating system volume diff --git a/windows/keep-secure/bitlocker-countermeasures.md b/windows/keep-secure/bitlocker-countermeasures.md index 7e1f6c7414..89261d666c 100644 --- a/windows/keep-secure/bitlocker-countermeasures.md +++ b/windows/keep-secure/bitlocker-countermeasures.md @@ -23,9 +23,9 @@ The sections that follow provide more detailed information about the different t ### Protection before startup -Before Windows starts, you must rely on security features implemented as part of the device hardware, including TPM andSecure Boot. Fortunately, many modern computers feature TPM. +Before Windows starts, you must rely on security features implemented as part of the device hardware, including TPM and Secure Boot. Fortunately, many modern computers feature TPM. -**Trusted Platform Module** +#### Trusted Platform Module Software alone isn’t sufficient to protect a system. After an attacker has compromised software, the software might be unable to detect the compromise. Therefore, a single successful software compromise results in an untrusted system that might never be detected. Hardware, however, is much more difficult to modify. @@ -33,7 +33,7 @@ A TPM is a microchip designed to provide basic security-related functions, prima By binding the BitLocker encryption key with the TPM and properly configuring the device, it’s nearly impossible for an attacker to gain access to the BitLocker-encrypted data without obtaining an authorized user’s credentials. Therefore, computers with a TPM can provide a high level of protection against attacks that attempt to directly retrieve the BitLocker encryption key. For more info about TPM, see [Trusted Platform Module](trusted-platform-module-overview.md). -**UEFI and Secure Boot** +#### UEFI and Secure Boot No operating system can protect a device when the operating system is offline. For that reason, Microsoft worked closely with hardware vendors to require firmware-level protection against boot and rootkits that might compromise an encryption solution’s encryption keys. @@ -53,7 +53,7 @@ Using the digital signature, UEFI verifies that the bootloader was signed using If the bootloader passes these two tests, UEFI knows that the bootloader isn’t a bootkit and starts it. At this point, Trusted Boot takes over, and the Windows bootloader, using the same cryptographic technologies that UEFI used to verify the bootloader, then verifies that the Windows system files haven’t been changed. -All Windows 8–certified devices must meet several requirements related to UEFI-based Secure Boot: +Starting with Windows 8, certified devices must meet several requirements related to UEFI-based Secure Boot: - They must have Secure Boot enabled by default. - They must trust Microsoft’s certificate (and thus any bootloader Microsoft has signed). diff --git a/windows/keep-secure/bitlocker-frequently-asked-questions.md b/windows/keep-secure/bitlocker-frequently-asked-questions.md index 6e3ae93c32..5761c7318a 100644 --- a/windows/keep-secure/bitlocker-frequently-asked-questions.md +++ b/windows/keep-secure/bitlocker-frequently-asked-questions.md @@ -47,6 +47,8 @@ Yes, BitLocker supports multifactor authentication for operating system drives. ### What are the BitLocker hardware and software requirements? +For requirements, see [System requirements](https://technet.microsoft.com/itpro/windows/keep-secure/bitlocker-overview#system-requirements). + > **Note:**  Dynamic disks are not supported by BitLocker. Dynamic data volumes will not be displayed in the Control Panel. Although the operating system volume will always be displayed in the Control Panel, regardless of whether it is a Dynamic disk, if it is a dynamic disk it is cannot be protected by BitLocker.   ### Why are two partitions required? Why does the system drive have to be so large? @@ -198,9 +200,9 @@ Any number of internal, fixed data drives can be protected with BitLocker. On so ## Key management -### What is the difference between a TPM owner password, recovery password, recovery key, password, PIN, enhanced PIN, and startup key? +### What is the difference between a recovery password, recovery key, PIN, enhanced PIN, and startup key? -There are multiple keys that can be generated and used by BitLocker. Some keys are required and some are optional protectors you can choose to use depending on the level of security you require. +For tables that list and describe elements such as a recovery password, recovery key, and PIN, see [BitLocker key protectors](prepare-your-organization-for-bitlocker-planning-and-policies.md#bitlocker-key-protectors) and [BitLocker authentication methods](prepare-your-organization-for-bitlocker-planning-and-policies.md#bitlocker-authentication-methods). ### How can the recovery password and recovery key be stored? diff --git a/windows/keep-secure/bitlocker-group-policy-settings.md b/windows/keep-secure/bitlocker-group-policy-settings.md index 8d3864a681..26cadf522b 100644 --- a/windows/keep-secure/bitlocker-group-policy-settings.md +++ b/windows/keep-secure/bitlocker-group-policy-settings.md @@ -1509,7 +1509,6 @@ If the **Require BitLocker backup to AD DS** option is not selected, AD DS bac TPM initialization might be needed during the BitLocker setup. Enable the **Turn on TPM backup to Active Directory Domain Services** policy setting in **Computer Configuration\\Administrative Templates\\System\\Trusted Platform Module Services** to ensure that TPM information is also backed up. For more information about this setting, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md). -If you are using domain controllers running Windows Server 2003 with Service Pack 1, you must first set up appropriate schema extensions and access control settings on the domain before a backup to AD DS can succeed. For more info, see [Backup the TPM recovery Information to AD DS](backup-tpm-recovery-information-to-ad-ds.md). ### Choose default folder for recovery password diff --git a/windows/keep-secure/bitlocker-how-to-deploy-on-windows-server.md b/windows/keep-secure/bitlocker-how-to-deploy-on-windows-server.md index e57e269aff..8a9e7b2ab7 100644 --- a/windows/keep-secure/bitlocker-how-to-deploy-on-windows-server.md +++ b/windows/keep-secure/bitlocker-how-to-deploy-on-windows-server.md @@ -14,7 +14,7 @@ author: brianlic-msft **Applies to** - Windows 10 -This topic for the IT professional explains how to deploy BitLocker and Windows Server 2012 and later. +This topic for the IT professional explains how to deploy BitLocker on Windows Server 2012 and later. For all Windows Server editions, BitLocker must be installed using Server Manager. However, you can still provision BitLocker before the server operating system is installed as part of your deployment. diff --git a/windows/keep-secure/bitlocker-how-to-enable-network-unlock.md b/windows/keep-secure/bitlocker-how-to-enable-network-unlock.md index 0155f5ed15..337c4d39e8 100644 --- a/windows/keep-secure/bitlocker-how-to-enable-network-unlock.md +++ b/windows/keep-secure/bitlocker-how-to-enable-network-unlock.md @@ -231,7 +231,7 @@ The following steps detail how to create a certificate template for use with Bit 1. Open the Certificates Template snap-in (certtmpl.msc). 2. Locate the User template. Right-click the template name and select **Duplicate Template**. -3. On the **Compatibility** tab, change the **Certification Authority** and **Certificate recipient** fields to Windows Server 2012 and Windows 8respectively. Ensure the **Show resulting changes** dialog box is selected. +3. On the **Compatibility** tab, change the **Certification Authority** and **Certificate recipient** fields to Windows Server 2012 and Windows 8 respectively. Ensure the **Show resulting changes** dialog box is selected. 4. Select the **General** tab of the template. The **Template display name** and **Template name** should clearly identify that the template will be used for Network Unlock. Clear the checkbox for the **Publish certificate in Active Directory** option. 5. Select the **Request Handling** tab. Select **Encryption** from the **Purpose** drop down menu. Ensure the **Allow private key to be exported** option is selected. 6. Select the **Cryptography** tab. Set the **Minimum key size** to 2048. (Any Microsoft cryptographic provider that supports RSA can be used for this template, but for simplicity and forward compatibility we recommend using the **Microsoft Software Key Storage Provider**.) diff --git a/windows/keep-secure/bitlocker-overview.md b/windows/keep-secure/bitlocker-overview.md index 2921e55f01..2ffb869b8f 100644 --- a/windows/keep-secure/bitlocker-overview.md +++ b/windows/keep-secure/bitlocker-overview.md @@ -42,7 +42,7 @@ BitLocker control panel, and they are appropriate to use for automated deploymen ## New and changed functionality -To find out what's new in BitLocker for Windows 10, see [What's new in BitLocker?](../whats-new/bitlocker.md) +To find out what's new in BitLocker for Windows 10, see the [BitLocker](https://technet.microsoft.com/itpro/windows/whats-new/whats-new-windows-10-version-1507-and-1511#bitlocker) section in "What's new in Windows 10, versions 1507 and 1511."   ## System requirements @@ -74,9 +74,10 @@ When installing the BitLocker optional component on a server you will also need | [BitLocker: How to enable Network Unlock](bitlocker-how-to-enable-network-unlock.md) | This topic for the IT professional describes how BitLocker Network Unlock works and how to configure it. | | [BitLocker: Use BitLocker Drive Encryption Tools to manage BitLocker](bitlocker-use-bitlocker-drive-encryption-tools-to-manage-bitlocker.md)| This topic for the IT professional describes how to use tools to manage BitLocker.| | [BitLocker: Use BitLocker Recovery Password Viewer](bitlocker-use-bitlocker-recovery-password-viewer.md) | This topic for the IT professional describes how to use the BitLocker Recovery Password Viewer. | +| [BitLocker Group Policy settings](bitlocker-group-policy-settings.md) | This topic for IT professionals describes the function, location, and effect of each Group Policy setting that is used to manage BitLocker. | | [BCD settings and BitLocker](bcd-settings-and-bitlocker.md) | This topic for IT professionals describes the BCD settings that are used by BitLocker.| | [BitLocker Recovery Guide](bitlocker-recovery-guide-plan.md)| This topic for IT professionals describes how to recover BitLocker keys from AD DS. | | [Protect BitLocker from pre-boot attacks](protect-bitlocker-from-pre-boot-attacks.md)| This detailed guide will help you understand the circumstances under which the use of pre-boot authentication is recommended for devices running Windows 10, Windows 8.1, Windows 8, or Windows 7; and when it can be safely omitted from a device’s configuration. | | [Protecting cluster shared volumes and storage area networks with BitLocker](protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md)| This topic for IT pros describes how to protect CSVs and SANs with BitLocker.| -If you're looking for info on how to use it with Windows 10 IoT Core, see [Enabling Secure Boot and BitLocker Device Encryption on Windows 10 IoT Core](https://developer.microsoft.com/windows/iot/win10/SB_BL.htm). \ No newline at end of file +If you're looking for info on how to use it with Windows 10 IoT Core, see [Enabling Secure Boot and BitLocker Device Encryption on Windows 10 IoT Core](https://developer.microsoft.com/windows/iot/docs/securebootandbitlocker). \ No newline at end of file diff --git a/windows/keep-secure/change-history-for-keep-windows-10-secure.md b/windows/keep-secure/change-history-for-keep-windows-10-secure.md index 759d44b4af..e5a7805ddf 100644 --- a/windows/keep-secure/change-history-for-keep-windows-10-secure.md +++ b/windows/keep-secure/change-history-for-keep-windows-10-secure.md @@ -12,6 +12,20 @@ author: brianlic-msft # Change history for Keep Windows 10 secure This topic lists new and updated topics in the [Keep Windows 10 secure](index.md) documentation for [Windows 10 and Windows 10 Mobile](../index.md). +## January 2017 +|New or changed topic |Description | +|---------------------|------------| +|[Determine the Enterprise Context of an app running in Windows Information Protection (WIP)](wip-app-enterprise-context.md) |New | +|[Limitations while using Windows Information Protection (WIP)](limitations-with-wip.md) |Updated to include info about USB drives and Azure RMS (Windows Insider Program only) and to add more info about Work Folders and Offline files. | +|[Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP)](recommended-network-definitions-for-wip.md) |New | +|[Using Outlook Web Access with Windows Information Protection (WIP)](using-owa-with-wip.md) |New | + +## December 2016 +|New or changed topic |Description | +|---------------------|------------| +|[Create WMI Filters for the GPO](create-wmi-filters-for-the-gpo.md) |Added filter examples for Windows 10 and Windows Server 2016. | + + ## November 2016 | New or changed topic | Description | | --- | --- | diff --git a/windows/keep-secure/change-the-system-time.md b/windows/keep-secure/change-the-system-time.md index e6f43e3f88..0ca13c1625 100644 --- a/windows/keep-secure/change-the-system-time.md +++ b/windows/keep-secure/change-the-system-time.md @@ -1,5 +1,5 @@ --- -title: Change the system time (Windows 10) +title: Change the system time - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Change the system time security policy setting. ms.assetid: f2f6637d-acbc-4352-8ca3-ec563f918e65 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Change the system time +# Change the system time - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/change-the-time-zone.md b/windows/keep-secure/change-the-time-zone.md index 3eb72473a5..50067366d5 100644 --- a/windows/keep-secure/change-the-time-zone.md +++ b/windows/keep-secure/change-the-time-zone.md @@ -1,5 +1,5 @@ --- -title: Change the time zone (Windows 10) +title: Change the time zone - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Change the time zone security policy setting. ms.assetid: 3b1afae4-68bb-472f-a43e-49e300d73e50 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Change the time zone +# Change the time zone - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/change-the-tpm-owner-password.md b/windows/keep-secure/change-the-tpm-owner-password.md index 50d9175eb2..a8b0e386d3 100644 --- a/windows/keep-secure/change-the-tpm-owner-password.md +++ b/windows/keep-secure/change-the-tpm-owner-password.md @@ -12,52 +12,35 @@ author: brianlic-msft # Change the TPM owner password **Applies to** -- Windows 10 +- Windows 10, version 1511 +- Windows 10, version 1507 This topic for the IT professional describes how to change the password or PIN for the owner of the Trusted Platform Module (TPM) that is installed on your system. ## About the TPM owner password -Starting with Windows 10, version 1607 , Windows will not retain the TPM owner password when provisioning the TPM. The password will be set to a random high entropy value and then discarded. -In order to retain the TPM owner password, you will need to set the registry key 'HKLM\Software\Policies\Microsoft\TPM' [REG_DWORD] 'OSManagedAuthLevel' to 4. The default value for this key is 2, and unless it is changed to 4 before the TPM is provisioned, the owner password will not be saved. Microsoft strongly recommends that you do not change the default value of this registry key in order to retain the owner password. +Starting with Windows 10, version 1607, Windows will not retain the TPM owner password when provisioning the TPM. The password will be set to a random high entropy value and then discarded. -Only one owner password exists for each TPM. The TPM owner password allows the ability to enable, disable, or clear the TPM without having physical access to the computer, for example, by using the command-line tools remotely. The TPM owner password also allows manipulation of the TPM dictionary attack logic. Taking ownership of the TPM is performed by Windows as part of the provisioning process on each boot. Ownership can change when you share the password or clear your ownership of the TPM so someone else can initialize it. +> [!IMPORTANT] +> Although the TPM owner password is not retained starting with Windows 10, version 1607, you can change a default registry key to retain it. However, we strongly recommend that you do not make this change. To retain the TPM owner password, set the registry key 'HKLM\\Software\\Policies\\Microsoft\\TPM' \[REG\_DWORD\] 'OSManagedAuthLevel' to 4. The default value for this key is 2, and unless it is changed to 4 before the TPM is provisioned, the owner password will not be saved. + +Only one owner password exists for each TPM. The TPM owner password allows the ability to enable, disable, or clear the TPM without having physical access to the computer, for example, by using the command-line tools remotely. The TPM owner password also allows manipulation of the TPM dictionary attack logic. Taking ownership of the TPM is performed by Windows as part of the provisioning process on each boot. Ownership can change when you share the password or clear your ownership of the TPM so someone else can initialize it. Without the owner password you can still perform all the preceding actions by means of a physical presence confirmation from UEFI. -**Other TPM management options** +### Other TPM management options Instead of changing your owner password, you can also use the following options to manage your TPM: -- **Clear the TPM**   If you want to invalidate all of the existing keys that have been created since you took ownership of the TPM, you can clear it. For more info, see [Initialize and Configure Ownership of the TPM](initialize-and-configure-ownership-of-the-tpm.md#bkmk-clear1). +- **Clear the TPM**   If you want to invalidate all of the existing keys that have been created since you took ownership of the TPM, you can clear it. For important precautions for this process, and instructions for completing it, see [Clear all the keys from the TPM](initialize-and-configure-ownership-of-the-tpm.md#clear-all-the-keys-from-the-tpm). - >**Important:**  Clearing the TPM can result in the loss of data. To avoid data loss, make sure you have a backup or recovery method for any data protected or encrypted by the TPM. -   -- **Turn off the TPM**   If you want to keep all existing keys and data intact, and you want to disable the services that are provided by the TPM, you can turn it off. For more info, see [Initialize and Configure Ownership of the TPM](initialize-and-configure-ownership-of-the-tpm.md#bkmk-onoff). This option is only available for TPM 1.2. +- **Turn off the TPM**   With TPM 1.2 and Windows 10, versions 1507 and 1511, you can turn off the TPM. Do this if you want to keep all existing keys and data intact and disable the services that are provided by the TPM. For more info, see [Turn off the TPM](initialize-and-configure-ownership-of-the-tpm.md#turn-off-the-tpm). ## Change the TPM owner password -The following procedure provides the steps that are necessary to change the TPM owner password. +With Windows 10, version 1507 or 1511, if you have opted specifically to preserve the TPM owner password, you can use the saved password to change to a new password. -**To change the TPM owner password** - -If you have opted specifically to preserve the TPM owner password, you can use the saved password to change to a new password. - -1. Open the TPM MMC (tpm.msc). If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. -2. In the **Actions** pane, click **Change Owner Password**. -3. In the **Manage the TPM security hardware** dialog box, select a method to enter your current TPM owner password. - - - If you saved your TPM owner password on a removable storage device, insert it, and then click **I have the owner password file**. In the **Select backup file with the TPM owner password** dialog box, use **Browse** to navigate to the .tpm file that is saved on your removable storage device. Click **Open**, and then click **Create New Password**. - - If you do not have the removable storage device with your saved password, click **I want to enter the owner password**. In the **Type your TPM owner password** dialog box, enter your password (including hyphens), and click **Create New Password**. -4. On the **Create the TPM owner password** page, select a method for creating a new TPM owner password. - - 1. Click **Automatically create the password** to have a new owner password generated for you. - 2. Click **Manually create the password** if you want to specify a password. - >**Note:**  The TPM owner password must have a minimum of eight characters. -   -5. After the new password is created, you can choose **Save the password** to save the password in a password backup file on a removable storage device or **Print the password** to print a copy of the password for later reference. - -6. Click **Change password** to apply the new owner password to the TPM. +To change to a new TPM owner password, in TPM.msc, click **Change Owner Password**, and follow the instructions. You will be prompted to provide the owner password file or to type the password. Then you can create a new password, either automatically or manually, and save the password in a file or as a printout. ## Use the TPM cmdlets @@ -66,6 +49,6 @@ If you are using Windows PowerShell to manage your computers, you can also manag For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). -## Additional resources +## Related topics -For more info about TPM, see [Trusted Platform Module technology overview](trusted-platform-module-overview.md#bkmk-additionalresources). +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) diff --git a/windows/keep-secure/choose-the-right-bitlocker-countermeasure.md b/windows/keep-secure/choose-the-right-bitlocker-countermeasure.md index 402c01f733..241eadd7f7 100644 --- a/windows/keep-secure/choose-the-right-bitlocker-countermeasure.md +++ b/windows/keep-secure/choose-the-right-bitlocker-countermeasure.md @@ -17,19 +17,105 @@ author: brianlic-msft This section outlines the best countermeasures you can use to protect your organization from bootkits and rootkits, brute force sign-in, Direct Memory Access (DMA) attacks, Hyberfil.sys attacks, and memory remanence attacks. You can use BitLocker to protect your Windows 10 PCs. Whichever operating system you’re using, Microsoft and Windows-certified devices provide countermeasures to address attacks and improve your data security. In most cases, this protection can be implemented without the need for pre-boot authentication. -Figures 2, 3, and 4 summarize the recommended mitigations for different types of attacks against PCs running recent versions of Windows. The orange blocks indicate that the system requires additional configuration from the default -settings. +Tables 1 and 2 summarize the recommended mitigations for different types of attacks against PCs running recent versions of Windows. The orange blocks indicate that the system requires additional configuration from the default settings. -![how to choose best countermeasures for windows 7](images/bitlockerprebootprotection-counterwin7.jpg) + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Windows 8.1
    without TPM

    +

    Windows 8.1 Certified
    (with TPM)

    +

    Bootkits and
    Rootkits

    Without TPM, boot integrity checking is not available

    Secure by default when UEFI-based Secure Boot is enabled and a firmware password is required to change settings

    +

    Brute Force
    Sign-in

    Secure by default, and can be improved with account lockout Group Policy

    Secure by default, and can be improved with account lockout and device lockout Group Policy settings

    +

    DMA
    Attacks

    If policy is deployed, secure by default for all lost or stolen devices because new DMA devices are granted access only when an authorized user is signed in

    If policy is deployed, secure by default for all lost or stolen devices because new DMA devices are granted access only when an authorized user is signed in

    +

    Hyberfil.sys
    Attacks

    Secure by default; hyberfil.sys secured on encrypted volume

    Secure by default; hyberfil.sys secured on encrypted volume

    +

    Memory
    Remanence
    Attacks

    Password protect the firmware and disable booting from external media. If an attack is viable, consider pre-boot authentication

    Password protect the firmware and ensure Secure Boot is enabled. If an attack is viable, consider pre-boot authentication

    +**Table 1.**  How to choose the best countermeasures for Windows 8.1

    -![how to choose countermeasures for windows 8](images/bitlockerprebootprotection-counterwin8.jpg) + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Windows 10
    without TPM

    +

    Windows 10 Certified
    (with TPM)

    +

    Bootkits and
    Rootkits

    Without TPM, boot integrity checking is not available

    Secure by default when UEFI-based Secure Boot is enabled and a firmware password is required to change settings

    +

    Brute Force
    Sign-in

    Secure by default, and can be improved with account lockout Group Policy

    Secure by default, and can be improved with account lockout and device lockout Group Policy settings

    +

    DMA
    Attacks

    If policy is deployed, secure by default for all lost or stolen devices because new DMA devices are granted access only when an authorized user is signed in

    Secure by default; certified devices do not expose vulnerable DMA busses.
    Can be additionally secured by deploying policy to restrict DMA devices:

    + +
    +

    Hyberfil.sys
    Attacks

    Secure by default; hyberfil.sys secured on encrypted volume

    Secure by default; hyberfil.sys secured on encrypted volume

    +

    Memory
    Remanence
    Attacks

    Password protect the firmware and disable booting from external media. If an attack is viable, consider pre-boot authentication

    Password protect the firmware and ensure Secure Boot is enabled.
    The most effective mitigation, which we advise for high-security devices, is to configure a TPM+PIN protector, disable Standby power management, and shut down or hibernate the device before it leaves the control of an authorized user.

    -**Figure 3.** How to choose the best countermeasures for Windows 8 - -![how to choose countermeasures for windows 8.1](images/bitlockerprebootprotection-counterwin81.jpg) - -**Figure 4.** How to choose the best countermeasures for Windows 8.1 +**Table 2.**  How to choose the best countermeasures for Windows 10 The latest InstantGo devices, primarily tablets, are designed to be secure by default against all attacks that might compromise the BitLocker encryption key. Other Windows devices can be, too. DMA port–based attacks, which represent the attack vector of choice, are not possible on InstantGo devices, because these port types are prohibited. The inclusion of DMA ports on even non-InstantGo devices is extremely rare on recent devices, particularly on mobile ones. This could change if Thunderbolt is broadly adopted, so IT should consider this when purchasing new devices. In any case DMA ports can be disabled entirely, which is an increasingly popular option because the use of DMA ports is infrequent in the non-developer space. diff --git a/windows/keep-secure/configure-aad-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-aad-windows-defender-advanced-threat-protection.md index 65dcdf6805..d7147d12a9 100644 --- a/windows/keep-secure/configure-aad-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-aad-windows-defender-advanced-threat-protection.md @@ -24,7 +24,7 @@ localizationpriority: high You need to add an application in your Azure Active Directory (AAD) tenant then authorize the Windows Defender ATP Alerts Export application to communicate with it so that your security information and events management (SIEM) tool can consume alerts from Windows Defender ATP portal. -1. Login to the [Azure management portal](https://manage.windowsazure.com). +1. Login to the [Azure management portal](https://ms.portal.azure.com). 2. Select **Active Directory**. @@ -53,14 +53,12 @@ You need to add an application in your Azure Active Directory (AAD) tenant then 13. Click **Save** and copy the key in a safe place. You'll need this key to authenticate the client application on Azure Active Directory. -14. Open a web browser and connect to the following URL:
    -```text -https://DataAccess-PRD.trafficmanager.net:444/api/FetchToken?clientId=f7c1acd8-0458-48a0-a662-dba6de049d1c&tenantId=&clientSecret=1234 -``` -An Azure login page appears. -> [!NOTE] -> - Replace *tenant ID* with your actual tenant ID. -> - Keep the client secret as is. This is a dummy value, but the parameter must appear. +14. Open a web browser and connect to the following URL: `https://DataAccess-PRD.trafficmanager.net:444/api/FetchToken?clientId=f7c1acd8-0458-48a0-a662-dba6de049d1c&tenantId=&clientSecret=1234`
    + + An Azure login page appears. + > [!NOTE] + > - Replace *tenant ID* with your actual tenant ID. + > - Keep the *clientSecret* as is. This is a dummy value, but the parameter must appear. 15. Sign in with the credentials of a user from your tenant. @@ -80,7 +78,37 @@ An Azure login page appears. 23. Save the application changes. -After configuring the application in AAD, you can continue to configure the SIEM tool that you want to use. +After configuring the application in AAD, you'll need to obtain a refresh token. You'll need to use the token when you configure the connector for your SIEM tool in the next steps. The token lets the connector access Windows Defender ATP events to be consumed by your SIEM. + +## Obtain a refresh token using an events URL +Obtain a refresh token used to retrieve the Windows Defender Advanced Threat Protection events to your SIEM. This section provides information on how you can use an events URL to obtain the required refresh token. +>[!NOTE] +>For HP ArcSight, you can obtain a refresh token using the restutil tool. For more information, see [Configure HP ArcSight to consume alerts](configure-arcsight-windows-defender-advanced-threat-protection.md). + +### Before you begin +Get the following information from your Azure Active Directory (AAD) application by selecting the **View Endpoint** on the application configuration page: + + - OAuth 2 Client ID + - OAuth 2 Client secret + +You'll use these values to obtain a refresh token. + +>[!IMPORTANT] +>Before using the OAuth 2 Client secret described in the next steps, you **must** encode it. Use a URL encoder to transform the OAuth 2 client secret. + +### Obtain a refresh token +1. Open a web browser and connect to the following URL: `https://DataAccess-PRD.trafficmanager.net:444/api/FetchToken?clientId=&tenantId=&clientSecret=` + + >[!NOTE] + >- Replace the *client ID* value with the one you got from your AAD application. + >- Replace *tenant ID* with your actual tenant ID. + >- Replace *client secret* with your encoded client secret. The client secret **must** be pasted encoded. + +2. Click **Accept**. When you authenticate, a web page opens with your refresh token. + +3. Save the refresh token which you'll find it the ``value. You'll need this value when configuring your SIEM tool. + +After configuring your AAD application and generating a refresh token, you can proceed to configure your SIEM tool. ## Related topics - [Configure security information and events management (SIEM) tools to consume alerts](configure-siem-windows-defender-advanced-threat-protection.md) diff --git a/windows/keep-secure/configure-arcsight-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-arcsight-windows-defender-advanced-threat-protection.md index 614004d2dc..a682992574 100644 --- a/windows/keep-secure/configure-arcsight-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-arcsight-windows-defender-advanced-threat-protection.md @@ -25,26 +25,36 @@ You'll need to configure HP ArcSight so that it can consume Windows Defender ATP ## Before you begin -- Get the following information from your Azure Active Directory (AAD) application by selecting the **View Endpoint** on the application configuration page: +- Get the following information from your Azure Active Directory (AAD) application by selecting **View Endpoint** on the application configuration page: - OAuth 2 Token refresh URL - OAuth 2 Client ID - OAuth 2 Client secret -- Create your OAUth 2 Client properties file or get it from your Windows Defender ATP contact. For more information, see the ArcSight FlexConnector Developer's guide. +- Download the [WDATP-connector.properties](http://download.microsoft.com/download/3/9/C/39C703C2-487C-4C3E-AFD8-14C2253C2F12/WDATP-connector.properties) file and update the following values: - > [!NOTE] - > **For the authorization URL**: Append the following to the value you got from the AAD app: ```?resource=https%3A%2F%2FWDATPAlertExport.Seville.onmicrosoft.com```
    - > **For the redirect_uri value use**: ```https://localhost:44300/wdatpconnector``` - > -- Get the *wdatp-connector.properties* file from your Windows Defender ATP contact. This file is used to parse the information from Windows Defender ATP to HP ArcSight consumable format. -- Install the HP ArcSight REST FlexConnector package on a server that has access to the Internet. -- Contact the Windows Defender ATP team to get your refresh token or follow the steps in the section "Run restutil to Obtain a Refresh Token for Connector Appliance/ArcSight Management Center" in the ArcSight FlexConnector Developer's guide. + - **client_ID**: OAuth 2 Client ID + - **client_secret**: OAuth 2 Client secret + - **auth_url**: ```https://login.microsoftonline.com/?resource=https%3A%2F%2FWDATPAlertExport.Seville.onmicrosoft.com ``` + + >[!NOTE] + >Replace *tenantID* with your tenant ID. + + - **token_url**: `https://login.microsoftonline.com//oauth2/token` + + >[!NOTE] + >Replace the *tenantID* value with your tenant ID. + + - **redirect_uri**: ```https://localhost:44300/wdatpconnector``` + - **scope**: Leave the value blank + +- Download the [WDATP-connector.jsonparser.properties](http://download.microsoft.com/download/0/8/A/08A4957D-0923-4353-B25F-395EAE363E8C/WDATP-connector.jsonparser.properties) file. This file is used to parse the information from Windows Defender ATP to HP ArcSight consumable format. +- Install the HP ArcSight REST FlexConnector package. You can find this in the HPE Software center. Install the package on a server that has access to the Internet. ## Configure HP ArcSight -The following steps assume that you have completed all the required steps in [Before you begin](#before-you-begin). +The following steps assume that you have completed all the required steps in [Before you begin](#before-you-begin). For more information, see the ArcSight FlexConnector Developer's guide. -1. Copy the *wdatp-connector.jsonparser.properties* file into the `\current\user\agent\flexagent` folder of the connector installation folder. +1. Save the [WDATP-connector.jsonparser.properties file](http://download.microsoft.com/download/0/8/A/08A4957D-0923-4353-B25F-395EAE363E8C/WDATP-connector.jsonparser.properties) file into the connector installation folder. The -2. Save the *wdatp-connector.properties* file into a folder of your choosing. +2. Save the [WDATP-connector.properties](http://download.microsoft.com/download/3/9/C/39C703C2-487C-4C3E-AFD8-14C2253C2F12/WDATP-connector.properties) file into the `\current\user\agent\flexagent` folder of the connector installation folder. 3. Open an elevated command-line: @@ -69,7 +79,8 @@ The following steps assume that you have completed all the required steps in [Be Type in the name of the client property file. It must match the client property file. Events URL - `https://DataAccess-PRD.trafficmanager.net:444/api/alerts` + Depending on the location of your datacenter, select either the EU or the US URL:

    **For EU**: https://wdatp-alertexporter-eu.securitycenter.windows.com/api/alerts/?sinceTimeUtc=$START_AT_TIME +
    **For US:** https://wdatp-alertexporter-us.securitycenter.windows.com/api/alerts/?sinceTimeUtc=$START_AT_TIME Authentication Type OAuth 2 @@ -78,7 +89,8 @@ The following steps assume that you have completed all the required steps in [Be Select *wdatp-connector.properties*. Refresh Token - Paste the refresh token that your Windows Defender ATP contact provided, or run the `restutil` tool to get it. + You can use the Windows Defender ATP events URL or the restutil tool to get obtain a refresh token.
    For more information on getting your refresh token using the events URL, see [Obtain a refresh token](configure-aad-windows-defender-advanced-threat-protection.md#obtain-a-refresh-token).

    **To get your refresh token using the restutil tool:**
    a. Open a command prompt. Navigate to `C:\ArcSightSmartConnectors\\current\bin`.

    b. Type: `arcsight restutil token -config C:\ArcSightSmartConnectors_Prod\WDATP\WDATP-connector.properties`. A Web browser window will open.

    c. Type in your credentials then click on the password field to let the page redirect. In the login prompt, enter your credentials.

    d. A refresh token is shown in the command prompt.

    e. Paste the value in the form. + diff --git a/windows/keep-secure/configure-email-notifications-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-email-notifications-windows-defender-advanced-threat-protection.md new file mode 100644 index 0000000000..19e99c915d --- /dev/null +++ b/windows/keep-secure/configure-email-notifications-windows-defender-advanced-threat-protection.md @@ -0,0 +1,63 @@ +--- +title: Configure email notifications in Windows Defender ATP +description: Send email notifications to specified recipients to receive new alerts based on severity with Windows Defender ATP on Windows 10 Enterprise, Pro, and Education editions. +keywords: email notifications, configure alert notifications, windows defender atp notifications, windows defender atp alerts, windows 10 enterprise, windows 10 education +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +author: mjcaparas +localizationpriority: high +--- + +# Configure email notifications + +**Applies to:** + +- Windows 10 Enterprise +- Windows 10 Education +- Windows 10 Pro +- Windows 10 Pro Education +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +You can configure Windows Defender ATP to send email notifications to specified recipients for new alerts. This feature enables you to identify a group of individuals who will immediately be informed and can act on alerts based on their severity. + +> [!NOTE] +> Only users with full access can configure email notifications. + +You can set the alert severity levels that trigger notifications. When you turn enable the email notifications feature, it’s set to high and medium alerts by default. + +You can also add or remove recipients of the email notification. New recipients get notified about alerts encountered after they are added. For more information about alerts, see [View and organize the Alerts queue](alerts-queue-windows-defender-advanced-threat-protection.md). + +The email notification includes basic information about the alert and a link to the portal where you can do further investigation. + +## Set up email notifications for alerts +The email notifications feature is turned off by default. Turn it on to start receiving email notifications. + +1. On the navigation pane, select **Preferences Setup** > **Email Notifications**. +2. Toggle the setting between **On** and **Off**. +3. Select the alert severity level that you’d like your recipients to receive: + - **High** – Select this level to send notifications for high-severity alerts. + - **Medium** – Select this level to send notifications for medium-severity alerts. + - **Low** - Select this level to send notifications for low-severity alerts. +4. In **Email recipients to notify on new alerts**, type the email address then select the + sign. +5. Click **Save preferences** when you’ve completed adding all the recipients. + +Check that email recipients are able to receive the email notifications by selecting **Send test email**. All recipients in the list will receive the test email. + +## Remove email recipients + +1. Select the trash bin icon beside the email address you’d like to remove. +2. Click **Save preferences**. + +## Troubleshoot email notifications for alerts +This section lists various issues that you may encounter when using email notifications for alerts. + +**Problem:** Intended recipients report they are not getting the notifications. + +**Solution:** Make sure that the notifications are not blocked by email filters: + +1. Check that the Windows Defender ATP email notifications are not sent to the Junk Email folder. Mark them as Not junk. +2. Check that your email security product is not blocking the email notifications from Windows Defender ATP. +3. Check your email application rules that might be catching and moving your Windows Defender ATP email notifications. diff --git a/windows/keep-secure/configure-endpoints-mdm-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-endpoints-mdm-windows-defender-advanced-threat-protection.md index b5b16faf54..c842ea1668 100644 --- a/windows/keep-secure/configure-endpoints-mdm-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-endpoints-mdm-windows-defender-advanced-threat-protection.md @@ -37,14 +37,14 @@ For more information on using Windows Defender ATP CSP see, [WindowsAdvancedThre b. Select **Mobile Device Management/Microsoft Intune** > **Download package** and save the .zip file. - ![Endpoint onboarding](images/atp-onboard-mdm.png) + ![Endpoint onboarding](images/atp-mdm-onboarding-package.png) 2. Extract the contents of the .zip file to a shared, read-only location that can be accessed by the network administrators who will deploy the package. You should have a file named *WindowsDefenderATP.onboarding*. 3. Use the Microsoft Intune custom configuration policy to deploy the following supported OMA-URI settings. For more information on Microsoft Intune policy settings see, [Windows 10 policy settings in Microsoft Intune](https://docs.microsoft.com/en-us/intune/deploy-use/windows-10-policy-settings-in-microsoft-intune). a. Select **Policy** > **Configuration Policies** > **Add**. - ![Microsoft Intune Configuration Policies](images/atp-intune-add-policy.png) + ![Microsoft Intune Configuration Policies](images/atp-add-intune-policy.png) b. Under **Windows**, select **Custom Configuration (Windows 10 Desktop and Mobile and later)** > **Create and Deploy a Custom Policy** > **Create Policy**. ![Microsoft Intune Configuration Policies](images/atp-intune-new-policy.png) @@ -56,7 +56,7 @@ For more information on using Windows Defender ATP CSP see, [WindowsAdvancedThre ![Microsoft Intune add OMC-URI](images/atp-intune-add-oma.png) e. Type the following values then select **OK**: - + ![Microsoft Intune save policy](images/atp-intune-oma-uri-setting.png) - **Setting name**: Type a name for the setting. diff --git a/windows/keep-secure/configure-endpoints-sccm-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-endpoints-sccm-windows-defender-advanced-threat-protection.md index 8faa5dafdb..8b193b46c6 100644 --- a/windows/keep-secure/configure-endpoints-sccm-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-endpoints-sccm-windows-defender-advanced-threat-protection.md @@ -51,6 +51,10 @@ You can use System Center Configuration Manager’s existing functionality to cr a. Choose a predefined device collection to deploy the package to. +> [!NOTE] +> Onboarding couldn't be completed during Out-Of-Box Experience (OOBE). Make sure users pass OOBE after running Windows installation or upgrading. + + ### Configure sample collection settings For each endpoint, you can set a configuration value to state whether samples can be collected from the endpoint when a request is made through the Windows Defender ATP portal to submit a file for deep analysis. diff --git a/windows/keep-secure/configure-endpoints-script-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-endpoints-script-windows-defender-advanced-threat-protection.md index a2643013c6..50903ddc26 100644 --- a/windows/keep-secure/configure-endpoints-script-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-endpoints-script-windows-defender-advanced-threat-protection.md @@ -45,7 +45,7 @@ You can also manually onboard individual endpoints to Windows Defender ATP. You 5. Press the **Enter** key or click **OK**. -For for information on how you can manually validate that the endpoint is compliant and correctly reports telemetry see, [Troubleshoot Windows Defender Advanced Threat Protection onboarding issues](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md). +For for information on how you can manually validate that the endpoint is compliant and correctly reports sensor data see, [Troubleshoot Windows Defender Advanced Threat Protection onboarding issues](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md). ## Configure sample collection settings For each endpoint, you can set a configuration value to state whether samples can be collected from the endpoint when a request is made through the Windows Defender ATP portal to submit a file for deep analysis. diff --git a/windows/keep-secure/configure-endpoints-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-endpoints-windows-defender-advanced-threat-protection.md index 18864595b3..cca969958e 100644 --- a/windows/keep-secure/configure-endpoints-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-endpoints-windows-defender-advanced-threat-protection.md @@ -21,7 +21,7 @@ localizationpriority: high - Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Endpoints in your organization must be configured so that the Windows Defender ATP service can get telemetry from them. There are various methods and deployment tools that you can use to configure the endpoints in your organization. +Endpoints in your organization must be configured so that the Windows Defender ATP service can get sensor data from them. There are various methods and deployment tools that you can use to configure the endpoints in your organization. Windows Defender ATP supports the following deployment tools and methods: diff --git a/windows/keep-secure/configure-proxy-internet-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-proxy-internet-windows-defender-advanced-threat-protection.md index c24886d168..38a3f1edc2 100644 --- a/windows/keep-secure/configure-proxy-internet-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-proxy-internet-windows-defender-advanced-threat-protection.md @@ -22,7 +22,7 @@ localizationpriority: high - Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) -The Window Defender ATP sensor requires Microsoft Windows HTTP (WinHTTP) to report telemetry and communicate with the Windows Defender ATP service. +The Window Defender ATP sensor requires Microsoft Windows HTTP (WinHTTP) to report sensor data and communicate with the Windows Defender ATP service. The embedded Windows Defender ATP sensor runs in system context using the LocalSystem account. The sensor uses Microsoft Windows HTTP Services (WinHTTP) to enable communication with the Windows Defender ATP cloud service. diff --git a/windows/keep-secure/configure-splunk-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-splunk-windows-defender-advanced-threat-protection.md index 60e1c00469..ee6c76e9b7 100644 --- a/windows/keep-secure/configure-splunk-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-splunk-windows-defender-advanced-threat-protection.md @@ -25,9 +25,9 @@ You'll need to configure Splunk so that it can consume Windows Defender ATP aler ## Before you begin -- Install the [REST API Modular Input app](https://splunkbase.splunk.com/app/1546/) in Splunk -- Contact the Windows Defender ATP team to get your refresh token -- Get the following information from your Azure Active Directory (AAD) application by selecting the **View Endpoint** on the application configuration page: +- Install the [REST API Modular Input app](https://splunkbase.splunk.com/app/1546/) in Splunk. +- Obtain your refresh token. For more information, see [Obtain a refresh token](configure-aad-windows-defender-advanced-threat-protection.md#obtain-a-refresh-token). +- Get the following information from your Azure Active Directory (AAD) application by selecting **View Endpoint** on the application configuration page: - OAuth 2 Token refresh URL - OAuth 2 Client ID - OAuth 2 Client secret @@ -56,7 +56,8 @@ You'll need to configure Splunk so that it can consume Windows Defender ATP aler Endpoint URL - https://DataAccess-PRD.trafficmanager.net:444/api/alerts + Depending on the location of your datacenter, select either the EU or the US URL:

    **For EU**: https://wdatp-alertexporter-eu.securitycenter.windows.com/api/alerts
    **For US:** https://wdatp-alertexporter-us.securitycenter.windows.com/api/alerts + HTTP Method diff --git a/windows/keep-secure/create-a-pagefile.md b/windows/keep-secure/create-a-pagefile.md index a8c65abbab..804d32f022 100644 --- a/windows/keep-secure/create-a-pagefile.md +++ b/windows/keep-secure/create-a-pagefile.md @@ -1,5 +1,5 @@ --- -title: Create a pagefile (Windows 10) +title: Create a pagefile - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Create a pagefile security policy setting. ms.assetid: dc087897-459d-414b-abe0-cd86c8dccdea ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Create a pagefile +# Create a pagefile - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/create-and-verify-an-efs-dra-certificate.md b/windows/keep-secure/create-and-verify-an-efs-dra-certificate.md index 06392494c0..4bd92ff06f 100644 --- a/windows/keep-secure/create-and-verify-an-efs-dra-certificate.md +++ b/windows/keep-secure/create-and-verify-an-efs-dra-certificate.md @@ -19,8 +19,8 @@ If you don’t already have an EFS DRA certificate, you’ll need to create and The recovery process included in this topic only works for desktop devices. WIP deletes the data on Windows 10 Mobile devices. ->**Important**
    -If you already have an EFS DRA certificate for your organization, you can skip creating a new one. Just use your current EFS DRA certificate in your policy. For more info about when to use a PKI and the general strategy you should use to deploy DRA certificates, see the [Security Watch Deploying EFS: Part 1](https://technet.microsoft.com/magazine/2007.02.securitywatch.aspx) article on TechNet. For more general info about EFS protection, see [Protecting Data by Using EFS to Encrypt Hard Drives](https://msdn.microsoft.com/library/cc875821.aspx).

    If your DRA certificate has expired, you won’t be able to encrypt your files with it. To fix this, you'll need to create a new certificate, using the steps in this topic, and then deploy it through policy. +>[!IMPORTANT] +>If you already have an EFS DRA certificate for your organization, you can skip creating a new one. Just use your current EFS DRA certificate in your policy. For more info about when to use a PKI and the general strategy you should use to deploy DRA certificates, see the [Security Watch Deploying EFS: Part 1](https://technet.microsoft.com/magazine/2007.02.securitywatch.aspx) article on TechNet. For more general info about EFS protection, see [Protecting Data by Using EFS to Encrypt Hard Drives](https://msdn.microsoft.com/library/cc875821.aspx).

    If your DRA certificate has expired, you won’t be able to encrypt your files with it. To fix this, you'll need to create a new certificate, using the steps in this topic, and then deploy it through policy. **To manually create an EFS DRA certificate** @@ -36,13 +36,13 @@ If you already have an EFS DRA certificate for your organization, you can skip c The EFSDRA.cer and EFSDRA.pfx files are created in the location you specified in Step 1. - >**Important**
    - Because the private keys in your DRA .pfx files can be used to decrypt any WIP file, you must protect them accordingly. We highly recommend storing these files offline, keeping copies on a smart card with strong protection for normal use and master copies in a secured physical location. + >[!IMPORTANT] + >Because the private keys in your DRA .pfx files can be used to decrypt any WIP file, you must protect them accordingly. We highly recommend storing these files offline, keeping copies on a smart card with strong protection for normal use and master copies in a secured physical location. 4. Add your EFS DRA certificate to your WIP policy using a deployment tool, such as Microsoft Intune or System Center Configuration Manager. - >**Note**
    - To add your EFS DRA certificate to your policy by using Microsoft Intune, see the [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) topic. To add your EFS DRA certificate to your policy by using System Center Configuration Manager, see the [Create a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md) topic. + >[!NOTE] + >To add your EFS DRA certificate to your policy by using Microsoft Intune, see the [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) topic. To add your EFS DRA certificate to your policy by using System Center Configuration Manager, see the [Create a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md) topic. **To verify your data recovery certificate is correctly set up on a WIP client computer** @@ -73,7 +73,8 @@ If you already have an EFS DRA certificate for your organization, you can skip c **To quickly recover WIP-protected desktop data after unenrollment**
    It's possible that you might revoke data from an unenrolled device only to later want to restore it all. This can happen in the case of a missing device being returned or if an unenrolled employee enrolls again. If the employee enrolls again using the original user profile, and the revoked key store is still on the device, all of the revoked data can be restored at once, by following these steps. ->**Important**
    To maintain control over your enterprise data, and to be able to revoke again in the future, you must only perform this process after the employee has re-enrolled the device. +>[!IMPORTANT] +>To maintain control over your enterprise data, and to be able to revoke again in the future, you must only perform this process after the employee has re-enrolled the device. 1. Have your employee sign in to the unenrolled device, open a command prompt, and type: @@ -93,6 +94,9 @@ It's possible that you might revoke data from an unenrolled device only to later The Windows Credential service automatically recovers the employee’s previously revoked keys from the `Recovery\Input` location. +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). + ## Related topics - [Security Watch Deploying EFS: Part 1](https://technet.microsoft.com/magazine/2007.02.securitywatch.aspx) diff --git a/windows/keep-secure/create-applocker-default-rules.md b/windows/keep-secure/create-applocker-default-rules.md index 930d2bc4d7..6f5b802707 100644 --- a/windows/keep-secure/create-applocker-default-rules.md +++ b/windows/keep-secure/create-applocker-default-rules.md @@ -27,3 +27,7 @@ You can perform this task by using the Group Policy Management Console for an Ap 1. Open the AppLocker console. 2. Right-click the appropriate rule type for which you want to automatically generate default rules. You can automatically generate rules for executable, Windows Installer, script rules and Packaged app rules. 3. Click **Create Default Rules**. + +## Related topics + +- [Understanding AppLocker default rules](understanding-applocker-default-rules.md) diff --git a/windows/keep-secure/create-vpn-and-wip-policy-using-intune.md b/windows/keep-secure/create-vpn-and-wip-policy-using-intune.md index 45ed365fe2..64602d97ae 100644 --- a/windows/keep-secure/create-vpn-and-wip-policy-using-intune.md +++ b/windows/keep-secure/create-vpn-and-wip-policy-using-intune.md @@ -111,6 +111,10 @@ The final step to making your VPN configuration work with WIP, is to link your t 3. After you've picked all of the employees and groups that should get the policy, click **OK**. The policy is deployed to the selected users' devices. +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). + + diff --git a/windows/keep-secure/create-wip-policy-using-intune.md b/windows/keep-secure/create-wip-policy-using-intune.md index 44bf2930a2..f0c94d6dba 100644 --- a/windows/keep-secure/create-wip-policy-using-intune.md +++ b/windows/keep-secure/create-wip-policy-using-intune.md @@ -44,10 +44,11 @@ During the policy-creation process in Intune, you can choose the apps you want t The steps to add your app rules are based on the type of rule template being applied. You can add a store app (also known as a Universal Windows Platform (UWP) app), a signed Windows desktop app, or an AppLocker policy file. ->**Important**
    WIP-aware apps are expected to prevent enterprise data from going to unprotected network locations and to avoid encrypting personal data. On the other hand, WIP-unaware apps might not respect the corporate network boundary, and WIP-unaware apps will encrypt all files they create or modify. This means that they could encrypt personal data and cause data loss during the revocation process.

    Care must be taken to get a support statement from the software provider that their app is safe with WIP before adding it to your **App Rules** list. If you don’t get this statement, it’s possible that you could experience app compat issues due to an app losing the ability to access a necessary file after revocation. +>[!IMPORTANT] +>WIP-aware apps are expected to prevent enterprise data from going to unprotected network locations and to avoid encrypting personal data. On the other hand, WIP-unaware apps might not respect the corporate network boundary, and WIP-unaware apps will encrypt all files they create or modify. This means that they could encrypt personal data and cause data loss during the revocation process.

    Care must be taken to get a support statement from the software provider that their app is safe with WIP before adding it to your **App Rules** list. If you don’t get this statement, it’s possible that you could experience app compat issues due to an app losing the ability to access a necessary file after revocation. ->**Note**
    -If you want to use **File hash** or **Path** rules, instead of **Publisher** rules, you must follow the steps in the [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) topic. +>[!NOTE] +>If you want to use **File hash** or **Path** rules, instead of **Publisher** rules, you must follow the steps in the [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) topic. #### Add a store app rule to your policy For this example, we’re going to add Microsoft OneNote, a store app, to the **App Rules** list. @@ -76,8 +77,8 @@ If you don't know the publisher or product name, you can find them for both desk **To find the Publisher and Product Name values for Store apps without installing them** 1. Go to the [Windows Store for Business](https://go.microsoft.com/fwlink/p/?LinkID=722910) website, and find your app. For example, *Microsoft OneNote*. - >**Note**
    - If your app is already installed on desktop devices, you can use the AppLocker local security policy MMC snap-in to gather the info for adding the app to the protected apps list. For info about how to do this, see the [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) topic. + >[!NOTE] + >If your app is already installed on desktop devices, you can use the AppLocker local security policy MMC snap-in to gather the info for adding the app to the protected apps list. For info about how to do this, see the [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) topic. 2. Copy the ID value from the app URL. For example, Microsoft OneNote's ID URL is https://www.microsoft.com/store/apps/onenote/9wzdncrfhvjl, and you'd copy the ID value, `9wzdncrfhvjl`. @@ -94,8 +95,10 @@ If you don't know the publisher or product name, you can find them for both desk 4. Copy the `publisherCertificateName` value into the **Publisher Name** box and copy the `packageIdentityName` value into the **Product Name** box of Intune. - >**Important**
    - The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as `CN=` followed by the `windowsPhoneLegacyId`.

    For example: + >[!IMPORTANT] + >The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as `CN=` followed by the `windowsPhoneLegacyId`. + + For example: ```json { @@ -106,7 +109,8 @@ If you don't know the publisher or product name, you can find them for both desk **To find the Publisher and Product Name values for apps installed on Windows 10 mobile phones** 1. If you need to add mobile apps that aren't distributed through the Store for Business, you must use the **Windows Device Portal** feature. - >**Note**
    Your PC and phone must be on the same wireless network. + >[!NOTE] + >Your PC and phone must be on the same wireless network. 2. On the Windows Phone, go to **Settings**, choose **Update & security**, and then choose **For developers**. @@ -122,8 +126,10 @@ If you don't know the publisher or product name, you can find them for both desk 8. Copy the `publisherCertificateName` value and paste it into the **Publisher Name** box and the `packageIdentityName` value into the **Product Name** box of Intune. - >**Important**
    - The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as `CN=` followed by the `windowsPhoneLegacyId`.

    For example:
    + >[!IMPORTANT] + >The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as `CN=` followed by the `windowsPhoneLegacyId`. + + For example: ``` json { @@ -348,9 +354,9 @@ After you've added a protection mode to your apps, you'll need to decide where t There are no default locations included with WIP, you must add each of your network locations. This area applies to any network endpoint device that gets an IP address in your enterprise’s range and is also bound to one of your enterprise domains, including SMB shares. Local file system locations should just maintain encryption (for example, on local NTFS, FAT, ExFAT). ->**Important** -- Every WIP policy should include policy that defines your enterprise network locations. -- Classless Inter-Domain Routing (CIDR) notation isn’t supported for WIP configurations. +>[!IMPORTANT] +>Every WIP policy should include policy that defines your enterprise network locations.
    +>Classless Inter-Domain Routing (CIDR) notation isn’t supported for WIP configurations. **To define where your protected apps can find and send enterprise data on you network** @@ -465,6 +471,9 @@ After you've decided where your protected apps can access enterprise data on you 2. Click **Save Policy**. +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). + ## Related topics - [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) - [Deploy your Windows Information Protection (WIP) policy](deploy-wip-policy-using-intune.md) diff --git a/windows/keep-secure/create-wip-policy-using-sccm.md b/windows/keep-secure/create-wip-policy-using-sccm.md index 468b8308d4..350d5e1f54 100644 --- a/windows/keep-secure/create-wip-policy-using-sccm.md +++ b/windows/keep-secure/create-wip-policy-using-sccm.md @@ -20,8 +20,8 @@ localizationpriority: high System Center Configuration Manager helps you create and deploy your Windows Information Protection (WIP) policy, including letting you choose your protected apps, your WIP-protection mode, and how to find enterprise data on the network. ->**Important**
    -If you previously created a WIP policy using System Center Configuration Manager version 1511 or 1602, you’ll need to recreate it using version 1606 or later. Editing a WIP policy created in version 1511 or 1602 is not supported in later versions and there is no migration path between older and newer WIP policies. +>[!IMPORTANT] +>If you previously created a WIP policy using System Center Configuration Manager version 1511 or 1602, you’ll need to recreate it using version 1606 or later. Editing a WIP policy created in version 1511 or 1602 is not supported in later versions and there is no migration path between older and newer WIP policies. ## Add a WIP policy After you’ve installed and set up System Center Configuration Manager for your organization, you must create a configuration item for WIP, which in turn becomes your WIP policy. @@ -62,8 +62,8 @@ During the policy-creation process in System Center Configuration Manager, you c The steps to add your app rules are based on the type of rule template being applied. You can add a store app (also known as a Universal Windows Platform (UWP) app), a signed Windows desktop app, or an AppLocker policy file. ->**Important**
    -WIP-aware apps are expected to prevent enterprise data from going to unprotected network locations and to avoid encrypting personal data. On the other hand, WIP-unaware apps might not respect the corporate network boundary, and WIP-unaware apps will encrypt all files they create or modify. This means that they could encrypt personal data and cause data loss during the revocation process.

    Care must be taken to get a support statement from the software provider that their app is safe with WIP before adding it to your **App rules** list. If you don’t get this statement, it’s possible that you could experience app compat issues due to an app losing the ability to access a necessary file after revocation. +>[!IMPORTANT] +>WIP-aware apps are expected to prevent enterprise data from going to unprotected network locations and to avoid encrypting personal data. On the other hand, WIP-unaware apps might not respect the corporate network boundary, and WIP-unaware apps will encrypt all files they create or modify. This means that they could encrypt personal data and cause data loss during the revocation process.

    Care must be taken to get a support statement from the software provider that their app is safe with WIP before adding it to your **App rules** list. If you don’t get this statement, it’s possible that you could experience app compat issues due to an app losing the ability to access a necessary file after revocation. #### Add a store app rule to your policy For this example, we’re going to add Microsoft OneNote, a store app, to the **App Rules** list. @@ -94,8 +94,8 @@ If you don't know the publisher or product name, you can find them for both desk 1. Go to the [Windows Store for Business](https://go.microsoft.com/fwlink/p/?LinkID=722910) website, and find your app. For example, Microsoft OneNote. - >**Note**
    - If your app is already installed on desktop devices, you can use the AppLocker local security policy MMC snap-in to gather the info for adding the app to the protected apps list. For info about how to do this, see the steps in the [Add an AppLocker policy file](#add-an-applocker-policy-file) section. + >[!NOTE] + >If your app is already installed on desktop devices, you can use the AppLocker local security policy MMC snap-in to gather the info for adding the app to the protected apps list. For info about how to do this, see the steps in the [Add an AppLocker policy file](#add-an-applocker-policy-file) section. 2. Copy the ID value from the app URL. For example, Microsoft OneNote's ID URL is https://www.microsoft.com/store/apps/onenote/9wzdncrfhvjl, and you'd copy the ID value, `9wzdncrfhvjl`. @@ -112,8 +112,9 @@ If you don't know the publisher or product name, you can find them for both desk 4. Copy the `publisherCertificateName` value and paste them into the **Publisher Name** box, copy the `packageIdentityName` value into the **Product Name** box of Intune. - >**Important**
    - The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as “CN=” followed by the `windowsPhoneLegacyId`.

    For example:

    + >[!IMPORTANT] + >The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as “CN=” followed by the `windowsPhoneLegacyId`. + >For example:

    ```json { @@ -124,8 +125,8 @@ If you don't know the publisher or product name, you can find them for both desk **To find the Publisher and Product Name values for apps installed on Windows 10 mobile phones** 1. If you need to add mobile apps that aren't distributed through the Store for Business, you must use the **Windows Device Portal** feature. - >**Note**
    - Your PC and phone must be on the same wireless network. + >[!NOTE] + >Your PC and phone must be on the same wireless network. 2. On the Windows Phone, go to **Settings**, choose **Update & security**, and then choose **For developers**. @@ -141,8 +142,9 @@ If you don't know the publisher or product name, you can find them for both desk 8. Copy the `publisherCertificateName` value and paste it into the **Publisher Name** box and the `packageIdentityName` value into the **Product Name** box of Intune. - >**Important**
    - The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as “CN=” followed by the `windowsPhoneLegacyId`.

    For example:

    + >[!IMPORTANT] + >The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as “CN=” followed by the `windowsPhoneLegacyId`. + >For example:

    ```json { @@ -369,9 +371,9 @@ After you've added a protection mode to your apps, you'll need to decide where t There are no default locations included with WIP, you must add each of your network locations. This area applies to any network endpoint device that gets an IP address in your enterprise’s range and is also bound to one of your enterprise domains, including SMB shares. Local file system locations should just maintain encryption (for example, on local NTFS, FAT, ExFAT). ->**Important**
    -- Every WIP policy should include policy that defines your enterprise network locations. -- Classless Inter-Domain Routing (CIDR) notation isn’t supported for WIP configurations. +>[!IMPORTANT] +>Every WIP policy should include policy that defines your enterprise network locations.
    +>Classless Inter-Domain Routing (CIDR) notation isn’t supported for WIP configurations. **To define where your protected apps can find and send enterprise data on you network** @@ -492,13 +494,15 @@ After you've finished configuring your policy, you can review all of your info o A progress bar appears, showing you progress for your policy. After it's done, click **Close** to return to the **Configuration Items** page. - ## Deploy the WIP policy After you’ve created your WIP policy, you'll need to deploy it to your organization's devices. For info about your deployment options, see these topics: - [Operations and Maintenance for Compliance Settings in Configuration Manager](https://go.microsoft.com/fwlink/p/?LinkId=708224) - [How to Create Configuration Baselines for Compliance Settings in Configuration Manager]( https://go.microsoft.com/fwlink/p/?LinkId=708225) - [How to Deploy Configuration Baselines in Configuration Manager]( https://go.microsoft.com/fwlink/p/?LinkId=708226) +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). + ## Related topics - [System Center Configuration Manager and Endpoint Protection (Version 1606)](https://go.microsoft.com/fwlink/p/?LinkId=717372) - [TechNet documentation for Configuration Manager](https://go.microsoft.com/fwlink/p/?LinkId=691623) diff --git a/windows/keep-secure/create-wmi-filters-for-the-gpo.md b/windows/keep-secure/create-wmi-filters-for-the-gpo.md index 3cbb5be9a5..80474a70be 100644 --- a/windows/keep-secure/create-wmi-filters-for-the-gpo.md +++ b/windows/keep-secure/create-wmi-filters-for-the-gpo.md @@ -51,7 +51,7 @@ First, create the WMI filter and configure it to look for a specified version (o select * from Win32_OperatingSystem where Version like "6.%" ``` - This query will return **true** for devices running at least Windows Vista and Windows Server 2008. To set a filter for just Windows 8 and Windows Server 2012, use "6.2%". To specify multiple versions, combine them with or, as shown in the following: + This query will return **true** for devices running at least Windows Vista and Windows Server 2008. To set a filter for just Windows 8 and Windows Server 2012, use "6.2%". For Windows 10 and Windows Server 2016, use "10.%". To specify multiple versions, combine them with or, as shown in the following: ``` syntax ... where Version like "6.1%" or Version like "6.2%" @@ -65,16 +65,16 @@ First, create the WMI filter and configure it to look for a specified version (o ... where ProductType="1" or ProductType="3" ``` - The following complete query returns **true** for all devices running Windows 8, and returns **false** for any server operating system or any other client operating system. + The following complete query returns **true** for all devices running Windows 10, and returns **false** for any server operating system or any other client operating system. ``` syntax - select * from Win32_OperatingSystem where Version like "6.2%" and ProductType="1" + select * from Win32_OperatingSystem where Version like "10.%" and ProductType="1" ``` - The following query returns **true** for any device running Windows Server 2012, except domain controllers: + The following query returns **true** for any device running Windows Server 2016, except domain controllers: ``` syntax - select * from Win32_OperatingSystem where Version like "6.2%" and ProductType="3" + select * from Win32_OperatingSystem where Version like "10.%" and ProductType="3" ``` 9. Click **OK** to save the query to the filter. diff --git a/windows/keep-secure/credential-guard.md b/windows/keep-secure/credential-guard.md index 7045d584b4..c038a4d588 100644 --- a/windows/keep-secure/credential-guard.md +++ b/windows/keep-secure/credential-guard.md @@ -123,7 +123,7 @@ To enforce processing of the group policy, you can run ```gpupdate /force```. If you don't use Group Policy, you can enable Credential Guard by using the registry. Credential Guard uses virtualization-based security features which have to be enabled first on some operating systems. -##### Add the virtualization-based security features +#### Add the virtualization-based security features Starting with Windows 10, version 1607 and Windows Server 2016, enabling Windows features to use virtualization-based security is not necessary and this step can be skipped. @@ -156,7 +156,7 @@ You can do this by using either the Control Panel or the Deployment Image Servic > [!NOTE] > You can also add these features to an online image by using either DISM or Configuration Manager. -##### Enable virtualization-based security and Credential Guard +#### Enable virtualization-based security and Credential Guard 1. Open Registry Editor. 2. Enable virtualization-based security: @@ -195,10 +195,9 @@ Requirements for running Credential Guard in Hyper-V virtual machines - The Hyper-V host must have an IOMMU, and run at least Windows Server 2016 or Windows 10 version 1607. - The Hyper-V virtual machine must be Generation 2, have an enabled virtual TPM, and running at least Windows Server 2016 or Windows 10. - ### Remove Credential Guard -If you have to remove Credential Guard on a PC, you need to do the following: +If you have to remove Credential Guard on a PC, you can use the following set of procedures, or you can [use the Device Guard and Credential Guard hardware readiness tool](#turn-off-with-hardware-readiness-tool). 1. If you used Group Policy, disable the Group Policy setting that you used to enable Credential Guard (**Computer Configuration** -> **Administrative Templates** -> **System** -> **Device Guard** -> **Turn on Virtualization Based Security**). 2. Delete the following registry settings: @@ -242,9 +241,10 @@ If you have to remove Credential Guard on a PC, you need to do the following: For more info on virtualization-based security and Device Guard, see [Device Guard deployment guide](device-guard-deployment-guide.md). -**Turn off Credential Guard by using the Device Guard and Credential Guard hardware readiness tool** + +#### Turn off Credential Guard by using the Device Guard and Credential Guard hardware readiness tool -You can also enable Credential Guard by using the [Device Guard and Credential Guard hardware readiness tool](https://www.microsoft.com/download/details.aspx?id=53337). +You can also disable Credential Guard by using the [Device Guard and Credential Guard hardware readiness tool](https://www.microsoft.com/download/details.aspx?id=53337). ``` DG_Readiness_Tool_v2.0.ps1 -Disable -AutoReboot @@ -917,6 +917,7 @@ write-host $tmp -Foreground Red - [Isolated User Mode Processes and Features in Windows 10 with Logan Gabriel (Channel 9)](http://channel9.msdn.com/Blogs/Seth-Juarez/Isolated-User-Mode-Processes-and-Features-in-Windows-10-with-Logan-Gabriel) - [More on Processes and Features in Windows 10 Isolated User Mode with Dave Probert (Channel 9)](https://channel9.msdn.com/Blogs/Seth-Juarez/More-on-Processes-and-Features-in-Windows-10-Isolated-User-Mode-with-Dave-Probert) - [Mitigating Credential Theft using the Windows 10 Isolated User Mode (Channel 9)](https://channel9.msdn.com/Blogs/Seth-Juarez/Mitigating-Credential-Theft-using-the-Windows-10-Isolated-User-Mode) +- [Protecting network passwords with Windows 10 Credential Guard](https://www.microsoft.com/itshowcase/Article/Content/831/Protecting-network-passwords-with-Windows-10-Credential-Guard) - [Enabling Strict KDC Validation in Windows Kerberos](http://www.microsoft.com/download/details.aspx?id=6382) - [What's New in Kerberos Authentication for Windows Server 2012](http://technet.microsoft.com/library/hh831747.aspx) - [Authentication Mechanism Assurance for AD DS in Windows Server 2008 R2 Step-by-Step Guide](http://technet.microsoft.com/library/dd378897.aspx) diff --git a/windows/keep-secure/dashboard-windows-defender-advanced-threat-protection.md b/windows/keep-secure/dashboard-windows-defender-advanced-threat-protection.md index 112382f305..990e0ac396 100644 --- a/windows/keep-secure/dashboard-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/dashboard-windows-defender-advanced-threat-protection.md @@ -56,10 +56,12 @@ Click the name of the machine to see details about that machine. For more inform You can also click **Machines view** at the top of the tile to go directly to the **Machines view**, sorted by the number of active alerts. For more information see, [Investigate machines in the Windows Defender Advanced Threat Protection Machines view](investigate-machines-windows-defender-advanced-threat-protection.md). ## Status -The **Status** tile informs you if the service is active and running and the unique number of machines (endpoints) reporting over the past 30 days. +The **Status** tile informs you if the service is active or if there are issues and the unique number of machines (endpoints) reporting to the service over the past 30 days. ![The Status tile shows an overall indicator of the service and the total number of machines reporting to the service](images/status-tile.png) +For more information on the service status, see [Check the Windows Defender ATP service status](service-status-windows-defender-advanced-threat-protection.md). + ## Machines reporting The **Machines reporting** tile shows a bar graph that represents the number of machines reporting alerts daily. Hover over individual bars on the graph to see the exact number of machines reporting in each day. diff --git a/windows/keep-secure/deploy-wip-policy-using-intune.md b/windows/keep-secure/deploy-wip-policy-using-intune.md index 075fba2473..c9977fec21 100644 --- a/windows/keep-secure/deploy-wip-policy-using-intune.md +++ b/windows/keep-secure/deploy-wip-policy-using-intune.md @@ -33,6 +33,9 @@ The added people move to the **Selected Groups** list on the right-hand pane. 3. After you've picked all of the employees and groups that should get the policy, click **OK**.

    The policy is deployed to the selected users' devices. +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). + ## Related topics - [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) - [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) diff --git a/windows/keep-secure/enlightened-microsoft-apps-and-wip.md b/windows/keep-secure/enlightened-microsoft-apps-and-wip.md index f6b1ea7f6e..f2e1b3c91c 100644 --- a/windows/keep-secure/enlightened-microsoft-apps-and-wip.md +++ b/windows/keep-secure/enlightened-microsoft-apps-and-wip.md @@ -78,4 +78,7 @@ You can add any or all of the enlightened Microsoft apps to your allowed apps li |Microsoft OneDrive |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
    **Binary Name:** onedrive.exe
    **App Type:** Desktop app| |Notepad |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
    **Binary Name:** notepad.exe
    **App Type:** Desktop app | |Microsoft Paint |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
    **Binary Name:** mspaint.exe
    **App Type:** Desktop app | -|Microsoft Remote Desktop |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
    **Binary Name:** mstsc.exe
    **App Type:** Desktop app | \ No newline at end of file +|Microsoft Remote Desktop |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
    **Binary Name:** mstsc.exe
    **App Type:** Desktop app | + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). \ No newline at end of file diff --git a/windows/keep-secure/export-an-applocker-policy-from-a-gpo.md b/windows/keep-secure/export-an-applocker-policy-from-a-gpo.md index 6476c88d16..8f914cd9f0 100644 --- a/windows/keep-secure/export-an-applocker-policy-from-a-gpo.md +++ b/windows/keep-secure/export-an-applocker-policy-from-a-gpo.md @@ -16,7 +16,7 @@ author: brianlic-msft This topic for IT professionals describes the steps to export an AppLocker policy from a Group Policy Object (GPO) so that it can be modified. -Updating an AppLocker policy that is currently enforced in your production environment can have unintended results. Therefore, export the policy from the GPO and update the rule or rules by using AppLocker on your AppLocker reference device +Updating an AppLocker policy that is currently enforced in your production environment can have unintended results. Therefore, export the policy from the GPO and update the rule or rules by using AppLocker on your AppLocker reference device. To complete this procedure, you must have the **Edit Setting** permission to edit a GPO. By default, members of the **Domain Admins** group, the **Enterprise Admins** group, and the **Group Policy Creator Owners** group have this permission. diff --git a/windows/keep-secure/guidance-and-best-practices-wip.md b/windows/keep-secure/guidance-and-best-practices-wip.md index b91386f0c0..ff64be6d0f 100644 --- a/windows/keep-secure/guidance-and-best-practices-wip.md +++ b/windows/keep-secure/guidance-and-best-practices-wip.md @@ -22,8 +22,10 @@ This section includes info about the enlightened Microsoft apps, including how t ## In this section |Topic |Description | |------|------------| -|[Windows Information Protection (WIP) overview](wip-enterprise-overview.md) |High-level overview info about why to use WIP, the enterprise scenarios, and how to turn it off. | -|[Mandatory settings for Windows Information Protection (WIP)](mandatory-settings-for-wip.md) |A list of all of the tasks and settings that are required for the operating system to turn on Windows Information Protection (WIP), formerly known as enterprise data protection (EDP), in your enterprise. | -|[Enlightened apps for use with Windows Information Protection (WIP)](enlightened-microsoft-apps-and-wip.md) |Learn the difference between enlightened and unenlightened apps, and then review the list of enlightened apps provided by Microsoft along with the text you will need to use to add them to your allowed apps list. | -|[Testing scenarios for Windows Information Protection (WIP)](testing-scenarios-for-wip.md) |We've come up with a list of suggested testing scenarios that you can use to test WIP in your company. | -|[Limitations while using Windows Information Protection (WIP)](limitations-with-wip.md) |The most common problems you might encounter while using Windows Information Protection (WIP). | \ No newline at end of file +|[Enlightened apps for use with Windows Information Protection (WIP)](enlightened-microsoft-apps-and-wip.md) |Learn the difference between enlightened and unenlightened apps, and then review the list of enlightened apps provided by Microsoft along with the text you will need to use to add them to your allowed apps list. | +|[Unenlightened and enlightened app behavior while using Windows Information Protection (WIP)](app-behavior-with-wip.md) |Learn the difference between enlightened and unenlightened app behaviors. | +|[Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP)](recommended-network-definitions-for-wip.md) |Recommended additions for the Enterprise Cloud Resources and Neutral Resources network settings, when used with Windows Information Protection (WIP). | +|[Using Outlook Web Access with Windows Information Protection (WIP)](using-owa-with-wip.md) |Options for using Outlook Web Access (OWA) with Windows Information Protection (WIP). | + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). diff --git a/windows/keep-secure/how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md b/windows/keep-secure/how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md new file mode 100644 index 0000000000..032e04c1ad --- /dev/null +++ b/windows/keep-secure/how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md @@ -0,0 +1,94 @@ +--- +title: How to use single sign on (SSO) over VPN and Wi-Fi connections (Windows 10) +description: Explains requirements to enable Single Sign-On (SSO) to on-premises domain resources over WiFi or VPN connections. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +author: justinha +--- + +# How to use single sign on (SSO) over VPN and Wi-Fi connections + +This topic explains requirements to enable Single Sign-On (SSO) to on-premises domain resources over WiFi or VPN connections. The scenario is: + +- You connect to a network using Wi-Fi or VPN. +- You want to use the credentials that you use for the WiFi or VPN authentication to also authenticate requests to access a domain resource you are connecting to, without being prompted for your domain credentials separately. + +For example, you want to connect to a corporate network and access an internal website that requires Windows integrated authentication. + +At a high level, the way this works is that the credentials that are used for the connection authentication are put in Credential Manager as the default credentials for the logon session. +Credential Manager is a place where credentials in the OS are can be stored for specific domain resources based on the targetname of the resource. +For VPN, the VPN stack saves its credential as the session default. +For WiFi, EAP does it. + +The credentials are put in Credential Manager as a "`*Session`" credential. +A "`*Session`" credential implies that it is valid for the current user session. +The credentials are also cleaned up when the WiFi or VPN connection is disconnected. + +When the user tries to access a domain resource, using Edge for example, Edge has the right Enterprise Authentication capability so [WinInet](https://msdn.microsoft.com/library/windows/desktop/aa385483.aspx) can release the credentials that it gets from the Credential Manager to the SSP that is requesting it. +For more information about the Enterprise Authentication capability, see [App capability declarations](https://msdn.microsoft.com/windows/uwp/packaging/app-capability-declarations). + +The local security authority will look at the device application, such as a Universal Windows Platform (UWP) application, to see if it has the right capability. +If the app is not UWP, it does not matter. +But if it is a UWP app, it will look at the device capability for Enterprise Authentication. +If it does have that capability and if the resource that you are trying to access is in the Intranet zone in the Internet Options (ZoneMap), then the credential will be released. +This behavior helps prevent credentials from being misused by untrusted third parties. + +## Intranet zone + +For the Intranet zone, by default it only allows single-label names, such as Http://finance. +If the resource that needs to be accessed has multiple domain labels, then the workaround is to use the [Registry CSP](https://msdn.microsoft.com/library/windows/hardware/dn904964.aspx). + +### Setting the ZoneMap + +The ZoneMap is controlled using a registry that can be set through MDM. +By default, single-label names such as http://finance are already in the intranet zone. +For multi-label names, such as http://finance.net, the ZoneMap needs to be updated. + +## MDM Policy + +OMA URI example: + +./Vendor/MSFT/Registry/HKU/S-1-5-21-2702878673-795188819-444038987-2781/Software/Microsoft/Windows/CurrentVersion/Internet%20Settings/ZoneMap/Domains/``/* as an Integer Value of 1 for each of the domains that you want to SSO into from your device. This adds the specified domains to the Intranet Zone of the Edge browser. + +## Credential requirements + +For VPN, the following types of credentials will be added to credential manager after authentication: + +- Username and password +- Certificate-based authentication: + - TPM KSP Certificate + - Software KSP Certificates + - Smart Card Certificate + - Passport for Work Certificate + +The username should also include a domain that can be reached over the connection (VPN or WiFi). + +## User certificate templates + +If the credentials are certificate-based, then the elements in the following table need to be configured for the certificate templates to ensure they can also be used for Kerberos client authentication. + +| Template element | Configuration | +|------------------|---------------| +| SubjectName | The user’s distinguished name (DN) where the domain components of the distinguished name reflects the internal DNS namespace when the SubjectAlternativeName does not have the fully qualified UPN required to find the domain controller.
    This requirement is particularly relevant in multi-forest environments as it ensures a domain controller can be located. | +| SubjectAlternativeName | The user’s fully qualified UPN where a domain name component of the user’s UPN matches the organizations internal domain’s DNS namespace.
    This requirement is particularly relevant in multi-forest environments as it ensures a domain controller can be located when the SubjectName does not have the DN required to find the domain controller. | +| Key Storage Provider (KSP) | If the device is joined to Azure AD, a discrete SSO certificate is used. | +| EnhancedKeyUsage | One or more of the following EKUs is required:
    - Client Authentication (for the VPN)
    - EAP Filtering OID (for Windows Hello for Business)
    - SmartCardLogon (for Azure AD joined devices)
    If the domain controllers require smart card EKU either:
    - SmartCardLogon
    - id-pkinit-KPClientAuth (1.3.6.1.5.2.3.4)
    Otherwise:
    - TLS/SSL Client Authentication (1.3.6.1.5.5.7.3.2) | + +## NDES server configuration + +The NDES server is required to be configured so that incoming SCEP requests can be mapped to the correct template to be used. +For more information, see [Configure certificate infrastructure for SCEP](https://docs.microsoft.com/en-us/intune/deploy-use/Configure-certificate-infrastructure-for-scep). + +## Active Directory requirements + +You need IP connectivity to a DNS server and domain controller over the network interface so that authentication can succeed as well. + +The domain controllers will need to have appropriate KDC certificates for the client to trust them as domain controllers, and since phones are not domain-joined, the root CA of the KDC’s certificate must be in the Third-Party Root CA or Smart Card Trusted Roots store. + +The domain controllers must be using certificates based on the updated KDC certificate template Kerberos Authentication. +This is because Windows 10 Mobile requires strict KDC validation to be enabled. +This requires that all authenticating domain controllers run Windows Server 2016, or you'll need to enable strict KDC validation on domain controllers that run previous versions of Windows Server. +For more information, see [Enabling Strict KDC Validation in Windows Kerberos](https://www.microsoft.com/download/details.aspx?id=6382). + diff --git a/windows/keep-secure/images/atp-intune-add-policy.png b/windows/keep-secure/images/atp-intune-add-policy.png deleted file mode 100644 index 570ab0a6889ead424e9909c6e85a0c56c559dcd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118996 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

    o_h2)Wwr$})T@p`Xoj8L> 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 literal 10357 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 aY4GKT87*(h|NK=Dq_1;RyI9jc?0*56mY+%h diff --git a/windows/keep-secure/implement-microsoft-passport-in-your-organization.md b/windows/keep-secure/implement-microsoft-passport-in-your-organization.md index e4de8535f1..31ea44aebd 100644 --- a/windows/keep-secure/implement-microsoft-passport-in-your-organization.md +++ b/windows/keep-secure/implement-microsoft-passport-in-your-organization.md @@ -20,15 +20,15 @@ localizationpriority: high You can create a Group Policy or mobile device management (MDM) policy that will implement Windows Hello on devices running Windows 10. >[!IMPORTANT] ->The Group Policy setting **Turn on PIN sign-in** does not apply to Windows Hello for Business. It still prevents or enables the creation of a convenience PIN for Windows 10, version 1507 and 1511. +>The Group Policy setting **Turn on PIN sign-in** does not apply to Windows Hello for Business. Use the **Turn on PIN sign-in** setting to allow or deny the use of a convenience PIN for Windows 10, version 1607. > ->Beginning in version 1607, Windows Hello as a convenience PIN is disabled by default on all domain-joined computers. To enable a convenience PIN for Windows 10, version 1607, enable the Group Policy setting **Turn on convenience PIN sign-in**. +>Beginning in version 1607, Windows Hello as a convenience PIN is disabled by default on all domain-joined computers. To enable a convenience PIN for Windows 10, version 1607, enable the Group Policy setting **Turn on convenience PIN sign-in**. Learn more in the blog post [Changes to Convenience PIN/Windows Hello Behavior in Windows 10, version 1607](https://blogs.technet.microsoft.com/ash/2016/08/13/changes-to-convenience-pin-and-thus-windows-hello-behaviour-in-windows-10-version-1607/). > >Use **Windows Hello for Business** policy settings to manage PINs for Windows Hello for Business.   ## Group Policy settings for Windows Hello for Business -The following table lists the Group Policy settings that you can configure for Hello use in your workplace. These policy settings are available in both **User configuration** and **Computer Configuration** under **Policies** > **Administrative Templates** > **Windows Components** > **Windows Hello for Business**. +The following table lists the Group Policy settings that you can configure for Hello use in your workplace. These policy settings are available in both **User configuration** and **Computer Configuration** under **Policies** > **Administrative Templates** > **Windows Components** > **Windows Hello for Business**. Be aware that not all settings are in both places. @@ -376,4 +376,4 @@ The PIN is managed using the same Windows Hello for Business policies that you c [Event ID 300 - Windows Hello successfully created](passport-event-300.md) [Windows Hello biometrics in the enterprise](windows-hello-in-enterprise.md) -  \ No newline at end of file +  diff --git a/windows/keep-secure/index.md b/windows/keep-secure/index.md index 3e1ed57822..1307bc7110 100644 --- a/windows/keep-secure/index.md +++ b/windows/keep-secure/index.md @@ -17,19 +17,19 @@ Learn about keeping Windows 10 and Windows 10 Mobile secure. | Topic | Description | | - | - | | [Block untrusted fonts in an enterprise](block-untrusted-fonts-in-enterprise.md) | To help protect your company from attacks which may originate from untrusted or attacker controlled font files, we’ve created the Blocking Untrusted Fonts feature. Using this feature, you can turn on a global setting that stops your employees from loading untrusted fonts processed using the Graphics Device Interface (GDI) onto your network. Untrusted fonts are any font installed outside of the %windir%/Fonts directory. Blocking untrusted fonts helps prevent both remote (web-based or email-based) and local EOP attacks that can happen during the font file-parsing process. | -| [Device Guard certification and compliance](device-guard-certification-and-compliance.md) | Device Guard is a combination of hardware and software security features that, when configured together, will lock a device down so that it can only run trusted applications. If the app isn’t trusted it can’t run, period. It also means that even if an attacker manages to get control of the Windows kernel, he or she will be much less likely to be able to run malicious executable code after the computer restarts because of how decisions are made about what can run and when. | | [Manage identity verification using Windows Hello for Business](manage-identity-verification-using-microsoft-passport.md) | In Windows 10, Windows Hello replaces passwords with strong two-factor authentication on PCs and mobile devices. This authentication consists of a new type of user credential that is tied to a device and a biometric or PIN. | | [Configure S/MIME for Windows 10 and Windows 10 Mobile](configure-s-mime.md) | In Windows 10, S/MIME lets users encrypt outgoing messages and attachments so that only intended recipients who have a digital identification (ID), also known as a certificate, can read them. Users can digitally sign a message, which provides the recipients with a way to verify the identity of the sender and that the message hasn't been tampered with. | | [Install digital certificates on Windows 10 Mobile](installing-digital-certificates-on-windows-10-mobile.md) | Digital certificates bind the identity of a user or computer to a pair of keys that can be used to encrypt and sign digital information. Certificates are issued by a certification authority (CA) that vouches for the identity of the certificate holder, and they enable secure client communications with websites and services. | -| [Protect derived domain credentials with Credential Guard](credential-guard.md) | Introduced in Windows 10 Enterprise, Credential Guard uses virtualization-based security to isolate secrets so that only privileged system software can access them. Unauthorized access to these secrets can lead to credential theft attacks, such as Pass-the-Hash or Pass-The-Ticket. Credential Guard prevents these attacks by protecting NTLM password hashes and Kerberos Ticket Granting Tickets. | +| [Device Guard deployment guide](device-guard-deployment-guide.md) | Device Guard is a combination of hardware and software security features that, when configured together, will lock a device down so that it can only run trusted applications. If the app isn’t trusted it can’t run, period. It also means that even if an attacker manages to get control of the Windows kernel, he or she will be much less likely to be able to run malicious executable code after the computer restarts because of how decisions are made about what can run and when. | +| [Protect derived domain credentials with Credential Guard](credential-guard.md) | Introduced in Windows 10 Enterprise, Credential Guard uses virtualization-based security to isolate secrets so that only privileged system software can access them. Unauthorized access to these secrets can lead to credential theft attacks, such as Pass-the-Hash or Pass-The-Ticket. Credential Guard helps prevent these attacks by protecting NTLM password hashes and Kerberos Ticket Granting Tickets. | | [Protect Remote Desktop credentials with Remote Credential Guard](remote-credential-guard.md) | Remote Credential Guard helps you protect your credentials over a Remote Desktop connection by redirecting the Kerberos requests back to the device that's requesting the connection. | -| [Protect your enterprise data using Windows Information Protection (WIP)](protect-enterprise-data-using-wip.md) | With the increase of employee-owned devices in the enterprise, there’s also an increasing risk of accidental data leak through apps and services, like email, social media, and the public cloud, which are outside of the enterprise’s control. For example, when an employee sends the latest engineering pictures from their personal email account, copies and pastes product info into a tweet, or saves an in-progress sales report to their public cloud storage. | +| [Protect your enterprise data using Windows Information Protection (WIP)](protect-enterprise-data-using-wip.md) | With the increase of employee-owned devices in the enterprise, there’s also an increasing risk of accidental data leak through apps and services, like email, social media, and the public cloud, which are outside of the enterprise’s control. Windows Information Protection (WIP), previously known as enterprise data protection (EDP), helps to protect against this potential data leakage without otherwise interfering with the employee experience. | | [Use Windows Event Forwarding to help with intrusion detection](use-windows-event-forwarding-to-assist-in-instrusion-detection.md) | Learn about an approach to collect events from devices in your organization. This article talks about events in both normal operations and when an intrusion is suspected. | |[Override Process Mitigation Options to help enforce app-related security policies](override-mitigation-options-for-app-related-security-policies.md) |Use Group Policy to override individual **Process Mitigation Options** settings and help to enforce specific app-related security policies. | | [VPN technical guide](vpn-guide.md) | Virtual private networks (VPN) let you give your users secure remote access to your company network. Windows 10 adds useful new VPN profile options to help you manage how users connect. | | [Windows security baselines](windows-security-baselines.md) | Learn why you should use security baselines in your organization. | -| [Security technologies](security-technologies.md) | Learn more about the different security technologies that are available in Windows 10 and Windows 10 Mobile. | -| [Enterprise security guides](windows-10-enterprise-security-guides.md) | Get proven guidance to help you better secure and protect your enterprise by using technologies such as Credential Guard, Device Guard, Microsoft Passport, and Windows Hello. This section offers technology overviews and step-by-step guides. | +| [Security technologies](security-technologies.md) | Learn more about the different security technologies that are available in Windows 10 and Windows 10 Mobile. For example, learn about AppLocker, BitLocker, and Security auditing. | +| [Enterprise security guides](windows-10-enterprise-security-guides.md) | Review technology overviews that help you understand Windows 10 security technologies in the context of the enterprise. | | [Change history for Keep Windows 10 secure](change-history-for-keep-windows-10-secure.md) | This topic lists new and updated topics in the Keep Windows 10 secure documentation for [Windows 10 and Windows 10 Mobile](../index.md). |   ## Related topics diff --git a/windows/keep-secure/initialize-and-configure-ownership-of-the-tpm.md b/windows/keep-secure/initialize-and-configure-ownership-of-the-tpm.md index cc8625adb9..013355ffa6 100644 --- a/windows/keep-secure/initialize-and-configure-ownership-of-the-tpm.md +++ b/windows/keep-secure/initialize-and-configure-ownership-of-the-tpm.md @@ -1,6 +1,6 @@ --- -title: Initialize and configure ownership of the TPM (Windows 10) -description: This topic for the IT professional describes how to initialize and set the ownership the Trusted Platform Module (TPM), turn the TPM on and off, and clear TPM keys. +title: View status, clear, or troubleshoot the TPM (Windows 10) +description: This topic for the IT professional describes how to view status for, clear, or troubleshoot the Trusted Platform Module (TPM). ms.assetid: 1166efaf-7aa3-4420-9279-435d9c6ac6f8 ms.prod: w10 ms.mktglfcycl: deploy @@ -9,156 +9,146 @@ ms.pagetype: security author: brianlic-msft --- -# Initialize and configure ownership of the TPM +# View status, clear, or troubleshoot the TPM **Applies to** - Windows 10 +- Windows Server 2016 -This topic for the IT professional describes how to initialize and set the ownership the Trusted Platform Module (TPM), turn the TPM on and off, and clear TPM keys. It also explains how to troubleshoot issues that you might encounter as a result of using these procedures. +This topic for the IT professional describes actions you can take through the Trusted Platform Module (TPM) snap-in, **TPM.msc**: -## About TPM initialization and ownership +- [View the status of the TPM](#view-the-status-of-the-tpm) -The TPM must be initialized and ownership must be taken before it can be used to help secure your computer. The owner of the TPM is the user who possesses the owner password and is able to set it and change it. Only one owner password exists per TPM. The owner of the TPM can make full use of TPM capabilities. Taking ownership of the TPM can be done as part of the initialization process. +- [Troubleshoot TPM initialization](#troubleshoot-tpm-initialization) -When you start the TPM Initialization Wizard, which is accessed through the TPM Microsoft Management Console (MMC), you can determine whether the computer's TPM has been initialized. You can also view the TPM properties. +- [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm) -This topic contains procedures for the following tasks: +With TPM 1.2 and Windows 10, version 1507 or 1511, you can also take the following actions: -- [Initialize the TPM and set ownership](#bkmk-initializetpm) -- [Troubleshoot TPM initialization](#bkmk-troubleshootinit) -- [Turn on or turn off the TPM](#bkmk-onoff) -- [Clear all the keys from the TPM](#bkmk-clear1) -- [Use the TPM cmdlets](#bkmk-tpmcmdlets) +- [Turn on or turn off the TPM](#turn-on-or-turn-off) -## Initialize the TPM and set ownership +This topic also provides information about [using the TPM cmdlets](#use-the-tpm-cmdlets). -Membership in the local Administrators group, or equivalent, is the minimum required to complete this procedure. In addition, the computer must be equipped with a Trusted Computing Group-compliant BIOS. +## About TPM initialization and ownership -**To start the TPM Initialization Wizard** +Starting with Windows 10, the operating system automatically initializes and takes ownership of the TPM. This is a change from previous operating systems, where you would initialize the TPM and create an owner password. Therefore, with Windows 10, in most cases, we recommend that you avoid configuring the TPM through **TPM.msc**. The one exception is that in certain circumstances you might use **TPM.msc** to clear the TPM. For more information, see [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. -1. Open the TPM Management console (tpm.msc). If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. -2. On the **Action** menu, click **Initialize TPM** to start the TPM Initialization Wizard. -3. If the TPM has never been initialized or is turned off, the TPM Initialization Wizard displays the **Turn on the TPM security hardware** dialog box. This dialog box provides guidance for initializing or turning on the TPM. Follow the instructions in the wizard. +## View the status of the TPM - >**Note:** If the TPM is already turned on, the TPM Initialization Wizard displays the **Create the TPM owner password** dialog box. Skip the remainder of this procedure and continue with the **To set ownership of the TPM** procedure. -   - >**Note:**  If the TPM Initialization Wizard detects that you do not have a compatible BIOS, you cannot continue with the TPM Initialization Wizard, and you are alerted to consult the computer manufacturer's documentation for instructions to initialize the TPM. -   -4. Click **Restart**. -5. Follow the BIOS screen prompts. An acceptance prompt is displayed to ensure that a user has physical access to the computer and that no malicious software is attempting to turn on the TPM. - - >**Note:**  BIOS screen prompts and the required keystrokes vary by computer manufacturer. -   -6. After the computer restarts, sign in to the computer with the same administrative credentials that you used to start this procedure. -7. The TPM Initialization Wizard automatically restarts. If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. -8. Continue with the next procedure to take ownership of the TPM. +To view the status of the TPM, open the TPM Management console (TPM.msc). In the center pane, find the **Status** box. -To finish initializing the TPM for use, you must set an owner for the TPM. The process of taking ownership includes creating an owner password for the TPM. +In most cases, the status will be **Ready**. If the status is ready but “**with reduced functionality**,” see [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. -**To set ownership of the TPM** +If the status is **Not ready**, you can try the steps in [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. If this does not bring it to a **Ready** state, contact the manufacturer, and see the troubleshooting suggestions in the next section. -1. If you are not continuing immediately from the last procedure, start the TPM Initialization Wizard. If you need to review the steps to do so, see the previous procedure **To start the TPM Initialization Wizard**. -2. In the **Create the TPM owner password** dialog box, click **Automatically create the password (recommended)**. -3. In the **Save your TPM owner password** dialog box, click **Save the password**. -4. In the **Save As** dialog box, select a location to save the password, and then click **Save**. The password file is saved as *computer\_name.tpm*. +## Troubleshoot TPM initialization - >**Important:**  We highly recommend saving the TPM owner password to a removable storage device and storing it in a safe location. -   -5. Click **Print the password** if you want to print a copy of your password. - >**Important:**  We highly recommend printing a copy of your TPM owner password and storing it in a safe location. -   -6. Click **Initialize**. - >**Note:**  The process of initializing the TPM might take a few minutes to complete. -   -7. Click **Close**. - >**Caution:**  Do not lose your password. If you do, you will be unable to make administrative changes unless you clear the TPM, which can result in data loss. -   -## Troubleshoot TPM initialization +If you find that Windows is not able to initialize the TPM automatically, review the following information: -Managing the Trusted Platform Module (TPM) is usually a straightforward procedure. If are unable to complete the initialization procedure, review the following information: +- You can try clearing the TPM to the factory default values and allowing Windows to re-initialize it. For important precautions for this process, and instructions for completing it, see [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. -- If the TPM is not detected by Windows, verify that your computer hardware contains a Trusted Computing Group-compliant BIOS. Ensure that no BIOS settings have been used to hide the TPM from the operating system. -- If you are attempting to initialize the TPM as part of the BitLocker setup, check which TPM driver is installed on the computer. We recommend always using one of the TPM drivers that is provided by Microsoft and is protected with BitLocker. If a non-Microsoft TPM driver is installed, it may prevent the default TPM driver from loading and cause BitLocker to report that a TPM is not present on the computer. If you have a non-Microsoft driver installed, remove it and then try to initialize the TPM. The following table lists the three standard TPM drivers that are provided by Microsoft. +- If the TPM is a TPM 2.0 and is not detected by Windows, verify that your computer hardware contains a Unified Extensible Firmware Interface (UEFI) that is Trusted Computing Group-compliant. Also, ensure that in the UEFI settings, the TPM has not been disabled or hidden from the operating system. -| Driver name | Manufacturer | -| - | - | -| Trusted Platform Module 1.2 | (Standard)| -| Broadcom Trusted Platform Module (A1), v1.2 | Broadcom| -| Broadcom Trusted Platform Module (A2), v1.2 | Broadcom| -   -- If the TPM has been previously initialized and you do not have the owner password, you may have to clear or reset the TPM to the factory default values. For more information, see [Clear all the keys from the TPM](#bkmk-clear1). - > **Caution:**  Clearing the TPM can result in data loss. To avoid data loss, make sure that you have a backup or recovery method for any data that is protected or encrypted by the TPM. -   -Because your TPM security hardware is a physical part of your computer, you may want to read the manuals or instructions that came with your computer, or search the manufacturer's website. +- If you have TPM 1.2 with Windows 10, version 1507 or 1511, the TPM might be turned off, and need to be turned back on, as described in [Turn on the TPM](#turn-on-the-tpm). When it is turned back on, Windows will re-initialize it. -**Network connection** +- If you are attempting to set up BitLocker with the TPM, check which TPM driver is installed on the computer. We recommend always using one of the TPM drivers that is provided by Microsoft and is protected with BitLocker. If a non-Microsoft TPM driver is installed, it may prevent the default TPM driver from loading and cause BitLocker to report that a TPM is not present on the computer. If you have a non-Microsoft driver installed, remove it and then allow the operating system to initialize the TPM. -You cannot complete the initialization of the Trusted Platform Module (TPM) when your computer is disconnected from your organization's network if either of the following conditions exist: +### Troubleshoot network connection issues for Windows 10, versions 1507 and 1511 + +If you have Windows 10, version 1507 or 1511, the initialization of the TPM cannot complete when your computer has network connection issues and both of the following conditions exist: - An administrator has configured your computer to require that TPM recovery information be saved in Active Directory Domain Services (AD DS). This requirement can be configured through Group Policy. + - A domain controller cannot be reached. This can occur on a computer that is currently disconnected from the network, separated from the domain by a firewall, or experiencing a network component failure (such as an unplugged cable or a faulty network adapter). -In either case, an error message appears, and you cannot complete the initialization process. To avoid this issue, initialize the TPM while you are connected to the corporate network and you can contact a domain controller. +If these issues occur, an error message appears, and you cannot complete the initialization process. To avoid this issue, allow Windows to initialize the TPM while you are connected to the corporate network and you can contact a domain controller. -**Systems with multiple TPMs** +### Troubleshoot systems with multiple TPMs -Some systems may have multiple TPMs and the active TPM may be toggled in the BIOS. Windows 10 does not support this behavior. If you switch TPMs, functionality that depends on the TPM will not work with the new TPM unless it is cleared and put through provisioning. Performing this clear may cause data loss, in particular of keys and certificates associated with the previous TPM. For example, toggling TPMs will cause Bitlocker to enter recovery mode. It is strongly recommended that, on systems with two TPMs, one TPM is selected to be used and the selection is not changed. +Some systems may have multiple TPMs and the active TPM may be toggled in UEFI. Windows 10 does not support this behavior. If you switch TPMs, Windows might not properly detect or interact with the new TPM. If you plan to switch TPMs you should toggle to the new TPM, clear it, and reinstall Windows. For more information, see [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. -## Turn on or turn off the TPM +For example, toggling TPMs will cause BitLocker to enter recovery mode. We strongly recommend that, on systems with two TPMs, one TPM is selected to be used and the selection is not changed. -Normally, the TPM is turned on as part of the TPM initialization process. You do not normally need to turn the TPM on or off. However, if necessary you can do so by using the TPM MMC. This option is only available with TPM 1.2 and does not apply to TPM 2.0. +## Clear all the keys from the TPM -### Turn on the TPM +With Windows 10, in most cases, we recommend that you avoid configuring the TPM through TPM.msc. The one exception is that you can use TPM.msc to clear the TPM, for example, as a troubleshooting step, or as a final preparation before a clean installation of a new operating system. Preparing for a clean installation in this way helps ensure that the new operating system can fully deploy any TPM-based functionality that it includes, for example, attestation. However, even if the TPM is not cleared before a new operating system is installed, most TPM functionality will probably work correctly. -If the TPM has been initialized but has never been used, or if you want to use the TPM after you have turned it off, you can use the following procedure to turn on the TPM. +Clearing the TPM resets it to an unowned state. After you clear the TPM, the Windows 10 operating system will automatically re-initialize it and take ownership again. -**To turn on the TPM (TPM 1.2 Only)** +> [!WARNING] +> Clearing the TPM can result in data loss. For more information, see the next section, “Precautions to take before clearing the TPM.” -1. Open the TPM MMC (tpm.msc). -2. In the **Action** pane, click **Turn TPM On** to display the **Turn on the TPM Security Hardware** page. Read the instructions on this page. -3. Click **Shutdown** (or **Restart**), and then follow the BIOS screen prompts. +There are several ways to clear the TPM: - After the computer restarts, but before you sign in to Windows, you will be prompted to accept the reconfiguration of the TPM. This ensures that the user has physical access to the computer and that malicious software is not attempting to make changes to the TPM. +- **Clear the TPM as part of a complete reset of the computer**: You might want to remove all files from the computer and completely reset it, for example, in preparation for a clean installation. To do this, we recommend that you use the **Reset** option in **Settings**. When you perform a reset and use the **Remove everything** option, it will clear the TPM as part of the reset. You might be prompted to press a key before the TPM can be cleared. For more information, see the “Reset this PC” section in [Recovery options in Windows 10](https://support.microsoft.com/en-us/help/12415/windows-10-recovery-options). -### Turn off the TPM +- **Clear the TPM to fix “reduced functionality” or “Not ready” TPM status**: If you open TPM.msc and see that the TPM status is something other than **Ready**, you can can try using TPM.msc to clear the TPM and fix the status. However, be sure to review the precautions in the next section. -If you want to stop using the services that are provided by the TPM, you can use the TPM MMC to turn off the TPM. If you have the TPM owner password, physical access to the computer is not required to turn off the TPM. If you do not have the TPM owner password, you must have physical access to the -computer to turn off the TPM. +### Precautions to take before clearing the TPM -**To turn off the TPM (TPM 1.2 only)** +Clearing the TPM can result in data loss. To protect against such loss, review the following precautions: -1. Open the TPM MMC (tpm.msc). -2. In the **Action** pane, click **Turn TPM Off** to display the **Turn off the TPM security hardware** page. -3. In the **Turn off the TPM security hardware** dialog box, select a method to enter your owner password and turning off the TPM: +- Clearing the TPM causes you to lose all created keys associated with the TPM, and data protected by those keys, such as a virtual smart card or a login PIN. Make sure that you have a backup and recovery method for any data that is protected or encrypted by the TPM. - - If you saved your TPM owner password on a removable storage device, insert it, and then click **I have the owner password file**. In the **Select backup file with the TPM owner password** dialog box, click **Browse** to locate the .tpm file that is saved on your removable storage device, click **Open**, and then click **Turn TPM Off**. - - If you do not have the removable storage device with your saved TPM owner password, click **I want to enter the password**. In the **Type your TPM owner password** dialog box, type your password (including hyphens), and then click **Turn TPM Off**. - - If you do not know your TPM owner password, click **I do not have the TPM owner password**, and follow the instructions that are provided in the dialog box and subsequent BIOS screens to turn off the TPM without entering the password. +- Do not clear the TPM on a device you do not own, such as a work or school PC, without being instructed to do so by your IT administrator. -## Clear all the keys from the TPM +- If you want to temporarily suspend TPM operations and you have TPM 1.2 with Windows 10, version 1507 or 1511, you can turn off the TPM. For more information, see [Turn off the TPM](#turn-off-the-tpm), later in this topic. -Clearing the TPM resets it to an unowned state. After clearing the TPM, you need to complete the TPM initialization process before using software that relies on the TPM, such as BitLocker Drive Encryption. By default, the TPM is initialized automatically. +- Always use functionality in the operating system (such as TPM.msc) to the clear the TPM. Do not clear the TPM directly from UEFI. ->**Important:**  Clearing the TPM can result in data loss. To avoid data loss, make sure that you have a backup or recovery method for any data that is protected or encrypted by the TPM. -  -After the TPM is cleared, it is also turned off. - -To temporarily suspend TPM operations, turn off the TPM instead of clearing it. +- Because your TPM security hardware is a physical part of your computer, before clearing the TPM, you might want to read the manuals or instructions that came with your computer, or search the manufacturer's website. Membership in the local Administrators group, or equivalent, is the minimum required to complete this procedure. **To clear the TPM** 1. Open the TPM MMC (tpm.msc). -2. If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. -3. Under **Actions**, click **Clear TPM**. - >**Warning:**  If the TPM is off, reinitialize it before clearing it. - - Clearing the TPM resets it to factory defaults and turns it off. You will lose all created keys and data that is protected by those keys. -   -4. You will be prompted to restart the computer. During the restart, you will be prompted by the BIOS or UEFI to press a button to confirm you wish to clear the TPM. -## Use the TPM cmdlets +2. If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. + +3. Under **Actions**, click **Clear TPM**. + +4. You will be prompted to restart the computer. During the restart, you might be prompted by the UEFI to press a button to confirm that you wish to clear the TPM. + +5. After the PC restarts, your TPM will be automatically prepared for use by Windows 10. + +## Turn on or turn off the TPM (TPM 1.2 with Windows 10, version 1507 or 1511) + +Normally, the TPM is turned on as part of the TPM initialization process. You do not normally need to turn the TPM on or off. However, if necessary you can do so by using the TPM MMC. + +### Turn on the TPM + +If you want to use the TPM after you have turned it off, you can use the following procedure to turn on the TPM. + +**To turn on the TPM (TPM 1.2 with Windows 10, version 1507 or 1511 only)** + +1. Open the TPM MMC (tpm.msc). + +2. In the **Action** pane, click **Turn TPM On** to display the **Turn on the TPM Security Hardware** page. Read the instructions on this page. + +3. Click **Shutdown** (or **Restart**), and then follow the UEFI screen prompts. + + After the computer restarts, but before you sign in to Windows, you will be prompted to accept the reconfiguration of the TPM. This ensures that the user has physical access to the computer and that malicious software is not attempting to make changes to the TPM. + +### Turn off the TPM + +If you want to stop using the services that are provided by the TPM, you can use the TPM MMC to turn off the TPM. + +**To turn off the TPM (TPM 1.2 with Windows 10, version 1507 or 1511 only)** + +1. Open the TPM MMC (tpm.msc). + +2. In the **Action** pane, click **Turn TPM Off** to display the **Turn off the TPM security hardware** page. + +3. In the **Turn off the TPM security hardware** dialog box, select a method to enter your owner password and turning off the TPM: + + - If you saved your TPM owner password on a removable storage device, insert it, and then click **I have the owner password file**. In the **Select backup file with the TPM owner password** dialog box, click **Browse** to locate the .tpm file that is saved on your removable storage device, click **Open**, and then click **Turn TPM Off**. + + - If you do not have the removable storage device with your saved TPM owner password, click **I want to enter the password**. In the **Type your TPM owner password** dialog box, type your password (including hyphens), and then click **Turn TPM Off**. + + - If you did not save your TPM owner password or no longer know it, click **I do not have the TPM owner password**, and follow the instructions that are provided in the dialog box and subsequent UEFI screens to turn off the TPM without entering the password. + +## Use the TPM cmdlets If you are using Windows PowerShell to manage your computers, you can also manage the TPM by using Windows PowerShell. To install the TPM cmdlets, type the following command: @@ -166,6 +156,6 @@ If you are using Windows PowerShell to manage your computers, you can also manag For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). -## Additional resources +## Related topics -For more info about TPM, see [Trusted Platform Module Technology Overview](trusted-platform-module-overview.md#bkmk-additionalresources). +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) diff --git a/windows/keep-secure/installing-digital-certificates-on-windows-10-mobile.md b/windows/keep-secure/installing-digital-certificates-on-windows-10-mobile.md index 11d5fe781d..1e16d409a2 100644 --- a/windows/keep-secure/installing-digital-certificates-on-windows-10-mobile.md +++ b/windows/keep-secure/installing-digital-certificates-on-windows-10-mobile.md @@ -24,8 +24,8 @@ Certificates in Windows 10 Mobile are primarily used for the following purposes - For installation and licensing of applications (from the Windows Phone Store or a custom company distribution site). -**Warning**   -In Windows 10, Version 1607, if you have multiple certificates provisioned on the device and the Wi-Fi profile provisioned does not have a strict filtering criteria, you may see connection failures when connecting to Wi-Fi. [Learn more about this known issue in Version 1607](https://go.microsoft.com/fwlink/p/?LinkId=786764) +>[!WARNING]   +>In Windows 10, Version 1607, if you have multiple certificates provisioned on the device and the Wi-Fi profile provisioned does not have a strict filtering criteria, you may see connection failures when connecting to Wi-Fi. [Learn more about this known issue in Version 1607](https://go.microsoft.com/fwlink/p/?LinkId=786764) ## Install certificates using Microsoft Edge @@ -33,12 +33,13 @@ A certificate can be posted on a website and made available to users through a d ## Install certificates using email -The Windows 10 Mobile certificate installer supports .cer, .p7b, .pem, and .pfx files. To install certificates via email, make sure your mail filters do not block .cer files. Certificates that are sent via email appear as message attachments. When a certificate is received, a user can tap to review the contents and then tap to install the certificate. Typically, when an identity certificate is installed, the user is prompted for the password (or passphrase) that protects it. +The Windows 10 Mobile certificate installer supports .cer, .p7b, .pem, and .pfx files. Some email programs block .cer files for security reasons. If this is the case in your organization, use an alternative method to deploy the certificate. Certificates that are sent via email appear as message attachments. When a certificate is received, a user can tap to review the contents and then tap to install the certificate. Typically, when an identity certificate is installed, the user is prompted for the password (or passphrase) that protects it. ## Install certificates using mobile device management (MDM) Windows 10 Mobile supports root, CA, and client certificate to be configured via MDM. Using MDM, an administrator can directly add, delete, or query root and CA certificates, and configure the device to enroll a client certificate with a certificate enrollment server that supports Simple Certificate Enrollment Protocol (SCEP). SCEP enrolled client certificates are used by Wi-Fi, VPN, email, and browser for certificate-based client authentication. An MDM server can also query and delete SCEP enrolled client certificate (including user installed certificates), or trigger a new enrollment request before the current certificate is expired. -> **Warning:**  Do not use SCEP for encryption certificates for S/MIME. You must use a PFX certificate profile to support S/MIME on Windows 10 Mobile. For instructions on creating a PFX certificate profile in Microsoft Intune, see [Enable access to company resources using certificate profiles with Microsoft Intune](https://go.microsoft.com/fwlink/p/?LinkID=718216). +>[!WARNING] +>Do not use SCEP for encryption certificates for S/MIME. You must use a PFX certificate profile to support S/MIME on Windows 10 Mobile. For instructions on creating a PFX certificate profile in Microsoft Intune, see [Enable access to company resources using certificate profiles with Microsoft Intune](https://go.microsoft.com/fwlink/p/?LinkID=718216).   **Process of installing certificates using MDM** @@ -50,14 +51,17 @@ Windows 10 Mobile supports root, CA, and client certificate to be configured vi 6. The device connects to Internet-facing point exposed by MDM server. 7. MDM server creates a certificate that is signed with proper CA certificate and returns it to device. - > **Note:**  The device supports the pending function to allow server side to do additional verification before issuing the cert. In this case, a pending status is sent back to the device. The device will periodically contact the server, based on preconfigured retry count and retry period parameters. Retrying ends when either: - A certificate is successfully received from the server - The server returns an error - The number of retries reaches the preconfigured limit + >[!NOTE] + >The device supports the pending function to allow server side to do additional verification before issuing the cert. In this case, a pending status is sent back to the device. The device will periodically contact the server, based on preconfigured retry count and retry period parameters. Retrying ends when either: + > + >- A certificate is successfully received from the server + >- The server returns an error + >- The number of retries reaches the preconfigured limit   8. The cert is installed in the device. Browser, Wi-Fi, VPN, email, and other first party applications have access to this certificate. - > **Note:**  If MDM requested private key being stored in Trusted Process Module (TPM) (configured during enrollment request), the private key will be saved in TPM. Note that SCEP enrolled cert protected by TPM isn’t guarded by a PIN. However, if the certificate is imported to the Passport for Work Key Storage Provider (KSP), it is guarded by the Passport PIN. + >[!NOTE] + >If MDM requested private key stored in Trusted Process Module (TPM) (configured during enrollment request), the private key will be saved in TPM. Note that SCEP enrolled cert protected by TPM isn’t guarded by a PIN. However, if the certificate is imported to the Windows Hello for Business Key Storage Provider (KSP), it is guarded by the Hello PIN.   ## Related topics diff --git a/windows/keep-secure/interactive-logon-display-user-information-when-the-session-is-locked.md b/windows/keep-secure/interactive-logon-display-user-information-when-the-session-is-locked.md index 7c1d049314..f82d103fb6 100644 --- a/windows/keep-secure/interactive-logon-display-user-information-when-the-session-is-locked.md +++ b/windows/keep-secure/interactive-logon-display-user-information-when-the-session-is-locked.md @@ -35,7 +35,7 @@ When a session is locked in a Windows operating system (meaning the user at the - Blank. - Default setting. This translates to “Not defined,” but it will display the user’s full name in the same manner as the **User display name, domain and user names** option. When an option is set, you cannot reset this policy to blank, or not defined. + Default setting. This translates to “Not defined,” but it will display the user’s full name in the same manner as the **User display name** option. When an option is set, you cannot reset this policy to blank, or not defined. ### Best practices diff --git a/windows/keep-secure/interactive-logon-do-not-display-last-user-name.md b/windows/keep-secure/interactive-logon-do-not-display-last-user-name.md index 0177def043..5af92d1bcf 100644 --- a/windows/keep-secure/interactive-logon-do-not-display-last-user-name.md +++ b/windows/keep-secure/interactive-logon-do-not-display-last-user-name.md @@ -34,8 +34,6 @@ If this policy is disabled, the full name of the last user to log on is displaye Your implementation of this policy depends on your security requirements for displayed logon information. If you have devices that store sensitive data, with monitors displayed in unsecured locations, or if you have devices with sensitive data that are remotely accessed, revealing logged on user’s full names or domain account names might contradict your overall security policy. -Depending on your security policy, you might also want to enable the [Interactive logon: Display user information when the session is locked](interactive-logon-display-user-information-when-the-session-is-locked.md) policy, which will prevent the Windows operating system from displaying the logon name when the session is locked or started. - ### Location Computer Configuration\\Windows Settings\\Security Settings\\Local Policies\\Security Options diff --git a/windows/keep-secure/interactive-logon-require-smart-card.md b/windows/keep-secure/interactive-logon-require-smart-card.md index 2441b3c3e7..503713f8e7 100644 --- a/windows/keep-secure/interactive-logon-require-smart-card.md +++ b/windows/keep-secure/interactive-logon-require-smart-card.md @@ -1,5 +1,5 @@ --- -title: Interactive logon Require smart card (Windows 10) +title: Interactive logon Require smart card - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management and security considerations for the Interactive logon Require smart card security policy setting. ms.assetid: c6a8c040-cbc7-472d-8bc5-579ddf3cbd6c ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Interactive logon: Require smart card +# Interactive logon: Require smart card - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/introduction-to-device-guard-virtualization-based-security-and-code-integrity-policies.md b/windows/keep-secure/introduction-to-device-guard-virtualization-based-security-and-code-integrity-policies.md index c0577fe786..3712b6aed0 100644 --- a/windows/keep-secure/introduction-to-device-guard-virtualization-based-security-and-code-integrity-policies.md +++ b/windows/keep-secure/introduction-to-device-guard-virtualization-based-security-and-code-integrity-policies.md @@ -75,5 +75,5 @@ Another Windows 10 feature that employs VBS is [Credential Guard](credential-gua Credential Guard is targeted at resisting pass-the-hash and pass-the-ticket techniques. By employing multifactor authentication with Credential Guard, organizations can gain additional protection against such threats. -In addition to the client-side enabling of Credential Guard, organizations can deploy mitigations at both the CA and domain controller level to help prevent credential theft. For more information, see the [Additional mitigations](https://technet.microsoft.com/en-us/itpro/windows/keep-secure/credential-guard#additional-mitigations) section in “Protect derived domain credentials with Credential Guard.” + diff --git a/windows/keep-secure/investigate-machines-windows-defender-advanced-threat-protection.md b/windows/keep-secure/investigate-machines-windows-defender-advanced-threat-protection.md index eec0ada5a4..bc3e8df73d 100644 --- a/windows/keep-secure/investigate-machines-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/investigate-machines-windows-defender-advanced-threat-protection.md @@ -21,12 +21,12 @@ localizationpriority: high - Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) -The **Machines view** shows a list of the machines in your network, the corresponding number of active alerts for each machine categorized by alert severity levels, and the number of active malware detections. This view allows you to identify machines with the highest risk at a glance, and keep track of all the machines that are reporting telemetry in your network. +The **Machines view** shows a list of the machines in your network, the corresponding number of active alerts for each machine categorized by alert severity levels, and the number of active malware detections. This view allows you to identify machines with the highest risk at a glance, and keep track of all the machines that are reporting sensor data in your network. Use the Machines view in these two main scenarios: - **During onboarding** - - During the onboarding process, the Machines view gradually gets populated with endpoints as they begin to report telemetry. Use this view to track your onboarded endpoints as they appear. Use the available features to sort and filer to see which endpoints have most recently reported telemetry, or download the complete endpoint list as a CSV file for offline analysis. + - During the onboarding process, the Machines view gradually gets populated with endpoints as they begin to report sensor data. Use this view to track your onboarded endpoints as they appear. Use the available features to sort and filer to see which endpoints have most recently reported sensor data, or download the complete endpoint list as a CSV file for offline analysis. - **Day-to-day work** - The **Machines view** enables you to identify machines that are most at risk in a glance. High-risk machines are those with the greatest number and highest-severity alerts. By sorting the machines by risk, you'll be able to identify the most vulnerable machines and take action on them. @@ -34,7 +34,7 @@ The Machines view contains the following columns: - **Machine name** - the name or GUID of the machine - **Domain** - the domain the machine belongs to -- **Last seen** - when the machine last reported telemetry +- **Last seen** - when the machine last reported sensor data - **Internal IP** - the local internal Internet Protocol (IP) address of the machine - **Active Alerts** - the number of alerts reported by the machine by severity - **Active malware detections** - the number of active malware detections reported by the machine @@ -59,7 +59,7 @@ You can filter the view by the following time periods: - 6 months > [!NOTE] -> When you select a time period, the list will only display machines that reported within the selected time period. For example, selecting 1 day will only display a list of machines that reported telemetry within the last 24-hour period. +> When you select a time period, the list will only display machines that reported within the selected time period. For example, selecting 1 day will only display a list of machines that reported sensor data within the last 24-hour period. The threat category filter lets you filter the view by the following categories: @@ -94,7 +94,7 @@ When you investigate a specific machine, you'll see: - **Alerts related to this machine** - **Machine timeline** -The machine details, IP, and reporting sections display some attributes of the machine such as its name, domain, OS, IP address, and how long it's been reporting telemetry to the Windows Defender ATP service. +The machine details, IP, and reporting sections display some attributes of the machine such as its name, domain, OS, IP address, and how long it's been reporting sensor data to the Windows Defender ATP service. The **Alerts related to this machine** section provides a list of alerts that are associated with the machine. This list is a simplified version of the [Alerts queue](alerts-queue-windows-defender-advanced-threat-protection.md), and shows the date that the alert was detected, a short description of the alert, the alert's severity, the alert's threat category, and the alert's status in the queue. diff --git a/windows/keep-secure/limitations-with-wip.md b/windows/keep-secure/limitations-with-wip.md index dc2429d6b3..39aaeb8dc5 100644 --- a/windows/keep-secure/limitations-with-wip.md +++ b/windows/keep-secure/limitations-with-wip.md @@ -25,8 +25,8 @@ This table provides info about the most common problems you might encounter whil - - + + @@ -67,7 +67,7 @@ This table provides info about the most common problems you might encounter whil - + @@ -79,4 +79,7 @@ This table provides info about the most common problems you might encounter whil -
    Workaround
    Enterprise data on USB drives is tied to the device it was protected on.Data in the new location remains encrypted, but becomes inaccessible on other devices and for other users. For example, the file won't open or the file opens, but doesn't contain readable text.Your enterprise data on USB drives might be tied to the device it was protected on, based on your Azure RMS configuration.If you’re using Azure RMS: Authenticated users can open enterprise data on USB drives, on computers running the latest build from the Windows Insider Program.

    If you’re not using Azure RMS: Data in the new location remains encrypted, but becomes inaccessible on other devices and for other users. For example, the file won't open or the file opens, but doesn't contain readable text.

    Share files with fellow employees through enterprise file servers or enterprise cloud locations. If data must be shared via USB, employees can decrypt protected files, but it will be audited.

    We strongly recommend educating employees about how to limit or eliminate the need for this decryption.

    Redirected folders with Client Side Caching are not compatible with WIP. Apps might encounter access errors while attempting to read a cached, offline file.Migrate to use another file synchronization method, such as Work Folders or OneDrive for Business.Migrate to use another file synchronization method, such as Work Folders or OneDrive for Business.

    Note
    For more info about Work Folders and Offline Files, see the blog, [Work Folders and Offline Files support for Windows Information Protection](https://blogs.technet.microsoft.com/filecab/2016/08/29/work-folders-and-offline-files-support-for-windows-information-protection/). If you're having trouble opening files offline while using Offline Files and WIP, see the support article, [Can't open files offline when you use Offline Files and Windows Information Protection](https://support.microsoft.com/en-us/kb/3187045).

    You can't upload an enterprise file to a personal location using Microsoft Edge or Internet Explorer.Webpages that use ActiveX controls can potentially communicate with other outside processes that aren’t protected by using WIP. We recommend that you switch to using Microsoft Edge, the more secure and safer browser that prevents the use of ActiveX controls. We also recommend that you limit the usage of Internet Explorer 11 to only those line-of-business apps that require legacy technology.

    For more info, see [Out-of-date ActiveX control blocking](https://technet.microsoft.com/en-us/itpro/internet-explorer/ie11-deploy-guide/out-of-date-activex-control-blocking).

    + + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). diff --git a/windows/keep-secure/maintain-applocker-policies.md b/windows/keep-secure/maintain-applocker-policies.md index 43bd39884e..69cf6d1483 100644 --- a/windows/keep-secure/maintain-applocker-policies.md +++ b/windows/keep-secure/maintain-applocker-policies.md @@ -47,7 +47,7 @@ Before modifying a policy, evaluate how the policy is currently implemented. For ### Step 2: Export the AppLocker policy from the GPO -Updating an AppLocker policy that is currently enforced in your production environment can have unintended results. Therefore, export the policy from the GPO and update the rule or rules by using AppLocker on your AppLocker reference or test computer. To prepare an AppLocker policy for modification, see [Export an AppLocker policy from a GPO](export-an-applocker-policy-from-a-gpo.md) +Updating an AppLocker policy that is currently enforced in your production environment can have unintended results. Therefore, export the policy from the GPO and update the rule or rules by using AppLocker on your AppLocker reference or test computer. To prepare an AppLocker policy for modification, see [Export an AppLocker policy from a GPO](export-an-applocker-policy-from-a-gpo.md). ### Step 3: Update the AppLocker policy by editing the appropriate AppLocker rule diff --git a/windows/keep-secure/manage-identity-verification-using-microsoft-passport.md b/windows/keep-secure/manage-identity-verification-using-microsoft-passport.md index d91d7bbb04..18f8399a2b 100644 --- a/windows/keep-secure/manage-identity-verification-using-microsoft-passport.md +++ b/windows/keep-secure/manage-identity-verification-using-microsoft-passport.md @@ -93,7 +93,7 @@ When identity providers such as Active Directory or Azure AD enroll a certificat [Introduction to Windows Hello](https://go.microsoft.com/fwlink/p/?LinkId=786649), video presentation on Microsoft Virtual Academy -[What's new in Active Directory Domain Services (AD DS) in Windows Server Technical Preview](https://go.microsoft.com/fwlink/p/?LinkId=708533) +[What's new in Active Directory Domain Services for Windows Server 2016](https://go.microsoft.com/fwlink/p/?LinkId=708533) [Windows Hello face authentication](https://go.microsoft.com/fwlink/p/?LinkId=626024) diff --git a/windows/keep-secure/manage-tpm-commands.md b/windows/keep-secure/manage-tpm-commands.md index c4b6611da4..71f3c2229e 100644 --- a/windows/keep-secure/manage-tpm-commands.md +++ b/windows/keep-secure/manage-tpm-commands.md @@ -13,44 +13,54 @@ author: brianlic-msft **Applies to** - Windows 10 +- Windows Server 2016 This topic for the IT professional describes how to manage which Trusted Platform Module (TPM) commands are available to domain users and to local users. -## - After a computer user takes ownership of the TPM, the TPM owner can limit which TPM commands can be run by creating a list of blocked TPM commands. The list can be created and applied to all computers in a domain by using Group Policy, or a list can be created for individual computers by using the TPM MMC. Because some hardware vendors might provide additional commands or the Trusted Computing Group may decide to add commands in the future, the TPM MMC also supports the ability to block new commands. -Domain administrators can configure a list of blocked TPM commands by using Group Policy. Local administrators cannot allow TPM commands that are blocked through Group Policy. For more information about this Group Policy setting, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#bkmk-tpmgp-clbtc). +Domain administrators can configure a list of blocked TPM commands by using Group Policy. Local administrators cannot allow TPM commands that are blocked through Group Policy. For more information about this Group Policy setting, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#configure-the-list-of-blocked-tpm-commands). Local administrators can block commands by using the TPM MMC, and commands on the default block list are also blocked unless the Group Policy settings are changed from the default settings. -Two policy settings control the enforcement which allows TPM commands to run. For more information about these policy settings, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#bkmk-tpmgp-idlb). +Two policy settings control the enforcement which allows TPM commands to run. For more information about these policy settings, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#ignore-the-default-list-of-blocked-tpm-commands). The following procedures describe how to manage the TPM command lists. You must be a member of the local Administrators group. **To block TPM commands by using the Local Group Policy Editor** 1. Open the Local Group Policy Editor (gpedit.msc). If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. - - >**Note:**  Administrators with appropriate rights in a domain can configure a Group Policy Object (GPO) that can be applied through Active Directory Domain Services (AD DS). -   + + > [!NOTE] + > Administrators with appropriate rights in a domain can configure a Group Policy Object (GPO) that can be applied through Active Directory Domain Services (AD DS). + 2. In the console tree, under **Computer Configuration**, expand **Administrative Templates**, and then expand **System**. + 3. Under **System**, click **Trusted Platform Module Services**. + 4. In the details pane, double-click **Configure the list of blocked TPM commands**. + 5. Click **Enabled**, and then click **Show**. + 6. For each command that you want to block, click **Add**, enter the command number, and then click **OK**. - - >**Note:**  For a list of commands, see the [Trusted Platform Module (TPM) Specifications](https://go.microsoft.com/fwlink/p/?linkid=139770). -   + + > [!NOTE] + > For a list of commands, see links in the [TPM Specification](https://www.trustedcomputinggroup.org/tpm-main-specification/). + 7. After you have added numbers for each command that you want to block, click **OK** twice. + 8. Close the Local Group Policy Editor. **To block or allow TPM commands by using the TPM MMC** 1. Open the TPM MMC (tpm.msc) + 2. If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. + 3. In the console tree, click **Command Management**. A list of TPM commands is displayed. + 4. In the list, select a command that you want to block or allow. + 5. Under **Actions**, click **Block Selected Command** or **Allow Selected Command** as needed. If **Allow Selected Command** is unavailable, that command is currently blocked by Group Policy. **To block new commands** @@ -60,17 +70,19 @@ The following procedures describe how to manage the TPM command lists. You must If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. 2. In the console tree, click **Command Management**. A list of TPM commands is displayed. + 3. In the **Action** pane, click **Block New Command**. The **Block New Command** dialog box is displayed. + 4. In the **Command Number** text box, type the number of the new command that you want to block, and then click **OK**. The command number you entered is added to the blocked list. -## Use the TPM cmdlets +## Use the TPM cmdlets If you are using Windows PowerShell to manage your computers, you can also manage the TPM by using Windows PowerShell. To install the TPM cmdlets, type the following command: `dism /online /enable-feature /FeatureName:tpm-psh-cmdlets` -For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) +For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). -## Additional resources +## Related topics -For more info about TPM, see [Trusted Platform Module technology overview](trusted-platform-module-overview.md#bkmk-additionalresources). +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) diff --git a/windows/keep-secure/manage-tpm-lockout.md b/windows/keep-secure/manage-tpm-lockout.md index f59a117ee3..3f5e966157 100644 --- a/windows/keep-secure/manage-tpm-lockout.md +++ b/windows/keep-secure/manage-tpm-lockout.md @@ -12,10 +12,11 @@ author: brianlic-msft **Applies to** - Windows 10 +- Windows Server 2016 This topic for the IT professional describes how to manage the lockout feature for the Trusted Platform Module (TPM) in Windows. -## About TPM lockout +## About TPM lockout The TPM will lock itself to prevent tampering or malicious attacks. TPM lockout often lasts for a variable amount of time or until the computer is turned off. While the TPM is in lockout mode, it generally returns an error message when it receives commands that require an authorization value. One exception is that the TPM always allows the owner at least one attempt to reset the TPM lockout when it is in lockout mode. @@ -24,49 +25,58 @@ TPM ownership is taken upon first boot by Windows. By default, Windows does not In some cases, encryption keys are protected by a TPM by requiring a valid authorization value to access the key. A common example is configuring BitLocker Drive Encryption to use the TPM plus PIN key protector. In this scenario, the user must type the correct PIN during the boot process to access the volume encryption key protected by the TPM. To prevent malicious users or software from discovering authorization values, TPMs implement protection logic. The protection logic is designed to slow or stop responses from the TPM if it detects that an entity might be trying to guess authorization values. **TPM 1.2** + The industry standards from the Trusted Computing Group (TCG) specify that TPM manufacturers must implement some form of protection logic in TPM 1.2 and TPM 2.0 chips. TPM 1.2 devices implement different protection mechanisms and behavior. In general, the TPM chip takes exponentially longer to respond if incorrect authorization values are sent to the TPM. Some TPM chips may not store failed attempts over time. Other TPM chips may store every failed attempt indefinitely. Therefore, some users may experience increasingly longer delays when they mistype an authorization value that is sent to the TPM. This can prevent them from using the TPM for a period of time. **TPM 2.0** - TPM 2.0 devices have standardized lockout behavior which is configured by Windows. TPM 2.0 devices have a maximum count threshold and a healing time. Windows configures the maximum count to be 32 and the healing time to be 2 hours. This means that every continuous two hours of powered on operation without an event which increases the counter will cause the counter to decrease by 1. -If your TPM has entered lockout mode or is responding slowly to commands, you can reset the lockout value by using the following procedures. Resetting the TPM lockout requires the TPM owner’s authorization. This value is no longer retained by default starting with Windows 10 version 1607. +TPM 2.0 devices have standardized lockout behavior which is configured by Windows. TPM 2.0 devices have a maximum count threshold and a healing time. Windows configures the maximum count to be 32 and the healing time to be 2 hours. This means that every continuous two hours of powered on operation without an event which increases the counter will cause the counter to decrease by 1. + +If your TPM has entered lockout mode or is responding slowly to commands, you can reset the lockout value by using the following procedures. Resetting the TPM lockout requires the TPM owner’s authorization. This value is no longer retained by default starting with Windows 10 version 1607. ## Reset the TPM lockout by using the TPM MMC -**Note:** This procedure is only available if you have configured Windows to retain the TPM Owner Password. By default, this password is not available in Windows 10 starting with version 1607. -The following procedure explains the steps to reset the TPM lockout by using the TPM MMC. +> [!NOTE] +> This procedure is only available if you have configured Windows to retain the TPM Owner Password. By default, this password is not available in Windows 10 starting with version 1607. + +The following procedure explains the steps to reset the TPM lockout by using the TPM MMC. **To reset the TPM lockout** 1. Open the TPM MMC (tpm.msc). -2. In the **Action** pane, click **Reset TPM Lockout** to start the Reset TPM Lockout Wizard. -3. Choose one of the following methods to enter the TPM owner password: - - If you saved your TPM owner password to a .tpm file, click **I have the owner password file**, and then type the path to the file, or click **Browse** to navigate to the file location. - - If you want to manually enter your TPM owner password, click **I want to enter the owner password**, and then type the password in the text box provided. - >**Note:**  If you enabled BitLocker and your TPM at the same time, and you printed your BitLocker recovery password when you turned on BitLocker, your TPM owner password may have printed with it. -   +2. In the **Action** pane, click **Reset TPM Lockout** to start the Reset TPM Lockout Wizard. + +3. Choose one of the following methods to enter the TPM owner password: + + - If you saved your TPM owner password to a .tpm file, click **I have the owner password file**, and then type the path to the file, or click **Browse** to navigate to the file location. + + - If you want to manually enter your TPM owner password, click **I want to enter the owner password**, and then type the password in the text box provided. + + > [!NOTE] + > If you enabled BitLocker and your TPM at the same time, and you printed your BitLocker recovery password when you turned on BitLocker, your TPM owner password may have printed with it. + ## Use Group Policy to manage TPM lockout settings The TPM Group Policy settings in the following list are located at: **Computer Configuration\\Administrative Templates\\System\\Trusted Platform Module Services\\** -- [Standard User Lockout Duration](trusted-platform-module-services-group-policy-settings.md#bkmk-individual) +- [Standard User Lockout Duration](trusted-platform-module-services-group-policy-settings.md#standard-user-lockout-duration) This policy setting allows you to manage the duration in minutes for counting standard user authorization failures for TPM commands that require authorization. An authorization failure occurs each time a user sends a command to the TPM and receives an error message that indicates an authorization failure occurred. Authorization failures that are older than the duration you set are ignored. If the number of TPM commands with an authorization failure within the lockout duration equals a threshold, the user is prevented from sending commands to the TPM that require authorization. -- [Standard User Individual Lockout Threshold](trusted-platform-module-services-group-policy-settings.md#bkmk-tpmgp-suld) +- [Standard User Individual Lockout Threshold](trusted-platform-module-services-group-policy-settings.md#standard-user-individual-lockout-threshold) This policy setting allows you to manage the maximum number of authorization failures for the TPM for each user. This value is the maximum number of authorization failures that each user can have before the user is not allowed to send commands to the TPM that require authorization. If the number of authorization failures equals the duration that is set for the policy setting, the user is prevented from sending commands to the TPM that require authorization. -- [Standard User Total Lockout Threshold](trusted-platform-module-services-group-policy-settings.md#bkmk-total) - +- [Standard User Total Lockout Threshold](trusted-platform-module-services-group-policy-settings.md#standard-user-total-lockout-threshold) + This policy setting allows you to manage the maximum number of authorization failures for the TPM for all standard users. If the total number of authorization failures for all users equals the duration that is set for the policy, all users are prevented from sending commands to the TPM that require authorization. -For information about mitigating dictionary attacks that use the lockout settings, see [TPM fundamentals](tpm-fundamentals.md#bkmk-howtpmmitigates). +For information about mitigating dictionary attacks that use the lockout settings, see [TPM fundamentals](tpm-fundamentals.md#how-the-tpm-mitigates-dictionary-attacks). -## Use the TPM cmdlets +## Use the TPM cmdlets If you are using Windows PowerShell to manage your computers, you can also manage the TPM by using Windows PowerShell. To install the TPM cmdlets, type the following command: @@ -74,6 +84,6 @@ If you are using Windows PowerShell to manage your computers, you can also manag For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). -## Additional resources +## Related topics -For more info about TPM, see [TPM technology overview](trusted-platform-module-overview.md#bkmk-additionalresources). +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) diff --git a/windows/keep-secure/mandatory-settings-for-wip.md b/windows/keep-secure/mandatory-settings-for-wip.md index 0e1345c2ae..1c7ea0a9ff 100644 --- a/windows/keep-secure/mandatory-settings-for-wip.md +++ b/windows/keep-secure/mandatory-settings-for-wip.md @@ -17,8 +17,8 @@ localizationpriority: high This list provides all of the tasks and settings that are required for the operating system to turn on Windows Information Protection (WIP), formerly known as enterprise data protection (EDP), in your enterprise. ->**Important**
    -All sections provided for more info appear in either the [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) or [Create a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md), based on the tool you're using in your enterprise. +>[!IMPORTANT] +>All sections provided for more info appear in either the [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) or [Create a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md), based on the tool you're using in your enterprise. |Task |Description | @@ -28,4 +28,7 @@ All sections provided for more info appear in either the [Create a Windows Infor |Specify your corporate identity. |You must specify your corporate identity, usually expressed as your primary Internet domain (for example, contoso.com). For more info about where this area is and what it means, see the **Define your enterprise-managed corporate identity** section of the policy creation topics. | |Specify your Enterprise Network Domain Names. |You must specify the DNS suffixes used in your environment. All traffic to the fully-qualified domains appearing in this list will be protected. For more info about where this area is and how to add your suffixes, see the table that appears in the **Choose where apps can access enterprise data** section of the policy creation topics. | |Specify your Enterprise IPv4 or IPv6 Ranges. |Specify the addresses for a valid IPv4 or IPv6 value range within your intranet. These addresses, used with your Enterprise Network Domain Names, define your corporate network boundaries. For more info about where this area is and what it means, see the table that appears in the **Define your enterprise-managed corporate identity** section of the policy creation topics. | -|Include your Data Recovery Agent (DRA) certificate. |This certificate makes sure that any of your WIP-encrypted data can be decrypted, even if the security keys are lost. For more info about where this area is and what it means, see the **Create and verify an Encrypting File System (EFS) DRA certificate** section of the policy creation topics. | \ No newline at end of file +|Include your Data Recovery Agent (DRA) certificate. |This certificate makes sure that any of your WIP-encrypted data can be decrypted, even if the security keys are lost. For more info about where this area is and what it means, see the **Create and verify an Encrypting File System (EFS) DRA certificate** section of the policy creation topics. | + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). \ No newline at end of file diff --git a/windows/keep-secure/minimum-requirements-windows-defender-advanced-threat-protection.md b/windows/keep-secure/minimum-requirements-windows-defender-advanced-threat-protection.md index 0fd2edc0d3..55a3242e78 100644 --- a/windows/keep-secure/minimum-requirements-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/minimum-requirements-windows-defender-advanced-threat-protection.md @@ -61,7 +61,7 @@ Before you configure endpoints, the telemetry and diagnostics service must be en ### Telemetry and diagnostics settings You must ensure that the telemetry and diagnostics service is enabled on all the endpoints in your organization. -By default, this service is enabled, but it's good practice to check to ensure that you'll get telemetry from them. +By default, this service is enabled, but it's good practice to check to ensure that you'll get sensor data from them. **Use the command line to check the Windows 10 telemetry and diagnostics service startup type**: @@ -113,4 +113,4 @@ When Windows Defender is not the active antimalware in your organization and you ## Windows Defender Early Launch Antimalware (ELAM) driver is enabled If you're running Windows Defender as the primary antimalware product on your endpoints, the Windows Defender ATP agent will successfully onboard. -If you're running a third-party antimalware client and use Mobile Device Management solutions or System Center Configuration Manager (current branch) version 1606, you'll need to ensure that the Windows Defender ELAM driver is enabled. For more information on how to validate and enable the Windows Defender ELAM driver see, [Ensure the Windows Defender ELAM driver is enabled](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md#ensure-the-windows-defender-elam-driver-is-enabled). +If you're running a third-party antimalware client and use Mobile Device Management solutions or System Center Configuration Manager (current branch) version 1606, you'll need to ensure that the Windows Defender ELAM driver is enabled. For more information, see [Ensure that Windows Defender is not disabled by policy](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md#ensure-that-windows-defender-is-not-disabled-by-a-policy). diff --git a/windows/keep-secure/onboard-configure-windows-defender-advanced-threat-protection.md b/windows/keep-secure/onboard-configure-windows-defender-advanced-threat-protection.md index 9205bb0153..2a7a40abd6 100644 --- a/windows/keep-secure/onboard-configure-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/onboard-configure-windows-defender-advanced-threat-protection.md @@ -23,6 +23,7 @@ localizationpriority: high You need to onboard to Windows Defender ATP before you can use the service. +For more information, see [Onboard your Windows 10 endpoints to Windows Defender ATP](https://www.youtube.com/watch?v=JT7VGYfeRlA&feature=youtu.be). ## In this section Topic | Description diff --git a/windows/keep-secure/overview-create-wip-policy.md b/windows/keep-secure/overview-create-wip-policy.md index f0ae686b47..c3ad6bf5a3 100644 --- a/windows/keep-secure/overview-create-wip-policy.md +++ b/windows/keep-secure/overview-create-wip-policy.md @@ -23,4 +23,8 @@ Microsoft Intune and System Center Configuration Manager helps you create and de |------|------------| |[Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) |Intune helps you create and deploy your WIP policy, including letting you choose your protected apps, your WIP-protection level, and how to find enterprise data on the network. | |[Create and deploy a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md) |System Center Configuration Manager helps you create and deploy your WIP policy, including letting you choose your protected apps, your WIP-protection level, and how to find enterprise data on the network. | -|[Create and verify an Encrypting File System (EFS) Data Recovery Agent (DRA) certificate](create-and-verify-an-efs-dra-certificate.md) |Steps to create, verify, and perform a quick recovery using a Encrypting File System (EFS) Data Recovery Agent (DRA) certificate. | \ No newline at end of file +|[Create and verify an Encrypting File System (EFS) Data Recovery Agent (DRA) certificate](create-and-verify-an-efs-dra-certificate.md) |Steps to create, verify, and perform a quick recovery using a Encrypting File System (EFS) Data Recovery Agent (DRA) certificate. | +|[Determine the Enterprise Context of an app running in Windows Information Protection (WIP)](wip-app-enterprise-context.md) |Use the Task Manager to determine whether an app is considered work, personal or exempt by Windows Information Protection (WIP). | + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). \ No newline at end of file diff --git a/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies.md b/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies.md index 31c04c1c61..cf75c935f9 100644 --- a/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies.md +++ b/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies.md @@ -48,13 +48,13 @@ BitLocker helps prevent unauthorized access to data on lost or stolen computers - Encrypting the entire Windows operating system volume on the hard disk. - Verifying the boot process integrity. -The trusted platform module (TPM)is a hardware component installed in many newer computers by the computer manufacturers. It works with BitLocker to help protect user data and to ensure that a computer has not been tampered with while the system was offline. +The trusted platform module (TPM) is a hardware component installed in many newer computers by the computer manufacturers. It works with BitLocker to help protect user data and to ensure that a computer has not been tampered with while the system was offline. In addition, BitLocker offers the option to lock the normal startup process until the user supplies a personal identification number (PIN) or inserts a removable USB device, such as a flash drive, that contains a startup key. These additional security measures provide multifactor authentication and assurance that the computer will not start or resume from hibernation until the correct PIN or startup key is presented. On computers that do not have a TPM version 1.2 or higher, you can still use BitLocker to encrypt the Windows operating system volume. However, this implementation will require the user to insert a USB startup key to start the computer or resume from hibernation, and does not provide the pre-startup system integrity verification offered by BitLocker working with a TPM. -**BitLocker key protectors** +### BitLocker key protectors | Key protector | Description | | - | - | @@ -65,7 +65,7 @@ On computers that do not have a TPM version 1.2 or higher, you can still use Bi | Recovery password | A 48-digit number used to unlock a volume when it is in recovery mode. Numbers can often be typed on a regular keyboard, if the numbers on the normal keyboard are not responding you can always use the function keys (F1-F10) to input the numbers.| | Recovery key| An encryption key stored on removable media that can be used for recovering data encrypted on a BitLocker volume.|   -**BitLocker authentication methods** +### BitLocker authentication methods | Authentication method | Requires user interaction | Description | | - | - | - | @@ -97,22 +97,9 @@ The protection differences provided by multifactor authentication methods cannot In your deployment plan, identify what TPM-based hardware platforms will be supported. Document the hardware models from an OEM of your choice, so that their configurations can be tested and supported. TPM hardware requires special consideration during all aspects of planning and deployment. -### TPM states of existence +### TPM 1.2 states and initialization -For each of the TPM states of existence, the TPM can transition into another state (for example, moving from disabled to enabled). The states are not exclusive. - -| State | Description | -| - | - | -| Enabled| Most features of the TPM are available.
    The TPM may be enabled and disabled multiple times within a boot period, if ownership is taken.| -| Disabled | The TPM restricts most operations. Exceptions include the ability to report TPM capabilities, extend and reset Platform Configuration Register (PCR) functions, and to perform hashing and basic initialization.
    The TPM may be enabled and disabled multiple times within a boot period.| -| Activated| Most features of the TPM are available. The TPM may be activated and deactivated only through physical presence which requires a reboot.| -| Deactivated| Similar to disabled, with the exception that ownership can be taken while deactivated and enabled. The TPM may be activated and deactivated only through physical presence which requires a reboot.| -| Owned| Most features of the TPM are available. The TPM has an endorsement key and storage root key, and the owner knows information about owner authorization data.| -| Un-owned| The TPM does not have a storage root key and may or may not have an endorsement key.| -  ->**Important:**  BitLocker cannot use the TPM until it is in the following state: enabled, activated, and owned. When the TPM is in this state and only when it is in this state, all operations are available. -  -The state of the TPM exists independent of the computer’s operating system. Once the TPM is enabled, activated, and owned, the state of the TPM is preserved if the operating system is reinstalled. +For TPM 1.2, there are multiple possible states. Windows 10 automatically initializes the TPM, which brings it to an enabled, activated, and owned state. This is the state that BitLocker requires before it can use the TPM. ### Endorsement keys diff --git a/windows/keep-secure/protect-enterprise-data-using-wip.md b/windows/keep-secure/protect-enterprise-data-using-wip.md index dc661d0dbd..a37553eb2c 100644 --- a/windows/keep-secure/protect-enterprise-data-using-wip.md +++ b/windows/keep-secure/protect-enterprise-data-using-wip.md @@ -93,7 +93,8 @@ WIP gives you a new way to manage data policy enforcement for apps and documents - **Helping prevent accidental data disclosure to removable media.** WIP helps prevent enterprise data from leaking when it's copied or transferred to removable media. For example, if an employee puts enterprise data on a Universal Serial Bus (USB) drive that also has personal data, the enterprise data remains encrypted while the personal data doesn’t. - **Remove access to enterprise data from enterprise-protected devices.** WIP gives admins the ability to revoke enterprise data from one or many MDM-enrolled devices, while leaving personal data alone. This is a benefit when an employee leaves your company, or in the case of a stolen device. After determining that the data access needs to be removed, you can use Microsoft Intune to unenroll the device so when it connects to the network, the user's encryption key for the device is revoked and the enterprise data becomes unreadable. - > **Note**
    System Center Configuration Manager also allows you to revoke enterprise data. However, it does it by performing a factory reset of the device. + >[!NOTE] + >For management of Surface devices it is recommended that you use the Current Branch of System Center Configuration Manager.
    System Center Configuration Manager also allows you to revoke enterprise data. However, it does it by performing a factory reset of the device. ## How WIP works WIP helps address your everyday challenges in the enterprise. Including: @@ -137,3 +138,7 @@ You can turn off all Windows Information Protection and restrictions, decrypting After deciding to use WIP in your enterprise, you need to: - [Create a Windows Information Protection (WIP) policy](overview-create-wip-policy.md) + + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). diff --git a/windows/keep-secure/protect-high-value-assets-by-controlling-the-health-of-windows-10-based-devices.md b/windows/keep-secure/protect-high-value-assets-by-controlling-the-health-of-windows-10-based-devices.md index b2d8f3634a..ac0409286d 100644 --- a/windows/keep-secure/protect-high-value-assets-by-controlling-the-health-of-windows-10-based-devices.md +++ b/windows/keep-secure/protect-high-value-assets-by-controlling-the-health-of-windows-10-based-devices.md @@ -364,7 +364,7 @@ The following table details the hardware requirements for both virtualization-ba

    Support for the IOMMU in Windows 10 enhances system resiliency against DMA attacks.

    -

    Trusted Platform Module (TPM) 2.0

    +

    Trusted Platform Module (TPM)

    Required to support health attestation and necessary for additional key protections for virtualization-based security.

    @@ -455,7 +455,7 @@ The device health attestation solution involves different components that are TP ### Trusted Platform Module -*It’s all about TPM 2.0 and endorsement certificates.* This section describes how PCRs (that contain system configuration data), endorsement key (EK) (that act as an identity card for TPM), SRK (that protect keys) and AIKs (that can report platform state) are used for health attestation reporting. +This section describes how PCRs (that contain system configuration data), endorsement key (EK) (that act as an identity card for TPM), SRK (that protect keys) and AIKs (that can report platform state) are used for health attestation reporting. In a simplified manner, the TPM is a passive component with limited resources. It can calculate random numbers, RSA keys, decrypt short data, store hashes taken when booting the device. diff --git a/windows/keep-secure/protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md b/windows/keep-secure/protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md index aaf71600b1..f1f62943e3 100644 --- a/windows/keep-secure/protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md +++ b/windows/keep-secure/protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md @@ -33,8 +33,7 @@ Windows PowerShell or the manage-bde command line interface is the preferred met >**Note:**  Mount points can be used to support remote mount points on SMB based network shares. This type of share is not supported for BitLocker encryption.   -For thinly provisioned storage, such as a Dynamic Virtual Hard Disk (VHD), BitLocker runs in Used Disk Space Only encryption mode. You cannot use the **manage-bde –WipeFreeSpace** command to transition the volume to full-volume encryption on these types of volumes. This occurs because Full -Encryption requires an end marker for the volume and dynamically expanding VHDs do not have a static end of volume marker. +For thinly provisioned storage, such as a Dynamic Virtual Hard Disk (VHD), BitLocker runs in Used Disk Space Only encryption mode. You cannot use the **manage-bde -WipeFreeSpace** command to transition the volume to full-volume encryption on these types of volumes. This is blocked in order to avoid expanding thinly provisioned volumes to occupy the entire backing store while wiping the unoccupied (free) space. ### Active Directory-based protector @@ -57,28 +56,22 @@ BitLocker encryption is available for disks before or after addition to a cluste 1. Install the BitLocker Drive Encryption feature if it is not already installed. 2. Ensure the disk is formatted NTFS and has a drive letter assigned to it. -3. Enable BitLocker on the volume using your choice of protector. A password protector is used in the Windows PowerShell script example below. - - ``` syntax - Enable-BitLocker E: -PasswordProtector -Password $pw - ``` - -4. Identify the name of the cluster with Windows PowerShell. +3. Identify the name of the cluster with Windows PowerShell. ``` syntax Get-Cluster ``` -5. Add an **ADAccountOrGroup**protector to the volume using the cluster name using a command such as: +4. Enable BitLocker on the volume of your choice with an **ADAccountOrGroup** protector, using the cluster name. For example, use a command such as: ``` syntax - Add-BitLockerProtector E: -ADAccountOrGroupProtector -ADAccountOrGroup CLUSTER$ + Enable-BitLocker E: -ADAccountOrGroupProtector -ADAccountOrGroup CLUSTER$ ``` - >**Warning:**  You must add an **ADAccountOrGroup** protector using the cluster CNO for a BitLocker enabled volume to either be shared in a Cluster Shared Volume or to failover properly in a traditional failover cluster. + >**Warning:**  You must configure an **ADAccountOrGroup** protector using the cluster CNO for a BitLocker enabled volume to either be shared in a Cluster Shared Volume or to fail over properly in a traditional failover cluster.   -6. Repeat steps 1-6 for each disk in the cluster. -7. Add the volume(s) to the cluster. +5. Repeat the preceding steps for each disk in the cluster. +6. Add the volume(s) to the cluster. ### Turning on BitLocker for a clustered disk using Windows PowerShell @@ -97,28 +90,26 @@ When the cluster service owns a disk resource already, it needs to be set into m Get-ClusterResource "Cluster Disk 1" | Suspend-ClusterResource ``` -4. Enable BitLocker on the volume using your choice of protector. A password protector is used in the example below. - - ``` syntax - Enable-BitLocker E: -PasswordProtector -Password $pw - ``` - -5. Identify the name of the cluster with Windows PowerShell +4. Identify the name of the cluster with Windows PowerShell. ``` syntax Get-Cluster ``` -6. Add an **ADAccountOrGroup** protector with the Cluster Name Object (CNO) to the volume using a command such as: +5. Enable BitLocker on the volume of your choice with an **ADAccountOrGroup** protector, using the cluster name. For example, use a command such as: ``` syntax - Add-BitLockerProtector E: -ADAccountOrGroupProtector -ADAccountOrGroup CLUSTER$ - + Enable-BitLocker E: -ADAccountOrGroupProtector -ADAccountOrGroup CLUSTER$ ``` - >**Warning:**  You must add an **ADAccountOrGroup** protector using the cluster CNO for a BitLocker enabled volume to either be shared in a Cluster Shared Volume or to failover properly in a traditional failover cluster. + >**Warning:**  You must configure an **ADAccountOrGroup** protector using the cluster CNO for a BitLocker enabled volume to either be shared in a Cluster Shared Volume or to fail over properly in a traditional failover cluster.   -7. Repeat steps 1-6 for each disk in the cluster. -8. Add the volume(s) to the cluster +6. Use **Resume-ClusterResource** to take the physical disk resource back out of maintenance mode: + + ``` syntax + Get-ClusterResource "Cluster Disk 1" | Resume-ClusterResource + ``` + +7. Repeat the preceding steps for each disk in the cluster. ### Adding BitLocker encrypted volumes to a cluster using manage-bde diff --git a/windows/keep-secure/recommended-network-definitions-for-wip.md b/windows/keep-secure/recommended-network-definitions-for-wip.md new file mode 100644 index 0000000000..bf9a7ac22a --- /dev/null +++ b/windows/keep-secure/recommended-network-definitions-for-wip.md @@ -0,0 +1,39 @@ +--- +title: Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP) (Windows 10) +description: Recommended URLs to add to your Enterprise Cloud Resources and Neutral Resources network settings, when used with Windows Information Protection (WIP). +keywords: WIP, Windows Information Protection, EDP, Enterprise Data Protection, WIP and Neutral Resources, WIP and Enterprise Cloud Resources +ms.prod: w10 +ms.mktglfcycl: explore +ms.sitesec: library +ms.pagetype: security +localizationpriority: high +--- + +# Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP) + +**Applies to:** + +- Windows 10, version 1607 +- Windows 10 Mobile + +>Learn more about what features and functionality are supported in each Windows edition at [Compare Windows 10 Editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare). + +We recommend that you add the following URLs to the Enterprise Cloud Resources and Neutral Resources network settings, when used with Windows Information Protection (WIP). + +## Recommended Enterprise Cloud Resources +This table includes the recommended URLs to add to your Enterprise Cloud Resources network setting, based on the apps you use in your organization. + +|If your organization uses... |Add these entries to your Enterprise Cloud Resources network setting
    (Replace "contoso" with your domain name(s) | +|-----------------------------|---------------------------------------------------------------------| +|Office 365 for Business |
    • contoso.sharepoint.com
    • contoso-my.sharepoint.com
    • contoso-files.sharepoint.com
    • tasks.office.com
    • protection.office.com
    • meet.lync.com
    • teams.microsoft.com
    | +|Yammer |
    • www.yammer.com
    • yammer.com
    • persona.yammer.com
    | +|Microsoft Dynamics |contoso.crm.dynamics.com | +|Visual Studio Online |contoso.visualstudio.com | +|Power BI |contoso.powerbi.com | + +## Recommended Neutral Resources +We recommended adding these URLs if you use the Neutral Resources network setting with Windows Information Protection (WIP). +
      +
    • login.microsoftonline.com
    • +
    • login.windows.net
    • +
    \ No newline at end of file diff --git a/windows/keep-secure/remove-computer-from-docking-station.md b/windows/keep-secure/remove-computer-from-docking-station.md index ee3b81a7d3..1823951ae4 100644 --- a/windows/keep-secure/remove-computer-from-docking-station.md +++ b/windows/keep-secure/remove-computer-from-docking-station.md @@ -1,5 +1,5 @@ --- -title: Remove computer from docking station (Windows 10) +title: Remove computer from docking station - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Remove computer from docking station security policy setting. ms.assetid: 229a385a-a862-4973-899a-413b1b5b6c30 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Remove computer from docking station +# Remove computer from docking station - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/requirements-and-deployment-planning-guidelines-for-device-guard.md b/windows/keep-secure/requirements-and-deployment-planning-guidelines-for-device-guard.md index d2bbb021bb..fad266b5ee 100644 --- a/windows/keep-secure/requirements-and-deployment-planning-guidelines-for-device-guard.md +++ b/windows/keep-secure/requirements-and-deployment-planning-guidelines-for-device-guard.md @@ -26,7 +26,7 @@ This article describes the following: The information in this article is intended for IT professionals, and provides a foundation for [Planning and getting started on the Device Guard deployment process](planning-and-getting-started-on-the-device-guard-deployment-process.md). ->**Note**  If you are an OEM, see the requirements information at [PC OEM requirements for Device Guard and Credential Guard](https://msdn.microsoft.com/library/windows/hardware/mt767514(v=vs.85).aspx). +>**Note**  If you are an OEM, see the requirements information at [PC OEM requirements for Device Guard and Credential Guard](https://msdn.microsoft.com/library/windows/hardware/mt767514.aspx). ## Hardware, firmware, and software requirements for Device Guard diff --git a/windows/keep-secure/requirements-for-deploying-applocker-policies.md b/windows/keep-secure/requirements-for-deploying-applocker-policies.md index e3b6c29aa7..874036e3b6 100644 --- a/windows/keep-secure/requirements-for-deploying-applocker-policies.md +++ b/windows/keep-secure/requirements-for-deploying-applocker-policies.md @@ -24,7 +24,7 @@ The following requirements must be met or addressed before you deploy your AppLo ### Deployment plan -An AppLocker policy deployment plan is the result of investigating which applications are required and necessary in your organization, which apps are optional, and which apps are forbidden. To develop this plan, see [AppLocker Design Guide](applocker-policies-design-guide.md). The following table is an example of the data you need to collect and the decisions you need to make to successfully deploy AppLocker policies on the supported operating systems (as listed in [Requirements to use AppLocker](requirements-to-use-applocker.md). +An AppLocker policy deployment plan is the result of investigating which applications are required and necessary in your organization, which apps are optional, and which apps are forbidden. To develop this plan, see [AppLocker Design Guide](applocker-policies-design-guide.md). The following table is an example of the data you need to collect and the decisions you need to make to successfully deploy AppLocker policies on the supported operating systems (as listed in [Requirements to use AppLocker](requirements-to-use-applocker.md)). diff --git a/windows/keep-secure/requirements-to-use-applocker.md b/windows/keep-secure/requirements-to-use-applocker.md index 60ac319a63..81fe0f76ba 100644 --- a/windows/keep-secure/requirements-to-use-applocker.md +++ b/windows/keep-secure/requirements-to-use-applocker.md @@ -33,12 +33,10 @@ The following table show the on which operating systems AppLocker features are s | Version | Can be configured | Can be enforced | Available rules | Notes | | - | - | - | - | - | -| Windows 10| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL| You can use the [AppLocker CSP](http://msdn.microsoft.com/library/windows/hardware/dn920019.aspx) to configure AppLocker policies on any edition of Windows 10. You can only manage AppLocker with Group Policy on devices running Windows 10 Enterprise and Windows Server 2016. | -| Windows Server 2012 R2| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL| | +| Windows 10| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL| You can use the [AppLocker CSP](http://msdn.microsoft.com/library/windows/hardware/dn920019.aspx) to configure AppLocker policies on any edition of Windows 10. You can only manage AppLocker with Group Policy on devices running Windows 10 Enterprise, Windows 10 Education, and Windows Server 2016. | +| Windows Server 2016
    Windows Server 2012 R2
    Windows Server 2012| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL| | | Windows 8.1| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL| Only the Enterprise edition supports AppLocker| | Windows RT 8.1| No| No| N/A|| -| Windows Server 2012 Standard| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL|| -| Windows Server 2012 Datacenter| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL|| | Windows 8 Pro| No| No| N/A|| | Windows 8 Enterprise| Yes| Yes| Packaged apps
    Executable
    Windows Installer
    Script
    DLL|| | Windows RT| No| No| N/A| | diff --git a/windows/keep-secure/restore-files-and-directories.md b/windows/keep-secure/restore-files-and-directories.md index e8bb7e6f85..bf78f4ff41 100644 --- a/windows/keep-secure/restore-files-and-directories.md +++ b/windows/keep-secure/restore-files-and-directories.md @@ -1,5 +1,5 @@ --- -title: Restore files and directories (Windows 10) +title: Restore files and directories - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Restore files and directories security policy setting. ms.assetid: c673c0fa-6f49-4edd-8c1f-c5e8513f701d ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Restore files and directories +# Restore files and directories - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/security-technologies.md b/windows/keep-secure/security-technologies.md index 8bd5183126..6b82a956c7 100644 --- a/windows/keep-secure/security-technologies.md +++ b/windows/keep-secure/security-technologies.md @@ -11,21 +11,23 @@ author: brianlic-msft # Security technologies -Learn more about the different security technologies that are available in Windows 10 and Windows 10 Mobile. +As an IT professional, you can use these topics to learn more about the different security technologies that are available in Windows 10 and Windows 10 Mobile. -| Topic | Description | +| Section | Description | |-|-| | [Access control](access-control.md) | Describes access control in Windows, which is the process of authorizing users, groups, and computers to access objects on the network or computer. Key concepts that make up access control are permissions, ownership of objects, inheritance of permissions, user rights, and object auditing. | -| [AppLocker](applocker-overview.md)| This topic provides a description of AppLocker and can help you decide if your organization can benefit from deploying AppLocker application control policies. AppLocker helps you control which apps and files users can run. These include executable files, scripts, Windows Installer files, dynamic-link libraries (DLLs), packaged apps, and packaged app installers.| -| [BitLocker](bitlocker-overview.md)| This topic provides a high-level overview of BitLocker, including a list of system requirements, practical applications, and deprecated features.| -| [Encrypted Hard Drive](encrypted-hard-drive.md) | Encrypted Hard Drive uses the rapid encryption that is provided by BitLocker Drive Encryption to enhance data security and management.| -| [Security auditing](security-auditing-overview.md)| Topics in this section are for IT professionals and describes the security auditing features in Windows and how your organization can benefit from using these technologies to enhance the security and manageability of your network.| -| [Security policy settings](security-policy-settings.md)| This reference topic describes the common scenarios, architecture, and processes for security settings.| -| [Trusted Platform Module](trusted-platform-module-overview.md)| This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. The topic provides links to other resources about the TPM.| -| [User Account Control](user-account-control-overview.md)| User Account Control (UAC) helps prevent malware from damaging a PC and helps organizations deploy a better-managed desktop. With UAC, apps and tasks always run in the security context of a non-administrator account, unless an administrator specifically authorizes administrator-level access to the system. UAC can block the automatic installation of unauthorized apps and prevent inadvertent changes to system settings.| -| [Windows Defender Advanced Threat Protection](windows-defender-advanced-threat-protection.md)| Windows Defender Advanced Threat Protection (Windows Defender ATP) is an out-of-the-box Windows enterprise security service that enables enterprise cybersecurity teams to detect and respond to advanced threats on their networks.| -| [Windows Defender in Windows 10](windows-defender-in-windows-10.md)| This topic provides an overview of Windows Defender, including a list of system requirements and new features.| -| [Windows Firewall with Advanced Security](windows-firewall-with-advanced-security.md) | Windows Firewall with Advanced Security is an important part of a layered security model. By providing host-based, two-way network traffic filtering for a device, Windows Firewall with Advanced Security blocks unauthorized network traffic flowing into or out of the local device. | +| [AppLocker](applocker-overview.md)| Describes AppLocker, and can help you decide if your organization can benefit from deploying AppLocker application control policies. AppLocker helps you control which apps and files users can run. These include executable files, scripts, Windows Installer files, dynamic-link libraries (DLLs), packaged apps, and packaged app installers.| +| [BitLocker](bitlocker-overview.md)| Provides information about BitLocker, which is a data protection feature that integrates with the operating system and addresses the threats of data theft or exposure from lost, stolen, or inappropriately decommissioned computers. | +| [Encrypted Hard Drive](encrypted-hard-drive.md) | Provides information about Encrypted Hard Drive, which uses the rapid encryption that is provided by BitLocker Drive Encryption to enhance data security and management.| +| [Security auditing](security-auditing-overview.md)| Describes how the IT professional can use the security auditing features in Windows, and how organizations can benefit from using these technologies, to enhance the security and manageability of networks.| +| [Security policy settings](security-policy-settings.md)| Provides a collection of reference topics that describe the common scenarios, architecture, and processes for security settings.| +| [Smart Cards](smart-card-windows-smart-card-technical-reference.md) | Provides a collection of references topics about smart cards, which are tamper-resistant portable storage devices that can enhance the security of tasks such as authenticating clients, signing code, securing e-mail, and signing in with a Windows domain account. | +| [Trusted Platform Module](trusted-platform-module-top-node.md)| Provides links to information about the Trusted Platform Module (TPM), which is a secure crypto-processor that helps you with actions such as generating, storing, and limiting the use of cryptographic keys. | +| [User Account Control](user-account-control-overview.md)| Provides information about User Account Control (UAC), which helps prevent malware from damaging a PC and helps organizations deploy a better-managed desktop. UAC can help block the automatic installation of unauthorized apps and prevent inadvertent changes to system settings.| +| [Virtual Smart Cards](virtual-smart-card-overview.md) | Provides information about deploying and managing virtual smart cards, which are functionally similar to physical smart cards and appear in Windows as smart cards that are always-inserted. Virtual smart cards use the Trusted Platform Module (TPM) chip that is available on computers in many organizations, rather than requiring the use of a separate physical smart card and reader. | +| [Windows Defender Advanced Threat Protection](windows-defender-advanced-threat-protection.md)| Provides information about Windows Defender Advanced Threat Protection (Windows Defender ATP), an out-of-the-box Windows enterprise security service that enables enterprise cybersecurity teams to detect and respond to advanced threats on their networks.| +| [Windows Defender in Windows 10](windows-defender-in-windows-10.md)| Provides information about Windows Defender, a built-in antimalware solution that helps provide security and antimalware management for desktops, portable computers, and servers. Includes a list of system requirements and new features.| +| [Windows Firewall with Advanced Security](windows-firewall-with-advanced-security.md) | Provides information about Windows Firewall with Advanced Security, which is an important part of a layered security model. By providing host-based, two-way network traffic filtering for a device, Windows Firewall with Advanced Security blocks unauthorized network traffic flowing into or out of the local device. |     diff --git a/windows/keep-secure/select-types-of-rules-to-create.md b/windows/keep-secure/select-types-of-rules-to-create.md index 00ae11caf5..35f8ffd6b2 100644 --- a/windows/keep-secure/select-types-of-rules-to-create.md +++ b/windows/keep-secure/select-types-of-rules-to-create.md @@ -55,7 +55,7 @@ In the Woodgrove Bank example, the line-of-business app for the Bank Tellers bus ### Determine how to allow system files to run -Because AppLocker rules build a list of allowed apps, a rule or rules must be created to allow all Windows files to run. AppLocker provides a means to ensure system files are properly considered in your rule collection by generating the default rules for each rule collection. You can use the default rules as a template when creating your own rules. However, these rules are only meant to function as a starter policy when you are first testing AppLocker rules so that the system files in the Windows folders will be allowed to run. When a default rule is created, it is denoted with "(Default rule)" in its name as it appears in the rule collection. +Because AppLocker rules build a list of allowed apps, a rule or rules must be created to allow all Windows files to run. AppLocker provides a means to ensure system files are properly considered in your rule collection by generating the default rules for each rule collection. You can use the default rules (listed in [AppLocker default rules](working-with-applocker-rules.md#applocker-default-rules)) as a template when creating your own rules. However, these rules are only meant to function as a starter policy when you are first testing AppLocker rules so that the system files in the Windows folders will be allowed to run. When a default rule is created, it is denoted with "(Default rule)" in its name as it appears in the rule collection. You can also create a rule for the system files based on the path condition. In the preceding example, for the Bank Tellers group, all Windows files reside under C:\\Windows and can be defined with the path rule condition type. This will permit access to these files whenever updates are applied and the files change. If you require additional application security, you might need to modify the rules created from the built-in default rule collection. For example, the default rule to allow all users to run .exe files in the Windows folder is based on a path condition that allows all files within the Windows folder to run. The Windows folder contains a Temp subfolder to which the Users group is given the following permissions: diff --git a/windows/keep-secure/service-status-windows-defender-advanced-threat-protection.md b/windows/keep-secure/service-status-windows-defender-advanced-threat-protection.md new file mode 100644 index 0000000000..6c8623a564 --- /dev/null +++ b/windows/keep-secure/service-status-windows-defender-advanced-threat-protection.md @@ -0,0 +1,54 @@ +--- +title: Check the Windows Defender ATP service status +description: Check Windows Defender ATP service status, see if the service is experiencing issues and review previous issues that have been resolved. +keywords: dashboard, service, issues, service status, current issues, status history, summary of impact, preliminary root cause, resolution, resolution time, expected resolution time +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +author: mjcaparas +localizationpriority: high +--- + +# Check the Windows Defender Advanced Threat Protection service status + +**Applies to:** + +- Windows 10 Enterprise +- Windows 10 Education +- Windows 10 Pro +- Windows 10 Pro Education +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +The **Service health** provides information on the current status of the Window Defender ATP service. You'll be able to verify that the service status is healthy or if there are current issues. If there are issues, you'll see details related to the issue such as when the issue was detected, what the preliminary root cause is, and the expected resolution time. + +You'll also see information on historical issues that have been resolved and details such as the date and time when the issue was resolved. When there are no issues on the service, you'll see a healthy status. + +You can view details on the service status by clicking the tile from the **Dashboard** or selecting the **Service health** menu from the navigation pane. + +The **Service health** details page has the following tabs: + +- **Current issues** +- **Status History** + +## Current issues +The **Current issues** tab shows the current state of the Windows Defender ATP service. When the service is running smoothly a healthy service status is shown. If there are issues seen, the following service details are shown to help you gain better insight about the issue: + +- Date and time for when the issue was detected +- A short description of the issue +- Update time +- Summary of impact +- Preliminary root cause +- Next steps +- Expected resolution time + +Updates on the progress of an issue is reflected on the page as the issue gets resolved. You'll see updates on information such as an updated estimate resolution time or next steps. + +When an issue is resolved, it gets recorded in the **Status history** tab. + +## Status history +The **Status history** tab reflects all the historical issues that were seen and resolved. You'll see details of the resolved issues along with the other information that were included while it was being resolved. + +### Related topic +- [View the Windows Defender Advanced Threat Protection Dashboard](dashboard-windows-defender-advanced-threat-protection.md) diff --git a/windows/keep-secure/shut-down-the-system.md b/windows/keep-secure/shut-down-the-system.md index 0c4f6b24a7..4cde410c2d 100644 --- a/windows/keep-secure/shut-down-the-system.md +++ b/windows/keep-secure/shut-down-the-system.md @@ -1,5 +1,5 @@ --- -title: Shut down the system (Windows 10) +title: Shut down the system - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Shut down the system security policy setting. ms.assetid: c8e8f890-153a-401e-a957-ba6a130304bf ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Shut down the system +# Shut down the system - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/shutdown-clear-virtual-memory-pagefile.md b/windows/keep-secure/shutdown-clear-virtual-memory-pagefile.md index 83e27c9e00..348aa4eb2d 100644 --- a/windows/keep-secure/shutdown-clear-virtual-memory-pagefile.md +++ b/windows/keep-secure/shutdown-clear-virtual-memory-pagefile.md @@ -1,5 +1,5 @@ --- -title: Shutdown Clear virtual memory pagefile (Windows 10) +title: Shutdown Clear virtual memory pagefile - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management and security considerations for the Shutdown Clear virtual memory pagefile security policy setting. ms.assetid: 31400078-6c56-4891-a6df-6dfb403c4bc9 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Shutdown: Clear virtual memory pagefile +# Shutdown: Clear virtual memory pagefile - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/smart-card-architecture.md b/windows/keep-secure/smart-card-architecture.md index 84d38741cf..41b2dcc225 100644 --- a/windows/keep-secure/smart-card-architecture.md +++ b/windows/keep-secure/smart-card-architecture.md @@ -74,7 +74,7 @@ Credential providers must be registered on a computer running Windows, and they ## Smart card subsystem architecture -Vendors provide smart cards and smart card readers, and in many cases the vendors are different for the smart card and the smart card reader. Drivers for smart card readers are written to the [Personal Computer/Smart Card (PC/SC) standard](http://www.pcscworkgroup.com/specifications/overview.php). Each smart card must have a Credential Service Provider (CSP) that uses the CryptoAPI interfaces to enable cryptographic operations, and the WinSCard APIs to enable communications with smart card hardware. +Vendors provide smart cards and smart card readers, and in many cases the vendors are different for the smart card and the smart card reader. Drivers for smart card readers are written to the [Personal Computer/Smart Card (PC/SC) standard](https://www.pcscworkgroup.com/). Each smart card must have a Credential Service Provider (CSP) that uses the CryptoAPI interfaces to enable cryptographic operations, and the WinSCard APIs to enable communications with smart card hardware. ### Base CSP and smart card minidriver architecture diff --git a/windows/keep-secure/smart-card-smart-cards-for-windows-service.md b/windows/keep-secure/smart-card-smart-cards-for-windows-service.md index a0c0edd3dc..1c4f17a7f2 100644 --- a/windows/keep-secure/smart-card-smart-cards-for-windows-service.md +++ b/windows/keep-secure/smart-card-smart-cards-for-windows-service.md @@ -14,7 +14,7 @@ Applies To: Windows 10, Windows Server 2016 This topic for the IT professional and smart card developers describes how the Smart Cards for Windows service (formerly called Smart Card Resource Manager) manages readers and application interactions. -The Smart Cards for Windows service provides the basic infrastructure for all other smart card components as it manages smart card readers and application interactions on the computer. It is fully compliant with the specifications set by the PC/SC Workgroup. For information about these specifications, see the [PC/SC Workgroup Specifications Overview](http://www.pcscworkgroup.com/specifications/overview.php). +The Smart Cards for Windows service provides the basic infrastructure for all other smart card components as it manages smart card readers and application interactions on the computer. It is fully compliant with the specifications set by the PC/SC Workgroup. For information about these specifications, see the [PC/SC Workgroup Specifications website](https://www.pcscworkgroup.com/). The Smart Cards for Windows service runs in the context of a local service, and it is implemented as a shared service of the services host (svchost) process. The Smart Cards for Windows service, Scardsvr, has the following service description: diff --git a/windows/keep-secure/switch-pcr-banks-on-tpm-2-0-devices.md b/windows/keep-secure/switch-pcr-banks-on-tpm-2-0-devices.md index b60489c882..993c5d1aea 100644 --- a/windows/keep-secure/switch-pcr-banks-on-tpm-2-0-devices.md +++ b/windows/keep-secure/switch-pcr-banks-on-tpm-2-0-devices.md @@ -1,6 +1,6 @@ --- -title: Switch PCR banks on TPM 2.0 devices (Windows 10) -description: A Platform Configuration Register (PCR) is a memory location in the TPM that has some unique properties. +title: Understanding PCR banks on TPM 2.0 devices (Windows 10) +description: This topic for the IT professional provides background about what happens when you switch PCR banks on TPM 2.0 devices. ms.assetid: 743FCCCB-99A9-4636-8F48-9ECB3A3D10DE ms.prod: w10 ms.mktglfcycl: deploy @@ -9,10 +9,13 @@ ms.pagetype: security author: brianlic-msft --- -# Switch PCR banks on TPM 2.0 devices +# Understanding PCR banks on TPM 2.0 devices **Applies to** - Windows 10 +- Windows Server 2016 + +For steps on how to switch PCR banks on TPM 2.0 devices on your PC, you should contact your OEM or UEFI vendor. This topic provides background about what happens when you switch PCR banks on TPM 2.0 devices. A Platform Configuration Register (PCR) is a memory location in the TPM that has some unique properties. The size of the value that can be stored in a PCR is determined by the size of a digest generated by an associated hashing algorithm. A SHA-1 PCR can store 20 bytes – the size of a SHA-1 digest. Multiple PCRs associated with the same hashing algorithm are referred to as a PCR bank. @@ -21,7 +24,7 @@ PCR\[N\] = HASHalg( PCR\[N\] || ArgumentOfExtend ) The existing value is concatenated with the argument of the TPM Extend operation. The resulting concatenation is then used as input to the associated hashing algorithm, which computes a digest of the input. This computed digest becomes the new value of the PCR. -The [TCG PC Client Specific Platform TPM Profile for TPM 2.0](https://go.microsoft.com/fwlink/p/?LinkId=746577) defines the inclusion of at least one PCR bank with 24 registers. The only way to reset the first 16 PCRs is to reset the TPM itself. This restriction helps ensure that the value of those PCRs can only be modified via the TPM Extend operation. +The [TCG PC Client Platform TPM Profile Specification](http://www.trustedcomputinggroup.org/pc-client-platform-tpm-profile-ptp-specification/) defines the inclusion of at least one PCR bank with 24 registers. The only way to reset the first 16 PCRs is to reset the TPM itself. This restriction helps ensure that the value of those PCRs can only be modified via the TPM Extend operation. Some TPM PCRs are used as checksums of log events. The log events are extended in the TPM as the events occur. Later, an auditor can validate the logs by computing the expected PCR values from the log and comparing them to the PCR values of the TPM. Since the first 16 TPM PCRs cannot be modified arbitrarily, a match between an expected PCR value in that range and the actual TPM PCR value provides assurance of an unmodified log. @@ -29,8 +32,7 @@ Some TPM PCRs are used as checksums of log events. The log events are extended i To bind the use of a TPM based key to a certain state of the PC, the key can be sealed to an expected set of PCR values. For instance, PCRs 0 through 7 have a well-defined value after the boot process – when the OS is loaded. When the hardware, firmware, or boot loader of the machine changes, the change can be detected in the PCR values. Windows 10 uses this capability to make certain cryptographic keys only available at certain times during the boot process. For instance, the BitLocker key can be used at a certain point in the boot, but not before or after. -It is important to note that this binding to PCR values also includes the hashing algorithm used for the PCR. For instance, a key can be bound to a specific value of the SHA-1 PCR\[12\], if using SHA-256 PCR banks, even with the -same system configuration otherwise, the PCR values will not match. +It is important to note that this binding to PCR values also includes the hashing algorithm used for the PCR. For instance, a key can be bound to a specific value of the SHA-1 PCR\[12\], if using SHA-256 PCR banks, even with the same system configuration. Otherwise, the PCR values will not match. ## What happens when PCR banks are switched? @@ -41,3 +43,7 @@ As a result, if the currently used PCR bank is switched all keys that have been ## What can I do to switch PCRs when BitLocker is already active? Before switching PCR banks you should suspend or disable BitLocker – or have your recovery key ready. For steps on how to switch PCR banks on your PC, you should contact your OEM or UEFI vendor. + +## Related topics + +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) diff --git a/windows/keep-secure/testing-scenarios-for-wip.md b/windows/keep-secure/testing-scenarios-for-wip.md index 45737291cf..cca0a2fa52 100644 --- a/windows/keep-secure/testing-scenarios-for-wip.md +++ b/windows/keep-secure/testing-scenarios-for-wip.md @@ -163,4 +163,7 @@ You can try any of the processes included in these scenarios, but you should foc -
    \ No newline at end of file + + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). \ No newline at end of file diff --git a/windows/keep-secure/tools-to-use-with-applocker.md b/windows/keep-secure/tools-to-use-with-applocker.md index 5d2d69ff81..a5346774ab 100644 --- a/windows/keep-secure/tools-to-use-with-applocker.md +++ b/windows/keep-secure/tools-to-use-with-applocker.md @@ -24,7 +24,7 @@ The following tools can help you administer the application control policies cre - **Generate Default Rules tool** - AppLocker includes default rules for each rule collection accessed through the Local Security Policy snap-in. These rules are intended to help ensure that the files that are required for Windows to operate properly are allowed in an AppLocker rule collection. For info about how to use this tool, see [Create AppLocker default rules](create-applocker-default-rules.md). + AppLocker includes default rules for each rule collection accessed through the Local Security Policy snap-in. These rules are intended to help ensure that the files that are required for Windows to operate properly are allowed in an AppLocker rule collection. For info about how to use this tool, see [Create AppLocker default rules](create-applocker-default-rules.md). For a list of the default rules, see [AppLocker default rules](working-with-applocker-rules.md#applocker-default-rules). - **Automatically Generate AppLocker Rules wizard** diff --git a/windows/keep-secure/tpm-fundamentals.md b/windows/keep-secure/tpm-fundamentals.md index 92a6fe9b1d..efb080c89c 100644 --- a/windows/keep-secure/tpm-fundamentals.md +++ b/windows/keep-secure/tpm-fundamentals.md @@ -13,6 +13,7 @@ author: brianlic-msft **Applies to** - Windows 10 +- Windows Server 2016 This topic for the IT professional provides a description of the components of the Trusted Platform Module (TPM 1.2 and TPM 2.0) and explains how they are used to mitigate dictionary attacks. @@ -30,109 +31,65 @@ For info about which versions of Windows support which versions of the TPM, see The following sections provide an overview of the technologies that support the TPM: -- [TPM-based Virtual Smart Card](#bkmk-vsc) -- [Measured Boot with support for attestation](#bkmk-measuredboot) -- [Automated provisioning and management of the TPM](#bkmk-autoprov) -- [TPM-based certificate storage](#bkmk-tpmcs) -- [Physical presence interface](#bkmk-physicalpresenceinterface) -- [TPM Cmdlets](#bkmk-tpmcmdlets) -- [TPM Owner Authorization Value](#bkmk-authvalue) -- [States of existence in a TPM](#bkmk-stateex) -- [Endorsement keys](#bkmk-endorsementkeys) -- [TPM Key Attestation](#bkmk-ketattestation) -- [How the TPM mitigates dictionary attacks](#bkmk-howtpmmitigates) -- [How do I check the state of my TPM?](#bkmk-checkstate) -- [What can I do if my TPM is in reduced functionality mode?](#bkmk-fixrfm) +- [Measured Boot with support for attestation](#measured-boot-with-support-for-attestation) + +- [TPM-based Virtual Smart Card](#tpm-based-virtual-smart-card) + +- [TPM-based certificate storage](#tpm-based-certificate-storage) + +- [TPM Cmdlets](#tpm-cmdlets) + +- [Physical presence interface](#physical-presence-interface) + +- [TPM 1.2 states and initialization](#tpm-12-states-and-initialization) + +- [Endorsement keys](#endorsement-keys) + +- [TPM Key Attestation](#key-attestation) + +- [How the TPM mitigates dictionary attacks](#how-the-tpm-mitigates-dictionary-attacks) The following topic describes the TPM Services that can be controlled centrally by using Group Policy settings: -[Trusted Platform Module Services Group Policy Settings](trusted-platform-module-services-group-policy-settings.md) +[TPM Group Policy Settings](trusted-platform-module-services-group-policy-settings.md). -## Automated provisioning and management of the TPM - -TPM provisioning can be streamlined to make it easier to deploy systems that are ready for BitLocker and other TPM-dependent features. These enhancements include simplifying the TPM state model to report **Ready**, **Ready with reduced functionality**, or **Not ready**. You can also automatically provision TPMs in the **Ready** state, remote provisioning to remove the requirement for the physical presence of a technician for the initial deployment. In addition, the TPM stack is available in the Windows Preinstallation Environment (Windows PE). - -A number of management settings have been added for easier management and configuration of the TPM through Group Policy. The primary new settings include Active Directory-based backup of TPM owner authentication, the level of owner authentication that should be stored locally on the TPM, and the software-based TPM lockout settings for standard users. For more info about backing up owner authentication to Windows Server 2008 R2 AD DS domains, see [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md). - -## Measured Boot with support for attestation +## Measured Boot with support for attestation The Measured Boot feature provides antimalware software with a trusted (resistant to spoofing and tampering) log of all boot components. Antimalware software can use the log to determine whether components that ran before it are trustworthy versus infected with malware. It can also send the Measured Boot logs to a remote server for evaluation. The remote server can initiate remediation actions by interacting with software on the client or through out-of-band mechanisms, as appropriate. -## TPM-based Virtual Smart Card +## TPM-based Virtual Smart Card -The Virtual Smart Card emulates the functionality of traditional smart cards, but Virtual Smart Cards use the TPM chip that is available on an organization’s computers, rather than requiring the use of a separate physical smart card and reader. This greatly reduces the management and deployment cost of smart cards in an enterprise. To the end user, the Virtual Smart Card is always available on the computer. If a user needs to use more than one computer, a +The Virtual Smart Card emulates the functionality of traditional smart cards, but Virtual Smart Cards use the TPM chip that is available on an organization’s computers, rather than requiring the use of a separate physical smart card and reader. This greatly reduces the management and deployment cost of smart cards in an enterprise. To the end user, the Virtual Smart Card is always available on the computer. If a user needs to use more than one computer, a Virtual Smart Card must be issued to the user for each computer. A computer that is shared among multiple users can host multiple Virtual Smart Cards, one for each user. -## TPM-based certificate storage +## TPM-based certificate storage The TPM can be used to protect certificates and RSA keys. The TPM key storage provider (KSP) provides easy, convenient use of the TPM as a way of strongly protecting private keys. The TPM KSP can be used to generate keys when an organization enrolls for certificates, and the KSP is managed by templates in the UI. The TPM can also be used to protect certificates that are imported from an outside source. TPM-based certificates can be used exactly as standard certificates with the added functionality that the certificate can never leave the TPM from which the keys were generated. The TPM can now be used for crypto-operations through Cryptography API: Next Generation (CNG). For more info, see [Cryptography API: Next Generation](http://msdn.microsoft.com/library/windows/desktop/aa376210.aspx). -## TPM Owner Authorization Value - -For Windows 8 a change to how the TPM owner authorization value is stored in AD DS was implemented in the AD DS schema. The TPM owner authorization value is now stored in a separate object which is linked to the Computer object. -This value was stored as a property in the Computer object itself for the default Windows Server 2008 R2 schemas. Windows Server 2012 domain controllers have the default schema to backup TPM owner authorization information in the separate object. If you are not upgrading your domain controller to Windows Server 2012 you need to extend the schema to support this change. If Active Directory backup of the TPM owner authorization value is enabled in a Windows Server 2008 R2 environment without extending the schema, the TPM provisioning will fail and the TPM will remain in a Not Ready state for computers running Windows 8. - -If your computer is not being joined to a domain the TPM owner authorization value will be stored in the local computer registry. Using BitLocker to encrypt the operating system drive will protect the owner authorization value from being disclosed when the computer is at rest, but there is a risk that a malicious user could obtain the TPM owner authorization value when the computer is unlocked. Therefore, we recommend that in this situation you configure your computer to automatically lock after 30 seconds of inactivity. If automatic locking is not used, then you should consider removing full owner authorization from the computer registry. - -**Registry information** - -Registry key: HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\TPM -DWORD: OSManagedAuthLevel - -| Value Data | Setting | -| - | - | -| 0 | None| -| 2 | Delegated| -| 4 | Full| -  ->**Note:**  If the operating system managed TPM authentication setting is changed from "Full" to "Delegated" the full TPM owner authorization value will be regenerated and any copies of the original TPM owner authorization value will be invalid. If you are backing up the TPM owner authorization value to AD DS, the new owner authorization value will be automatically backed up to AD DS when it is changed. -  -## TPM Cmdlets +## TPM Cmdlets If you are using PowerShell to script and manage your computers, you can now manage the TPM using Windows PowerShell as well. To install the TPM cmdlets use the following command: `dism /online /enable-feature /FeatureName:tpm-psh-cmdlets` -For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -## Physical presence interface +For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). -The TCG specifications for TPMs require physical presence to perform some TPM administrative functions, such as turning on and turning off the TPM. Physical presence means a person must physically interact with the system and the -TPM interface to confirm or reject changes to TPM status. This typically cannot be automated with scripts or other automation tools unless the individual OEM supplies them. Here are some are examples of TPM administrative tasks that require physical presence: +## Physical presence interface -- Activating the TPM -- Clearing the existing owner information from the TPM without the owner’s password -- Deactivating the TPM -- Disabling the TPM temporarily without the owner’s password +For TPM 1.2, the TCG specifications for TPMs require physical presence (typically, pressing a key) for turning the TPM on, turning it off, or clearing it. These actions typically cannot be automated with scripts or other automation tools unless the individual OEM supplies them. -## States of existence in a TPM +## TPM 1.2 states and initialization -For each of these TPM 1.2 states of existence, the TPM can transition into another state (for example, moving from disabled to enabled). The states are not exclusive. +For TPM 1.2, there are multiple possible states. Windows 10 automatically initializes the TPM, which brings it to an enabled, activated, and owned state. -These states of existence do not apply for Trusted Platform Module 2.0 because it cannot be turned off from within the operating system environment. +## Endorsement keys -| State | Description | -| - | - | -| Enabled| Most features of the TPM are available.
    The TPM can be enabled and disabled multiple times within a boot period, if ownership is taken.| -| Disabled| The TPM restricts most operations. Exceptions include the ability to report TPM capabilities, extend and reset Platform Configuration Register (PCR) functions, and perform hashing and basic initialization.
    The TPM can be enabled and disabled multiple times within a start-up period. | -| Activated| Most features of the TPM are available. The TPM can be activated and deactivated only through physical presence, which requires a restart.| -| Deactivated| Similar to the disabled state, with the exception that ownership can be taken when the TPM is deactivated and enabled. The TPM can be activated and deactivated only through physical presence, which requires a restart.| -| Owned| Most features of the TPM are available. The TPM has an endorsement key and storage root key, and the owner knows information about owner authorization data.| -| Unowned| The TPM does not have a storage root key, and it may or may not have an endorsement key.| -  ->**Important:**  Applications cannot use the TPM until the state is enabled, activated, and owned. All operations are available only when the TPM is in this state. -  -The state of the TPM exists independently of the computer’s operating system. When the TPM is enabled, activated, and owned, the state of the TPM is preserved if the operating system is reinstalled. +For a TPM to be usable by a trusted application, it must contain an endorsement key, which is an RSA key pair. The private half of the key pair is held inside the TPM, and it is never revealed or accessible outside the TPM. -## Endorsement keys - -For a TPM to be usable by a trusted application, it must contain an endorsement key, which is an RSA key pair. The private half of the key pair is held inside the TPM, and it is never revealed or accessible outside the TPM. If the -TPM does not contain an endorsement key, the application might cause the TPM to generate one automatically as part of the setup. -An endorsement key can be created at various points in the TPM’s lifecycle, but it needs to be created only once for the lifetime of the TPM. The existence of an endorsement key is a requirement before TPM ownership can be taken. - -## Key attestation +## Key attestation TPM key attestation allows a certification authority to verify that a private key is actually protected by a TPM and that the TPM is one that the certification authority trusts. Endorsement keys which have been proven valid can be used to bind the user identity to a device. Moreover, the user certificate with a TPM attested key provides higher security assurance backed up by the non-exportability, anti-hammering, and isolation of keys provided by a TPM. -## How the TPM mitigates dictionary attacks +## How the TPM mitigates dictionary attacks When a TPM processes a command, it does so in a protected environment, for example, a dedicated microcontroller on a discrete chip or a special hardware-protected mode on the main CPU. A TPM can be used to create a cryptographic key that is not disclosed outside the TPM, but is able to be used in the TPM after the correct authorization value is provided. @@ -144,8 +101,9 @@ Because many entities can use the TPM, a single authorization success cannot res TPM 2.0 has well defined dictionary attack logic behavior. This is in contrast to TPM 1.2 for which the dictionary attack logic was set by the manufacturer, and the logic varied widely throughout the industry. ->**Warning:**  For the purposes of this topic, Windows 8 Certified Hardware also pertains to Windows 8.1 systems. The following references to “Windows” include these supported Windows versions. -  +> [!WARNING] +> For the purposes of this topic, Windows 8 Certified Hardware also pertains to Windows 8.1 systems. The following references to “Windows” include these supported Windows versions. + For Windows 8 Certified Hardware systems with TPM 2.0, the TPM is configured by Windows to lock after 32 authorization failures and to forget one authorization failure every two hours. This means that a user could quickly attempt to use a key with the wrong authorization value 32 times. For each of the 32 attempts, the TPM records if the authorization value was correct or not. This inadvertently causes the TPM to enter a locked state after 32 failed attempts. Attempts to use a key with an authorization value for the next two hours would not return success or failure; instead the response indicates that the TPM is locked. After two hours, one authorization failure is forgotten and the number of authorization failures remembered by the TPM drops to 31, so the TPM leaves the locked state and returns to normal operation. With the correct authorization value, keys could be used normally if no authorization failures occur during the next two hours. If a period of 64 hours elapses with no authorization failures, the TPM does not remember any authorization failures, and 32 failed attempts could occur again. @@ -165,35 +123,15 @@ For example, when BitLocker is used with a TPM plus PIN configuration, it needs The Windows TPM-based smart card, which is a virtual smart card, can be configured to allow sign in to the system. In contrast with physical smart cards, the sign-in process uses a TPM-based key with an authorization value. The following list shows the advantages of virtual smart cards: -Physical smart cards can enforce lockout for only the physical smart card PIN, and they can reset the lockout after the correct PIN is entered. With a virtual smart card, the TPM’s dictionary attack is not reset after a successful authentication. The allowed number of authorization failures before the TPM enters lockout includes many factors. +- Physical smart cards can enforce lockout for only the physical smart card PIN, and they can reset the lockout after the correct PIN is entered. With a virtual smart card, the TPM’s dictionary attack is not reset after a successful authentication. The allowed number of authorization failures before the TPM enters lockout includes many factors. -Hardware manufacturers and software developers have the option to use the security features of the TPM to meet their requirements. +- Hardware manufacturers and software developers have the option to use the security features of the TPM to meet their requirements. -The intent of selecting 32 failures as the lock-out threshold is so users rarely lock the TPM (even when learning to type new passwords or if they frequently lock and unlock their computers). If users lock the TPM, they must to wait two hours or use some other credential to sign in, such as a user name and password. +- The intent of selecting 32 failures as the lock-out threshold is so users rarely lock the TPM (even when learning to type new passwords or if they frequently lock and unlock their computers). If users lock the TPM, they must to wait two hours or use some other credential to sign in, such as a user name and password. -## How do I check the state of my TPM? +## Related topics -You can check the state of the TPM on a PC by running the Trusted Platform Module snap-in (tpm.msc). The **Status** heading tells you the state of your TPM. The TPM can be in one of the following states: **Ready for use**, **Ready for use, with reduced functionality**, and **Not ready for use**. To take advantage of most of the TPM features in Windows 10, the TPM must be **Ready for use**. - -## What can I do if my TPM is in reduced functionality mode? - -If your TPM is in reduced functionality mode, some features that rely on the TPM will not function correctly. This is most often caused by doing a clean installation of Windows 10 on a device where Windows 8.1, Windows 8, or Windows 7 had previously been installed on the same hardware. If your TPM is in reduced functionality mode, the Status heading in the Trusted Platform Module snap-in shows **The TPM is ready for use, with reduced functionality**. -You can fix this by clearing the TPM. - -**To clear the TPM** - -1. Open the Trusted Platform Module snap-in (tpm.msc). -2. Click **Clear TPM**, and then click **Restart.** -3. When the PC is restarting, you might be prompted to press a button on the keyboard to clear the TPM. -4. After the PC restarts, your TPM will be automatically prepared for use by Windows 10. - ->**Note:**  Clearing the TPM causes you to lose all TPM keys and data protected by those keys, such as a virtual smart card. You should not perform this procedure on a device you do not own, such as a work or school PC, without being instructed to do so by your IT administrator. -  -## Additional resources - -- [Trusted Platform Module Technology Overview](trusted-platform-module-overview.md) -- [Trusted Platform Module Services Group Policy Settings](trusted-platform-module-services-group-policy-settings.md) +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) - [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -- [Schema Extensions for Windows Server 2008 R2 to support AD DS backup of TPM information from Windows 8 clients](ad-ds-schema-extensions-to-support-tpm-backup.md) -- [TPM WMI providers](https://go.microsoft.com/fwlink/p/?LinkId=93478) -- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](http://technet.microsoft.com/library/jj592683.aspx) +- [TPM WMI providers](https://msdn.microsoft.com/library/aa376476.aspx) +- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](https://technet.microsoft.com/itpro/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies#bkmk-tpmconfigurations) \ No newline at end of file diff --git a/windows/keep-secure/tpm-recommendations.md b/windows/keep-secure/tpm-recommendations.md index 0b34d5a9a8..20d05b68d2 100644 --- a/windows/keep-secure/tpm-recommendations.md +++ b/windows/keep-secure/tpm-recommendations.md @@ -12,26 +12,21 @@ author: brianlic-msft # TPM recommendations +**Applies to** + **Applies to** - Windows 10 -- Windows 10 Mobile -- Windows Server 2016 -- Windows 10 IoT Core (IoT Core) +- Windows Server 2016 This topic provides recommendations for Trusted Platform Module (TPM) technology for Windows 10. -## Overview +For a basic feature description of TPM, see the [Trusted Platform Module Technology Overview](trusted-platform-module-overview.md). -Trusted Platform Module (TPM) technology is designed to provide hardware-based, security-related functions. It has a security-related crypto-processor that is designed to carry out cryptographic operations in a variety of devices and form factors. It includes multiple physical security mechanisms to help prevent malicious software from tampering with the security functions of the TPM. Some of the key advantages of using TPM technology are that you can: +## TPM design and implementation -1. Generate, store, use, and protected cryptographic keys, -2. Use TPM technology for platform device authentication by using a unique endorsement key (EK), and -3. Help enhance platform integrity by taking and storing security measurements. - -The most common TPM functions are used for system integrity measurements and for key creation and use. During the boot process of a system, the boot code that is loaded (including firmware and the operating system components) can be measured and recorded in the TPM. The integrity measurements can be used as evidence for how a system started and to make sure that a TPM-based key was used only when the correct software was used to boot the system. Traditionally, TPMs have been discrete chips soldered to a computer’s motherboard. Such implementations allow the computer’s original equipment manufacturer (OEM) to evaluate and certify the TPM separate from the rest of the system. Although discrete TPM implementations are still common, they can be problematic for integrated devices that are small or have low power consumption. Some newer TPM implementations integrate TPM functionality into the same chipset as other platform components while still providing logical separation similar to discrete TPM chips. -TPMs are passive: they receive commands and return responses. To realize the full benefit of a TPM, the OEM must carefully integrate system hardware and firmware with the TPM to send it commands and react to its responses. TPMs were originally designed to provide security and privacy benefits to a platform’s owner and users, but newer versions can provide security and privacy benefits to the system hardware itself. Before it can be used for advanced scenarios, however, a TPM must be provisioned. Windows 10 automatically provisions a TPM, but if the user reinstalls the operating system, he or she may need to tell the operating system to explicitly provision the TPM again before it can use all the TPM’s features. +TPMs are passive: they receive commands and return responses. To realize the full benefit of a TPM, the OEM must carefully integrate system hardware and firmware with the TPM to send it commands and react to its responses. TPMs were originally designed to provide security and privacy benefits to a platform’s owner and users, but newer versions can provide security and privacy benefits to the system hardware itself. Before it can be used for advanced scenarios, however, a TPM must be provisioned. Windows 10 automatically provisions a TPM, but if the user is planning to reinstall the operating system, he or she may need to clear the TPM before reinstalling so that Windows can take full advantage of the TPM. The Trusted Computing Group (TCG) is the nonprofit organization that publishes and maintains the TPM specification. The TCG exists to develop, define, and promote vendor-neutral, global industry standards that support a hardware-based root of trust for interoperable trusted computing platforms. The TCG also publishes the TPM specification as the international standard ISO/IEC 11889, using the Publicly Available Specification Submission Process that the Joint Technical Committee 1 defines between the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC). @@ -39,9 +34,6 @@ OEMs implement the TPM as a component in a trusted computing platform, such as a The TCG designed the TPM as a low-cost, mass-market security solution that addresses the requirements of different customer segments. There are variations in the security properties of different TPM implementations just as there are variations in customer and regulatory requirements for different sectors. In public-sector procurement, for example, some governments have clearly defined security requirements for TPMs whereas others do not. ->**Note:**  Some information relates to pre-released product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. - - ## TPM 1.2 vs. 2.0 comparison From an industry standard, Microsoft has been an industry leader in moving and standardizing on TPM 2.0, which has many key realized benefits across algorithms, crypto, hierarchy, root keys, authorization and NV RAM. @@ -51,16 +43,23 @@ From an industry standard, Microsoft has been an industry leader in moving and s TPM 2.0 products and systems have important security advantages over TPM 1.2, including: - The TPM 1.2 spec only allows for the use of RSA and the SHA-1 hashing algorithm. + - For security reasons, some entities are moving away from SHA-1. Notably, NIST has required many federal agencies to move to SHA-256 as of 2014, and technology leaders, including Microsoft and Google have announced they will remove support for SHA-1 based signing or certificates in 2017. + - TPM 2.0 **enables greater crypto agility** by being more flexible with respect to cryptographic algorithms. - - TPM 2.0 supports SHA-256 as well as ECC, the latter being critical to drive signing and key generation performance. + - TPM 2.0 supports newer algorithms, which can improve drive signing and key generation performance. For the full list of supported algorithms, see the [TCG Algorithm Registry](http://www.trustedcomputinggroup.org/tcg-algorithm-registry/). Some TPMs do not support all algorithms. + + - For the list of algorithms that Windows supports in the platform cryptographic storage provider, see [CNG Cryptographic Algorithm Providers](https://msdn.microsoft.com/library/windows/desktop/bb931354(v=vs.85).aspx). + - TPM 2.0 achieved ISO standardization ([ISO/IEC 11889:2015](http://blogs.microsoft.com/cybertrust/2015/06/29/governments-recognize-the-importance-of-tpm-2-0-through-iso-adoption/)). + - Use of TPM 2.0 may help eliminate the need for OEMs to make exception to standard configurations for certain countries and regions. - TPM 2.0 offers a more **consistent experience** across different implementations. - TPM 1.2 implementations vary in policy settings. This may result in support issues as lockout policies vary. + - TPM 2.0 lockout policy is configured by Windows, ensuring a consistent dictionary attack protection guarantee. - While TPM 1.2 parts are discrete silicon components which are typically soldered on the motherboard, TPM 2.0 is available as a **discrete (dTPM)** silicon component in a single semiconductor package, an **integrated** component incorporated in one or more semiconductor packages - alongside other logic units in the same package(s) - and as a **firmware (fTPM)** based component running in a trusted execution environment (TEE) on a general purpose SoC. @@ -69,22 +68,24 @@ TPM 2.0 products and systems have important security advantages over TPM 1.2, in There are three implementation options for TPMs: -- Discrete TPM chip as a separate component in its own semiconductor package -- Integrated TPM solution, using dedicated hardware integrated into one or more semiconductor packages alongside, but logically separate from, other components +- Discrete TPM chip as a separate component in its own semiconductor package + +- Integrated TPM solution, using dedicated hardware integrated into one or more semiconductor packages alongside, but logically separate from, other components + - Firmware TPM solution, running the TPM in firmware in a Trusted Execution mode of a general purpose computation unit -Windows uses any compatible TPM in the same way. Microsoft does not take a position on which way a TPM should be implemented and there is a wide ecosystem of available TPM solutions which should suit all needs. +Windows uses any compatible TPM in the same way. Microsoft does not take a position on which way a TPM should be implemented and there is a wide ecosystem of available TPM solutions which should suit all needs. -## Is there any importance for TPM for consumer? +## Is there any importance for TPM for consumers? -For end consumers, TPM is behind the scenes but is still very relevant. TPM is used for Windows Hello, Windows Hello for Business and in the future, will be a components of many other key security features in Windows. TPM secures the PIN, helps encrypt passwords, and builds on our overall Windows 10 experience story for security as a critical pillar. Using Windows on a system with a TPM enables a deeper and broader level of security coverage. +For end consumers, TPM is behind the scenes but is still very relevant. TPM is used for Windows Hello, Windows Hello for Business and in the future, will be a component of many other key security features in Windows. TPM secures the PIN, helps encrypt passwords, and builds on our overall Windows 10 experience story for security as a critical pillar. Using Windows on a system with a TPM enables a deeper and broader level of security coverage. ## TPM 2.0 Compliance for Windows 10 ### Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) -- Since July 28, 2016, all new device models, lines or series (or if you are updating the hardware configuration of a existing model, line or series with a major update, such as CPU, graphic cards) must implement and enable by default TPM 2.0 (details in section 3.7, https://msdn.microsoft.com/library/windows/hardware/dn915086(v=vs.85).aspx) - +- Since July 28, 2016, all new device models, lines or series (or if you are updating the hardware configuration of a existing model, line or series with a major update, such as CPU, graphic cards) must implement and enable by default TPM 2.0 (details in section 3.7 of the [Minimum hardware requirements](https://msdn.microsoft.com/library/windows/hardware/dn915086(v=vs.85).aspx) page). + ### IoT Core - TPM is optional on IoT Core. @@ -95,212 +96,28 @@ For end consumers, TPM is behind the scenes but is still very relevant. TPM is ## TPM and Windows Features -The following table defines which Windows features require TPM support. Some features are not applicable to Windows 7/8/8.1 and are noted accordingly. +The following table defines which Windows features require TPM support. - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Windows FeaturesWindows 7/8/8.1 TPM 1.2Windows 10 TPM 1.2Windows 10 TPM 2.0Details
    Measured BootRequiredRequiredRequiredMeasured boot requires TPM 1.2 or 2.0 and UEFI Secure boot.
    BitlockerRequiredRequiredRequiredTPM 1.2 or later required or a removable USB memory device such as a flash drive.
    Passport: Domain AADJ Joinn/aRequiredRequiredSupports both versions of TPM, but requires TPM with HMAC and EK certificate for key attestation support.
    Passport: MSA or Local Accountn/aRequiredRequiredTPM 2.0 is required with HMAC and EK certificate for key attestation support.
    Device Encryptionn/aNot RequiredRequiredTPM 2.0 is required for all InstantGo devices.
    Device Guard / Configurable Code Integrityn/aOptionalOptional
    Credential Guardn/aRequiredRequiredFor Windows 10, version 1511, TPM 1.2 or 2.0 is highly recommended. If you don't have a TPM installed, Credential Guard will still be enabled, but the keys used to encrypt Credential Guard will not be protected by the TPM.
    Device Health Attestationn/aRequiredRequired
    Windows Hellon/aNot RequiredNot Required
    UEFI Secure BootNot RequiredNot RequiredNot Required
    Platform Key Storage providern/aRequiredRequired
    Virtual Smart Cardn/aRequiredRequired
    Certificate storage (TPM bound)n/aRequiredRequired
    -  -## Chipset options for TPM 2.0 -There is a vibrant ecosystem of TPM manufacturers. -### Discrete TPM - --- - - - - - - - - - - -
    Supplier
      -
    • Infineon
    • -
    • Nuvoton
    • -
    • Atmel
    • -
    • NationZ
    • -
    • ST Micro
    • -
    -  -### Integrated TPM - --- - - - - - - - - - - - - -
    SupplierChipset
    Intel
      -
    • Atom (CloverTrail) -
    • Baytrail
    • -
    • Braswell
    • -
    • 4th generation Core (Haswell)
    • -
    • 5th generation Core (Broadwell)
    • -
    • 6th generation Core (Skylake)
    • -
    • 7th generation Core (Kaby Lake)
    • -
    +| Windows Features | Windows 10 TPM 1.2 | Windows 10 TPM 2.0 | Details | +|-------------------------|----------------------|----------------------|----------| +| Measured Boot | Required | Required | Measured boot requires TPM 1.2 or 2.0 and UEFI Secure boot. | +| Bitlocker | Required | Required | TPM 1.2 or later required or a removable USB memory device such as a flash drive. | +| Passport: Domain AADJ Join | Required | Required | Supports both versions of TPM, but requires TPM with HMAC and EK certificate for key attestation support. | +| Passport: MSA or Local Account | Required | Required | TPM 2.0 is required with HMAC and EK certificate for key attestation support. | +| Device Encryption | Not Applicable | Required | TPM 2.0 is required for all InstantGo devices. | +| Device Guard / Configurable Code Integrity | See next column | Recommended | | +| Credential Guard | Required | Required | For Windows 10, version 1511, TPM 1.2 or 2.0 is highly recommended. If you don't have a TPM installed, Credential Guard will still be enabled, but the keys used to encrypt Credential Guard will not be protected by the TPM. | +| Device Health Attestation | Required | Required | | +| Windows Hello | Not Required | Recommended | | +| UEFI Secure Boot | Not Required | Recommended | | +| Platform Key Storage provider | Required | Required | | +| Virtual Smart Card | Required | Required | | +| Certificate storage (TPM bound) | Required | Required | | + +## OEM Status on TPM 2.0 system availability and certified parts -### Firmware TPM - ---- - - - - - - - - - - - - - - - - -
    SupplierChipset
    AMD
      -
    • Mullins
    • -
    • Beema
    • -
    • Carrizo
    • -
    Qualcomm
      -
    • MSM8994
    • -
    • MSM8992
    • -
    • MSM8952
    • -
    • MSM8909
    • -
    • MSM8208
    • -
    -  -## OEM Feedback and Status on TPM 2.0 system availability +Government customers and enterprise customers in regulated industries may have acquisition standards that require use of common certified TPM parts. As a result, OEMs, who provide the devices, may be required to use only certified TPM components on their commercial class systems. For more information, contact your OEM or hardware vendor. -### Certified TPM parts +## Related topics -Government customers and enterprise customers in regulated industries may have acquisition standards that require use of common certified TPM parts. As a result, OEMs, who provide the devices, may be required to use only certified TPM components on their commercial class systems. Discrete TPM 2.0 vendors have completion certification. - -### Windows 7 32-bit support - -Even though Windows 7 shipped before the TPM 2.0 spec or products existed, Microsoft backported TPM 2.0 support to Windows 7 64-bit and released it in summer 2014 as a downloadable Windows hotfix for UEFI based Windows 7 systems. Microsoft is not currently planning to backport support to Windows 7 32-bit support. +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) \ No newline at end of file diff --git a/windows/keep-secure/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md b/windows/keep-secure/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md index e3c1d51f68..e95197be01 100644 --- a/windows/keep-secure/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md @@ -1,7 +1,7 @@ --- title: Troubleshoot Windows Defender ATP onboarding issues description: Troubleshoot issues that might arise during the onboarding of endpoints or to the Windows Defender ATP service. -keywords: troubleshoot onboarding, onboarding issues, event viewer, data collection and preview builds, telemetry and diagnostics +keywords: troubleshoot onboarding, onboarding issues, event viewer, data collection and preview builds, sensor data and diagnostics search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy @@ -65,7 +65,7 @@ Event ID | Error Type | Resolution steps 5 | Offboarding data was found but couldn't be deleted | Check the permissions on the registry, specifically ```HKLM\SOFTWARE\Policies\Microsoft\Windows Advanced Threat Protection```. 10 | Onboarding data couldn't be written to registry | Check the permissions on the registry, specifically
    ```HKLM\SOFTWARE\Policies\Microsoft\Windows Advanced Threat```.
    Verify that the script was ran as an administrator. 15 | Failed to start SENSE service |Check the service status (```sc query sense``` command). Make sure it's not in an intermediate state (*'Pending_Stopped'*, *'Pending_Running'*) and try to run the script again (with administrator rights). -15 | Failed to start SENSE service | If the message of the error is: System error 577 has occurred. You need to enable the Windows Defender ELAM driver, see [Ensure the Windows Defender ELAM driver is enabled](#ensure-the-windows-defender-elam-driver-is-enabled) for instructions. +15 | Failed to start SENSE service | If the message of the error is: System error 577 has occurred. You need to enable the Windows Defender ELAM driver, see [Ensure that Windows Defender is not disabled by a policy](#ensure-that-windows-defender-is-not-disabled-by-a-policy) for instructions. 30 | The script failed to wait for the service to start running | The service could have taken more time to start or has encountered errors while trying to start. For more information on events and errors related to SENSE, see [Review events and errors on endpoints with Event viewer](event-error-codes-windows-defender-advanced-threat-protection.md). 35 | The script failed to find needed onboarding status registry value | When the SENSE service starts for the first time, it writes onboarding status to the registry location
    ```HKLM\SOFTWARE\Microsoft\Windows Advanced Threat Protection\Status```.
    The script failed to find it after several seconds. You can manually test it and check if it's there. For more information on events and errors related to SENSE, see [Review events and errors on endpoints with Event viewer](event-error-codes-windows-defender-advanced-threat-protection.md). 40 | SENSE service onboarding status is not set to **1** | The SENSE service has failed to onboard properly. For more information on events and errors related to SENSE, see [Review events and errors on endpoints with Event viewer](event-error-codes-windows-defender-advanced-threat-protection.md). @@ -124,7 +124,7 @@ If the deployment tools used does not indicate an error in the onboarding proces - [Ensure the telemetry and diagnostics service is enabled](#ensure-the-telemetry-and-diagnostics-service-is-enabled) - [Ensure the service is set to start](#ensure-the-service-is-set-to-start) - [Ensure the endpoint has an Internet connection](#ensure-the-endpoint-has-an-internet-connection) -- [Ensure the Windows Defender ELAM driver is enabled](#ensure-the-windows-defender-elam-driver-is-enabled) +- [Ensure that Windows Defender is not disabled by a policy](#ensure-that-windows-defender-is-not-disabled-by-a-policy) ### View agent onboarding errors in the endpoint event log @@ -214,7 +214,7 @@ First, you should check that the service is set to start automatically when Wind ### Ensure the endpoint has an Internet connection -The Window Defender ATP sensor requires Microsoft Windows HTTP (WinHTTP) to report telemetry and communicate with the Windows Defender ATP service. +The Window Defender ATP sensor requires Microsoft Windows HTTP (WinHTTP) to report sensor data and communicate with the Windows Defender ATP service. WinHTTP is independent of the Internet browsing proxy settings and other user context applications and must be able to detect the proxy servers that are available in your particular environment. @@ -222,98 +222,31 @@ To ensure that sensor has service connectivity, follow the steps described in th If the verification fails and your environment is using a proxy to connect to the Internet, then follow the steps described in [Configure proxy and Internet connectivity settings](configure-proxy-internet-windows-defender-advanced-threat-protection.md) topic. -### Ensure the Windows Defender ELAM driver is enabled -If your endpoints are running a third-party antimalware client, the Windows Defender ATP agent needs the Windows Defender Early Launch Antimalware (ELAM) driver to be enabled. +### Ensure that Windows Defender is not disabled by a policy +**Problem**: The Windows Defender ATP service does not start after onboarding. -**Check the ELAM driver status:** +**Symptom**: Onboarding successfully completes, but you see error 577 when trying to start the service. -1. Open a command-line prompt on the endpoint: +**Solution**: If your endpoints are running a third-party antimalware client, the Windows Defender ATP agent needs the Windows Defender Early Launch Antimalware (ELAM) driver to be enabled. You must ensure that it's not disabled in system policy. - a. Click **Start**, type **cmd**, and select **Command prompt**. +- Depending on the tool that you use to implement policies, you'll need to verify that the following Windows Defender policies are set to ```0``` or that the settings are cleared: -2. Enter the following command, and press Enter: - ``` - sc qc WdBoot - ``` - If the ELAM driver is enabled, the output will be: + - ```DisableAntiSpyware``` + - ```DisableAntiVirus``` - ``` - [SC] QueryServiceConfig SUCCESS + For example, in Group Policy: - SERVICE_NAME: WdBoot - TYPE : 1 KERNEL_DRIVER - START_TYPE : 0 BOOT_START - ERROR_CONTROL : 1 NORMAL - BINARY_PATH_NAME : \SystemRoot\system32\drivers\WdBoot.sys - LOAD_ORDER_GROUP : Early-Launch - TAG : 0 - DISPLAY_NAME : Windows Defender Boot Driver - DEPENDENCIES : - SERVICE_START_NAME : - ``` - If the ELAM driver is disabled the output will be: - ``` - [SC] QueryServiceConfig SUCCESS + ``` + ``` +- After clearing the policy, run the onboarding steps again on the endpoint. - SERVICE_NAME: WdBoot - TYPE : 1 KERNEL_DRIVER - START_TYPE : 0 DEMAND_START - ERROR_CONTROL : 1 NORMAL - BINARY_PATH_NAME : \SystemRoot\system32\drivers\WdBoot.sys - LOAD_ORDER_GROUP : _Early-Launch - TAG : 0 - DISPLAY_NAME : Windows Defender Boot Driver - DEPENDENCIES : - SERVICE_START_NAME : - ``` +- You can also check the following registry key values to verify that the policy is disabled: -#### Enable the ELAM driver + 1. Open the registry ```key HKEY_LOCAL_MACHINE\ SOFTWARE\Policies\Microsoft\Windows Defender```. + 2. Find the value ```DisableAntiSpyware```. + 3. Ensure that the value is set to 0. -1. Open an elevated PowerShell console on the endpoint: - - a. Click **Start**, type **powershell**. - - b. Right-click **Command prompt** and select **Run as administrator**. - -2. Run the following PowerShell cmdlet: - - ```text - 'Set-ExecutionPolicy -ExecutionPolicy Bypass’ - ``` -3. Run the following PowerShell script: - - ```text - Add-Type @' - using System; - using System.IO; - using System.Runtime.InteropServices; - using Microsoft.Win32.SafeHandles; - using System.ComponentModel; - - public static class Elam{ - [DllImport("Kernel32", CharSet=CharSet.Auto, SetLastError=true)] - public static extern bool InstallELAMCertificateInfo(SafeFileHandle handle); - - public static void InstallWdBoot(string path) - { - Console.Out.WriteLine("About to call create file on {0}", path); - var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read); - var handle = stream.SafeFileHandle; - - Console.Out.WriteLine("About to call InstallELAMCertificateInfo on handle {0}", handle.DangerousGetHandle()); - if (!InstallELAMCertificateInfo(handle)) - { - Console.Out.WriteLine("Call failed."); - throw new Win32Exception(Marshal.GetLastWin32Error()); - } - Console.Out.WriteLine("Call successful."); - } - } - '@ - - $driverPath = $env:SystemRoot + "\System32\Drivers\WdBoot.sys" - [Elam]::InstallWdBoot($driverPath) - ``` + ![Image of registry key for Windows Defender](images/atp-disableantispyware-regkey.png) diff --git a/windows/keep-secure/troubleshoot-windows-defender-advanced-threat-protection.md b/windows/keep-secure/troubleshoot-windows-defender-advanced-threat-protection.md index fd485e8645..4cb0a35b53 100644 --- a/windows/keep-secure/troubleshoot-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/troubleshoot-windows-defender-advanced-threat-protection.md @@ -46,6 +46,7 @@ U.S. region: - winatpfeedback.windows.com - winatpmanagement.windows.com - winatponboarding.windows.com +- winatpservicehealth.windows.com EU region: @@ -57,11 +58,18 @@ EU region: - winatpfeedback.windows.com - winatpmanagement.windows.com - winatponboarding.windows.com +- winatpservicehealth.windows.com ### Windows Defender ATP service shows event or error logs in the Event Viewer See the topic [Review events and errors on endpoints with Event Viewer](event-error-codes-windows-defender-advanced-threat-protection.md) for a list of event IDs that are reported by the Windows Defender ATP service. The topic also contains troubleshooting steps for event errors. +### Windows Defender ATP service fails to start after a reboot and shows error 577 + +If onboarding endpoints successfully completes but Windows Defender ATP does not start after a reboot and shows error 577, check that Windows Defender is not disabled by a policy. + +For more information, see [Ensure that Windows Defender is not disabled by policy](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md#ensure-that-windows-defender-is-not-disabled-by-a-policy). + ### Related topic - [Troubleshoot Windows Defender Advanced Threat Protection onboarding issues](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md) diff --git a/windows/keep-secure/troubleshoot-windows-defender-in-windows-10.md b/windows/keep-secure/troubleshoot-windows-defender-in-windows-10.md index df382bc1fe..ac8772f7b7 100644 --- a/windows/keep-secure/troubleshoot-windows-defender-in-windows-10.md +++ b/windows/keep-secure/troubleshoot-windows-defender-in-windows-10.md @@ -2222,7 +2222,7 @@ Description of the error.

    The support for your operating system has expired. Windows Defender is no longer supported on your operating system, has stopped functioning, and is not protecting against malware threats.

    - +Event ID: 2050

    Symbolic name:

    MALWAREPROTECTION_SAMPLESUBMISSION_UPLOADED

    Message:

    The antimalware engine has uploaded a file for further analysis.
    Filename <uploaded filename>
    Sha256: <file SHA>

    Description:

    A file was uploaded to the Windows Defender Antimalware cloud for further analysis or processing.

    Event ID: 3002 diff --git a/windows/keep-secure/trusted-platform-module-overview.md b/windows/keep-secure/trusted-platform-module-overview.md index a1b3a32c2d..ba05130ce1 100644 --- a/windows/keep-secure/trusted-platform-module-overview.md +++ b/windows/keep-secure/trusted-platform-module-overview.md @@ -1,6 +1,6 @@ --- title: Trusted Platform Module Technology Overview (Windows 10) -description: This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. The topic provides links to other resources about the TPM. +description: This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. ms.assetid: face8932-b034-4319-86ac-db1163d46538 ms.prod: w10 ms.mktglfcycl: deploy @@ -14,64 +14,70 @@ author: brianlic-msft **Applies to** - Windows 10 +- Windows Server 2016 -This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. The topic provides links to other resources about the TPM. +This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. -## Feature description +## Feature description Trusted Platform Module (TPM) technology is designed to provide hardware-based, security-related functions. A TPM chip is a secure crypto-processor that is designed to carry out cryptographic operations. The chip includes multiple physical security mechanisms to make it tamper resistant, and malicious software is unable to tamper with the security functions of the TPM. Some of the key advantages of using TPM technology are that you can: - Generate, store, and limit the use of cryptographic keys. + - Use TPM technology for platform device authentication by using the TPM’s unique RSA key, which is burned into itself. + - Help ensure platform integrity by taking and storing security measurements. The most common TPM functions are used for system integrity measurements and for key creation and use. During the boot process of a system, the boot code that is loaded (including firmware and the operating system components) can be measured and recorded in the TPM. The integrity measurements can be used as evidence for how a system started and to make sure that a TPM-based key was used only when the correct software was used to boot the system. TPM-based keys can be configured in a variety of ways. One option is to make a TPM-based key unavailable outside the TPM. This is good to mitigate phishing attacks because it prevents the key from being copied and used without the TPM. TPM-based keys can also be configured to require an authorization value to use them. If too many incorrect authorization guesses occur, the TPM will activate its dictionary attack logic and prevent further authorization value guesses. -Different versions of the TPM are defined in specifications by the Trusted Computing Group (TCG). For more information, consult the TCG Web site (). +Different versions of the TPM are defined in specifications by the Trusted Computing Group (TCG). For more information, consult the [TCG Web site](http://www.trustedcomputinggroup.org/work-groups/trusted-platform-module/). -Windows can automatically provision and manage the TPM. Group Policy settings can be configured to control whether the TPM owner authorization value is backed up in Active Directory. Because the TPM state persists across operating system installations, TPM information is stored in a location in Active Directory that is separate from computer objects. Depending on an enterprise’s security goals, Group Policy can be configured to allow or prevent local administrators from resetting the TPM’s dictionary attack logic. Standard users can use the TPM, but Group Policy controls limit how many authorization failures standard users can attempt so that one user is unable to prevent other users or the administrator from using the TPM. TPM technology can also be used as a virtual smart card and for secure certificate storage. With BitLocker Network Unlock, domain-joined computers are not prompted for a BitLocker PIN. +### Automatic initialization of the TPM with Windows 10 -## Practical applications +Starting with Windows 10, the operating system automatically initializes and takes ownership of the TPM. This means that in most cases, we recommend that you avoid configuring the TPM through the TPM management console, **TPM.msc**. There are a few exceptions, mostly related to resetting or performing a clean installation on a PC. For more information, see [Clear all the keys from the TPM](initialize-and-configure-ownership-of-the-tpm.md#clear-all-the-keys-from-the-tpm). + +In certain specific enterprise scenarios limited to Windows 10, versions 1507 and 1511, Group Policy might be used to back up the TPM owner authorization value in Active Directory. Because the TPM state persists across operating system installations, this TPM information is stored in a location in Active Directory that is separate from computer objects. + +## Practical applications Certificates can be installed or created on computers that are using the TPM. After a computer is provisioned, the RSA private key for a certificate is bound to the TPM and cannot be exported. The TPM can also be used as a replacement for smart cards, which reduces the costs associated with creating and disbursing smart cards. Automated provisioning in the TPM reduces the cost of TPM deployment in an enterprise. New APIs for TPM management can determine if TPM provisioning actions require physical presence of a service technician to approve TPM state change requests during the boot process. -Antimalware software can use the boot measurements of the operating system start state to prove the integrity of a computer running Windows 10, Windows 8.1, Windows 8, Windows Server 2012 R2, or Windows Server 2012. These measurements include the launch of Hyper-V to test that datacenters using virtualization are not running untrusted hypervisors. With BitLocker Network Unlock, IT administrators can push an update without concerns that a computer is waiting for PIN entry. +Antimalware software can use the boot measurements of the operating system start state to prove the integrity of a computer running Windows 10 or Windows Server 2016. These measurements include the launch of Hyper-V to test that datacenters using virtualization are not running untrusted hypervisors. With BitLocker Network Unlock, IT administrators can push an update without concerns that a computer is waiting for PIN entry. -The TPM has several Group Policy settings that can be used to manage how it is used. These settings can be used to manage the owner authorization value, the blocked TPM commands, the standard user lockout, and the backup of the TPM to AD DS. For more info, see [Trusted Platform Module Services Group Policy Settings](trusted-platform-module-services-group-policy-settings.md). +The TPM has several Group Policy settings that might be useful in certain enterprise scenarios. For more info, see [TPM Group Policy Settings](trusted-platform-module-services-group-policy-settings.md). -## New and changed functionality +## New and changed functionality -For more info on new and changed functionality for Trusted Platform Module in Windows 10, see [What's new in Trusted Platform Module?](../whats-new/whats-new-windows-10-version-1507-and-1511.md#trusted-platform-module). +For more info on new and changed functionality for Trusted Platform Module in Windows 10, see [What's new in Trusted Platform Module?](https://technet.microsoft.com/itpro/windows/whats-new/whats-new-windows-10-version-1507-and-1511#trusted-platform-module). -## Device health attestation +## Device health attestation Device health attestation enables enterprises to establish trust based on hardware and software components of a managed device. With device heath attestation, you can configure an MDM server to query a health attestation service that will allow or deny a managed device access to a secure resource. Some things that you can check on the device are: - Is Data Execution Prevention supported and enabled? + - Is BitLocker Drive Encryption supported and enabled? + - Is SecureBoot supported and enabled? ->**Note:**  The device must be running Windows 10 and it must support at least TPM 2.0. -  -## Supported versions +> [!NOTE] +> The device must be running Windows 10 and it must support at least TPM 2.0. -| TPM version | Windows 10 | Windows Server 2012 R2, Windows 8.1, and Windows RT | Windows Server 2012, Windows 8, and Windows RT | Windows Server 2008 R2 and Windows 7 | -| - | - | - | - | - | -| TPM 1.2| X| X| X| X| -| TPM 2.0| X| X| X| X| +## Supported versions -## Additional Resources +| TPM version | Windows 10 | Windows Server 2016 | +|-------------|------------|---------------------| +| TPM 1.2 | X | X | +| TPM 2.0 | X | X | -- [TPM Fundamentals](tpm-fundamentals.md) -- [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) -- [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -- [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md) -- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](http://technet.microsoft.com/library/jj592683.aspx) -  -  +## Related topics + +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) +- [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) +- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](https://technet.microsoft.com/itpro/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies#bkmk-tpmconfigurations) diff --git a/windows/keep-secure/trusted-platform-module-services-group-policy-settings.md b/windows/keep-secure/trusted-platform-module-services-group-policy-settings.md index d927f73825..27fa6ec7db 100644 --- a/windows/keep-secure/trusted-platform-module-services-group-policy-settings.md +++ b/windows/keep-secure/trusted-platform-module-services-group-policy-settings.md @@ -13,102 +13,94 @@ author: brianlic-msft **Applies to** - Windows 10 +- Windows Server 2016 This topic for the IT professional describes the Trusted Platform Module (TPM) Services that can be controlled centrally by using Group Policy settings. -## - The TPM Services Group Policy settings are located at: **Computer Configuration\\Administrative Templates\\System\\Trusted Platform Module Services\\** -| Setting | Windows 10, version 1607 | Windows 10, version 1511 and Windows 10, version 1507 | Windows Server 2012 R2, Windows 8.1 and Windows RT | Windows Server 2012, Windows 8 and Windows RT | Windows Server 2008 R2 and Windows 7 | Windows Server 2008 and Windows Vista | -| - | - | - | - | - | - | - | -| [Turn on TPM backup to Active Directory Domain Services](#bkmk-tpmgp-addsbu) | | X| X| X| X| X| -| [Configure the list of blocked TPM commands](#bkmk-tpmgp-clbtc)| X| X| X| X| X| X| -| [Ignore the default list of blocked TPM commands](#bkmk-tpmgp-idlb) | X| X| X| X| X| X| -| [Ignore the local list of blocked TPM commands](#bkmk-tpmgp-illb) | X| X| X| X| X| X| -| [Configure the level of TPM owner authorization information available to the operating system](#bkmk-tpmgp-oauthos)| | X| X| X||| -| [Standard User Lockout Duration](#bkmk-tpmgp-suld)| X| X| X| X||| -| [Standard User Individual Lockout Threshold](#bkmk-individual)| X| X| X| X||| -| [Standard User Total Lockout Threshold](#bkmk-total)| X| X| X| X|||| +| Setting | Windows 10, version 1607 and Windows Server 2016 | Windows 10, version 1511 and Windows 10, version 1507 | +|-----------------|--------------------------------------------------|-------------------------------------------------------| +| [Turn on TPM backup to Active Directory Domain Services](#turn-on-tpm-backup-to-active-directory-domain-services) | | X | +| [Configure the list of blocked TPM commands](#configure-the-list-of-blocked-tpm-commands) | X | X | +| [Ignore the default list of blocked TPM commands](#ignore-the-default-list-of-blocked-tpm-commands) | X | X | +| [Ignore the local list of blocked TPM commands](#ignore-the-local-list-of-blocked-tpm-commands) | X | X | +| [Configure the level of TPM owner authorization information available to the operating system](#configure-the-level-of-tpm-owner-authorization-information-available-to-the-operating-system) | X | X | +| [Standard User Lockout Duration](#standard-user-lockout-duration) | X | X | +| [Standard User Individual Lockout Threshold](#standard-user-individual-lockout-threshold) | X | X | +| [Standard User Total Lockout Threshold](#standard-user-total-lockout-threshold) | X | X | -### Turn on TPM backup to Active Directory Domain Services +### Turn on TPM backup to Active Directory Domain Services This policy setting allows you to manage the Active Directory Domain Services (AD DS) backup of TPM owner information. ->[!NOTE] ->This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). - - TPM owner information includes a cryptographic hash of the TPM owner password. Certain TPM commands can be run only by the TPM owner. This hash authorizes the TPM to run these commands. ->[!IMPORTANT] ->To back up TPM owner information from a computer running Windows 10, version 1507, Windows 10, version 1511, Windows 8.1, or Windows 8, you might need to first set up appropriate schema extensions and access control settings on the domain so that the AD DS backup can succeed. Windows Server 2012 R2 and Windows Server 2012 include the required schema extensions by default. For more information, see [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md). This functionality is discontinued starting with Windows 10, version 1607. +> [!IMPORTANT] +> The **Turn on TPM backup to Active Directory Domain Services** is not available in the Windows 10, version 1607 and Windows Server 2016 and later versions of the ADMX files. If you enable this policy setting, TPM owner information will be automatically and silently backed up to AD DS when you use Windows to set or change a TPM owner password. When this policy setting is enabled, a TPM owner password cannot be set or changed unless the computer is connected to the domain and the AD DS backup succeeds. If you disable or do not configure this policy setting, TPM owner information will not be backed up to AD DS. ->[!NOTE] -> The **Turn on TPM backup to Active Directory Domain Services** is not available in the Windows 10, version 1607 and Windows Server 2016 and later versions of the ADMX files. - - -### Configure the list of blocked TPM commands +### Configure the list of blocked TPM commands This policy setting allows you to manage the Group Policy list of Trusted Platform Module (TPM) commands that are blocked by Windows. ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  -If you enable this policy setting, Windows will block the specified commands from being sent to the TPM on the computer. TPM commands are referenced by a command number. For example, command number 129 is **TPM\_OwnerReadInternalPub**, and command number 170 is **TPM\_FieldUpgrade**. To find the command number that is associated with each TPM command, at the command prompt, type **tpm.msc**to open the TPM Management Console and navigate to the **Command Management** section. +If you enable this policy setting, Windows will block the specified commands from being sent to the TPM on the computer. TPM commands are referenced by a command number. For example, command number 129 is **TPM\_OwnerReadInternalPub**, and command number 170 is **TPM\_FieldUpgrade**. To find the command number that is associated with each TPM command, at the command prompt, type **tpm.msc** to open the TPM Management Console and navigate to the **Command Management** section. If you disable or do not configure this policy setting, only those TPM commands that are specified through the default or local lists can be blocked by Windows. The default list of blocked TPM commands is preconfigured by Windows. - You can view the default list by typing **tpm.msc** at the command prompt, navigating to the **Command Management** section, and exposing the **On Default Block List** column. + - The local list of blocked TPM commands is configured outside of Group Policy by running the TPM Management Console or scripting using the **Win32\_Tpm** interface. For information how to enforce or ignore the default and local lists of blocked TPM commands, see -- [Ignore the default list of blocked TPM commands](#bkmk-tpmgp-idlb) -- [Ignore the local list of blocked TPM commands](#bkmk-tpmgp-illb) -### Ignore the default list of blocked TPM commands +- [Ignore the default list of blocked TPM commands](#ignore-the-default-list-of-blocked-tpm-commands) + +- [Ignore the local list of blocked TPM commands](#ignore-the-local-list-of-blocked-tpm-commands) + +### Ignore the default list of blocked TPM commands This policy setting allows you to enforce or ignore the computer's default list of blocked Trusted Platform Module (TPM) commands. ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  -The default list of blocked TPM commands is preconfigured by Windows. You can view the default list by typing **tpm.msc** at the command prompt to open the TPM Management Console, navigating to the **Command Management** section, and exposing the **On Default Block List** column. Also see the related policy setting, [Configure the list of blocked TPM commands](#bkmk-tpmgp-clbtc). +The default list of blocked TPM commands is preconfigured by Windows. You can view the default list by typing **tpm.msc** at the command prompt to open the TPM Management Console, navigating to the **Command Management** section, and exposing the **On Default Block List** column. Also see the related policy setting, [Configure the list of blocked TPM commands](#configure-the-list-of-blocked-tpm-commands). If you enable this policy setting, the Windows operating system will ignore the computer's default list of blocked TPM commands, and it will block only those TPM commands that are specified by Group Policy or the local list. If you disable or do not configure this policy setting, Windows will block the TPM commands in the default list, in addition to the commands that are specified by Group Policy and the local list of blocked TPM commands. -### Ignore the local list of blocked TPM commands +### Ignore the local list of blocked TPM commands This policy setting allows you to enforce or ignore the computer's local list of blocked Trusted Platform Module (TPM) commands. ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  -The local list of blocked TPM commands is configured outside of Group Policy by typing **tpm.msc** at the command prompt to open the TPM Management Console, or scripting using the **Win32\_Tpm** interface. (The default list of blocked TPM commands is preconfigured by Windows.) Also see the related policy setting to **Configure the list of blocked TPM commands**. +The local list of blocked TPM commands is configured outside of Group Policy by typing **tpm.msc** at the command prompt to open the TPM Management Console, or scripting using the **Win32\_Tpm** interface. (The default list of blocked TPM commands is preconfigured by Windows.) Also see the related policy setting, [Configure the list of blocked TPM commands](#configure-the-list-of-blocked-tpm-commands). If you enable this policy setting, the Windows operating system will ignore the computer's local list of blocked TPM commands, and it will block only those TPM commands that are specified by Group Policy or the default list. If you disable or do not configure this policy setting, Windows will block the TPM commands in the local list, in addition to the commands that are specified in Group Policy and the default list of blocked TPM commands. -### Configure the level of TPM owner authorization information available to the operating system +### Configure the level of TPM owner authorization information available to the operating system This policy setting configures how much of the TPM owner authorization information is stored in the registry of the local computer. Depending on the amount of TPM owner authorization information that is stored locally, the Windows operating system and TPM-based applications can perform certain actions in the TPM that require TPM owner authorization without requiring the user to enter the TPM owner password. ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  +> [!IMPORTANT] +> This policy setting is not available in the Windows 10, version 1607 and Windows Server 2016 and later versions of the ADMX files. + There are three TPM owner authentication settings that are managed by the Windows operating system. You can choose a value of **Full**, **Delegate**, or **None**. - **Full**   This setting stores the full TPM owner authorization, the TPM administrative delegation blob, and the TPM user delegation blob in the local registry. With this setting, you can use the TPM without requiring remote or external storage of the TPM owner authorization value. This setting is appropriate for scenarios that do not require you to reset the TPM anti-hammering logic or change the TPM owner authorization value. Some TPM-based applications may require that this setting is changed before features that depend on the TPM anti-hammering logic can be used. + - **Delegated**   This setting stores only the TPM administrative delegation blob and the TPM user delegation blob in the local registry. This setting is appropriate for use with TPM-based applications that depend on the TPM antihammering logic. This is the default setting in Windows. + - **None**   This setting provides compatibility with previous operating systems and applications. You can also use it for scenarios when TPM owner authorization cannot be stored locally. Using this setting might cause issues with some TPM-based applications. ->**Note:**  If the operating system managed TPM authentication setting is changed from **Full** to **Delegated**, the full TPM owner authorization value will be regenerated, and any copies of the previously set TPM owner authorization value will be invalid. -  +> [!NOTE] +> If the operating system managed TPM authentication setting is changed from **Full** to **Delegated**, the full TPM owner authorization value will be regenerated, and any copies of the previously set TPM owner authorization value will be invalid. + **Registry information** Registry key: HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\TPM @@ -117,43 +109,41 @@ DWORD: OSManagedAuthLevel The following table shows the TPM owner authorization values in the registry. -| Value Data | Setting | -| - | - | -| 0 | None| -| 2 | Delegated| -| 4 | Full| +| Value Data | Setting | +|------------|-----------| +| 0 | None | +| 2 | Delegated | +| 4 | Full | +   If you enable this policy setting, the Windows operating system will store the TPM owner authorization in the registry of the local computer according to the TPM authentication setting you choose. -If you disable or do not configure this policy setting, and the **Turn on TPM backup to Active Directory Domain Services** policy setting is also disabled or not configured, the default setting is to store the full TPM authorization value in the local registry. If this policy is disabled or not +If you disable or do not configure this policy setting, and the **Turn on TPM backup to Active Directory Domain Services** policy setting is also disabled or not configured, the default setting is to store the full TPM authorization value in the local registry. If this policy is disabled or not configured, and the **Turn on TPM backup to Active Directory Domain Services** policy setting is enabled, only the administrative delegation and the user delegation blobs are stored in the local registry. -### Standard User Lockout Duration +### Standard User Lockout Duration -This policy setting allows you to manage the duration in minutes for counting standard user authorization failures for Trusted Platform Module (TPM) commands requiring authorization. An authorization failure occurs each time a standard user sends a command to the TPM and receives an error response that indicates an authorization failure occurred. Authorization failures that are older than the duration you set are ignored. If the number of TPM commands with an authorization failure within the lockout duration equals a threshold, a standard user is prevented from sending commands that require +This policy setting allows you to manage the duration in minutes for counting standard user authorization failures for Trusted Platform Module (TPM) commands requiring authorization. An authorization failure occurs each time a standard user sends a command to the TPM and receives an error response that indicates an authorization failure occurred. Authorization failures that are older than the duration you set are ignored. If the number of TPM commands with an authorization failure within the lockout duration equals a threshold, a standard user is prevented from sending commands that require authorization to the TPM. ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  The TPM is designed to protect itself against password guessing attacks by entering a hardware lockout mode when it receives too many commands with an incorrect authorization value. When the TPM enters a lockout mode, it is global for all users (including administrators) and for Windows features such as BitLocker Drive Encryption. This setting helps administrators prevent the TPM hardware from entering a lockout mode by slowing the speed at which standard users can send commands that require authorization to the TPM. For each standard user, two thresholds apply. Exceeding either threshold prevents the user from sending a command that requires authorization to the TPM. Use the following policy settings to set the lockout duration: -- [Standard User Individual Lockout Threshold](#bkmk-individual)   This value is the maximum number of authorization failures that each standard user can have before the user is not allowed to send commands that require authorization to the TPM. -- [Standard User Total Lockout Threshold](#bkmk-total)   This value is the maximum total number of authorization failures that all standard users can have before all standard users are not allowed to send commands that require authorization to the TPM. +- [Standard User Individual Lockout Threshold](#standard-user-individual-lockout-threshold)   This value is the maximum number of authorization failures that each standard user can have before the user is not allowed to send commands that require authorization to the TPM. + +- [Standard User Total Lockout Threshold](#standard-user-total-lockout-threshold)   This value is the maximum total number of authorization failures that all standard users can have before all standard users are not allowed to send commands that require authorization to the TPM. An administrator with the TPM owner password can fully reset the TPM's hardware lockout logic by using the TPM Management Console (tpm.msc). Each time an administrator resets the TPM's hardware lockout logic, all prior standard user TPM authorization failures are ignored. This allows standard users to immediately use the TPM normally. If you do not configure this policy setting, a default value of 480 minutes (8 hours) is used. -### Standard User Individual Lockout Threshold +### Standard User Individual Lockout Threshold This policy setting allows you to manage the maximum number of authorization failures for each standard user for the Trusted Platform Module (TPM). This value is the maximum number of authorization failures that each standard user can have before the user is not allowed to send commands that require authorization to the TPM. If the number of authorization failures for the user within the duration that is set for the **Standard User Lockout Duration** policy setting equals this value, the standard user is prevented from sending commands that require authorization to the Trusted Platform Module (TPM). ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  This setting helps administrators prevent the TPM hardware from entering a lockout mode by slowing the speed at which standard users can send commands that require authorization to the TPM. An authorization failure occurs each time a standard user sends a command to the TPM and receives an error response indicating an authorization failure occurred. Authorization failures older than the duration are ignored. @@ -162,29 +152,20 @@ An administrator with the TPM owner password can fully reset the TPM's hardware If you do not configure this policy setting, a default value of 4 is used. A value of zero means that the operating system will not allow standard users to send commands to the TPM, which might cause an authorization failure. -### Standard User Total Lockout Threshold +### Standard User Total Lockout Threshold This policy setting allows you to manage the maximum number of authorization failures for all standard users for the Trusted Platform Module (TPM). If the total number of authorization failures for all standard users within the duration that is set for the **Standard User Lockout Duration** policy equals this value, all standard users are prevented from sending commands that require authorization to the Trusted Platform Module (TPM). ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  This setting helps administrators prevent the TPM hardware from entering a lockout mode because it slows the speed standard users can send commands requiring authorization to the TPM. An authorization failure occurs each time a standard user sends a command to the TPM and receives an error response indicating an authorization failure occurred. Authorization failures older than the duration are ignored. -For each standard user two thresholds apply. Exceeding either threshold will prevent the standard user from sending a command to the TPM that requires authorization. - -1. The standard user individual lockout value is the maximum number of authorization failures each standard user may have before the user is not allowed to send commands requiring authorization to the TPM. -2. The standard user total lockout threshold value is the maximum total number of authorization failures all standard users may have before all standard users are not allowed to send commands requiring authorization to the TPM. -The TPM is designed to protect itself against password guessing attacks by entering a hardware lockout mode when it receives too many commands with an incorrect authorization value. When the TPM enters a lockout mode, it is global for all users (including administrators) and for Windows features -such as BitLocker Drive Encryption.. - An administrator with the TPM owner password can fully reset the TPM's hardware lockout logic by using the TPM Management Console (tpm.msc). Each time an administrator resets the TPM's hardware lockout logic, all prior standard user TPM authorization failures are ignored. This allows standard users to immediately use the TPM normally. If you do not configure this policy setting, a default value of 9 is used. A value of zero means that the operating system will not allow standard users to send commands to the TPM, which might cause an authorization failure. -## Additional resources +## Related topics -- [Trusted Platform Module Technology Overview](trusted-platform-module-overview.md) +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) - [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](http://technet.microsoft.com/library/jj592683.aspx) +- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](https://technet.microsoft.com/itpro/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies#bkmk-tpmconfigurations) \ No newline at end of file diff --git a/windows/keep-secure/trusted-platform-module-top-node.md b/windows/keep-secure/trusted-platform-module-top-node.md new file mode 100644 index 0000000000..ad6428c661 --- /dev/null +++ b/windows/keep-secure/trusted-platform-module-top-node.md @@ -0,0 +1,33 @@ +--- +title: Trusted Platform Module (Windows 10) +description: This topic for the IT professional provides links to information about the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +localizationpriority: high +author: brianlic-msft +--- + +# Trusted Platform Module + +**Applies to** +- Windows 10 +- Windows Server 2016 + +Trusted Platform Module (TPM) technology is designed to provide hardware-based, security-related functions. A TPM chip is a secure crypto-processor that helps you with actions such as generating, storing, and limiting the use of cryptographic keys. The following topics provide details. + + + +| Topic | Description | +|-------|-------------| +| [Trusted Platform Module Overview](trusted-platform-module-overview.md) | Provides an overview of the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. | +| [TPM fundamentals](tpm-fundamentals.md) | Provides background about how a TPM can work with cryptographic keys. Also describes technologies that work with the TPM, such as TPM-based virtual smart cards. | +| [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) | Describes TPM services that can be controlled centrally by using Group Policy settings. | +| [Back up the TPM recovery information to AD DS](backup-tpm-recovery-information-to-ad-ds.md) | For Windows 10, version 1511 and Windows 10, version 1507 only, describes how to back up a computer’s TPM information to Active Directory Domain Services. | +| [Manage TPM commands](manage-tpm-commands.md) | Describes methods by which a local or domain administrator can block or allow specific TPM commands. | +| [Manage TPM lockout](manage-tpm-lockout.md) | Describes how TPM lockout works (to help prevent tampering or malicious attacks), and outlines ways to work with TPM lockout settings. | +| [Change the TPM owner password](change-the-tpm-owner-password.md) | In most cases, applies to Windows 10, version 1511 and Windows 10, version 1507 only. Tells how to change the TPM owner password. | +| [View status, clear, or troubleshoot the TPM](initialize-and-configure-ownership-of-the-tpm.md) | Describes actions you can take through the TPM snap-in, TPM.msc: view TPM status, troubleshoot TPM initialization, and clear keys from the TPM. Also, for TPM 1.2 and Windows 10, version 1507 or 1511, describes how to turn the TPM on or off. | +| [Understanding PCR banks on TPM 2.0 devices](switch-pcr-banks-on-tpm-2-0-devices.md) | Provides background about what happens when you switch PCR banks on TPM 2.0 devices. | +| [TPM recommendations](tpm-recommendations.md) | Discusses aspects of TPMs such as the difference between TPM 1.2 and 2.0, and the Windows 10 features for which a TPM is required or recommended. | diff --git a/windows/keep-secure/understanding-applocker-default-rules.md b/windows/keep-secure/understanding-applocker-default-rules.md index b0aa99f22e..f0b744d7ad 100644 --- a/windows/keep-secure/understanding-applocker-default-rules.md +++ b/windows/keep-secure/understanding-applocker-default-rules.md @@ -42,5 +42,4 @@ These permissions settings are applied to this folder for app compatibility. How ## Related topics - [How AppLocker works](how-applocker-works-techref.md) -  -  +- [Create AppLocker default rules](create-applocker-default-rules.md) \ No newline at end of file diff --git a/windows/keep-secure/understanding-applocker-rule-collections.md b/windows/keep-secure/understanding-applocker-rule-collections.md index b8adef234c..bfe5fd07ce 100644 --- a/windows/keep-secure/understanding-applocker-rule-collections.md +++ b/windows/keep-secure/understanding-applocker-rule-collections.md @@ -33,3 +33,5 @@ For info about how to enable the DLL rule collection, see [Enable the DLL rule c ## Related topics - [How AppLocker works](how-applocker-works-techref.md) +- [Understanding AppLocker default rules](understanding-applocker-default-rules.md) + diff --git a/windows/keep-secure/use-applocker-and-software-restriction-policies-in-the-same-domain.md b/windows/keep-secure/use-applocker-and-software-restriction-policies-in-the-same-domain.md index 17fe40b6a1..0fa2a8f258 100644 --- a/windows/keep-secure/use-applocker-and-software-restriction-policies-in-the-same-domain.md +++ b/windows/keep-secure/use-applocker-and-software-restriction-policies-in-the-same-domain.md @@ -61,7 +61,7 @@ The following table compares the features and functions of Software Restriction

    Enforcement mode

    SRP works in the “deny list mode” where administrators can create rules for files that they do not want to allow in this Enterprise whereas the rest of the file are allowed to run by default.

    -

    SRP can also be configured in the “allow list mode” such that the by default all files are blocked and administrators need to create allow rules for files that they want to allow.

    +

    SRP can also be configured in the “allow list mode” so that by default all files are blocked and administrators need to create allow rules for files that they want to allow.

    AppLocker by default works in the “allow list mode” where only those files are allowed to run for which there is a matching allow rule.

    diff --git a/windows/keep-secure/using-event-viewer-with-applocker.md b/windows/keep-secure/using-event-viewer-with-applocker.md index 1b1b80e64f..7a3b0f4f8d 100644 --- a/windows/keep-secure/using-event-viewer-with-applocker.md +++ b/windows/keep-secure/using-event-viewer-with-applocker.md @@ -46,7 +46,7 @@ The following table contains information about the events that you can use to de | 8005| Information| *<File name> * was allowed to run.| Specifies that the script or .msi file is allowed by an AppLocker rule.| | 8006 | Warning| *<File name> * was allowed to run but would have been prevented from running if the AppLocker policy were enforced.| Applied only when the **Audit only ** enforcement mode is enabled. Specifies that the script or .msi file would be blocked if the **Enforce rules ** enforcement mode were enabled. | | 8007 | Error| *<File name> * was not allowed to run.| Access to *<file name> * is restricted by the administrator. Applied only when the **Enforce rules ** enforcement mode is set either directly or indirectly through Group Policy inheritance. The script or .msi file cannot run.| -| 8007| Error| AppLocker disabled on the SKU.| Added in Windows Server 2012 and Windows 8.| +| 8008| Error| AppLocker disabled on the SKU.| Added in Windows Server 2012 and Windows 8.| | 8020| Information| Packaged app allowed.| Added in Windows Server 2012 and Windows 8.| | 8021| Information| Packaged app audited.| Added in Windows Server 2012 and Windows 8.| | 8022| Information| Packaged app disabled.| Added in Windows Server 2012 and Windows 8.| diff --git a/windows/keep-secure/using-owa-with-wip.md b/windows/keep-secure/using-owa-with-wip.md new file mode 100644 index 0000000000..f4046b30a6 --- /dev/null +++ b/windows/keep-secure/using-owa-with-wip.md @@ -0,0 +1,35 @@ +--- +title: Using Outlook Web Access with Windows Information Protection (WIP) (Windows 10) +description: Options for using Outlook Web Access (OWA) with Windows Information Protection (WIP). +keywords: WIP, Windows Information Protection, EDP, Enterprise Data Protection, WIP and OWA configuration +ms.prod: w10 +ms.mktglfcycl: explore +ms.sitesec: library +ms.pagetype: security +localizationpriority: high +--- + +# Using Outlook Web Access with Windows Information Protection (WIP) +**Applies to:** + +- Windows 10, version 1607 +- Windows 10 Mobile + +>Learn more about what features and functionality are supported in each Windows edition at [Compare Windows 10 Editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare). + +Because Outlook Web Access (OWA) can be used both personally and as part of your organization, you have the following options to configure it with Windows Information Protection (WIP): + +|Option |OWA behavior | +|-------|-------------| +|Disable OWA. Employees can only use Microsoft Outlook 2016 or the Office 365 Mail app. | Disabled. | +|Don't configure outlook.office.com in any of your networking settings. |All mailboxes are automatically marked as personal. This means employees attempting to copy work content into OWA receive prompts and that files downloaded from OWA aren't automatically protected as corporate data. | +|Do all of the following:
    • Create a domain (such as mail.contoso.com, redirecting to outlook.office.com) that can be used by your employees to access work email.
    • Add the new domain to the Enterprise Cloud Resources network element in your WIP policy.
    • Add the following URLs to the Neutral Resources network element in your WIP policy:
      • outlook.office365.com
      • outlook.office.com
      • outlook-sdf.office.com
      • attachment.outlook.office.net
    |Inbox content accessed through the new domain is automatically marked as corporate data, while content accessed through personal email is automatically marked as personal. | +|Add outlook.office.com to the Enterprise Cloud Resources network element in your WIP policy. |All mailboxes are automatically marked as corporate. This means any personal inboxes hosted on Office 365 are also automatically marked as corporate data. | + +>[!NOTE] +>These limitations don’t apply to Outlook 2016 or to the Office 365 Mail and Calendar apps. These apps will work properly, marking an employee’s mailbox as corporate data, regardless of how you’ve configured outlook.office.com in your network settings. + + + + + diff --git a/windows/keep-secure/windows-credential-theft-mitigation-guide-abstract.md b/windows/keep-secure/windows-credential-theft-mitigation-guide-abstract.md new file mode 100644 index 0000000000..44a10d1bbe --- /dev/null +++ b/windows/keep-secure/windows-credential-theft-mitigation-guide-abstract.md @@ -0,0 +1,67 @@ +--- +title: Windows 10 Credential Theft Mitigation Guide Abstract (Windows 10) +description: Provides a summary of the Windows 10 credential theft mitigation guide. +ms.assetid: 821ddc1a-f401-4732-82a7-40d1fff5a78a +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +author: justinha +--- + +# Windows 10 Credential Theft Mitigation Guide Abstract + +**Applies to** +- Windows 10 + +This topic provides a summary of the Windows 10 credential theft mitigation guide, which can be downloaded from the [Microsoft Download Center](http://download.microsoft.com/download/C/1/4/C14579CA-E564-4743-8B51-61C0882662AC/Windows 10 credential theft mitigation guide.docx). +This guide explains how credential theft attacks occur and the strategies and countermeasures you can implement to mitigate them, following these security stages: + +- Identify high-value assets +- Protect against known and unknown threats +- Detect pass-the-hash and related attacks +- Respond to suspicious activity +- Recover from a breach + +![Security stages](images\security-stages.png) + +## Attacks that steal credentials + +Learn about the different types of attacks that are used to steal credentials, and the factors that can place your organization at risk. +The types of attacks that are covered include: + +- Pass the hash +- Kerberos pass the ticket +- Kerberos golden ticket and silver ticket +- Key loggers +- Shoulder surfing + +## Credential protection strategies + +This part of the guide helps you consider the mindset of the attacker, with prescriptive guidance about how to prioritize high-value accounts and computers. +You'll learn how to architect a defense against credential theft: + +- Establish a containment model for account privileges +- Harden and restrict administrative hosts +- Ensure that security configurations and best practices are implemented + +## Technical countermeasures for credential theft + +Objectives and expected outcomes are covered for each of these countermeasures: + +- Use Windows 10 with Credential Guard +- Restrict and protect high-privilege domain accounts +- Restrict and protect local accounts with administrative privileges +- Restrict inbound network traffic + +Many other countermeasures are also covered, such as using Microsoft Passport and Windows Hello, or multifactor authentication. + +## Detecting credential attacks + +This sections covers how to detect the use of stolen credentials and how to collect computer events to help you detect credential theft. + +## Responding to suspicious activity + +Learn Microsoft's recommendations for responding to incidents, including how to recover control of compromised accounts, how to investigate attacks, and how to recover from a breach. + + diff --git a/windows/keep-secure/windows-defender-advanced-threat-protection.md b/windows/keep-secure/windows-defender-advanced-threat-protection.md index 7a77dece05..0a9feddff7 100644 --- a/windows/keep-secure/windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/windows-defender-advanced-threat-protection.md @@ -21,6 +21,8 @@ localizationpriority: high - Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) +>Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=technet-wd-atp-abovefoldlink1) +> >For more info about Windows 10 Enterprise Edition features and functionality, see [Windows 10 Enterprise edition](https://www.microsoft.com/WindowsForBusiness/buy). Windows Defender Advanced Threat Protection (Windows Defender ATP) is a security service that enables enterprise customers to detect, investigate, and respond to advanced threats on their networks. @@ -30,7 +32,7 @@ Windows Defender ATP uses the following combination of technology built into Win - **Endpoint behavioral sensors**: Embedded in Windows 10, these sensors collect and process behavioral signals from the operating system (for example, process, registry, file, and network communications) - and sends this telemetry to your private, isolated, cloud instance of Windows Defender ATP. + and sends this sensor data to your private, isolated, cloud instance of Windows Defender ATP. - **Cloud security analytics**: Leveraging big-data, machine-learning, and @@ -45,7 +47,7 @@ Windows Defender ATP uses the following combination of technology built into Win and augmented by threat intelligence provided by partners, threat intelligence enables Windows Defender ATP to identify attacker tools, techniques, and procedures, and generate alerts when these - are observed in collected telemetry. + are observed in collected sensor data. The following diagram shows these Windows Defender ATP service components: @@ -91,3 +93,6 @@ Topic | Description [Troubleshoot Windows Defender Advanced Threat Protection](troubleshoot-windows-defender-advanced-threat-protection.md) | This topic contains information to help IT Pros find workarounds for the known issues and troubleshoot issues in Windows Defender ATP. [Review events and errors on endpoints with Event Viewer](event-error-codes-windows-defender-advanced-threat-protection.md)| Review events and errors associated with event IDs to determine if further troubleshooting steps are required. [Windows Defender compatibility](defender-compatibility-windows-defender-advanced-threat-protection.md) | Learn about how Windows Defender works in conjunction with Windows Defender ATP. + +## Related topic +[Windows Defender ATP helps detect sophisticated threats](https://www.microsoft.com/itshowcase/Article/Content/854/Windows-Defender-ATP-helps-detect-sophisticated-threats) diff --git a/windows/keep-secure/windows-defender-block-at-first-sight.md b/windows/keep-secure/windows-defender-block-at-first-sight.md index 8abf7c0806..a31f43f6ee 100644 --- a/windows/keep-secure/windows-defender-block-at-first-sight.md +++ b/windows/keep-secure/windows-defender-block-at-first-sight.md @@ -30,6 +30,9 @@ It is enabled by default when certain pre-requisite settings are also enabled. I When a Windows Defender client encounters a suspicious but undetected file, it queries our cloud protection backend. The cloud backend will apply heuristics, machine learning, and automated analysis of the file to determine the files as malicious or clean. +> [!NOTE] +> The Block at first sight feature only use the cloud protection backend for executable files that are downloaded from the Internet, or originating from the Internet zone. A hash value of the EXE file is checked via the cloud backend to determine if this is a previously undetected file. + If the cloud backend is unable to make a determination, the file will be locked by Windows Defender while a copy is uploaded to the cloud. Only after the cloud has received the file will Windows Defender release the lock and let the file run. The cloud will perform additional analysis to reach a determination, blocking all future encounters of that file. In many cases this process can reduce the response time to new malware from hours to seconds. diff --git a/windows/keep-secure/windows-defender-in-windows-10.md b/windows/keep-secure/windows-defender-in-windows-10.md index 7ad3e53061..58ecb02cde 100644 --- a/windows/keep-secure/windows-defender-in-windows-10.md +++ b/windows/keep-secure/windows-defender-in-windows-10.md @@ -18,7 +18,7 @@ author: jasesso Windows Defender in Windows 10 is a built-in antimalware solution that provides security and antimalware management for desktops, portable computers, and servers. This topic provides an overview of Windows Defender, including a list of system requirements and new features. -For more important information about running Windows Defender on a server platform, see [Windows Defender Overview for Windows Server Technical Preview](https://technet.microsoft.com/library/dn765478.aspx). +For more important information about running Windows Defender on a server platform, see [Windows Defender Overview for Windows Server](https://technet.microsoft.com/windows-server-docs/security/windows-defender/windows-defender-overview-windows-server). Take advantage of Windows Defender by configuring settings and definitions using the following tools: - Microsoft Active Directory *Group Policy* for settings diff --git a/windows/keep-secure/wip-app-enterprise-context.md b/windows/keep-secure/wip-app-enterprise-context.md new file mode 100644 index 0000000000..b4ebd4ced4 --- /dev/null +++ b/windows/keep-secure/wip-app-enterprise-context.md @@ -0,0 +1,55 @@ +--- +title: Determine the Enterprise Context of an app running in Windows Information Protection (WIP) (Windows 10) +description: Use the Task Manager to determine whether an app is considered work, personal or exempt by Windows Information Protection (WIP). +keywords: WIP, Windows Information Protection, EDP, Enterprise Data Protection, WIP and Task Manager, app context, enterprise context +ms.prod: w10 +ms.mktglfcycl: explore +ms.sitesec: library +ms.pagetype: security +localizationpriority: high +--- + +# Determine the Enterprise Context of an app running in Windows Information Protection (WIP) +**Applies to:** + +- Windows 10, version 1607 +- Windows 10 Mobile + +>Learn more about what features and functionality are supported in each Windows edition at [Compare Windows 10 Editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare). + +Use Task Manager to check the context of your apps while running in Windows Information Protection (WIP) to make sure that your organization's policies are applied and running correctly. + +## Viewing the Enterprise Context column in Task Manager +You need to add the Enterprise Context column to the **Details** tab of the Task Manager. + +1. Make sure that you have an active WIP policy deployed and turned on in your organization. + +2. Open the Task Manager (taskmgr.exe), click the **Details** tab, right-click in the column heading area, and click **Select columns**. + + The **Select columns** box appears. + + ![Task Manager, Select column box with Enterprise Context option selected](images/wip-select-column.png) + +3. Scroll down and check the **Enterprise Context** option, and then click **OK** to close the box. + + The **Enterprise Context** column should now be available in Task Manager. + + ![Task Manager, Enterprise Context column highlighted](images/wip-taskmgr.png) + +## Review the Enterprise Context +The **Enterprise Context** column shows you what each app can do with your enterprise data: + +- **Domain.** Shows the employee's work domain (such as, corp.contoso.com). This app is considered work-related and can freely touch and open work data and resources. + +- **Personal.** Shows the text, *Personal*. This app is considered non-work-related and can't touch any work data or resources. + +- **Exempt.** Shows the text, *Exempt*. WIP policies don't apply to these apps (such as, system components). + + >[!IMPORTANT] + >Enlightened apps can change between Work and Personal, depending on the data being touched. For example, Microsoft Word 2016 shows as **Personal** when an employee opens a personal letter, but changes to **Work** when that same employee opens the company financials. + + + + + + diff --git a/windows/keep-secure/working-with-applocker-rules.md b/windows/keep-secure/working-with-applocker-rules.md index 9c528133ef..c6fd38667f 100644 --- a/windows/keep-secure/working-with-applocker-rules.md +++ b/windows/keep-secure/working-with-applocker-rules.md @@ -89,6 +89,7 @@ The following table describes how a publisher condition is applied. | Option | The publisher condition allows or denies… | +|---|---| | **All signed files** | All files that are signed by any publisher.| | **Publisher only**| All files that are signed by the named publisher.| | **Publisher and product name**| All files for the specified product that are signed by the named publisher.| @@ -123,7 +124,7 @@ When you choose the file hash rule condition, the system computes a cryptographi ## AppLocker default rules -AppLocker allows you to generate default rules for each rule collection. +AppLocker includes default rules, which are intended to help ensure that the files that are required for Windows to operate properly are allowed in an AppLocker rule collection. For background, see [Understanding AppLocker default rules](understanding-applocker-default-rules.md), and for steps, see [Create AppLocker default rules](create-applocker-default-rules.md). Executable default rule types include: diff --git a/windows/manage/.vscode/settings.json b/windows/manage/.vscode/settings.json new file mode 100644 index 0000000000..20af2f68a6 --- /dev/null +++ b/windows/manage/.vscode/settings.json @@ -0,0 +1,3 @@ +// Place your settings in this file to overwrite default and user settings. +{ +} \ No newline at end of file diff --git a/windows/manage/TOC.md b/windows/manage/TOC.md index 54af0df920..d68415cde7 100644 --- a/windows/manage/TOC.md +++ b/windows/manage/TOC.md @@ -1,7 +1,21 @@ # [Manage and update Windows 10](index.md) ## [Administrative Tools in Windows 10](administrative-tools-in-windows-10.md) -## [Cortana integration in your business or enterprise](manage-cortana-in-enterprise.md) +## [Cortana integration in your business or enterprise](cortana-at-work-overview.md) +### [Testing scenarios using Cortana in your business or organization](cortana-at-work-testing-scenarios.md) +#### [Test scenario 1 - Sign-in to Azure AD and use Cortana to manage the notebook](cortana-at-work-scenario-1.md) +#### [Test scenario 2 - Test scenario 2 - Perform a quick search with Cortana at work](cortana-at-work-scenario-2.md) +#### [Test scenario 3 - Set a reminder for a specific location using Cortana at work](cortana-at-work-scenario-3.md) +#### [Test scenario 4 - Use Cortana at work to find your upcoming meetings](cortana-at-work-scenario-4.md) +#### [Test scenario 5 - Use Cortana to send email to a co-worker](cortana-at-work-scenario-5.md) +#### [Test scenario 6 - Use Cortana and Windows Information Protection (WIP) to help protect your organization’s data on a device](cortana-at-work-scenario-6.md) +### [Set up and test Cortana with Office 365 in your organization](cortana-at-work-o365.md) +### [Set up and test Cortana with Microsoft Dynamics CRM (Preview feature) in your organization](cortana-at-work-crm.md) +### [Set up and test Cortana for Power BI in your organization](cortana-at-work-powerbi.md) +### [Set up and test custom voice commands in Cortana for your organization](cortana-at-work-voice-commands.md) +### [Use Group Policy and mobile device management (MDM) settings to configure Cortana in your organization](cortana-at-work-policy-settings.md) +### [Send feedback about Cortana at work back to Microsoft](cortana-at-work-feedback.md) ## [Update Windows 10 in the enterprise](waas-update-windows-10.md) +### [Quick guide to Windows as a service](waas-quick-start.md) ### [Overview of Windows as a service](waas-overview.md) ### [Prepare servicing strategy for Windows 10 updates](waas-servicing-strategy-windows-10-updates.md) ### [Build deployment rings for Windows 10 updates](waas-deployment-rings-windows-10-updates.md) @@ -24,13 +38,15 @@ ### [Manage Windows 10 and Windows Store tips, tricks, and suggestions](manage-tips-and-suggestions.md) ### [New policies for Windows 10](new-policies-for-windows-10.md) ### [Group Policies that apply only to Windows 10 Enterprise and Windows 10 Education](group-policies-for-enterprise-and-education-editions.md) -### [Changes to Group Policy settings for Windows 10 Start](changes-to-start-policies-in-windows-10.md) +### [Changes to Group Policy settings for Windows 10 Start menu](changes-to-start-policies-in-windows-10.md) ### [Windows 10 Mobile and MDM](windows-10-mobile-and-mdm.md) ### [Introduction to configuration service providers (CSPs)](how-it-pros-can-use-configuration-service-providers.md) ## [Windows Spotlight on the lock screen](windows-spotlight.md) ## [Manage Windows 10 Start and taskbar layout](windows-10-start-layout-options-and-policies.md) ### [Configure Windows 10 taskbar](configure-windows-10-taskbar.md) ### [Customize and export Start layout](customize-and-export-start-layout.md) +### [Start layout XML for desktop editions of Windows 10 (reference)](start-layout-xml-desktop.md) +### [Start layout XML for mobile editions of Windows 10 (reference)](start-layout-xml-mobile.md) ### [Customize Windows 10 Start and taskbar with Group Policy](customize-windows-10-start-screens-by-using-group-policy.md) ### [Customize Windows 10 Start and taskbar with ICD and provisioning packages](customize-windows-10-start-screens-by-using-provisioning-packages-and-icd.md) ### [Customize Windows 10 Start with mobile device management (MDM)](customize-windows-10-start-screens-by-using-mobile-device-management.md) diff --git a/windows/manage/administrative-tools-in-windows-10.md b/windows/manage/administrative-tools-in-windows-10.md index 3db6a42541..a7d5203f8a 100644 --- a/windows/manage/administrative-tools-in-windows-10.md +++ b/windows/manage/administrative-tools-in-windows-10.md @@ -26,9 +26,6 @@ The tools in the folder might vary depending on which edition of Windows you are These tools were included in previous versions of Windows and the associated documentation for each tool should help you use these tools in Windows 10. The following list links to documentation for each tool. -**Tip**   -If the content that is linked to a tool in the following list doesn't provide the information you need to use that tool, send us a comment by using the **Was this page helpful?** feature on this **Administrative Tools in Windows 10** page. Details about the information you want for a tool will help us plan future content. -   - [Component Services]( https://go.microsoft.com/fwlink/p/?LinkId=708489) @@ -49,7 +46,8 @@ If the content that is linked to a tool in the following list doesn't provide th - [Windows Firewall with Advanced Security](https://go.microsoft.com/fwlink/p/?LinkId=708503) - [Windows Memory Diagnostic]( https://go.microsoft.com/fwlink/p/?LinkId=708507) -  +>[!TIP]   +>If the content that is linked to a tool in the following list doesn't provide the information you need to use that tool, send us a comment by using the **Was this page helpful?** feature on this **Administrative Tools in Windows 10** page. Details about the information you want for a tool will help us plan future content.    diff --git a/windows/manage/change-history-for-manage-and-update-windows-10.md b/windows/manage/change-history-for-manage-and-update-windows-10.md index 50f89c5dea..c9e8313b65 100644 --- a/windows/manage/change-history-for-manage-and-update-windows-10.md +++ b/windows/manage/change-history-for-manage-and-update-windows-10.md @@ -12,6 +12,27 @@ author: jdeckerMS This topic lists new and updated topics in the [Manage and update Windows 10](index.md) documentation for [Windows 10 and Windows 10 Mobile](../index.md). +>If you're looking for **update history** for Windows 10, see [Windows 10 and Windows Server 2016 update history](https://support.microsoft.com/help/12387/windows-10-update-history). + +## January 2017 + +| New or changed topic | Description | +| --- | --- | +| [Cortana integration in your business or enterprise](cortana-at-work-overview.md) | New | +| [Start layout XML for desktop editions of Windows 10](start-layout-xml-desktop.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Start layout XML for mobile editions of Windows 10](start-layout-xml-mobile.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Quick guide to Windows as a service](waas-quick-start.md) | Added video that explains how Windows as a service works. | + + + +## December 2016 + +| New or changed topic | Description | +| --- | --- | +| [Quick guide to Windows as a service](waas-quick-start.md) | New | +| [Manage Windows 10 in your organization - transitioning to modern management](manage-windows-10-in-your-organization-modern-management.md) | Added video demonstration of the latest in modern management for Windows 10 | +| [Windows Store for Business overview](windows-store-for-business-overview.md) | Updated list of supported markets. | + ## November 2016 | New or changed topic | Description | diff --git a/windows/manage/changes-to-start-policies-in-windows-10.md b/windows/manage/changes-to-start-policies-in-windows-10.md index 743009e354..6cba8aeed7 100644 --- a/windows/manage/changes-to-start-policies-in-windows-10.md +++ b/windows/manage/changes-to-start-policies-in-windows-10.md @@ -1,5 +1,5 @@ --- -title: Changes to Group Policy settings for Windows 10 Start (Windows 10) +title: Changes to Group Policy settings for Windows 10 Start menu (Windows 10) description: Windows 10 has a brand new Start experience. ms.assetid: 612FB68A-3832-451F-AA97-E73791FEAA9F keywords: ["group policy", "start menu", "start screen"] diff --git a/windows/manage/configure-devices-without-mdm.md b/windows/manage/configure-devices-without-mdm.md index b28734a5f6..04ba35f499 100644 --- a/windows/manage/configure-devices-without-mdm.md +++ b/windows/manage/configure-devices-without-mdm.md @@ -104,11 +104,14 @@ When you run Windows ICD, you have several options for creating your package. 6. Toggle **On** or **Off** for wireless network connectivity. If you select **On**, enter the SSID, type, and (if required) password for the wireless network. 7. Click **Enroll into Active Directory**. 8. Toggle **Yes** or **No** for Active Directory enrollment. If you select **Yes**, enter the credentials for an account with permissions to enroll the device. (Optional) Enter a user name and password to create a local administrator account. + > [!WARNING] > If you don't create a local administrator account and the device fails to enroll in Active Directory for any reason, you will have to reimage the device and start over. As a best practice, we recommend: - - Use a least-privileged domain account to join the device to the domain. - - Create a temporary administrator account to use for debugging or reprovisioning if the device fails to enroll successfully. - - [Use Group Policy to delete the temporary administrator account](https://blogs.technet.microsoft.com/canitpro/2014/12/10/group-policy-creating-a-standard-local-admin-account/) after the device is enrolled in Active Directory. + > + >- Use a least-privileged domain account to join the device to the domain. + >- Create a temporary administrator account to use for debugging or reprovisioning if the device fails to enroll successfully. + >- [Use Group Policy to delete the temporary administrator account](https://blogs.technet.microsoft.com/canitpro/2014/12/10/group-policy-creating-a-standard-local-admin-account/) after the device is enrolled in Active Directory. + 9. Click **Finish**. 10. Review your settings in the summary. You can return to previous pages to change your selections. Then, under **Protect your package**, toggle **Yes** or **No** to encrypt the provisioning package. If you select **Yes**, enter a password. This password must be entered to apply the encrypted provisioning package. 11. Click **Create**. diff --git a/windows/manage/configure-windows-10-taskbar.md b/windows/manage/configure-windows-10-taskbar.md index 8f9c046ff2..bd5e26f4ba 100644 --- a/windows/manage/configure-windows-10-taskbar.md +++ b/windows/manage/configure-windows-10-taskbar.md @@ -17,14 +17,14 @@ Starting in Windows 10, version 1607, administrators can pin additional apps to You can specify different taskbar configurations based on device locale and region. There is no limit on the number of apps that you can pin. You specify apps using the [Application User Model ID (AUMID)](https://go.microsoft.com/fwlink/p/?LinkId=614867) or Desktop Application Link Path (the local path to the application). -If you specify an app to be pinned that is not installed on the computer, it won't appear on the taskbar. +If you specify an app to be pinned that is not provisioned for the user on the computer, the pinned icon won't appear on the taskbar. -The order of apps in the xml file dictates order of apps on taskbar from left to right, to the right of any existing apps pinned by user. +The order of apps in the XML file dictates the order of pinned apps on the taskbar from left to right, to the right of any existing apps pinned by the user. > [!NOTE] > In operating systems configured to use a right-to-left language, the taskbar order will be reversed. -The following example shows how apps will be pinned: Windows default apps to the left (blue circle), apps pinned by the user in the center (orange triangle), and apps that you pin using XML to the right (green square). +The following example shows how apps will be pinned: Windows default apps to the left (blue circle), apps pinned by the user in the center (orange triangle), and apps that you pin using the XML file to the right (green square). ![Windows left, user center, enterprise to the right](images/taskbar-generic.png) @@ -41,21 +41,21 @@ To configure the taskbar: 3. Apply the layout modification XML file to devices using [Group Policy](customize-windows-10-start-screens-by-using-group-policy.md) or a [provisioning package created in Windows Imaging and Configuration Designer (Windows ICD)](customize-windows-10-start-screens-by-using-provisioning-packages-and-icd.md). >[!IMPORTANT] ->If you use a provisioning package to configure the taskbar, your configuration will be reapplied each time the explorer.exe process restarts. If your configuration pins an app and the user unpins that app, the user's change will be overwritten the next time the configuration is applied. To apply a taskbar configuration and allow users to make changes that will persist, apply your configuration by using Group Policy. +>If you use a provisioning package to configure the taskbar, your configuration will be reapplied each time the explorer.exe process restarts. If your configuration pins an app and the user then unpins that app, the user's change will be overwritten the next time the configuration is applied. To apply a taskbar configuration that allows users to make changes that will persist, apply your configuration by using Group Policy. ### Tips for finding AUMID and Desktop Application Link Path In the layout modification XML file, you will need to add entries for applications in the XML markup. In order to pin an application, you need either its AUMID or Desktop Application Link Path. The easiest way to find this data for an application is to: -1. Pin the application to the Start menu +1. Pin the application to the Start menu on a reference or testing PC. 2. Open Windows PowerShell and run the `Export-StartLayout` cmdlet. 3. Open the generated XML file. -4. Look for an entry corresponding to the app you pinned . +4. Look for an entry corresponding to the app you pinned. 5. Look for a property labeled `AppUserModelID` or `DesktopApplicationLinkPath`. -### Sample taskbar configuration XML +### Sample taskbar configuration XML file ```xml @@ -75,7 +75,7 @@ The easiest way to find this data for an application is to: ``` -### Sample taskbar configuration added to Start layout XML +### Sample taskbar configuration added to Start layout XML file ```xml @@ -139,7 +139,7 @@ The `` section will append listed apps to the tas ![additional apps pinned to taskbar](images/taskbar-default-plus.png) -##Remove default apps and add your own +## Remove default apps and add your own By adding `PinListPlacement="Replace"` to ``, you remove all default pinned apps; only the apps that you specify will be pinned to the taskbar. @@ -218,7 +218,7 @@ The following example shows you how to configure taskbars by country or region. ``` -When the preceding example XML is applied, the resulting taskbar for computers in the US or UK: +When the preceding example XML file is applied, the resulting taskbar for computers in the US or UK: ![taskbar for US and UK locale](images/taskbar-region-usuk.png) @@ -289,7 +289,9 @@ The resulting taskbar for computers in any other country region: ## Related topics -[Manage Windows 10 Start and taskbar layout ](windows-10-start-layout-options-and-policies.md)[Customize and export Start layout](customize-and-export-start-layout.md) +[Manage Windows 10 Start and taskbar layout ](windows-10-start-layout-options-and-policies.md) + +[Customize and export Start layout](customize-and-export-start-layout.md) [Customize Windows 10 Start and taskbar with Group Policy](customize-windows-10-start-screens-by-using-group-policy.md) diff --git a/windows/manage/configure-windows-telemetry-in-your-organization.md b/windows/manage/configure-windows-telemetry-in-your-organization.md index 3bb9df599b..a7f9bbef7e 100644 --- a/windows/manage/configure-windows-telemetry-in-your-organization.md +++ b/windows/manage/configure-windows-telemetry-in-your-organization.md @@ -148,6 +148,7 @@ The following table defines the endpoints for telemetry services: | Connected User Experience and Telemetry component | v10.vortex-win.data.microsoft.com
    settings-win.data.microsoft.com | | [Windows Error Reporting](http://msdn.microsoft.com/library/windows/desktop/bb513641.aspx) | watson.telemetry.microsoft.com | | [Online Crash Analysis](http://msdn.microsoft.com/library/windows/desktop/ee416349.aspx) | oca.telemetry.microsoft.com | +| OneDrive app for Windows 10 | vortex.data.microsoft.com/collect/v1 | ### Data use and access diff --git a/windows/manage/connect-to-remote-aadj-pc.md b/windows/manage/connect-to-remote-aadj-pc.md index b05c575380..8424e7c1c3 100644 --- a/windows/manage/connect-to-remote-aadj-pc.md +++ b/windows/manage/connect-to-remote-aadj-pc.md @@ -25,7 +25,7 @@ From its release, Windows 10 has supported remote connections to PCs that are jo ## Set up - Both PCs (local and remote) must be running Windows 10, version 1607. Remote connection to an Azure AD-joined PC that is running earlier versions of Windows 10 is not supported. -- Ensure [Remote Credential Guard](../keep-secure/remote-credential-guard.md), a new feature in Windows 10, version 1607, is turned off on the client PC. +- Ensure [Remote Credential Guard](../keep-secure/remote-credential-guard.md), a new feature in Windows 10, version 1607, is turned off on the client PC that you are using to connect to the remote PC. - On the PC that you want to connect to: 1. Open system properties for the remote PC. 2. Enable **Allow remote connections to this computer** and select **Allow connections only from computers running Remote Desktop with Network Level Authentication**. diff --git a/windows/manage/cortana-at-work-crm.md b/windows/manage/cortana-at-work-crm.md new file mode 100644 index 0000000000..834bde8a92 --- /dev/null +++ b/windows/manage/cortana-at-work-crm.md @@ -0,0 +1,62 @@ +--- +title: Set up and test Cortana with Microsoft Dynamics CRM (Preview feature) in your organization (Windows 10) +description: How to set up Cortana to help your salespeople get proactive insights on important CRM activities, including sales leads, accounts, and opportunities; presenting the most relevant info at any given time. +ms.prod: w10 +ms.mktglfcycl: manage +ms.sitesec: library +localizationpriority: high +--- + +# Set up and test Cortana with Microsoft Dynamics CRM (Preview feature) in your organization +**Applies to:** + +- Windows 10, Windows Insider Program +- Windows 10 Mobile, Windows Insider Program + +>[!IMPORTANT] +>Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. + +Cortana integration is a Preview feature that's available for your test or dev environment, starting with the CRM Online 2016 Update. If you decide to use this Preview feature, you'll need to turn in on and accept the license terms. After that, your salespeople will get proactive insights from Cortana on important CRM activities, including sales leads, accounts, and opportunities; presenting the most relevant info at any given time. This can even include getting company-specific news that surfaces when the person is meeting with a representative from another company. + +>[!NOTE] +>For more info about Dynamics CRM integration, how to turn on Cortana, and how to provide feedback, see [Preview feature: Set up Cortana integration](http://go.microsoft.com/fwlink/p/?LinkId=746819). + +![Cortana at work, showing the sales data pulled from Dynamics CRM](images/cortana-crm-screen.png) + +## Turn on Cortana with Dynamics CRM in your organization +You must be a CRM administrator to turn on and use Preview features. For more info about what Preview features are and how to use them, see [What are Preview features and how do I enable them](http://go.microsoft.com/fwlink/p/?LinkId=746817)? + +**To turn on Cortana with Dynamics CRM** + +1. Go to **Settings**, and then click **Administration**. + +2. Choose **System Settings**, and then click the **Previews** tab. + +3. Read the license terms, and if you agree, select the **I’ve read and agree to the license terms** check box. + +4. For each preview feature you want to enable, click **Yes**. + +## Turn on Cortana with Dynamics CRM on your employees’ devices +You must tell your employees to turn on Cortana, before they’ll be able to use it with Dynamics CRM. + +**To turn on local Cortana with Dynamics CRM** + +1. Click on the **Cortana** search box in the taskbar, and then click the **Notebook** icon. + +2. Click on **Connected Services**, click **Dynamics CRM**, and then click **Connect**. + + ![Cotana at work, showing how to turn on the connected services for Dynamics CRM](images/cortana-connect-crm.png) + + The employee can also disconnect by clicking **Disconnect** from the **Dynamics CRM** screen. + +## Turn off Cortana with Dynamics CRM +Cortana can only access data in Dynamics CRM when it’s turned on. If you don’t want Cortana to access your corporate data, you can turn it off. + +**To turn off Cortana with Dynamics CRM** +1. Go to **Settings**, and then click **Administration**. + +2. Choose **System Settings**, and then click the **Previews** tab. + +3. Click **No** for **Cortana**. + + All Dynamics CRM functionality related to Cortana is turned off in your organization. \ No newline at end of file diff --git a/windows/manage/cortana-at-work-feedback.md b/windows/manage/cortana-at-work-feedback.md new file mode 100644 index 0000000000..ca24c22703 --- /dev/null +++ b/windows/manage/cortana-at-work-feedback.md @@ -0,0 +1,24 @@ +--- +title: Send feedback about Cortana at work back to Microsoft (Windows 10) +description: How to send feedback to Microsoft about Cortana at work. +ms.prod: w10 +ms.mktglfcycl: manage +ms.sitesec: library +localizationpriority: high +--- + +# Send feedback about Cortana at work back to Microsoft +**Applies to:** + +- Windows 10, Windows Insider Program +- Windows 10 Mobile, Windows Insider Program + +>[!IMPORTANT] +>Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. + +We ask that you report bugs and issues. To provide feedback, you can click the **Feedback** icon in the Cortana window. When you send this form to Microsoft it also includes troubleshooting info, in case you run into problems. + +![Cortana at work, showing how to provide feedback to Microsoft](images/cortana-feedback.png) + +If you don't want to use the feedback tool in Cortana, you can add feedback through the general Windows Insider Preview feedback app. For info about the Insider Preview feedback app, see [How to use Windows Insider Preview – Updates and feedback](http://windows.microsoft.com/en-us/windows/preview-updates-feedback-pc). + diff --git a/windows/manage/cortana-at-work-o365.md b/windows/manage/cortana-at-work-o365.md new file mode 100644 index 0000000000..d58663dc00 --- /dev/null +++ b/windows/manage/cortana-at-work-o365.md @@ -0,0 +1,72 @@ +--- +title: Set up and test Cortana with Office 365 in your organization (Windows 10) +description: How to connect Cortana to Office 365 so your employees are notified about regular meetings, unusual events, such as meetings over lunch or during a typical commute time, and about early meetings, even setting an alarm so the employee isn’t late. +ms.prod: w10 +ms.mktglfcycl: manage +ms.sitesec: library +localizationpriority: high +--- + +# Set up and test Cortana with Office 365 in your organization +**Applies to:** + +- Windows 10, Windows Insider Program +- Windows 10 Mobile, Windows Insider Program + +>[!IMPORTANT] +>Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. + +Cortana in Windows 10 is already great at letting your employees quickly see what the day is going to look like, do meeting prep work like researching people in LinkedIn or getting documents ready, see where and when their meetings are going to be, get a sense of travel times to and from work, and even get updates from a calendar for upcoming trips. + +But Cortana works even harder when she connects to Office 365, helping employees to be notified about unusual events, such as meetings over lunch or during a typical commute time, and about early meetings, even setting an alarm so the employee isn’t late. + +![Cortana at work, showing the day's schedule pulled from Office 365](images/cortana-o365-screen.png) + +We’re continuing to add more and more capabilities to Cortana so she can become even more helpful with your productivity-related tasks, such as emailing, scheduling, and other tasks that are important to help you be successful. + +>[!NOTE] +>For a quick review of the frequently asked questions about Cortana and Office 365 integration, see the blog post, [An early look at Cortana integration with Office 365](http://go.microsoft.com/fwlink/p/?LinkId=717379). + +## Before you begin +There are a few things to be aware of before you start using Cortana with Office 365 in your organization. + +- **Software requirements.** O365 integration with Cortana is available in all countries/regions where Cortana is supported for consumers today. This includes the United States, United Kingdom, Canada, France, Italy, Germany, Spain, China, Japan, India, and Australia. As Cortana comes to more countries, it will also become available to organizations. + +- **Azure Active Directory (Azure AD) account.** Before your employees can use Cortana in your org, they must be logged in using their Azure AD account through Cortana’s notebook. They must also authorize Cortana to access Office 365 on their behalf. + +- **Office 365 Trust Center.** Cortana isn't a service covered by the Office 365 Trust Center. [Learn more about how Cortana treats your data](http://go.microsoft.com/fwlink/p/?LinkId=536419). + +- **Troubleshooting tips.** If you run into issues, check out these [troubleshooting tips](http://go.microsoft.com/fwlink/p/?LinkId=620763). + +## Turn on Cortana with Office 365 on employees’ devices +You must tell your employees to turn on Cortana before they’ll be able to use it with Office 365. + +**To turn on local Cortana with Office 365** + +1. Click on the **Cortana** search box in the taskbar, and then click the **Notebook** icon. + +2. Click on **Connected Services**, click **Office 365**, and then click **Connect**. + + ![Cotana at work, showing how to turn on the connected services for Office 365](images/cortana-connect-o365.png) + + The employee can also disconnect by clicking **Disconnect** from the **Office 365** screen. + +## Turn off Cortana with Office 365 +Cortana can only access data in your Office 365 org when it’s turned on. If you don’t want Cortana to access your corporate data, you can turn it off in the Office 365 admin center. + +**To turn off Cortana with Office 365** +1. [Sign in to Office 365](http://www.office.com/signin) using your Azure AD account. + +2. Go to the [Office 365 admin center](https://support.office.com/en-us/article/Office-365-admin-center-58537702-d421-4d02-8141-e128e3703547). + +3. Expand **Service Settings**, and select **Cortana**. + +4. Click **Cortana** to toggle Cortana off. + + All Office 365 functionality related to Cortana is turned off in your organization and your employees are unable to use her at work. + + + + + + diff --git a/windows/manage/cortana-at-work-overview.md b/windows/manage/cortana-at-work-overview.md new file mode 100644 index 0000000000..96064364c3 --- /dev/null +++ b/windows/manage/cortana-at-work-overview.md @@ -0,0 +1,64 @@ +--- +title: Cortana integration in your business or enterprise (Windows 10) +description: The world’s first personal digital assistant helps users get things done, even at work. Cortana includes powerful configuration options specifically to optimize for unique small to medium-sized business and enterprise environments. +ms.prod: w10 +ms.mktglfcycl: manage +ms.sitesec: library +localizationpriority: high +--- + +# Cortana integration in your business or enterprise +**Applies to:** + +- Windows 10, Windows Insider Program +- Windows 10 Mobile, Windows Insider Program + +>[!IMPORTANT] +>Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. + +## Who is Cortana? +Cortana is Microsoft’s personal digital assistant, who helps busy people get things done, even while at work. +Cortana has powerful configuration options, specifically optimized for your business. By signing in with an Azure Active Directory (Azure AD) account, your employees can give Cortana access to their enterprise/work identity, while getting all the functionality Cortana provides to them outside of work. + +Using Azure AD also means that you can remove an employee’s profile (for example, when an employee leaves your organization) while respecting Windows Information Protection (WIP) policies and ignoring enterprise content, such as emails, calendar items, and people lists that are marked as enterprise data. + +![Cortana at work, showing the About me screen](images/cortana-about-me.png) + +## Where is Cortana available for use in my organization? +You can use Cortana at work in all countries/regions where Cortana is supported for consumers. This includes the United States, United Kingdom, Canada, France, Italy, Germany, Spain, China, Japan, India, and Australia. As Cortana comes to more countries, she will also become available to enterprise customers. + +Cortana is available on Windows 10, Windows Insider Program and with limited functionality on Windows Phone 8.1, Windows Insider Program. + +## Required hardware and software +Cortana requires the following hardware and software to successfully run the included scenario in your organization. + +|Hardware |Description | +|---------|------------| +|Microphone |For speech interaction with Cortana. If you don't have a microphone, you can still interact with Cortana by typing in the Cortana Search Box in the taskbar. | +|Windows Phone |For location-specific reminders. You can also use a desktop device to run through this scenario, but location accuracy is usually better on phones. | +|Desktop devices |For non-phone-related scenarios. | + + +|Software |Minimum version | +|---------|------------| +|Client operating system |