From f20b4b9c6fa06b88236772ada4b49539d29c1311 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 22 Sep 2016 11:52:41 -0700 Subject: [PATCH 01/39] added files back --- 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 0180ea4ca49005731a5d638dacd637cec1cc647b Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 22 Sep 2016 12:22:58 -0700 Subject: [PATCH 02/39] template --- .../resolve-windows-10-upgrade-errors.md | 238 ++++++++++++++++++ 1 file changed, 238 insertions(+) create mode 100644 windows/deploy/resolve-windows-10-upgrade-errors.md diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md new file mode 100644 index 0000000000..b6d7e97af3 --- /dev/null +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -0,0 +1,238 @@ +--- +title: Windows Hello errors during PIN creation (Windows 10) +description: When you set up Windows Hello in Windows 10, you may get an error during the Create a work PIN step. +ms.assetid: DFEFE22C-4FEF-4FD9-BFC4-9B419C339502 +keywords: deploy, error, troubleshoot, windows, 10 +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: deploy +author: greg-lindsay +localizationpriority: high +--- + +# Resolve common Windows 10 upgrade errors + +**Applies to** +- Windows 10 + +When you set up Windows Hello in Windows 10, you may get an error during the **Create a PIN** step. This topic lists some of the error codes with recommendations for mitigating the problem. If you get an error code that is not listed here, contact Microsoft Support. + +## Where is the error code? + +The following image shows an example of an error during **Create a PIN**. + +![](images/pinerror.png) + +## Error mitigations + +When a user encounters an error when creating the work PIN, advise the user to try the following steps. Many errors can be mitigated by one of these steps. +1. Try to create the PIN again. Some errors are transient and resolve themselves. +2. Sign out, sign in, and try to create the PIN again. +3. Reboot the device and then try to create the PIN again. +4. Unjoin the device from Azure Active Directory (Azure AD), rejoin, and then try to create the PIN again. To unjoin a desktop PC, go to **Settings** > **System** > **About** and select **Disconnect from organization**. To unjoin a device running Windows 10 Mobile, you must [reset the device](https://go.microsoft.com/fwlink/p/?LinkId=715697). +5. On mobile devices, if you are unable to setup a PIN after multiple attempts, reset your device and start over. For help on how to reset your phone go to [Reset my phone](https://go.microsoft.com/fwlink/p/?LinkId=715697). +If the error occurs again, check the error code against the following table to see if there is another mitigation for that error. When no mitigation is listed in the table, contact Microsoft Support for assistance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HexCauseMitigation
0x801C044DAuthorization token does not contain device IDUnjoin the device from Azure AD and rejoin
0x80090036User cancelled an interactive dialogUser will be asked to try again
0x80090011The container or key was not foundUnjoin the device from Azure AD and rejoin
0x8009000FThe container or key already existsUnjoin the device from Azure AD and rejoin
0x8009002ANTE_NO_MEMORYClose programs which are taking up memory and try again.
0x80090005NTE_BAD_DATAUnjoin the device from Azure AD and rejoin
0x80090029TPM is not set up.Sign on with an administrator account. Click **Start**, type "tpm.msc", and select **tpm.msc Microsoft Common Console Document**. In the **Actions** pane, select **Prepare the TPM**.
0x80090031NTE_AUTHENTICATION_IGNOREDReboot the device. If the error occurs again after rebooting, [reset the TPM]( https://go.microsoft.com/fwlink/p/?LinkId=619969) or run [Clear-TPM](https://go.microsoft.com/fwlink/p/?LinkId=629650)
0x80090035Policy requires TPM and the device does not have TPM.Change the Passport policy to not require a TPM.
0x801C0003User is not authorized to enrollCheck if the user has permission to perform the operation​.
0x801C000ERegistration quota reached

Unjoin some other device that is currently joined using the same account or [increase the maximum number of devices per user](https://go.microsoft.com/fwlink/p/?LinkId=626933).

0x801C000FOperation successful but the device requires a rebootReboot the device.
0x801C0010The AIK certificate is not valid or trustedSign out and then sign in again.
0x801C0011The attestation statement of the transport key is invalidSign out and then sign in again.
0x801C0012Discovery request is not in a valid formatSign out and then sign in again.
0x801C0015The device is required to be joined to an Active Directory domain​Join the device to an Active Directory domain.
0x801C0016The federation provider configuration is emptyGo to [http://clientconfig.microsoftonline-p.net/FPURL.xml](http://clientconfig.microsoftonline-p.net/FPURL.xml) and verify that the file is not empty.
0x801C0017​The federation provider domain is emptyGo to [http://clientconfig.microsoftonline-p.net/FPURL.xml](http://clientconfig.microsoftonline-p.net/FPURL.xml) and verify that the FPDOMAINNAME element is not empty.
0x801C0018The federation provider client configuration URL is emptyGo to [http://clientconfig.microsoftonline-p.net/FPURL.xml](http://clientconfig.microsoftonline-p.net/FPURL.xml) and verify that the CLIENTCONFIG element contains a valid URL.
0x801C03E9Server response message is invalidSign out and then sign in again.
0x801C03EAServer failed to authorize user or device.Check if the token is valid and user has permission to register Passport keys.
0x801C03EBServer response http status is not validSign out and then sign in again.
0x801C03ECUnhandled exception from server.sign out and then sign in again.
0x801C03ED

Multi-factor authentication is required for a 'ProvisionKey' operation, but was not performed

+

-or-

+

Token was not found in the Authorization header

+

-or-

+

Failed to read one or more objects

+

-or-

The request sent to the server was invalid.

Sign out and then sign in again. If that doesn't resolve the issue, unjoin the device from Azure Active Directory (Azure AD) and rejoin.
0x801C03EEAttestation failedSign out and then sign in again.
0x801C03EFThe AIK certificate is no longer validSign out and then sign in again.
​0x801C044DUnable to obtain user tokenSign out and then sign in again. Check network and credentials.
0x801C044EFailed to receive user creds inputSign out and then sign in again.
+  +## Errors with unknown mitigation +For errors listed in this table, contact Microsoft Support for assistance. + +| Hex | Cause | +|-------------|-------------------------------------------------------------------------------------------------------| +| 0x80072f0c | Unknown | +| 0x80070057 | Invalid parameter or argument is passed | +| 0x80090027 | Caller provided wrong parameter. If third-party code receives this error they must change their code. | +| 0x8009002D | NTE\_INTERNAL\_ERROR | +| 0x80090020 | NTE\_FAIL | +| 0x801C0001 | ​ADRS server response is not in valid format | +| 0x801C0002 | Server failed to authenticate the user | +| 0x801C0006 | Unhandled exception from server | +| 0x801C000C | Discovery failed | +| 0x801C001B | ​The device certificate is not found | +| 0x801C000B | Redirection is needed and redirected location is not a well known server | +| 0x801C0019 | ​The federation provider client configuration is empty | +| 0x801C001A | The DRS endpoint in the federation provider client configuration is empty | +| 0x801C0013 | Tenant ID is not found in the token | +| 0x801C0014 | User SID is not found in the token | +| 0x801C03F1 | There is no UPN in the token | +| 0x801C03F0 | ​There is no key registered for the user | +| 0x801C03F1 | ​There is no UPN in the token | +| ​0x801C044C | There is no core window for the current thread | +  + +## Related topics + +[Manage identity verification using Windows Hello for Business](manage-identity-verification-using-microsoft-passport.md) + +[Implement Windows Hello for Business in your organization](implement-microsoft-passport-in-your-organization.md) + +[Enable phone sign-in to PC or VPN](enable-phone-signin-to-pc-and-vpn.md) + +[Why a PIN is better than a password](why-a-pin-is-better-than-a-password.md) + +[Prepare people to use Windows Hello](prepare-people-to-use-microsoft-passport.md) + +[Windows Hello and password changes](microsoft-passport-and-password-changes.md) + +[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 From 87b2857318b90393351102a35a3579b4d296c0d9 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 22 Sep 2016 13:27:26 -0700 Subject: [PATCH 03/39] table --- .../resolve-windows-10-upgrade-errors.md | 314 +++++++++--------- 1 file changed, 159 insertions(+), 155 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index b6d7e97af3..1ee41259f7 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -16,23 +16,17 @@ localizationpriority: high **Applies to** - Windows 10 -When you set up Windows Hello in Windows 10, you may get an error during the **Create a PIN** step. This topic lists some of the error codes with recommendations for mitigating the problem. If you get an error code that is not listed here, contact Microsoft Support. +Some information about this topic -## Where is the error code? +## An intro topic -The following image shows an example of an error during **Create a PIN**. +Maybe an image here -![](images/pinerror.png) +- image - -## Error mitigations +## Some troubleshooting information -When a user encounters an error when creating the work PIN, advise the user to try the following steps. Many errors can be mitigated by one of these steps. -1. Try to create the PIN again. Some errors are transient and resolve themselves. -2. Sign out, sign in, and try to create the PIN again. -3. Reboot the device and then try to create the PIN again. -4. Unjoin the device from Azure Active Directory (Azure AD), rejoin, and then try to create the PIN again. To unjoin a desktop PC, go to **Settings** > **System** > **About** and select **Disconnect from organization**. To unjoin a device running Windows 10 Mobile, you must [reset the device](https://go.microsoft.com/fwlink/p/?LinkId=715697). -5. On mobile devices, if you are unable to setup a PIN after multiple attempts, reset your device and start over. For help on how to reset your phone go to [Reset my phone](https://go.microsoft.com/fwlink/p/?LinkId=715697). -If the error occurs again, check the error code against the following table to see if there is another mitigation for that error. When no mitigation is listed in the table, contact Microsoft Support for assistance. +Blah blah yadda yadda @@ -46,193 +40,203 @@ If the error occurs again, check the error code against the following table to s - - - + + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +
0x801C044DAuthorization token does not contain device IDUnjoin the device from Azure AD and rejoin0xC1900200This error would come up during the first phase of the upgrade process which means setup.exe has detected the machine does not have the minimum system requirements.Ensure the system you are trying to upgrade meets the minimum system requirements. Refer to https://www.microsoft.com/en-us/windows/windows-10-specifications for more details.
0x800900360x8007002C - 0x4000D User cancelled an interactive dialog User will be asked to try again
0x80090011The container or key was not foundUnjoin the device from Azure AD and rejoinThis error is generally caused by device drivers during the migration process of user data.Contact your hardware vendor and get all the device drivers updated. It is recommended to have an active internet connection during upgrade process so that it can get the Dynamic Updates for the OS - ensure you select the option that says: “Download and install updates (recommended)”.
0x8009000FThe container or key already existsUnjoin the device from Azure AD and rejoin0xC7700112This error occurs when Windows fails to write the complete data on the system drive, which would fail due to write access on the Hard Disk.This issue is resolved in the latest Upgrade Assistant exe (BUG 8153646). We would not see this issue anymore on any upgrades after July 14, 2016.
0x8009002ANTE_NO_MEMORYClose programs which are taking up memory and try again.0xC1900101 - 0x30018This error comes up when a device driver stops responding to the setup.exe while the upgrade is in progress.To resolve this issue, disconnect any additional devices that are connected to the system other than the mouse, keyboard and display. +Contact your hardware vendor and get all the device drivers updated. It is recommended to have an active internet connection during upgrade process so that it can get the Dynamic Updates for the OS. +
0x80090005NTE_BAD_DATAUnjoin the device from Azure AD and rejoin0x80190001This error means that we encountered an unexpected error when attempting to download the files required for upgrade.This error comes up when we initiate the setup and there is an issue while downloading the Windows 10 media via the Windows update portal. +To resolve this issue: +1. 1. Download the ISO using Media Creation Tool, Refer: https://www.microsoft.com/en-us/software-download/windows10 +2. Initiate the upgrade from the USB/DVD/ISO" +
0x80090029TPM is not set up.Sign on with an administrator account. Click **Start**, type "tpm.msc", and select **tpm.msc Microsoft Common Console Document**. In the **Actions** pane, select **Prepare the TPM**. 0xC1900101 - 0x20017This error occurs because a driver has caused an illegal operation and Windows was not able to migrate the driver which resulted in a Rollback of the operating system.To resolve this issue: +1. Make sure all that drivers are updated. +2. Open the Setuperr.log and Setupact.log files under the %windir%\Panther directory, and then locate the problem drivers. Refer: Understanding Failures and Log Files +3. Update or uninstall the problem drivers. +
0x80090031NTE_AUTHENTICATION_IGNOREDReboot the device. If the error occurs again after rebooting, [reset the TPM]( https://go.microsoft.com/fwlink/p/?LinkId=619969) or run [Clear-TPM](https://go.microsoft.com/fwlink/p/?LinkId=629650)0x80246007This error occurs if the update was not downloaded successfully on the machine.In order to mitigate this error, you need to pursue a different way of upgrade which would be: +If you are using Upgrade this PC option in media creation tool, we recommend you try other methods such as a USB Flash Drive or Downloading ISO files to upgrade your PC. +Solution 1: Creating USB Flash Drive. +1. Download Windows Media Creation tool. +2. Run the tool and you will be asked to accept the T&C before proceeding. +3. Now you’ll get the following options. Select option b. +a. Upgrade this PC +b. Create Installation Media for another PC. +4. Select Language, Architecture, and Edition. In this case, it will be done automatically. +5. You’ll again get two options. Select option a. Ensure your Pen drive has more than 4gb of free space. +a. USB Flash Drive +b. ISO file. Select USB Flash Drive. +6. Click next, if your pen drive is connected, Select the drive and Click next. +The tool will Download Windows 10 on your USB and after finishing you can now use the drive to upgrade. + +Solution 2: Downloading ISO file +If the above method fails use this second solution to fix it is: +1. Download Windows Media Creation tool. +2. Run the tool and you will be asked to accept the T&C before proceeding. +3. Now you’ll get the following options. Select option b. +a. Upgrade this PC +b. Create Installation Media for another PC. +4. Select Language, Architecture, and Edition. In this case, it will be done automatically. +5. You’ll again get two options. Select option b. Ensure your Pen drive has more than 4gb of free space. +a. USB Flash Drive +b. ISO file. Select USB Flash Drive. +6. Follow the instructions given on the screen until it finishes downloading. +7. Insert a Blank DVD and burn the disc image. +8. Run the setup from the DVD. +9. If you want to install Windows 10 directly from the ISO file without using a DVD or flash drive, you can do so by mounting the ISO file. +Navigate to the Downloaded File, Right Click it and Click On MOUNT. +10. Double-click setup.exe to start Windows 10 setup. + +Windows 10 Enterprise isn’t available in the media creation tool. For more info, go to the Volume Licensing Service Center. +
0x80090035Policy requires TPM and the device does not have TPM.Change the Passport policy to not require a TPM.0xC1900201This error occurs because the system does not pass the minimum requirements to install the update since the user canceled the upgrade process.Please contact the Hardware Vendor to get the latest Firmware/BIOS/Driver updates for all the hardware. Then, try to run the upgrade again.
0x801C0003User is not authorized to enrollCheck if the user has permission to perform the operation​.0x80240017This error indicates that the upgrade is unavailable for the edition of Windows that's running on the computer.If your system is managed by Enterprise, your IT administrators may be currently preventing you to upgrade to the newer version of Windows 10. Please contact your IT administrator to upgrade to Windows 10.
0x801C000ERegistration quota reached

Unjoin some other device that is currently joined using the same account or [increase the maximum number of devices per user](https://go.microsoft.com/fwlink/p/?LinkId=626933).

0xC1900101 - 0x4000DThis error occurs if there’s a driver configuration issue during Windows Setup process.

When this error occurs, the setup.exe would have generated a crash in the background and would initiate a rollback to the previous operating system. +In order to fix this issue, you need to troubleshoot what the exact crash was and what was the stop code. You need to review the rollback log, that is located at: C:\$Windows.~BT\Sources\Panther folder and you should notice something similar to the following: +Info SP Crash 0x0000007E detected +Info SP Module name : +Info SP Bugcheck parameter 1 : 0xFFFFFFFFC0000005 +Info SP Bugcheck parameter 2 : 0xFFFFF8015BC0036A +Info SP Bugcheck parameter 3 : 0xFFFFD000E5D23728 +Info SP Bugcheck parameter 4 : 0xFFFFD000E5D22F40 +Info SP Cannot recover the system. +Info SP Rollback: Showing splash window with restoring text: Restoring your previous version of Windows. + +Usually, there’s a dump file for the crash to analyze. If you are not equipped to debug the dump, you should use some basic troubleshooting techniques: +• Make sure you have enough disk space. +• If a driver is identified in the bug check message, disable the driver or check with the manufacturer for driver updates. +• Try changing video adapters. +• Check with your hardware vendor for any BIOS updates. +• Disable BIOS memory options such as caching or shadowing. +

0x801C000FOperation successful but the device requires a rebootReboot the device.0x80070020This error means that the existing process cannot access the file because it is being used by another process.Use the MSCONFIG tool to perform a clean boot on the machine and then try to perform the update again. Refer: How to perform a clean boot in Windows
0x801C0010The AIK certificate is not valid or trustedSign out and then sign in again.0x80070522This error occurs if the user doesn’t have required privilege or credentials to upgrade.Please ensure that you have logged in as a local administrator or have local administrator privileges and attempt to run the upgrade again.
0x801C0011The attestation statement of the transport key is invalidSign out and then sign in again.0xC1900107This error means that a cleanup operation from a previous installation attempt is still pending and a system reboot is required in order to continue the upgrade. +This error occurs when Windows Setup or Windows Update is tried multiple times and there is a pending reboot operation. +The only option to get past this error is to reboot the device and then try to run setup again. If restarting device does not resolve the issue, then use the Disk Cleanup utility and cleanup the temporary as well as the System files and then continue the process. Refer: Disk cleanup in Windows 10
0x801C0012Discovery request is not in a valid formatSign out and then sign in again.0xC1900209This error occurs when the user has chosen to cancel because the system does not pass the compatibility scan to install the update. The Setup.exe will report this error when it can upgrade the machine with user data but cannot upgrade the apps installed.This error means that an incompatible app/software installed on your PC is blocking the upgrade process from completing. Check to make sure that any incompatible apps are uninstalled and then try updating again. +Refer: Windows 10 Pre-Upgrade Validation using SETUP.EXE +You could use "start /wait setup.exe /Auto Upgrade /Quiet /NoReboot /DynamicUpdate Disable /Compat ScanOnly" from a command prompt, + and then "echo %errorlevel%" to see the return code. + +You can also download the latest version from the Windows Assessment and Deployment Kit (ADK) for Windows 10 and install Application Compatibility Tools. +
0x801C0015The device is required to be joined to an Active Directory domain​Join the device to an Active Directory domain.0xC1900101 - 0x40017This error occurs when the Windows 10 upgrade fails after the second reboot, which is most like to be caused by a faulty driver like Anti-Virus filter drivers, Encryption drivers etc.​1. Clean boot into Windows, and then attempt the upgrade to Windows 10. +Refer: How to perform a clean boot in Windows +2. During upgrade ensure you select the option that says: “Download and install updates (recommended)” +
0x801C0016The federation provider configuration is emptyGo to [http://clientconfig.microsoftonline-p.net/FPURL.xml](http://clientconfig.microsoftonline-p.net/FPURL.xml) and verify that the file is not empty.display is not compatibleThis error occurs when the setup.exe checks compatibility of the hardware on the system and finds that the display card installed is not compatible with Windows 10.In order to continue the setup, uninstall display adapter by following these steps: + +1. Press Windows key + R +2. Type: devmgmt.msc +3. Expand: Display adapters +4. Right click listed Display Adapter and click Uninstall + +Start upgrade setup again. When setup completes successfully, install the latest driver updates for device through Windows Update or from the computer manufacturers website using compatibility mode if necessary. +
0x801C0017​The federation provider domain is emptyGo to [http://clientconfig.microsoftonline-p.net/FPURL.xml](http://clientconfig.microsoftonline-p.net/FPURL.xml) and verify that the FPDOMAINNAME element is not empty.0x8007002 ​This error usually happens when upgrading to Windows 10 (1511) through SCCM 2012 R2 SP1 CU3 (5.00.8238.1403)By analyzing the SMSTS.log, one could notice the upgrade is failing on "Apply Operating system" Phase: +Error 80072efe DownloadFileWithRanges() failed. 80072efe. ApplyOperatingSystem (0x0760) + +This error 80072efe means: The connection with the server was terminated abnormally. + +To resolve this issue, try the OS Deployment test on a client in same vLAN where the SCCM server is located. Check the network configuration for random Client server connection issue happening on other VLAN. +
0x801C0018The federation provider client configuration URL is emptyGo to [http://clientconfig.microsoftonline-p.net/FPURL.xml](http://clientconfig.microsoftonline-p.net/FPURL.xml) and verify that the CLIENTCONFIG element contains a valid URL.
0x801C03E9Server response message is invalidSign out and then sign in again.
0x801C03EAServer failed to authorize user or device.Check if the token is valid and user has permission to register Passport keys.
0x801C03EBServer response http status is not validSign out and then sign in again.
0x801C03ECUnhandled exception from server.sign out and then sign in again.
0x801C03ED

Multi-factor authentication is required for a 'ProvisionKey' operation, but was not performed

-

-or-

-

Token was not found in the Authorization header

-

-or-

-

Failed to read one or more objects

-

-or-

The request sent to the server was invalid.

Sign out and then sign in again. If that doesn't resolve the issue, unjoin the device from Azure Active Directory (Azure AD) and rejoin.
0x801C03EEAttestation failedSign out and then sign in again.
0x801C03EFThe AIK certificate is no longer validSign out and then sign in again.
​0x801C044DUnable to obtain user tokenSign out and then sign in again. Check network and credentials.
0x801C044EFailed to receive user creds inputSign out and then sign in again.
Error 800705B4: This operation returned because the timeout period expired.The reason for the task sequence to failed is due to time out issue, which is set by the task sequence limitation to 180 mins of run time. This also caused the SCCM client to be corrupted.Reviewing SMSTS.log file, shows the following error: +Command line execution failed (800705B4) TSManager 3/30/2016 10:11:29 PM 8920 (0x22D8) +Failed to run the action: Upgrade Windows. + +To resolve this issue, increased the default task sequence run time and change the task sequence to have the content downloaded locally prior install. +
  -## Errors with unknown mitigation -For errors listed in this table, contact Microsoft Support for assistance. -| Hex | Cause | -|-------------|-------------------------------------------------------------------------------------------------------| -| 0x80072f0c | Unknown | -| 0x80070057 | Invalid parameter or argument is passed | -| 0x80090027 | Caller provided wrong parameter. If third-party code receives this error they must change their code. | -| 0x8009002D | NTE\_INTERNAL\_ERROR | -| 0x80090020 | NTE\_FAIL | -| 0x801C0001 | ​ADRS server response is not in valid format | -| 0x801C0002 | Server failed to authenticate the user | -| 0x801C0006 | Unhandled exception from server | -| 0x801C000C | Discovery failed | -| 0x801C001B | ​The device certificate is not found | -| 0x801C000B | Redirection is needed and redirected location is not a well known server | -| 0x801C0019 | ​The federation provider client configuration is empty | -| 0x801C001A | The DRS endpoint in the federation provider client configuration is empty | -| 0x801C0013 | Tenant ID is not found in the token | -| 0x801C0014 | User SID is not found in the token | -| 0x801C03F1 | There is no UPN in the token | -| 0x801C03F0 | ​There is no key registered for the user | -| 0x801C03F1 | ​There is no UPN in the token | -| ​0x801C044C | There is no core window for the current thread | + +## Appendix A: Less common errors + + |   ## Related topics -[Manage identity verification using Windows Hello for Business](manage-identity-verification-using-microsoft-passport.md) - -[Implement Windows Hello for Business in your organization](implement-microsoft-passport-in-your-organization.md) - -[Enable phone sign-in to PC or VPN](enable-phone-signin-to-pc-and-vpn.md) - -[Why a PIN is better than a password](why-a-pin-is-better-than-a-password.md) - -[Prepare people to use Windows Hello](prepare-people-to-use-microsoft-passport.md) - -[Windows Hello and password changes](microsoft-passport-and-password-changes.md) - -[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 +• Windows 10 FAQ for IT professionals +• Windows 10 Enterprise system requirements +• Windows 10 IT pro forums From 89b45c436134a870611bbaa698ab3828b8aca823 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 22 Sep 2016 15:10:52 -0700 Subject: [PATCH 04/39] text cleanup --- .../resolve-windows-10-upgrade-errors.md | 166 +++++++----------- 1 file changed, 60 insertions(+), 106 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 1ee41259f7..67c04dde1a 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -1,6 +1,6 @@ --- -title: Windows Hello errors during PIN creation (Windows 10) -description: When you set up Windows Hello in Windows 10, you may get an error during the Create a work PIN step. +title: Resolve common Windows 10 upgrade errors +description: Resolve common Windows 10 upgrade errors ms.assetid: DFEFE22C-4FEF-4FD9-BFC4-9B419C339502 keywords: deploy, error, troubleshoot, windows, 10 ms.prod: w10 @@ -32,112 +32,77 @@ Blah blah yadda yadda -Hex -Cause -Mitigation +Error code +Cause +Mitigation 0xC1900200 -This error would come up during the first phase of the upgrade process which means setup.exe has detected the machine does not have the minimum system requirements. -Ensure the system you are trying to upgrade meets the minimum system requirements. Refer to https://www.microsoft.com/en-us/windows/windows-10-specifications for more details. +During the first phase of the upgrade process, setup.exe has detected that the machine does not meet the minimum system requirements. +Ensure the system you are trying to upgrade meets the minimum system requirements. See [Windows 10 specifications](https://www.microsoft.com/en-us/windows/windows-10-specifications) for information. 0x8007002C - 0x4000D -User cancelled an interactive dialog -User will be asked to try again +The user cancelled an interactive dialog. +Try the process again again. 0x80090011 -This error is generally caused by device drivers during the migration process of user data. -Contact your hardware vendor and get all the device drivers updated. It is recommended to have an active internet connection during upgrade process so that it can get the Dynamic Updates for the OS - ensure you select the option that says: “Download and install updates (recommended)”. +A device driver error occurred during user data migration. +Contact your hardware vendor and get all the device drivers updated. It is recommended to have an active internet connection during upgrade process. Ensure that “Download and install updates (recommended)” is accepted at the start of the upgrade process. 0xC7700112 -This error occurs when Windows fails to write the complete data on the system drive, which would fail due to write access on the Hard Disk. -This issue is resolved in the latest Upgrade Assistant exe (BUG 8153646). We would not see this issue anymore on any upgrades after July 14, 2016. +Failure to complete writing data to the system drive, possibly due to write access failure on the hard disk. +This issue is resolved in the latest version of Upgrade Assistant. Ensure that “Download and install updates (recommended)” is accepted at the start of the upgrade process. 0xC1900101 - 0x30018 -This error comes up when a device driver stops responding to the setup.exe while the upgrade is in progress. -To resolve this issue, disconnect any additional devices that are connected to the system other than the mouse, keyboard and display. -Contact your hardware vendor and get all the device drivers updated. It is recommended to have an active internet connection during upgrade process so that it can get the Dynamic Updates for the OS. +A device driver has stopped responding to setup.exe during the upgrade process. +Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display. Contact your hardware vendor to obtain updated device drivers. Ensure that “Download and install updates (recommended)” is accepted at the start of the upgrade process. 0x80190001 -This error means that we encountered an unexpected error when attempting to download the files required for upgrade. -This error comes up when we initiate the setup and there is an issue while downloading the Windows 10 media via the Windows update portal. -To resolve this issue: -1. 1. Download the ISO using Media Creation Tool, Refer: https://www.microsoft.com/en-us/software-download/windows10 -2. Initiate the upgrade from the USB/DVD/ISO" +An unexpected error was encountered while attempting to download files required for upgrade. +To resolve this issue, download and run the media creation tool. See [Download windows 10](https://www.microsoft.com/en-us/software-download/windows10). 0xC1900101 - 0x20017 -This error occurs because a driver has caused an illegal operation and Windows was not able to migrate the driver which resulted in a Rollback of the operating system. -To resolve this issue: +A driver has caused an illegal operation and Windows was not able to migrate the driver, resulting in a rollback of the operating system. +To resolve this issue:
1. Make sure all that drivers are updated. -2. Open the Setuperr.log and Setupact.log files under the %windir%\Panther directory, and then locate the problem drivers. Refer: Understanding Failures and Log Files +2. Open the Setuperr.log and Setupact.log files under the %windir%\Panther directory, and then locate the problem drivers. Refer: [Understanding Failures and Log Files](https://technet.microsoft.com/en-us/library/ee851579.aspx) 3. Update or uninstall the problem drivers. 0x80246007 -This error occurs if the update was not downloaded successfully on the machine. -In order to mitigate this error, you need to pursue a different way of upgrade which would be: -If you are using Upgrade this PC option in media creation tool, we recommend you try other methods such as a USB Flash Drive or Downloading ISO files to upgrade your PC. -Solution 1: Creating USB Flash Drive. -1. Download Windows Media Creation tool. -2. Run the tool and you will be asked to accept the T&C before proceeding. -3. Now you’ll get the following options. Select option b. -a. Upgrade this PC -b. Create Installation Media for another PC. -4. Select Language, Architecture, and Edition. In this case, it will be done automatically. -5. You’ll again get two options. Select option a. Ensure your Pen drive has more than 4gb of free space. -a. USB Flash Drive -b. ISO file. Select USB Flash Drive. -6. Click next, if your pen drive is connected, Select the drive and Click next. -The tool will Download Windows 10 on your USB and after finishing you can now use the drive to upgrade. - -Solution 2: Downloading ISO file -If the above method fails use this second solution to fix it is: -1. Download Windows Media Creation tool. -2. Run the tool and you will be asked to accept the T&C before proceeding. -3. Now you’ll get the following options. Select option b. -a. Upgrade this PC -b. Create Installation Media for another PC. -4. Select Language, Architecture, and Edition. In this case, it will be done automatically. -5. You’ll again get two options. Select option b. Ensure your Pen drive has more than 4gb of free space. -a. USB Flash Drive -b. ISO file. Select USB Flash Drive. -6. Follow the instructions given on the screen until it finishes downloading. -7. Insert a Blank DVD and burn the disc image. -8. Run the setup from the DVD. -9. If you want to install Windows 10 directly from the ISO file without using a DVD or flash drive, you can do so by mounting the ISO file. -Navigate to the Downloaded File, Right Click it and Click On MOUNT. -10. Double-click setup.exe to start Windows 10 setup. - -Windows 10 Enterprise isn’t available in the media creation tool. For more info, go to the Volume Licensing Service Center. +The update was not downloaded successfully. +Attempt other methods of upgrading. Download and run the media creation tool. See [Download windows 10](https://www.microsoft.com/en-us/software-download/windows10). Attempt to upgrade using .ISO or USB.
+**Note**: Windows 10 Enterprise isn’t available in the media creation tool. For more information, go to the [Volume Licensing Service Center](https://www.microsoft.com/licensing/servicecenter/default.aspx). 0xC1900201 -This error occurs because the system does not pass the minimum requirements to install the update since the user canceled the upgrade process. -Please contact the Hardware Vendor to get the latest Firmware/BIOS/Driver updates for all the hardware. Then, try to run the upgrade again. +The system did not pass the minimum requirements to install the update. +Contact the hardware vendor to get the latest updates. 0x80240017 -This error indicates that the upgrade is unavailable for the edition of Windows that's running on the computer. -If your system is managed by Enterprise, your IT administrators may be currently preventing you to upgrade to the newer version of Windows 10. Please contact your IT administrator to upgrade to Windows 10. +The upgrade is unavailable for this edition of Windows. +Administrative policies enforced by your organization might be preventing the upgrade. Contact your IT administrator. 0xC1900101 - 0x4000D -This error occurs if there’s a driver configuration issue during Windows Setup process. -

When this error occurs, the setup.exe would have generated a crash in the background and would initiate a rollback to the previous operating system. -In order to fix this issue, you need to troubleshoot what the exact crash was and what was the stop code. You need to review the rollback log, that is located at: C:\$Windows.~BT\Sources\Panther folder and you should notice something similar to the following: +A driver configuration issue occurred during the Windows setup process and a rollback occurred. +

Review the rollback log and determine the stop code. The rollback log is located in the C:\$Windows.~BT\Sources\Panther folder. Look for text similar to the following: + +``` Info SP Crash 0x0000007E detected Info SP Module name : Info SP Bugcheck parameter 1 : 0xFFFFFFFFC0000005 @@ -146,83 +111,72 @@ Info SP Bugcheck parameter 3 : 0xFFFFD000E5D23728 Info SP Bugcheck parameter 4 : 0xFFFFD000E5D22F40 Info SP Cannot recover the system. Info SP Rollback: Showing splash window with restoring text: Restoring your previous version of Windows. +``` -Usually, there’s a dump file for the crash to analyze. If you are not equipped to debug the dump, you should use some basic troubleshooting techniques: -• Make sure you have enough disk space. -• If a driver is identified in the bug check message, disable the driver or check with the manufacturer for driver updates. -• Try changing video adapters. -• Check with your hardware vendor for any BIOS updates. -• Disable BIOS memory options such as caching or shadowing. +Typically there is a a dump file for the crash to analyze. If you are not equipped to debug the dump, then attempt the following basic troubleshooting procedures:
+ - Make sure you have enough disk space.
+ - If a driver is identified in the bug check message, disable the driver, or check with the manufacturer for driver updates.
+ - Try changing video adapters.
+ - Check with your hardware vendor for any BIOS updates.
+ - Disable BIOS memory options such as caching or shadowing.

0x80070020 -This error means that the existing process cannot access the file because it is being used by another process. -Use the MSCONFIG tool to perform a clean boot on the machine and then try to perform the update again. Refer: How to perform a clean boot in Windows +The existing process cannot access the file because it is being used by another process. +Use the MSCONFIG tool to perform a clean boot on the machine and then try to perform the update again. See [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135) for more information. 0x80070522 -This error occurs if the user doesn’t have required privilege or credentials to upgrade. -Please ensure that you have logged in as a local administrator or have local administrator privileges and attempt to run the upgrade again. +The user doesn’t have required privilege or credentials to upgrade. +Ensure that you have signed in as a local administrator or have local administrator privileges. 0xC1900107 -This error means that a cleanup operation from a previous installation attempt is still pending and a system reboot is required in order to continue the upgrade. -This error occurs when Windows Setup or Windows Update is tried multiple times and there is a pending reboot operation. +A cleanup operation from a previous installation attempt is still pending and a system reboot is required in order to continue the upgrade. -The only option to get past this error is to reboot the device and then try to run setup again. If restarting device does not resolve the issue, then use the Disk Cleanup utility and cleanup the temporary as well as the System files and then continue the process. Refer: Disk cleanup in Windows 10 +Reboot the device and run setup again. If restarting device does not resolve the issue, then use the Disk Cleanup utility and cleanup the temporary as well as the System files. See [Disk cleanup in Windows 10](https://support.microsoft.com/en-us/instantanswers/8fef4121-711b-4be1-996f-99e02c7301c2/disk-cleanup-in-windows-10) for more information. 0xC1900209 -This error occurs when the user has chosen to cancel because the system does not pass the compatibility scan to install the update. The Setup.exe will report this error when it can upgrade the machine with user data but cannot upgrade the apps installed. -This error means that an incompatible app/software installed on your PC is blocking the upgrade process from completing. Check to make sure that any incompatible apps are uninstalled and then try updating again. -Refer: Windows 10 Pre-Upgrade Validation using SETUP.EXE -You could use "start /wait setup.exe /Auto Upgrade /Quiet /NoReboot /DynamicUpdate Disable /Compat ScanOnly" from a command prompt, - and then "echo %errorlevel%" to see the return code. +The user has chosen to cancel because the system does not pass the compatibility scan to install the update. Setup.exe will report this error when it can upgrade the machine with user data but cannot migrate installed applications. +Incompatible software is blocking the upgrade process. Uninstall the application and try the upgrade again. See [Windows 10 Pre-Upgrade Validation using SETUP.EXE](https://blogs.technet.microsoft.com/mniehaus/2015/08/23/windows-10-pre-upgrade-validation-using-setup-exe/) for more information. -You can also download the latest version from the Windows Assessment and Deployment Kit (ADK) for Windows 10 and install Application Compatibility Tools. +You can also download the [Windows Assessment and Deployment Kit (ADK) for Windows 10](http://go.microsoft.com/fwlink/p/?LinkId=526740) and install Application Compatibility Tools. 0xC1900101 - 0x40017 -This error occurs when the Windows 10 upgrade fails after the second reboot, which is most like to be caused by a faulty driver like Anti-Virus filter drivers, Encryption drivers etc. -​1. Clean boot into Windows, and then attempt the upgrade to Windows 10. -Refer: How to perform a clean boot in Windows -2. During upgrade ensure you select the option that says: “Download and install updates (recommended)” +Windows 10 upgrade fails after the second reboot, which is most like to be caused by a faulty driver, for example antivirus filter drivers or encryption drivers. +​Clean boot into Windows, and then attempt the upgrade to Windows 10. See [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135) for more information. + +
During upgrade, ensure you select the option to “Download and install updates (recommended).” display is not compatible -This error occurs when the setup.exe checks compatibility of the hardware on the system and finds that the display card installed is not compatible with Windows 10. -In order to continue the setup, uninstall display adapter by following these steps: - -1. Press Windows key + R -2. Type: devmgmt.msc -3. Expand: Display adapters -4. Right click listed Display Adapter and click Uninstall - -Start upgrade setup again. When setup completes successfully, install the latest driver updates for device through Windows Update or from the computer manufacturers website using compatibility mode if necessary. +The display card installed is not compatible with Windows 10. +Uninstall the display adapter and start the upgrade again. When setup completes successfully, install the latest display adapter driver using Windows Update or by downloading from the computer manufacturers website. Use compatibility mode if necessary. 0x8007002 -​This error usually happens when upgrading to Windows 10 (1511) through SCCM 2012 R2 SP1 CU3 (5.00.8238.1403) -By analyzing the SMSTS.log, one could notice the upgrade is failing on "Apply Operating system" Phase: -Error 80072efe DownloadFileWithRanges() failed. 80072efe. ApplyOperatingSystem (0x0760) +This error is specific to upgrades using System Center Configuration Manager 2012 R2 SP1 CU3 (5.00.8238.1403) +Analyze the SMSTS.log and verify that the upgrade is failing on "Apply Operating system" Phase: Error 80072efe DownloadFileWithRanges() failed. 80072efe. ApplyOperatingSystem (0x0760) -This error 80072efe means: The connection with the server was terminated abnormally. +The error 80072efe means that the connection with the server was terminated abnormally. -To resolve this issue, try the OS Deployment test on a client in same vLAN where the SCCM server is located. Check the network configuration for random Client server connection issue happening on other VLAN. +To resolve this issue, try the OS Deployment test on a client in same VLAN as the Configuration Manager server. Check the network configuration for random client-server connection issues happening on the remote VLAN. Error 800705B4: This operation returned because the timeout period expired. -The reason for the task sequence to failed is due to time out issue, which is set by the task sequence limitation to 180 mins of run time. This also caused the SCCM client to be corrupted. -Reviewing SMSTS.log file, shows the following error: +A time out issue set by the task sequence limitation to 180 mins of run time. This can also occur if the System Center client is corrupted. +Review the SMSTS.log file and verify the following error is displayed:
Command line execution failed (800705B4) TSManager 3/30/2016 10:11:29 PM 8920 (0x22D8) Failed to run the action: Upgrade Windows. -To resolve this issue, increased the default task sequence run time and change the task sequence to have the content downloaded locally prior install. +To resolve this issue, increase the default task sequence run time and change the task sequence to have the content downloaded locally prior to installation. From 7998cd5658d2bf4a6edf4a78fe4585da6a35d83e Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 22 Sep 2016 15:57:55 -0700 Subject: [PATCH 05/39] text cleanup --- .../resolve-windows-10-upgrade-errors.md | 780 +++++++++++++++++- 1 file changed, 763 insertions(+), 17 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 67c04dde1a..8e86bb542a 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -42,28 +42,31 @@ Blah blah yadda yadda 0xC1900200 During the first phase of the upgrade process, setup.exe has detected that the machine does not meet the minimum system requirements. -Ensure the system you are trying to upgrade meets the minimum system requirements. See [Windows 10 specifications](https://www.microsoft.com/en-us/windows/windows-10-specifications) for information. +Ensure the system you are trying to upgrade meets the minimum system requirements.

See [Windows 10 specifications](https://www.microsoft.com/en-us/windows/windows-10-specifications) for information. 0x8007002C - 0x4000D The user cancelled an interactive dialog. -Try the process again again. +Start the upgrade process again again. 0x80090011 A device driver error occurred during user data migration. -Contact your hardware vendor and get all the device drivers updated. It is recommended to have an active internet connection during upgrade process. Ensure that “Download and install updates (recommended)” is accepted at the start of the upgrade process. +Contact your hardware vendor and get all the device drivers updated. It is recommended to have an active internet connection during upgrade process. +

Ensure that “Download and install updates (recommended)” is accepted at the start of the upgrade process. 0xC7700112 Failure to complete writing data to the system drive, possibly due to write access failure on the hard disk. -This issue is resolved in the latest version of Upgrade Assistant. Ensure that “Download and install updates (recommended)” is accepted at the start of the upgrade process. +This issue is resolved in the latest version of Upgrade Assistant. +

Ensure that “Download and install updates (recommended)” is accepted at the start of the upgrade process. 0xC1900101 - 0x30018 A device driver has stopped responding to setup.exe during the upgrade process. -Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display. Contact your hardware vendor to obtain updated device drivers. Ensure that “Download and install updates (recommended)” is accepted at the start of the upgrade process. +Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display. Contact your hardware vendor to obtain updated device drivers. +

Ensure that “Download and install updates (recommended)” is accepted at the start of the upgrade process. @@ -75,15 +78,17 @@ Blah blah yadda yadda 0xC1900101 - 0x20017 A driver has caused an illegal operation and Windows was not able to migrate the driver, resulting in a rollback of the operating system. To resolve this issue:
-1. Make sure all that drivers are updated. -2. Open the Setuperr.log and Setupact.log files under the %windir%\Panther directory, and then locate the problem drivers. Refer: [Understanding Failures and Log Files](https://technet.microsoft.com/en-us/library/ee851579.aspx) +1. Make sure all that drivers are updated.
+2. Open the Setuperr.log and Setupact.log files under the %windir%\Panther directory, and then locate the problem drivers. Refer: [Understanding Failures and Log Files](https://technet.microsoft.com/en-us/library/ee851579.aspx)
3. Update or uninstall the problem drivers. 0x80246007 The update was not downloaded successfully. -Attempt other methods of upgrading. Download and run the media creation tool. See [Download windows 10](https://www.microsoft.com/en-us/software-download/windows10). Attempt to upgrade using .ISO or USB.
+Attempt other methods of upgrading the operatign system.
+Download and run the media creation tool. See [Download windows 10](https://www.microsoft.com/en-us/software-download/windows10). +
Attempt to upgrade using .ISO or USB.
**Note**: Windows 10 Enterprise isn’t available in the media creation tool. For more information, go to the [Volume Licensing Service Center](https://www.microsoft.com/licensing/servicecenter/default.aspx). @@ -100,7 +105,8 @@ Blah blah yadda yadda 0xC1900101 - 0x4000D A driver configuration issue occurred during the Windows setup process and a rollback occurred. -

Review the rollback log and determine the stop code. The rollback log is located in the C:\$Windows.~BT\Sources\Panther folder. Look for text similar to the following: +

Review the rollback log and determine the stop code. The rollback log is located in the **C:\$Windows.~BT\Sources\Panther** folder. Look for text similar to the following: + ``` Info SP Crash 0x0000007E detected @@ -142,7 +148,7 @@ Typically there is a a dump file for the crash to analyze. If you are not equipp The user has chosen to cancel because the system does not pass the compatibility scan to install the update. Setup.exe will report this error when it can upgrade the machine with user data but cannot migrate installed applications. Incompatible software is blocking the upgrade process. Uninstall the application and try the upgrade again. See [Windows 10 Pre-Upgrade Validation using SETUP.EXE](https://blogs.technet.microsoft.com/mniehaus/2015/08/23/windows-10-pre-upgrade-validation-using-setup-exe/) for more information. -You can also download the [Windows Assessment and Deployment Kit (ADK) for Windows 10](http://go.microsoft.com/fwlink/p/?LinkId=526740) and install Application Compatibility Tools. +

You can also download the [Windows Assessment and Deployment Kit (ADK) for Windows 10](http://go.microsoft.com/fwlink/p/?LinkId=526740) and install Application Compatibility Tools. @@ -150,7 +156,7 @@ You can also download the [Windows Assessment and Deployment Kit (ADK) for Windo Windows 10 upgrade fails after the second reboot, which is most like to be caused by a faulty driver, for example antivirus filter drivers or encryption drivers. ​Clean boot into Windows, and then attempt the upgrade to Windows 10. See [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135) for more information. -
During upgrade, ensure you select the option to “Download and install updates (recommended).” +

Ensure you select the option to “Download and install updates (recommended).” @@ -164,9 +170,9 @@ You can also download the [Windows Assessment and Deployment Kit (ADK) for Windo This error is specific to upgrades using System Center Configuration Manager 2012 R2 SP1 CU3 (5.00.8238.1403) Analyze the SMSTS.log and verify that the upgrade is failing on "Apply Operating system" Phase: Error 80072efe DownloadFileWithRanges() failed. 80072efe. ApplyOperatingSystem (0x0760) -The error 80072efe means that the connection with the server was terminated abnormally. +

The error 80072efe means that the connection with the server was terminated abnormally. -To resolve this issue, try the OS Deployment test on a client in same VLAN as the Configuration Manager server. Check the network configuration for random client-server connection issues happening on the remote VLAN. +

To resolve this issue, try the OS Deployment test on a client in same VLAN as the Configuration Manager server. Check the network configuration for random client-server connection issues happening on the remote VLAN. @@ -176,9 +182,8 @@ To resolve this issue, try the OS Deployment test on a client in same VLAN as th Command line execution failed (800705B4) TSManager 3/30/2016 10:11:29 PM 8920 (0x22D8) Failed to run the action: Upgrade Windows. -To resolve this issue, increase the default task sequence run time and change the task sequence to have the content downloaded locally prior to installation. +

To resolve this issue, increase the default task sequence run time and change the task sequence to have the content downloaded locally prior to installation. -   @@ -186,8 +191,749 @@ To resolve this issue, increase the default task sequence run time and change th ## Appendix A: Less common errors - | -  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Error Codes

+
+

Cause

+
+

Mitigation

+
+

Contact + your system administrator to upgrade Windows Server or Enterprise Editions

+
+

This + issue occurs if you run the updater tool. The tool works only with the + Windows 10 Home, Pro, and Education editions.

+
+

To + resolve this issue, use a different method to upgrade to Windows 10 version + 1607. For example, download the ISO, and then run Setup from it.

+
+

When + doing an upgrade to Windows Version 1607 is it supported to use a custom + install.wim (sysprepped) instead of the default install.wim that comes with + Windows Version 1607

+
+

Unsupported

+
+

It + is not supported to replace the install.wim with custom wim (sysprepped or + not). It is supported to do some minor changes to the default install.wim + such as injecting latest cumulative update or remove inbox apps.

+
+

0xC1420127

+
+

The + typical conversion of the error means that the specified image in the + specified wim is already mounted for read/write access.
+ When we launch the setup.exe, it checks the registry key 
+ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount\Mounted Images to check for + any previously mounted WIM files on the system and if the image is mounted we + will get this error.

+
+

This + error would be very rare on Upgrades of WIN10 specially when upgrading to the + Anniversary 1607 Build. This issue has been fixed with the Cumulative updates + released in June 2016 for Windows 10. When we perform an Upgrade, it is recommended + to Perform a Windows Update first and apply all important updates on the + current OS and then start the Upgrade process for Windows 10.

+
+

0x8004100E

+
+

This + error code indicates that there is a problem with an Application that has an + Invalid WMI Namespace

+
+

In + order to fix this problem, we need to open Application Event log and Check + for Errors for various applications that could be causing this + error. You can use WMIDIAG tool and make sure that the WMI is working + well. The step by step instructions are available at: + https://technet.microsoft.com/en-us/library/ff404265.aspx

+
+

0x80070003- + 0x20007

+
+

This + error occurs when there is problem with the Internet connection during the + Windows 10 upgrade.

+
+

Since + this error indicates that the internet connection ran into a problem, you may + attempt to fix the connectivity issues and reattempt the download of the + files.
+ Alternatively, you may re-create installation media using "Media + Creation Tool" from a different connected system. Refer: + https://www.microsoft.com/en-us/software-download/windows10
+
+ You can either create a USB drive or an ISO.

+
+

0x80070004 + - 0x3000D

+
+

SYSTEM, + LOCAL, SELF, System, and Network are reserved names that can’t be used for + Computer Name.

+
+

Ensure + that you do not use the reserved names as the Computer names. Rename the + system to a valid Computer name.
+ See KB 3086101 for more details.

+
+

0x80070004 + - 0x50012

+
+

The + Computer account for the system has an invalid name.

+
+

Please + ensure that the machine name does not have any invalid characters (See + https://technet.microsoft.com/en-us/library/cc749460(v=ws.10).aspx). + Additionally, the names should not be any of the reserved names for systems. + Rename the system to a valid computer name and try the Setup again. See KB + 3086101 for more details.

+
+

0x80070005 + - 0x4000D

+
+

This + error code means The installation failed in the SECOND_BOOT phase with an + error in during MIGRATE_DATA operation.

+
+

This + issue may occur if we have any application / driver that is causing an issue + while the upgrade to Windows 10 is going on.  Preform a clean boot on + the system. Refer https://support.microsoft.com/en-us/kb/929135 for steps to + perform a Clean boot.

+
+

0x80070057

+
+

This + error means that One or more arguments are invalid

+
+

This + is a very generic error, and it could be due to any of the issues that we + would have on the machine. This error may not be related to Upgrade only. It + could be due to any programs; device drivers etc. There is no specific + resolution for this error

+
+

0x8007007e

+
+

The + error indicates one of the modules required to upgrade to Windows 10 was not + found, some of these modules could be manifest files, COM Classes, DLL or any + app packages that may be missing.

+
+

When + we start the upgrade of the OS, the Setup engine is responsible to check and + confirm that all OS components / modules are running in good health, so that + the upgrade succeeds. When we have any issues being reported + with manifest files, COM Classes, DLL or any app packages, the setup + engine would give this error. In order to fix this error, we would suggest to + follow the solutions as below and then start the upgrade again.
+
+ Solution 1: System File Checker
+ Follow the detailed steps as in: + https://support.microsoft.com/en-us/kb/929833
+
+ Solution 2: Integrated CHKSUR
+ Run DISM Command to verify the health of the system:
+ 1. Go to Start
+ 2. Search for ""Command Prompt""
+ 3. Right Click and select ""Run as Administrator""
+ 4. On the prompt type command: Dism /Online /Cleanup-Image /CheckHealth
+ 5. Hit Enter.
+ 6. When you use the /CheckHealth argument, the DISM tool will report whether + the image is healthy, repairable, or non-repairable. If the image is + non-repairable, you should discard the image and start again.
+ 7. If the image is repairable, you can use the /RestoreHealth argument to + repair the image. Dism /Online /Cleanup-Image /RestoreHealth.

+
+

0x8007025D + - 0x2000C

+
+

This + error occurs if the ISO file's metadata is corrupt.

+
+

Re-download + the ISO/Media and re-attempt the upgrade.
+
+ You may alternatively, re-create installation media using "Media + Creation Tool" Refer: https://www.microsoft.com/en-us/software-download/windows10
+
+ You can either create a USB drive or an ISO using the Media Creation Tool.

+
+

0x8007045d

+
+

This + error indicates that we ran into an I/O device error.

+
+

Please + ensure that all I/O devices are working correctly. Please review the Device + Manager for any errors and troubleshoot accordingly.
+ Refer: + https://msdn.microsoft.com/windows/hardware/drivers/install/troubleshooting-device-and-driver-installations
+
+ Additionally, you can review the following logs to verify which I/O device is + causing the problem.
+  "%systemroot%\$Windows.~BT\Sources\Panther\setupact.log"
+
+ If unable to review the logs, post on Windows 10 TechNet Forum + (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc)

+
+

0x80070490 + - 0x20007

+
+

The + error comes up during driver installation phase and it means that some + of the device driver is incompatible.

+
+

Please + ensure that all the devices are working correctly. Please review the Device + Manager for any errors and troubleshoot accordingly.
+ Refer: + https://msdn.microsoft.com/windows/hardware/drivers/install/troubleshooting-device-and-driver-installations
+
+ Additionally, you can review the following logs to verify which I/O device is + causing the problem.
+  "%systemroot%\$Windows.~BT\Sources\Panther\setupact.log"
+
+ If unable to review the logs, post on Windows 10 TechNet Forum + (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc)

+
+

0x80070542

+
+

The + user executing the Setup.exe does not have all permissions required to + complete the upgrade. 

+
+

Please + ensure the user performing the upgrade is part of Local Administrators group + or is a Local Admin.
+
+ Additionally, to troubleshoot further you may need to identify which process + is preventing access to certain resources required for upgrade process. That + can be identify by using Process Monitor + (https://technet.microsoft.com/en-us/sysinternals/processmonitor).
+ Use this (https://support.microsoft.com/en-us/kb/939896) to understand how to + use Process Monitor and then post the results to Windows 10 TechNet + Forum + (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc)

+
+

0x80070652 +

+
+

This + error occurs when another program is being installed at the same time as the + upgrade.

+
+

Ensure + that the are no other installation currently in progress. If there is, wait + for the installation to complete. Restart the computer and do the upgrade to + Windows 10.

+
+

0x800F0923

+
+

This + error code indicates that the user entered Safe Mode during the upgrade + process.

+
+

In + order to complete the upgrade successfully, we recommend that you reboot the + system in normal mode. If a roll-back occurs, re-initiate the upgrade.

+
+

0x80200056

+
+

This + error indicates when the upgrade attempts to use a security token for some of + the operations, but the token is not currently available.

+
+

You + can attempt to re-login to the machine with a local administrator privileges + and attempt to re-run the upgrade. Ensure that you do not logoff until the + upgrade is complete.

+
+

0xC0000005

+
+

The + error indicates that the setup process lead to an access violation

+
+

Please + ensure the user performing the upgrade is part of Local Administrators group + or is a Local Admin.
+
+ Additionally, to troubleshoot further you may need to identify which process + is preventing access to certain resources required for upgrade process. That + can be identify by using Process Monitor + (https://technet.microsoft.com/en-us/sysinternals/processmonitor).
+ Use this (https://support.microsoft.com/en-us/kb/939896) to understand how to + use Process Monitor and then post the results to Windows 10 TechNet + Forum + (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc)

+
+

0XC0000428

+
+

This + error occurs when the digital signatures for one of the Boot Critical Drivers + has not been verified.
+
+ In most cases, we will see an error on Bootup which will be similar to as + below:
+ File: \Windows\system32\boot\winload.exe
+ Status:0xc0000428
+ Info: Windows cannot verify the digital signature for this file.

+
+

In + order to fix this error, we need to look for the file that is causing the + issue. The file listed in the cause section may vary as well. When this + error occurs, the machine / device will show a bluescreen and will not be in + a useable state. At this point, we would need to perform Automatic + Repair using Windows 10 installation media. The Drivers, conflicts with other + programs, malware, and memory can all cause startup problems.
+ Automatic repair can detect and fix problems that prevent your PC from + starting. Refer to the steps:
+
+ a. Insert the installation USB media and boot Windows Technical Preview from + it.
+ b. In the ‘Windows setup’ page select the ‘language to install’, ‘Time and + currency format’ and the ‘keyboard or input method’ and click on ‘next’.
+ c. Click on ‘Repair your computer’ and select ‘Troubleshoot’.
+ d. Select ‘Automatic Repair’ and select the operating system.
+ e. You will then see a blue screen and an option to choose. Choose the option + Troubleshoot and select advanced options.
+  f. You may choose Automatic Repair from Advanced boot option.
+  g. Follow the instructions.
+
+ The above steps should fix the issue and get the driver signatures back as + well for the corrupted drivers. If that does not help, then we may not have + any other option than performing a Clean Install of Windows 10 on the machine + / device. You can create a Windows 10 installation Disc and perform a + clean installation on the computer. To create a please find the below link:
+ https://www.microsoft.com/en-us/software-download/windows10
+
+ Once the media is created by the tool, it will walk you through how to set up + Windows 10 on your PC. During setup, you might be asked to enter a product + key.
+  If you bought Windows 10 and are installing it for the first time, you’ll + need to enter the Windows 10 product key you received in the confirmation + email after your purchase. If you don’t have a product key and you’ve not + previously upgraded to Windows 10, select I need to buy a Windows 10 product + key.

+
+

0xC1900101 + - 0x2000B

+
+

This + error occurs when the device drivers of the hardware connected to the + computer prevent the Windows 10 upgrade from building the migration file + list.

+
+

We + recommended you disconnect the devices that aren't in use when you upgrade + the computer.

+
+

0xC1900101 + - 0x2000c

+
+

The + Setup Platform has encountered an unspecified error during the WINPE Phase. + This is generally caused by drivers which are not updated at the time when + the upgrade was started.

+
+

It + is recommended to select "Download and install updates + (recommended)" during the upgrade process. Additionally, you can contact + the Hardware Vendor and get the updates for the device drivers that + are connected to the system. Ensure all the devices other than the + Mouse; Keyboard and Display are disconnected during upgrade process. Then + start setup again.

+
+

0xC1900101 + - 0x40001

+
+

This + error indicates that we saw an error in the OOBE Phase - Stop 9F.
+ This behavior occurs when device drivers do not handle power state transition + requests properly. The error message most often occurs during one of the + following actions:
+ 1. Shutting down
+ 2. Suspending or resuming from Standby mode
+ 3. Suspending or resuming from Hibernate mode

+
+

The + most common causes for this error would be the connected devices on the + machine / device as below and it would have suggested that we disable / + disconnect them from the device /machine before performing the upgrade:
+ 1. Internal WIFI Modem
+ 2. Any External connected USB devices such as WEBCAMS; Printers; USB Hard + Drives
+ 3. Check to be sure your computer and all devices are on the Hardware + Compatibility List (HCL) and have WHQL signed and certified drivers.
+
+ The setup.exe will perform a rollback of the OS and would return to the older + OS. Once the rollback is complete if we find the problem causing driver than + we need to check for %SystemDrive%\$Windows.~bt\sources\Rollback\setupmem.dmp + file and have a Microsoft Support Professional look into the same.

+
+

0xC1900101 + - 0x4001E

+
+

This + error indicates that the installation failed in the SECOND_BOOT phase with an + error during PRE_OOBE operation.

+
+

This + is a generic error that occurs during the OOBE phase of Setup. We recommend + you to review the FAQ for Upgrade to Windows 10 + (https://support.microsoft.com/en-us/help/12435/windows-10-upgrade-faq)

+
+

0xc1900106

+
+

This + indicate that upgrade process was forcefully terminated either by Rebooting + or forcefully canceling the setup. 

+
+

We + recommended that when the Windows 10 Upgrade is initiated, one should not + terminate the process at any time until the Setup completes. Before initiating + the setup, we should make sure:
+ 1. The device (Laptop or Surface) it should be connected to power source and adequately + charged.
+ 2. The user is not cancelling the setup on the Black Screen, when the + setup.exe is installing devices and configuring user settings.
+ PS: It takes time on the device configuration and migration depending upon + the Speed of the CPU and the amount of RAM on the system. 

+
+

0xC1900200 + - 0x20008

+
+

This + error occurs when the computer doesn’t meet the minimum requirements to + download or upgrade to Windows 10.

+
+

Refer + http://www.microsoft.com/en-us/windows/windows-10-specifications?OCID=win10_null_vanity_win10specs + and make sure that the machine, on which the upgrade is being initiated, + meets the minimum requirement.
+
+ Secondly use the Windows 10 Compatibility Reports to understand upgrade + issues (https://blogs.technet.microsoft.com/askcore/2016/01/21/using-the-windows-10-compatibility-reports-to-understand-upgrade-issues/)

+
+

0xC1900208 + -1047526904

+
+

This + error occurs when the computer does not pass the compatibility check for + upgrading to Windows 10.

+
+

This + error comes when there is software/driver which is not yet certified to be compatible + with windows 10. Hence you might want to re-run the compatibility check + before initiating the Upgrade.
+ Refer AskCore Blog: Using the Windows 10 Compatibility Reports to understand + upgrade issues + (https://blogs.technet.microsoft.com/askcore/2016/01/21/using-the-windows-10-compatibility-reports-to-understand-upgrade-issues/)
+
+ Once you have found the in-compatible software/drivers:
+ 1. Uninstall incompatible software or hardware or driver,
+ 2. Now re-run the compatibility check just to verify that there no more + in-compatible software/driver on the machine.
+ 3. If it comes clean, initiate the upgrade.
+ 4. Else, repeat the steps until the compatibility check is clean.

+
+

0xC190020e
+ 0x80070070 - 0x50011
+ 0x80070070 - 0x50012
+ 0x80070070 - 0x60000

+
+

These + errors would occur if your computer doesn’t have enough free space available + to install the upgrade.

+
+

Typically + to upgrade to Windows 10, you need free space of 16 GB for 32-bit OS and 20 + GB for 64-bit OS. If there is not enough space refer the following article:
+ https://support.microsoft.com/en-us/help/17421/windows-free-up-drive-space
+  
+ Note: Once the deletion is complete, initiate the upgrade and this time you + should not receive the error if sufficient space has been made. If that is + not enough
+ then, you can implement solution as mentioned below.
+  
+ Using External Drive
+ If your device allows it, you can use an external USB drive for the + upgrade process. Windows setup will backup the previous version of Windows to + a USB external drive. The external drive must be at least 8GB – but having + 16GB is recommended. 
+ Some important points to remember if you choose to use an external storage + drive for installing Windows 10:
+  - We recommend that the external drive is formatted in NTFS.  Drives + that are formatted in FAT32 may run into errors due to FAT32 file size + limitations.  To learn   how to format in NTFS, click here.
+ - USB drives are preferred over SD cards because drivers for SD cards are not + migrated if the device does not support Connected Standby.

+
+

Couldn't + Update System Reserved Partition

+
+

This + error occurs because the System Reserved Partition (SRP) is full.

+
+

Free + up 15MB of space on the SRP using the appropriate method described in + Knowledge Base article 3086249, and then try the upgrade again.

+
+

MismatchedLanguage, + found HardBlock

+
+

This + error code indicates that the Current Language installed on the machine is + not Supported for the Upgrade to start.

+
+

We + need to have English as the base Language in order to upgrade to Windows 10. + There is a Hard block for the Upgrade to be performed and the compatibility + scan data is saved to + %Systemroot%\$WINDOWS.~BT\Sources\Panther\CompatData_YYYY.txt

+
+

Setup + couldn’t start properly. Please reboot your PC and try running Windows 10 + Setup again

+
+

This + error occurs if the upgrade files are corrupt due to a failed Windows 10 + download.

+
+

The + Setup.exe initializes the temporary folders to copy the data and prepare the + machine for upgrade. The specific folders that are initialized are:
+
+ 1. C:\$Windows ~BT (Hidden Folder)
+ 2. C:\$Windows~WS (Hidden Folder)
+
+ In order to delete the above folders we would suggest that we use the Disk + Clean Up tool and delete the folders and then try to run the upgrade again.
+ https://support.microsoft.com/en-us/help/17421/windows-free-up-drive-space 

+
+

Unable + to resurrect NewSystem object. hr=0x80070002

+
+

This + error occurs when the setup.exe is unable to create the newsystem data file + when the upgrade starts.
+ If we look at the C:\$Windows.~BT\Sources\Panther\diagerr.xml, we should see + something like:
+ CSetupPlatform::ResurrectNewSystem:
+ Failure: Win32Exception: \\?\C:\$Windows.~BT\Sources\NewSystem.dat:
+ The system cannot find the file specified. [0x00000002] __cdecl    
+ UnBCL::FileStream::FileStream(const class UnBCL::String *,enum
+ UnBCL::FileMode,enum UnBCL::FileAccess,enum UnBCL::FileShare,unsigned long)
+  

+
+

The + NewSystem.dat is an operational file that is created at the beginning of the + upgrade process and used at various points in the setup phase like driver + migrations; disk space detections; Platforms detections and creating a base + image of the new OS that is extracted from the INSTALL.WIM, which is the + source file for the upgrade.
+ There are couple of solutions for this issue:
+ Solution 1: Disk Space
+ Check and Make sure that we have good amount of free disk space on the OS + partition. Disk space requirements:
+ a. For 32-bit: Greater than 16gb
+ b. For 64-Bit: Greater than 20gb
+
+ Solution 2: Upgrade Path
+ We need to make sure that we are upgrading the existing OS, to the New + Version as per the guidelines described in + https://technet.microsoft.com/en-us/itpro/windows/deploy/windows-10-upgrade-paths?f=255&MSPPError=-2147217396
+
+ Solution: Media Creation Tool
+ Use the Media Creation tool and create an ISO and then start the upgrade of + the OS. The tool can be downloaded from: + http://go.microsoft.com/fwlink/?LinkId=691209

+
+ +

 

+ +

 

+ + + + + + + + ## Related topics From a40792ac16dd08d32fa15c93327360c23a0676d4 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 22 Sep 2016 16:21:00 -0700 Subject: [PATCH 06/39] text cleanup --- windows/deploy/resolve-windows-10-upgrade-errors.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 8e86bb542a..0199de1158 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -26,7 +26,7 @@ Maybe an image here ## Some troubleshooting information -Blah blah yadda yadda +Some text here @@ -41,7 +41,7 @@ Blah blah yadda yadda - + From 71c84b5d83474ca3db1367874f9c38e7fe4f3c74 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 22 Sep 2016 16:28:46 -0700 Subject: [PATCH 07/39] text cleanup --- .../resolve-windows-10-upgrade-errors.md | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 0199de1158..3002f1a5b2 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -106,20 +106,18 @@ Download and run the media creation tool. See [Download windows 10](https://www. - + @@ -141,7 +139,7 @@ Typically there is a a dump file for the crash to analyze. If you are not equipp - + @@ -179,20 +177,17 @@ Typically there is a a dump file for the crash to analyze. If you are not equipp
0xC1900200During the first phase of the upgrade process, setup.exe has detected that the machine does not meet the minimum system requirements.Setup.exe has detected that the machine does not meet the minimum system requirements. Ensure the system you are trying to upgrade meets the minimum system requirements.

See [Windows 10 specifications](https://www.microsoft.com/en-us/windows/windows-10-specifications) for information.

0xC1900101 - 0x4000D A driver configuration issue occurred during the Windows setup process and a rollback occurred.

Review the rollback log and determine the stop code. The rollback log is located in the **C:\$Windows.~BT\Sources\Panther** folder. Look for text similar to the following: +

+
Info SP Crash 0x0000007E detected +
Info SP Module name : +
Info SP Bugcheck parameter 1 : 0xFFFFFFFFC0000005 +
Info SP Bugcheck parameter 2 : 0xFFFFF8015BC0036A +
Info SP Bugcheck parameter 3 : 0xFFFFD000E5D23728 +
Info SP Bugcheck parameter 4 : 0xFFFFD000E5D22F40 +
Info SP Cannot recover the system. +
Info SP Rollback: Showing splash window with restoring text: Restoring your previous version of Windows. -``` -Info SP Crash 0x0000007E detected -Info SP Module name : -Info SP Bugcheck parameter 1 : 0xFFFFFFFFC0000005 -Info SP Bugcheck parameter 2 : 0xFFFFF8015BC0036A -Info SP Bugcheck parameter 3 : 0xFFFFD000E5D23728 -Info SP Bugcheck parameter 4 : 0xFFFFD000E5D22F40 -Info SP Cannot recover the system. -Info SP Rollback: Showing splash window with restoring text: Restoring your previous version of Windows. -``` - -Typically there is a a dump file for the crash to analyze. If you are not equipped to debug the dump, then attempt the following basic troubleshooting procedures:
+

Typically there is a a dump file for the crash to analyze. If you are not equipped to debug the dump, then attempt the following basic troubleshooting procedures:
- Make sure you have enough disk space.
- If a driver is identified in the bug check message, disable the driver, or check with the manufacturer for driver updates.
- Try changing video adapters.
@@ -130,7 +128,7 @@ Typically there is a a dump file for the crash to analyze. If you are not equipp

0x80070020 The existing process cannot access the file because it is being used by another process.Use the MSCONFIG tool to perform a clean boot on the machine and then try to perform the update again. See [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135) for more information.Use the MSCONFIG tool to perform a clean boot on the machine and then try to perform the update again. For more information, see [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135).
0x800705220xC1900107 A cleanup operation from a previous installation attempt is still pending and a system reboot is required in order to continue the upgrade. Reboot the device and run setup again. If restarting device does not resolve the issue, then use the Disk Cleanup utility and cleanup the temporary as well as the System files. See [Disk cleanup in Windows 10](https://support.microsoft.com/en-us/instantanswers/8fef4121-711b-4be1-996f-99e02c7301c2/disk-cleanup-in-windows-10) for more information.Reboot the device and run setup again. If restarting device does not resolve the issue, then use the Disk Cleanup utility and cleanup the temporary as well as the System files. For more information, see [Disk cleanup in Windows 10](https://support.microsoft.com/en-us/instantanswers/8fef4121-711b-4be1-996f-99e02c7301c2/disk-cleanup-in-windows-10).
0xC1900209Error 800705B4: This operation returned because the timeout period expired. A time out issue set by the task sequence limitation to 180 mins of run time. This can also occur if the System Center client is corrupted. Review the SMSTS.log file and verify the following error is displayed:
-Command line execution failed (800705B4) TSManager 3/30/2016 10:11:29 PM 8920 (0x22D8) -Failed to run the action: Upgrade Windows. +Command line execution failed (800705B4) TSManager 3/30/2016 10:11:29 PM 8920 (0x22D8)
+Failed to run the action: Upgrade Windows.

To resolve this issue, increase the default task sequence run time and change the task sequence to have the content downloaded locally prior to installation.

-  ## Appendix A: Less common errors - - From 1cf80936e909dbe0211f20f5b4f147ea1e7e45a4 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 23 Sep 2016 16:27:31 -0700 Subject: [PATCH 08/39] draft --- windows/deploy/images/upgrade-process.png | Bin 0 -> 362545 bytes .../resolve-windows-10-upgrade-errors.md | 1269 ++++++----------- 2 files changed, 418 insertions(+), 851 deletions(-) create mode 100644 windows/deploy/images/upgrade-process.png diff --git a/windows/deploy/images/upgrade-process.png b/windows/deploy/images/upgrade-process.png new file mode 100644 index 0000000000000000000000000000000000000000..b2b77708fc6f96e06a3f7f9681dd7f35591515a8 GIT binary patch literal 362545 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%0DE2R=u6Sima$jQ2ZkTzzJ>9y;7j1C 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%0DfAvqMP9ryJ;@zb&*Q$E;e)cWsS-#nY%%8 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%0Da!F%9!2B1_=p8_ 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 z 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� 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≠h@b?W_{jjo(G(_it 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

O(SIt>{N`4+mGKbnUPnSM&II^7PR&Nd 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 computer can also enter a fifth, rollback (uninstall) phase if the upgrade is unsuccessful. -Some text here +Four phases of a Windows 10 upgrade: -

+![Upgrade process](images/upgrade-process.png) - - - - - +DU = Driver/device updates.
+OOBE = Out of box experience.
+WIM = Windows image (Microsoft) + +## Upgrade error codes + +Setup will typically return two codes: + +1. A result code, corresponding to a specific Win32 error. +2. An extend code, corresponding to the phase and the operation when a failure occurred. + +For example, a result code of 0xC1900101 with an extend code of 0x4000D will be returned as: **0xC1900101 - 0x4000D** + +>If only a single code is returned, this can be because a tool is being used that does not capture the extend code, for example the [Windows 10 Upgrade Assistant](https://support.microsoft.com/en-us/kb/3159635). + +### Extend codes + +The phase and operation of an extend code maps to the following tables. + +
Error codeCauseMitigation
+ + + + + +
+
HexPhase +
0SP_EXECUTION_UNKNOWN +
1SP_EXECUTION_DOWNLEVEL +
2SP_EXECUTION_SAFE_OS +
3SP_EXECUTION_FIRST_BOOT +
4SP_EXECUTION_OOBE_BOOT +
5SP_EXECUTION_UNINSTALL +
+
+
HexOperation +
0SP_EXECUTION_OP_UNKNOWN +
1SP_EXECUTION_OP_COPY_PAYLOAD +
2SP_EXECUTION_OP_DOWNLOAD_UPDATES +
3SP_EXECUTION_OP_INSTALL_UPDATES +
4SP_EXECUTION_OP_INSTALL_RECOVERY_ENVIRONMENT +
5SP_EXECUTION_OP_INSTALL_RECOVERY_IMAGE +
6SP_EXECUTION_OP_REPLICATE_OC +
7SP_EXECUTION_OP_INSTALL_DRVIERS +
8SP_EXECUTION_OP_PREPARE_SAFE_OS +
9SP_EXECUTION_OP_PREPARE_ROLLBACK +
ASP_EXECUTION_OP_PREPARE_FIRST_BOOT +
BSP_EXECUTION_OP_PREPARE_OOBE_BOOT +
CSP_EXECUTION_OP_APPLY_IMAGE +
DSP_EXECUTION_OP_MIGRATE_DATA +
ESP_EXECUTION_OP_SET_PRODUCT_KEY +
FSP_EXECUTION_OP_ADD_UNATTEND +
+
+
HexOperation +
10SP_EXECUTION_OP_ADD_DRIVER +
11SP_EXECUTION_OP_ENABLE_FEATURE +
12SP_EXECUTION_OP_DISABLE_FEATURE +
13SP_EXECUTION_OP_REGISTER_ASYNC_PROCESS +
14SP_EXECUTION_OP_REGISTER_SYNC_PROCESS +
15SP_EXECUTION_OP_CREATE_FILE +
16SP_EXECUTION_OP_CREATE_REGISTRY +
17SP_EXECUTION_OP_BOOT +
18SP_EXECUTION_OP_SYSPREP +
19SP_EXECUTION_OP_OOBE +
1ASP_EXECUTION_OP_BEGIN_FIRST_BOOT +
1BSP_EXECUTION_OP_END_FIRST_BOOT +
1CSP_EXECUTION_OP_BEGIN_OOBE_BOOT +
1DSP_EXECUTION_OP_END_OOBE_BOOT +
1ESP_EXECUTION_OP_PRE_OOBE +
1FSP_EXECUTION_OP_POST_OOBE +
20SP_EXECUTION_OP_ADD_PROVISIONING_PACKAGE +
+
+ +For example, you can use these tables to interpret extend code of 0x**4**00**0D** as a problem during phase 4 with data migration (**4** = SP_EXECUTION_OOBE_BOOT, **0D** = SP_EXECUTION_OP_MIGRATE_DATE). + +## Log files + +During each phase of the upgrade process, setup log files are created in various locations. These log files can be very useful in troubleshooting upgrade problems. + + + + + + + + + + + + + + + + +
Log fileDescriptionLocation
setupact.logContains information about setup actions during the installation. +

This is the most important log for diagnosing setup issues.

+Down-Level phase: $Windows.~BT\Sources\Panther
+Rollback phase: $Windows.~BT\Sources\Rollback
+First & second boot phase: $Windows.~BT\Sources\Panther\UnattendGC
+Pre-initialization: Windows
+Post-upgrade: Windows\Panther +
setuperr.logContains information about setup errors during the installation.Same location as setupact.log
Setupmem.dmpIf OS bugchecks during upgrade, setup will attempt to extract a mini-dump.$Windows.~BT\Sources\Rollback
miglog.xmlContains information about the user directory structure. This information includes security identifiers (SIDs).Windows\Panther
Appraiser XML logsContains application compatibility information.$Windows.~BT\Sources\Panther
BlueBox.logContains information communication between setup.exe and Windows Update.Windows\Logs\Mosetup
+ +## Common error codes and resolution procedures + + + + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + + + - - - - - - - - - + + + - - - - - - - - - - - - - + + + - - - - -
Error code +Cause +Mitigation
0xC1900101 - 0x20017A driver has caused an illegal operation and Windows was not able to migrate the driver, resulting in a rollback of the operating system.To resolve this issue:
-
0xC1900200Setup.exe has detected that the machine does not meet the minimum system requirements.Ensure the system you are trying to upgrade meets the minimum system requirements.

See [Windows 10 specifications](https://www.microsoft.com/en-us/windows/windows-10-specifications) for information.

0x8007002C - 0x4000DThe user cancelled an interactive dialog.Start the upgrade process again again.
0x80090011A device driver error occurred during user data migration.Contact your hardware vendor and get all the device drivers updated. It is recommended to have an active internet connection during upgrade process. -

Ensure that “Download and install updates (recommended)” is accepted at the start of the upgrade process.

0xC7700112Failure to complete writing data to the system drive, possibly due to write access failure on the hard disk.This issue is resolved in the latest version of Upgrade Assistant. -

Ensure that “Download and install updates (recommended)” is accepted at the start of the upgrade process.

0xC1900101 - 0x30018A device driver has stopped responding to setup.exe during the upgrade process.Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display. Contact your hardware vendor to obtain updated device drivers. -

Ensure that “Download and install updates (recommended)” is accepted at the start of the upgrade process. -

0x80190001An unexpected error was encountered while attempting to download files required for upgrade.To resolve this issue, download and run the media creation tool. See [Download windows 10](https://www.microsoft.com/en-us/software-download/windows10). -
0xC1900101 - 0x20017A driver has caused an illegal operation and Windows was not able to migrate the driver, resulting in a rollback of the operating system.To resolve this issue:
1. Make sure all that drivers are updated.
2. Open the Setuperr.log and Setupact.log files under the %windir%\Panther directory, and then locate the problem drivers. Refer: [Understanding Failures and Log Files](https://technet.microsoft.com/en-us/library/ee851579.aspx)
3. Update or uninstall the problem drivers.
0x80246007The update was not downloaded successfully.Attempt other methods of upgrading the operatign system.
-Download and run the media creation tool. See [Download windows 10](https://www.microsoft.com/en-us/software-download/windows10). -
Attempt to upgrade using .ISO or USB.
-**Note**: Windows 10 Enterprise isn’t available in the media creation tool. For more information, go to the [Volume Licensing Service Center](https://www.microsoft.com/licensing/servicecenter/default.aspx). + +
0xC1900101 - 0x30018A device driver has stopped responding to setup.exe during the upgrade process.Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display. Contact your hardware vendor to obtain updated device drivers. +

Ensure that "Download and install updates (recommended)" is accepted at the start of the upgrade process.

0xC1900201The system did not pass the minimum requirements to install the update.Contact the hardware vendor to get the latest updates.
0x8007002C - 0x4000DThe user cancelled an interactive dialog.Start the upgrade process again again.
0x80240017The upgrade is unavailable for this edition of Windows.Administrative policies enforced by your organization might be preventing the upgrade. Contact your IT administrator.
0xC1900101 - 0x4000DA driver configuration issue occurred during the Windows setup process and a rollback occurred.

Review the rollback log and determine the stop code. The rollback log is located in the **C:\$Windows.~BT\Sources\Panther** folder. Look for text similar to the following: + +

0xC1900101 - 0x4000DA driver configuration issue occurred during the Windows setup process and a rollback occurred.

Review the rollback log and determine the stop code. The rollback log is located in the **C:\$Windows.~BT\Sources\Panther** folder. Look for text similar to the following:


Info SP Crash 0x0000007E detected
Info SP Module name : @@ -118,818 +191,312 @@ Download and run the media creation tool. See [Download windows 10](https://www.

Typically there is a a dump file for the crash to analyze. If you are not equipped to debug the dump, then attempt the following basic troubleshooting procedures:
- - Make sure you have enough disk space.
- - If a driver is identified in the bug check message, disable the driver, or check with the manufacturer for driver updates.
- - Try changing video adapters.
- - Check with your hardware vendor for any BIOS updates.
- - Disable BIOS memory options such as caching or shadowing. + +1. Make sure you have enough disk space.
+2. If a driver is identified in the bug check message, disable the driver, or check with the manufacturer for driver updates.
+3. Try changing video adapters.
+4. Check with your hardware vendor for any BIOS updates.
+5. Disable BIOS memory options such as caching or shadowing.

0x80070020The existing process cannot access the file because it is being used by another process.Use the MSCONFIG tool to perform a clean boot on the machine and then try to perform the update again. For more information, see [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135).
0x80070522The user doesn’t have required privilege or credentials to upgrade.Ensure that you have signed in as a local administrator or have local administrator privileges.
0xC1900107A cleanup operation from a previous installation attempt is still pending and a system reboot is required in order to continue the upgrade. +
0xC1900101 - 0x40017Windows 10 upgrade fails after the second reboot, which is most like to be caused by a faulty driver, for example antivirus filter drivers or encryption drivers.Clean boot into Windows, and then attempt the upgrade to Windows 10.
+ +For more information, see [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135). + +

Ensure you select the option to "Download and install updates (recommended)."

Reboot the device and run setup again. If restarting device does not resolve the issue, then use the Disk Cleanup utility and cleanup the temporary as well as the System files. For more information, see [Disk cleanup in Windows 10](https://support.microsoft.com/en-us/instantanswers/8fef4121-711b-4be1-996f-99e02c7301c2/disk-cleanup-in-windows-10).
0xC1900209The user has chosen to cancel because the system does not pass the compatibility scan to install the update. Setup.exe will report this error when it can upgrade the machine with user data but cannot migrate installed applications.Incompatible software is blocking the upgrade process. Uninstall the application and try the upgrade again. See [Windows 10 Pre-Upgrade Validation using SETUP.EXE](https://blogs.technet.microsoft.com/mniehaus/2015/08/23/windows-10-pre-upgrade-validation-using-setup-exe/) for more information. +
+ +## Common errors I've edited but don't know how to classify + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + - - - - - - - - - + + + - - - - + + + -
Error code +Cause +Mitigation +
0xC1900200Setup.exe has detected that the machine does not meet the minimum system requirements.Ensure the system you are trying to upgrade meets the minimum system requirements.

See [Windows 10 specifications](https://www.microsoft.com/en-us/windows/windows-10-specifications) for information.

0x80090011A device driver error occurred during user data migration.Contact your hardware vendor and get all the device drivers updated. It is recommended to have an active internet connection during upgrade process. +

Ensure that "Download and install updates (recommended)" is accepted at the start of the upgrade process.

0xC7700112Failure to complete writing data to the system drive, possibly due to write access failure on the hard disk.This issue is resolved in the latest version of Upgrade Assistant. +

Ensure that "Download and install updates (recommended)" is accepted at the start of the upgrade process.

0x80190001An unexpected error was encountered while attempting to download files required for upgrade.To resolve this issue, download and run the media creation tool. See [Download windows 10](https://www.microsoft.com/en-us/software-download/windows10). +
0x80246007The update was not downloaded successfully.Attempt other methods of upgrading the operatign system.
+Download and run the media creation tool. See [Download windows 10](https://www.microsoft.com/en-us/software-download/windows10). +
Attempt to upgrade using .ISO or USB.
+**Note**: Windows 10 Enterprise isn’t available in the media creation tool. For more information, go to the [Volume Licensing Service Center](https://www.microsoft.com/licensing/servicecenter/default.aspx). +
0xC1900201The system did not pass the minimum requirements to install the update.Contact the hardware vendor to get the latest updates.
0x80240017The upgrade is unavailable for this edition of Windows.Administrative policies enforced by your organization might be preventing the upgrade. Contact your IT administrator.
0x80070020The existing process cannot access the file because it is being used by another process.Use the MSCONFIG tool to perform a clean boot on the machine and then try to perform the update again. For more information, see [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135).
0x80070522The user doesn’t have required privilege or credentials to upgrade.Ensure that you have signed in as a local administrator or have local administrator privileges.
0xC1900107A cleanup operation from a previous installation attempt is still pending and a system reboot is required in order to continue the upgrade. +Reboot the device and run setup again. If restarting device does not resolve the issue, then use the Disk Cleanup utility and cleanup the temporary as well as the System files. For more information, see [Disk cleanup in Windows 10](https://support.microsoft.com/en-us/instantanswers/8fef4121-711b-4be1-996f-99e02c7301c2/disk-cleanup-in-windows-10).
0xC1900209The user has chosen to cancel because the system does not pass the compatibility scan to install the update. Setup.exe will report this error when it can upgrade the machine with user data but cannot migrate installed applications.Incompatible software is blocking the upgrade process. Uninstall the application and try the upgrade again. See [Windows 10 Pre-Upgrade Validation using SETUP.EXE](https://blogs.technet.microsoft.com/mniehaus/2015/08/23/windows-10-pre-upgrade-validation-using-setup-exe/) for more information.

You can also download the [Windows Assessment and Deployment Kit (ADK) for Windows 10](http://go.microsoft.com/fwlink/p/?LinkId=526740) and install Application Compatibility Tools.

0xC1900101 - 0x40017Windows 10 upgrade fails after the second reboot, which is most like to be caused by a faulty driver, for example antivirus filter drivers or encryption drivers.​Clean boot into Windows, and then attempt the upgrade to Windows 10. See [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135) for more information. -

Ensure you select the option to “Download and install updates (recommended).” +

display is not compatibleThe display card installed is not compatible with Windows 10.Uninstall the display adapter and start the upgrade again. When setup completes successfully, install the latest display adapter driver using Windows Update or by downloading from the computer manufacturers website. Use compatibility mode if necessary.
display is not compatibleThe display card installed is not compatible with Windows 10.Uninstall the display adapter and start the upgrade again. When setup completes successfully, install the latest display adapter driver using Windows Update or by downloading from the computer manufacturers website. Use compatibility mode if necessary. -
0x8007002 This error is specific to upgrades using System Center Configuration Manager 2012 R2 SP1 CU3 (5.00.8238.1403)Analyze the SMSTS.log and verify that the upgrade is failing on "Apply Operating system" Phase: Error 80072efe DownloadFileWithRanges() failed. 80072efe. ApplyOperatingSystem (0x0760) +
0x8007002 This error is specific to upgrades using System Center Configuration Manager 2012 R2 SP1 CU3 (5.00.8238.1403)Analyze the SMSTS.log and verify that the upgrade is failing on "Apply Operating system" Phase: Error 80072efe DownloadFileWithRanges() failed. 80072efe. ApplyOperatingSystem (0x0760)

The error 80072efe means that the connection with the server was terminated abnormally.

To resolve this issue, try the OS Deployment test on a client in same VLAN as the Configuration Manager server. Check the network configuration for random client-server connection issues happening on the remote VLAN.

Error 800705B4: This operation returned because the timeout period expired.A time out issue set by the task sequence limitation to 180 mins of run time. This can also occur if the System Center client is corrupted.Review the SMSTS.log file and verify the following error is displayed:
+
Error 800705B4: This operation returned because the timeout period expired.A time out issue set by the task sequence limitation to 180 mins of run time. This can also occur if the System Center client is corrupted.Review the SMSTS.log file and verify the following error is displayed:
Command line execution failed (800705B4) TSManager 3/30/2016 10:11:29 PM 8920 (0x22D8)
Failed to run the action: Upgrade Windows.

To resolve this issue, increase the default task sequence run time and change the task sequence to have the content downloaded locally prior to installation.

+## Appendix A: Less common errors I haven't edited yet -## Appendix A: Less common errors + -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Error Codes

-
-

Cause

-
-

Mitigation

-
-

Contact - your system administrator to upgrade Windows Server or Enterprise Editions

-
-

This - issue occurs if you run the updater tool. The tool works only with the - Windows 10 Home, Pro, and Education editions.

-
-

To - resolve this issue, use a different method to upgrade to Windows 10 version - 1607. For example, download the ISO, and then run Setup from it.

-
-

When - doing an upgrade to Windows Version 1607 is it supported to use a custom - install.wim (sysprepped) instead of the default install.wim that comes with - Windows Version 1607

-
-

Unsupported

-
-

It - is not supported to replace the install.wim with custom wim (sysprepped or - not). It is supported to do some minor changes to the default install.wim - such as injecting latest cumulative update or remove inbox apps.

-
-

0xC1420127

-
-

The - typical conversion of the error means that the specified image in the - specified wim is already mounted for read/write access.
- When we launch the setup.exe, it checks the registry key 
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount\Mounted Images to check for - any previously mounted WIM files on the system and if the image is mounted we - will get this error.

-
-

This - error would be very rare on Upgrades of WIN10 specially when upgrading to the - Anniversary 1607 Build. This issue has been fixed with the Cumulative updates - released in June 2016 for Windows 10. When we perform an Upgrade, it is recommended - to Perform a Windows Update first and apply all important updates on the - current OS and then start the Upgrade process for Windows 10.

-
-

0x8004100E

-
-

This - error code indicates that there is a problem with an Application that has an - Invalid WMI Namespace

-
-

In - order to fix this problem, we need to open Application Event log and Check - for Errors for various applications that could be causing this - error. You can use WMIDIAG tool and make sure that the WMI is working - well. The step by step instructions are available at: - https://technet.microsoft.com/en-us/library/ff404265.aspx

-
-

0x80070003- - 0x20007

-
-

This - error occurs when there is problem with the Internet connection during the - Windows 10 upgrade.

-
-

Since - this error indicates that the internet connection ran into a problem, you may - attempt to fix the connectivity issues and reattempt the download of the - files.
- Alternatively, you may re-create installation media using "Media - Creation Tool" from a different connected system. Refer: - https://www.microsoft.com/en-us/software-download/windows10
-
- You can either create a USB drive or an ISO.

-
-

0x80070004 - - 0x3000D

-
-

SYSTEM, - LOCAL, SELF, System, and Network are reserved names that can’t be used for - Computer Name.

-
-

Ensure - that you do not use the reserved names as the Computer names. Rename the - system to a valid Computer name.
- See KB 3086101 for more details.

-
-

0x80070004 - - 0x50012

-
-

The - Computer account for the system has an invalid name.

-
-

Please - ensure that the machine name does not have any invalid characters (See - https://technet.microsoft.com/en-us/library/cc749460(v=ws.10).aspx). - Additionally, the names should not be any of the reserved names for systems. - Rename the system to a valid computer name and try the Setup again. See KB - 3086101 for more details.

-
-

0x80070005 - - 0x4000D

-
-

This - error code means The installation failed in the SECOND_BOOT phase with an - error in during MIGRATE_DATA operation.

-
-

This - issue may occur if we have any application / driver that is causing an issue - while the upgrade to Windows 10 is going on.  Preform a clean boot on - the system. Refer https://support.microsoft.com/en-us/kb/929135 for steps to - perform a Clean boot.

-
-

0x80070057

-
-

This - error means that One or more arguments are invalid

-
-

This - is a very generic error, and it could be due to any of the issues that we - would have on the machine. This error may not be related to Upgrade only. It - could be due to any programs; device drivers etc. There is no specific - resolution for this error

-
-

0x8007007e

-
-

The - error indicates one of the modules required to upgrade to Windows 10 was not - found, some of these modules could be manifest files, COM Classes, DLL or any - app packages that may be missing.

-
-

When - we start the upgrade of the OS, the Setup engine is responsible to check and - confirm that all OS components / modules are running in good health, so that - the upgrade succeeds. When we have any issues being reported - with manifest files, COM Classes, DLL or any app packages, the setup - engine would give this error. In order to fix this error, we would suggest to - follow the solutions as below and then start the upgrade again.
-
- Solution 1: System File Checker
- Follow the detailed steps as in: - https://support.microsoft.com/en-us/kb/929833
-
- Solution 2: Integrated CHKSUR
- Run DISM Command to verify the health of the system:
- 1. Go to Start
- 2. Search for ""Command Prompt""
- 3. Right Click and select ""Run as Administrator""
- 4. On the prompt type command: Dism /Online /Cleanup-Image /CheckHealth
- 5. Hit Enter.
- 6. When you use the /CheckHealth argument, the DISM tool will report whether - the image is healthy, repairable, or non-repairable. If the image is - non-repairable, you should discard the image and start again.
- 7. If the image is repairable, you can use the /RestoreHealth argument to - repair the image. Dism /Online /Cleanup-Image /RestoreHealth.

-
-

0x8007025D - - 0x2000C

-
-

This - error occurs if the ISO file's metadata is corrupt.

-
-

Re-download - the ISO/Media and re-attempt the upgrade.
-
- You may alternatively, re-create installation media using "Media - Creation Tool" Refer: https://www.microsoft.com/en-us/software-download/windows10
-
- You can either create a USB drive or an ISO using the Media Creation Tool.

-
-

0x8007045d

-
-

This - error indicates that we ran into an I/O device error.

-
-

Please - ensure that all I/O devices are working correctly. Please review the Device - Manager for any errors and troubleshoot accordingly.
- Refer: - https://msdn.microsoft.com/windows/hardware/drivers/install/troubleshooting-device-and-driver-installations
-
- Additionally, you can review the following logs to verify which I/O device is - causing the problem.
-  "%systemroot%\$Windows.~BT\Sources\Panther\setupact.log"
-
- If unable to review the logs, post on Windows 10 TechNet Forum - (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc)

-
-

0x80070490 - - 0x20007

-
-

The - error comes up during driver installation phase and it means that some - of the device driver is incompatible.

-
-

Please - ensure that all the devices are working correctly. Please review the Device - Manager for any errors and troubleshoot accordingly.
- Refer: - https://msdn.microsoft.com/windows/hardware/drivers/install/troubleshooting-device-and-driver-installations
-
- Additionally, you can review the following logs to verify which I/O device is - causing the problem.
-  "%systemroot%\$Windows.~BT\Sources\Panther\setupact.log"
-
- If unable to review the logs, post on Windows 10 TechNet Forum - (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc)

-
-

0x80070542

-
-

The - user executing the Setup.exe does not have all permissions required to - complete the upgrade. 

-
-

Please - ensure the user performing the upgrade is part of Local Administrators group - or is a Local Admin.
-
- Additionally, to troubleshoot further you may need to identify which process - is preventing access to certain resources required for upgrade process. That - can be identify by using Process Monitor - (https://technet.microsoft.com/en-us/sysinternals/processmonitor).
- Use this (https://support.microsoft.com/en-us/kb/939896) to understand how to - use Process Monitor and then post the results to Windows 10 TechNet - Forum - (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc)

-
-

0x80070652 -

-
-

This - error occurs when another program is being installed at the same time as the - upgrade.

-
-

Ensure - that the are no other installation currently in progress. If there is, wait - for the installation to complete. Restart the computer and do the upgrade to - Windows 10.

-
-

0x800F0923

-
-

This - error code indicates that the user entered Safe Mode during the upgrade - process.

-
-

In - order to complete the upgrade successfully, we recommend that you reboot the - system in normal mode. If a roll-back occurs, re-initiate the upgrade.

-
-

0x80200056

-
-

This - error indicates when the upgrade attempts to use a security token for some of - the operations, but the token is not currently available.

-
-

You - can attempt to re-login to the machine with a local administrator privileges - and attempt to re-run the upgrade. Ensure that you do not logoff until the - upgrade is complete.

-
-

0xC0000005

-
-

The - error indicates that the setup process lead to an access violation

-
-

Please - ensure the user performing the upgrade is part of Local Administrators group - or is a Local Admin.
-
- Additionally, to troubleshoot further you may need to identify which process - is preventing access to certain resources required for upgrade process. That - can be identify by using Process Monitor - (https://technet.microsoft.com/en-us/sysinternals/processmonitor).
- Use this (https://support.microsoft.com/en-us/kb/939896) to understand how to - use Process Monitor and then post the results to Windows 10 TechNet - Forum - (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc)

-
-

0XC0000428

-
-

This - error occurs when the digital signatures for one of the Boot Critical Drivers - has not been verified.
-
- In most cases, we will see an error on Bootup which will be similar to as - below:
- File: \Windows\system32\boot\winload.exe
- Status:0xc0000428
- Info: Windows cannot verify the digital signature for this file.

-
-

In - order to fix this error, we need to look for the file that is causing the - issue. The file listed in the cause section may vary as well. When this - error occurs, the machine / device will show a bluescreen and will not be in - a useable state. At this point, we would need to perform Automatic - Repair using Windows 10 installation media. The Drivers, conflicts with other - programs, malware, and memory can all cause startup problems.
- Automatic repair can detect and fix problems that prevent your PC from - starting. Refer to the steps:
-
- a. Insert the installation USB media and boot Windows Technical Preview from - it.
- b. In the ‘Windows setup’ page select the ‘language to install’, ‘Time and - currency format’ and the ‘keyboard or input method’ and click on ‘next’.
- c. Click on ‘Repair your computer’ and select ‘Troubleshoot’.
- d. Select ‘Automatic Repair’ and select the operating system.
- e. You will then see a blue screen and an option to choose. Choose the option - Troubleshoot and select advanced options.
-  f. You may choose Automatic Repair from Advanced boot option.
-  g. Follow the instructions.
-
- The above steps should fix the issue and get the driver signatures back as - well for the corrupted drivers. If that does not help, then we may not have - any other option than performing a Clean Install of Windows 10 on the machine - / device. You can create a Windows 10 installation Disc and perform a - clean installation on the computer. To create a please find the below link:
- https://www.microsoft.com/en-us/software-download/windows10
-
- Once the media is created by the tool, it will walk you through how to set up - Windows 10 on your PC. During setup, you might be asked to enter a product - key.
-  If you bought Windows 10 and are installing it for the first time, you’ll - need to enter the Windows 10 product key you received in the confirmation - email after your purchase. If you don’t have a product key and you’ve not - previously upgraded to Windows 10, select I need to buy a Windows 10 product - key.

-
-

0xC1900101 - - 0x2000B

-
-

This - error occurs when the device drivers of the hardware connected to the - computer prevent the Windows 10 upgrade from building the migration file - list.

-
-

We - recommended you disconnect the devices that aren't in use when you upgrade - the computer.

-
-

0xC1900101 - - 0x2000c

-
-

The - Setup Platform has encountered an unspecified error during the WINPE Phase. - This is generally caused by drivers which are not updated at the time when - the upgrade was started.

-
-

It - is recommended to select "Download and install updates - (recommended)" during the upgrade process. Additionally, you can contact - the Hardware Vendor and get the updates for the device drivers that - are connected to the system. Ensure all the devices other than the - Mouse; Keyboard and Display are disconnected during upgrade process. Then - start setup again.

-
-

0xC1900101 - - 0x40001

-
-

This - error indicates that we saw an error in the OOBE Phase - Stop 9F.
- This behavior occurs when device drivers do not handle power state transition - requests properly. The error message most often occurs during one of the - following actions:
- 1. Shutting down
- 2. Suspending or resuming from Standby mode
- 3. Suspending or resuming from Hibernate mode

-
-

The - most common causes for this error would be the connected devices on the - machine / device as below and it would have suggested that we disable / - disconnect them from the device /machine before performing the upgrade:
- 1. Internal WIFI Modem
- 2. Any External connected USB devices such as WEBCAMS; Printers; USB Hard - Drives
- 3. Check to be sure your computer and all devices are on the Hardware - Compatibility List (HCL) and have WHQL signed and certified drivers.
-
- The setup.exe will perform a rollback of the OS and would return to the older - OS. Once the rollback is complete if we find the problem causing driver than - we need to check for %SystemDrive%\$Windows.~bt\sources\Rollback\setupmem.dmp - file and have a Microsoft Support Professional look into the same.

-
-

0xC1900101 - - 0x4001E

-
-

This - error indicates that the installation failed in the SECOND_BOOT phase with an - error during PRE_OOBE operation.

-
-

This - is a generic error that occurs during the OOBE phase of Setup. We recommend - you to review the FAQ for Upgrade to Windows 10 - (https://support.microsoft.com/en-us/help/12435/windows-10-upgrade-faq)

-
-

0xc1900106

-
-

This - indicate that upgrade process was forcefully terminated either by Rebooting - or forcefully canceling the setup. 

-
-

We - recommended that when the Windows 10 Upgrade is initiated, one should not - terminate the process at any time until the Setup completes. Before initiating - the setup, we should make sure:
- 1. The device (Laptop or Surface) it should be connected to power source and adequately - charged.
- 2. The user is not cancelling the setup on the Black Screen, when the - setup.exe is installing devices and configuring user settings.
- PS: It takes time on the device configuration and migration depending upon - the Speed of the CPU and the amount of RAM on the system. 

-
-

0xC1900200 - - 0x20008

-
-

This - error occurs when the computer doesn’t meet the minimum requirements to - download or upgrade to Windows 10.

-
-

Refer - http://www.microsoft.com/en-us/windows/windows-10-specifications?OCID=win10_null_vanity_win10specs - and make sure that the machine, on which the upgrade is being initiated, - meets the minimum requirement.
-
- Secondly use the Windows 10 Compatibility Reports to understand upgrade - issues (https://blogs.technet.microsoft.com/askcore/2016/01/21/using-the-windows-10-compatibility-reports-to-understand-upgrade-issues/)

-
-

0xC1900208 - -1047526904

-
-

This - error occurs when the computer does not pass the compatibility check for - upgrading to Windows 10.

-
-

This - error comes when there is software/driver which is not yet certified to be compatible - with windows 10. Hence you might want to re-run the compatibility check - before initiating the Upgrade.
- Refer AskCore Blog: Using the Windows 10 Compatibility Reports to understand - upgrade issues - (https://blogs.technet.microsoft.com/askcore/2016/01/21/using-the-windows-10-compatibility-reports-to-understand-upgrade-issues/)
-
- Once you have found the in-compatible software/drivers:
- 1. Uninstall incompatible software or hardware or driver,
- 2. Now re-run the compatibility check just to verify that there no more - in-compatible software/driver on the machine.
- 3. If it comes clean, initiate the upgrade.
- 4. Else, repeat the steps until the compatibility check is clean.

-
-

0xC190020e
- 0x80070070 - 0x50011
- 0x80070070 - 0x50012
- 0x80070070 - 0x60000

-
-

These - errors would occur if your computer doesn’t have enough free space available - to install the upgrade.

-
-

Typically - to upgrade to Windows 10, you need free space of 16 GB for 32-bit OS and 20 - GB for 64-bit OS. If there is not enough space refer the following article:
- https://support.microsoft.com/en-us/help/17421/windows-free-up-drive-space
-  
- Note: Once the deletion is complete, initiate the upgrade and this time you - should not receive the error if sufficient space has been made. If that is - not enough
- then, you can implement solution as mentioned below.
-  
- Using External Drive
- If your device allows it, you can use an external USB drive for the - upgrade process. Windows setup will backup the previous version of Windows to - a USB external drive. The external drive must be at least 8GB – but having - 16GB is recommended. 
- Some important points to remember if you choose to use an external storage - drive for installing Windows 10:
-  - We recommend that the external drive is formatted in NTFS.  Drives - that are formatted in FAT32 may run into errors due to FAT32 file size - limitations.  To learn   how to format in NTFS, click here.
- - USB drives are preferred over SD cards because drivers for SD cards are not - migrated if the device does not support Connected Standby.

-
-

Couldn't - Update System Reserved Partition

-
-

This - error occurs because the System Reserved Partition (SRP) is full.

-
-

Free - up 15MB of space on the SRP using the appropriate method described in - Knowledge Base article 3086249, and then try the upgrade again.

-
-

MismatchedLanguage, - found HardBlock

-
-

This - error code indicates that the Current Language installed on the machine is - not Supported for the Upgrade to start.

-
-

We - need to have English as the base Language in order to upgrade to Windows 10. - There is a Hard block for the Upgrade to be performed and the compatibility - scan data is saved to - %Systemroot%\$WINDOWS.~BT\Sources\Panther\CompatData_YYYY.txt

-
-

Setup - couldn’t start properly. Please reboot your PC and try running Windows 10 - Setup again

-
-

This - error occurs if the upgrade files are corrupt due to a failed Windows 10 - download.

-
-

The - Setup.exe initializes the temporary folders to copy the data and prepare the - machine for upgrade. The specific folders that are initialized are:
-
- 1. C:\$Windows ~BT (Hidden Folder)
- 2. C:\$Windows~WS (Hidden Folder)
-
- In order to delete the above folders we would suggest that we use the Disk - Clean Up tool and delete the folders and then try to run the upgrade again.
- https://support.microsoft.com/en-us/help/17421/windows-free-up-drive-space 

-
-

Unable - to resurrect NewSystem object. hr=0x80070002

-
-

This - error occurs when the setup.exe is unable to create the newsystem data file - when the upgrade starts.
- If we look at the C:\$Windows.~BT\Sources\Panther\diagerr.xml, we should see - something like:
- CSetupPlatform::ResurrectNewSystem:
- Failure: Win32Exception: \\?\C:\$Windows.~BT\Sources\NewSystem.dat:
- The system cannot find the file specified. [0x00000002] __cdecl    
- UnBCL::FileStream::FileStream(const class UnBCL::String *,enum
- UnBCL::FileMode,enum UnBCL::FileAccess,enum UnBCL::FileShare,unsigned long)
-  

-
-

The - NewSystem.dat is an operational file that is created at the beginning of the - upgrade process and used at various points in the setup phase like driver - migrations; disk space detections; Platforms detections and creating a base - image of the new OS that is extracted from the INSTALL.WIM, which is the - source file for the upgrade.
- There are couple of solutions for this issue:
- Solution 1: Disk Space
- Check and Make sure that we have good amount of free disk space on the OS - partition. Disk space requirements:
- a. For 32-bit: Greater than 16gb
- b. For 64-Bit: Greater than 20gb
-
- Solution 2: Upgrade Path
- We need to make sure that we are upgrading the existing OS, to the New - Version as per the guidelines described in - https://technet.microsoft.com/en-us/itpro/windows/deploy/windows-10-upgrade-paths?f=255&MSPPError=-2147217396
-
- Solution: Media Creation Tool
- Use the Media Creation tool and create an ISO and then start the upgrade of - the OS. The tool can be downloaded from: - http://go.microsoft.com/fwlink/?LinkId=691209

-
+ Error Codes Cause Mitigation + 0x80070003- 0x20007 This error occurs when there is problem with the Internet connection during the Windows 10 upgrade. "Since this error indicates that the internet connection ran into a problem, you may attempt to fix the connectivity issues and reattempt the download of the files. +Alternatively, you may re-create installation media using ""Media Creation Tool"" from a different connected system. Refer: https://www.microsoft.com/en-us/software-download/windows10 -

 

+You can either create a USB drive or an ISO. +" + 0x8007025D - 0x2000C This error occurs if the ISO file's metadata is corrupt. "Re-download the ISO/Media and re-attempt the upgrade. -

 

+You may alternatively, re-create installation media using ""Media Creation Tool"" Refer: https://www.microsoft.com/en-us/software-download/windows10 - +You can either create a USB drive or an ISO using the Media Creation Tool. +" + 0x80070490 - 0x20007 The error comes up during driver installation phase and it means that some of the device driver is incompatible. "Please ensure that all the devices are working correctly. Please review the Device Manager for any errors and troubleshoot accordingly. +Refer: https://msdn.microsoft.com/windows/hardware/drivers/install/troubleshooting-device-and-driver-installations - +Additionally, you can review the following logs to verify which I/O device is causing the problem. + ""%systemroot%\$Windows.~BT\Sources\Panther\setupact.log"" - +If unable to review the logs, post on Windows 10 TechNet Forum (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc) +" + 0xC1900101 - 0x2000B This error occurs when the device drivers of the hardware connected to the computer prevent the Windows 10 upgrade from building the migration file list. We recommended you disconnect the devices that aren't in use when you upgrade the computer. + 0xC1900101 - 0x2000c The Setup Platform has encountered an unspecified error during the WINPE Phase. This is generally caused by drivers which are not updated at the time when the upgrade was started. It is recommended to select "Download and install updates (recommended)" during the upgrade process. Additionally, you can contact the Hardware Vendor and get the updates for the device drivers that are connected to the system. Ensure all the devices other than the Mouse; Keyboard and Display are disconnected during upgrade process. Then start setup again. + 0xC1900200 - 0x20008 This error occurs when the computer doesn’t meet the minimum requirements to download or upgrade to Windows 10. "Refer http://www.microsoft.com/en-us/windows/windows-10-specifications?OCID=win10_null_vanity_win10specs and make sure that the machine, on which the upgrade is being initiated, meets the minimum requirement. + +Secondly use the Windows 10 Compatibility Reports to understand upgrade issues (https://blogs.technet.microsoft.com/askcore/2016/01/21/using-the-windows-10-compatibility-reports-to-understand-upgrade-issues/) +" + 0x80070004 - 0x3000D SYSTEM, LOCAL, SELF, System, and Network are reserved names that can’t be used for Computer Name. "Ensure that you do not use the reserved names as the Computer names. Rename the system to a valid Computer name. +See KB 3086101 for more details. +" + 0xC1900101 - 0x40001 "This error indicates that we saw an error in the OOBE Phase - Stop 9F. This behavior occurs when device drivers do not handle power state transition requests properly. The error message most often occurs during one of the following actions: 1. Shutting down +2. Suspending or resuming from Standby mode +3. Suspending or resuming from Hibernate mode" "The most common causes for this error would be the connected devices on the machine / device as below and it would have suggested that we disable / disconnect them from the device /machine before performing the upgrade: +1. Internal WIFI Modem +2. Any External connected USB devices such as WEBCAMS; Printers; USB Hard Drives +3. Check to be sure your computer and all devices are on the Hardware Compatibility List (HCL) and have WHQL signed and certified drivers. + +The setup.exe will perform a rollback of the OS and would return to the older OS. Once the rollback is complete if we find the problem causing driver than we need to check for %SystemDrive%\$Windows.~bt\sources\Rollback\setupmem.dmp file and have a Microsoft Support Professional look into the same. +" + 0xC1900101 - 0x4001E This error indicates that the installation failed in the SECOND_BOOT phase with an error during PRE_OOBE operation. This is a generic error that occurs during the OOBE phase of Setup. We recommend you to review the FAQ for Upgrade to Windows 10 (https://support.microsoft.com/en-us/help/12435/windows-10-upgrade-faq) + 0x80070005 - 0x4000D This error code means The installation failed in the SECOND_BOOT phase with an error in during MIGRATE_DATA operation. This issue may occur if we have any application / driver that is causing an issue while the upgrade to Windows 10 is going on. Preform a clean boot on the system. Refer https://support.microsoft.com/en-us/kb/929135 for steps to perform a Clean boot. + 0x80070004 - 0x50012 The Computer account for the system has an invalid name. Please ensure that the machine name does not have any invalid characters (See https://technet.microsoft.com/en-us/library/cc749460(v=ws.10).aspx). Additionally, the names should not be any of the reserved names for systems. Rename the system to a valid computer name and try the Setup again. See KB 3086101 for more details. + "0xC190020e 0x80070070 - 0x50011 +0x80070070 - 0x50012 +0x80070070 - 0x60000" These errors would occur if your computer doesn’t have enough free space available to install the upgrade. "Typically to upgrade to Windows 10, you need free space of 16 GB for 32-bit OS and 20 GB for 64-bit OS. If there is not enough space refer the following article: +https://support.microsoft.com/en-us/help/17421/windows-free-up-drive-space + +Note: Once the deletion is complete, initiate the upgrade and this time you should not receive the error if sufficient space has been made. If that is not enough +then, you can implement solution as mentioned below. + +Using External Drive +If your device allows it, you can use an external USB drive for the upgrade process. Windows setup will backup the previous version of Windows to a USB external drive. The external drive must be at least 8GB – but having 16GB is recommended. +Some important points to remember if you choose to use an external storage drive for installing Windows 10: + - We recommend that the external drive is formatted in NTFS. Drives that are formatted in FAT32 may run into errors due to FAT32 file size limitations. To learn how to format in NTFS, click here. +- USB drives are preferred over SD cards because drivers for SD cards are not migrated if the device does not support Connected Standby. +" + + + + +## Appendix B: Less common errors I haven't edited and don't know how to classify + + + + + + + + + + + + + + + + + + + + + + + + + +
Error Codes Cause Mitigation
Contact your system administrator to upgrade Windows Server or Enterprise Editions This issue occurs if you run the updater tool. The tool works only with the Windows 10 Home, Pro, and Education editions. To resolve this issue, use a different method to upgrade to Windows 10 version 1607. For example, download the ISO, and then run Setup from it.
When doing an upgrade to Windows Version 1607 is it supported to use a custom install.wim (sysprepped) instead of the default install.wim that comes with Windows Version 1607 Unsupported It is not supported to replace the install.wim with custom wim (sysprepped or not). It is supported to do some minor changes to the default install.wim such as injecting latest cumulative update or remove inbox apps.
0xC1420127 The typical conversion of the error means that the specified image in the specified wim is already mounted for read/write access. When we launch the setup.exe, it checks the registry key. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount\Mounted Images to check for any previously mounted WIM files on the system and if the image is mounted we will get this error. This error would be very rare on Upgrades of WIN10 specially when upgrading to the Anniversary 1607 Build. This issue has been fixed with the Cumulative updates released in June 2016 for Windows 10. When we perform an Upgrade, it is recommended to Perform a Windows Update first and apply all important updates on the current OS and then start the Upgrade process for Windows 10.
0x8004100E This error code indicates that there is a problem with an Application that has an Invalid WMI Namespace In order to fix this problem, we need to open Application Event log and Check for Errors for various applications that could be causing this error. You can use WMIDIAG tool and make sure that the WMI is working well. The step by step instructions are available at: https://technet.microsoft.com/en-us/library/ff404265.aspx
0x80070057 This error means that One or more arguments are invalid This is a very generic error, and it could be due to any of the issues that we would have on the machine. This error may not be related to Upgrade only. It could be due to any programs; device drivers etc. There is no specific resolution for this error
0x8007007e The error indicates one of the modules required to upgrade to Windows 10 was not found, some of these modules could be manifest files, COM Classes, DLL or any app packages that may be missing. "When we start the upgrade of the OS, the Setup engine is responsible to check and confirm that all OS components / modules are running in good health, so that the upgrade succeeds. When we have any issues being reported with manifest files, COM Classes, DLL or any app packages, the setup engine would give this error. In order to fix this error, we would suggest to follow the solutions as below and then start the upgrade again. + +Solution 1: System File Checker +Follow the detailed steps as in: https://support.microsoft.com/en-us/kb/929833 + +Solution 2: Integrated CHKSUR +Run DISM Command to verify the health of the system: +1. Go to Start +2. Search for """"Command Prompt"""" +3. Right Click and select """"Run as Administrator"""" +4. On the prompt type command: Dism /Online /Cleanup-Image /CheckHealth +5. Hit Enter. +6. When you use the /CheckHealth argument, the DISM tool will report whether the image is healthy, repairable, or non-repairable. If the image is non-repairable, you should discard the image and start again. +7. If the image is repairable, you can use the /RestoreHealth argument to repair the image. Dism /Online /Cleanup-Image /RestoreHealth. +"
0x8007045d This error indicates that we ran into an I/O device error. "Please ensure that all I/O devices are working correctly. Please review the Device Manager for any errors and troubleshoot accordingly. +Refer: https://msdn.microsoft.com/windows/hardware/drivers/install/troubleshooting-device-and-driver-installations + +Additionally, you can review the following logs to verify which I/O device is causing the problem. + ""%systemroot%\$Windows.~BT\Sources\Panther\setupact.log"" + +If unable to review the logs, post on Windows 10 TechNet Forum (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc) +"
0x80070542 The user executing the Setup.exe does not have all permissions required to complete the upgrade. "Please ensure the user performing the upgrade is part of Local Administrators group or is a Local Admin. + +Additionally, to troubleshoot further you may need to identify which process is preventing access to certain resources required for upgrade process. That can be identify by using Process Monitor (https://technet.microsoft.com/en-us/sysinternals/processmonitor). +Use this (https://support.microsoft.com/en-us/kb/939896) to understand how to use Process Monitor and then post the results to Windows 10 TechNet Forum (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc) +"
0x80070652 This error occurs when another program is being installed at the same time as the upgrade. Ensure that the are no other installation currently in progress. If there is, wait for the installation to complete. Restart the computer and do the upgrade to Windows 10.
0x800F0923 This error code indicates that the user entered Safe Mode during the upgrade process. In order to complete the upgrade successfully, we recommend that you reboot the system in normal mode. If a roll-back occurs, re-initiate the upgrade.
0x80200056 This error indicates when the upgrade attempts to use a security token for some of the operations, but the token is not currently available. You can attempt to re-login to the machine with a local administrator privileges and attempt to re-run the upgrade. Ensure that you do not logoff until the upgrade is complete.
0xC0000005 The error indicates that the setup process lead to an access violation "Please ensure the user performing the upgrade is part of Local Administrators group or is a Local Admin. + +Additionally, to troubleshoot further you may need to identify which process is preventing access to certain resources required for upgrade process. That can be identify by using Process Monitor (https://technet.microsoft.com/en-us/sysinternals/processmonitor). +Use this (https://support.microsoft.com/en-us/kb/939896) to understand how to use Process Monitor and then post the results to Windows 10 TechNet Forum (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc) +"
0XC0000428 "This error occurs when the digital signatures for one of the Boot Critical Drivers has not been verified. In most cases, we will see an error on Bootup which will be similar to as below: +File: \Windows\system32\boot\winload.exe +Status:0xc0000428 +Info: Windows cannot verify the digital signature for this file." "In order to fix this error, we need to look for the file that is causing the issue. The file listed in the cause section may vary as well. When this error occurs, the machine / device will show a bluescreen and will not be in a useable state. At this point, we would need to perform Automatic Repair using Windows 10 installation media. The Drivers, conflicts with other programs, malware, and memory can all cause startup problems. +Automatic repair can detect and fix problems that prevent your PC from starting. Refer to the steps: + +a. Insert the installation USB media and boot Windows Technical Preview from it. +b. In the ‘Windows setup’ page select the ‘language to install’, ‘Time and currency format’ and the ‘keyboard or input method’ and click on ‘next’. +c. Click on ‘Repair your computer’ and select ‘Troubleshoot’. +d. Select ‘Automatic Repair’ and select the operating system. +e. You will then see a blue screen and an option to choose. Choose the option Troubleshoot and select advanced options. + f. You may choose Automatic Repair from Advanced boot option. + g. Follow the instructions. + +The above steps should fix the issue and get the driver signatures back as well for the corrupted drivers. If that does not help, then we may not have any other option than performing a Clean Install of Windows 10 on the machine / device. You can create a Windows 10 installation Disc and perform a clean installation on the computer. To create a please find the below link: +https://www.microsoft.com/en-us/software-download/windows10 + +Once the media is created by the tool, it will walk you through how to set up Windows 10 on your PC. During setup, you might be asked to enter a product key. + If you bought Windows 10 and are installing it for the first time, you’ll need to enter the Windows 10 product key you received in the confirmation email after your purchase. If you don’t have a product key and you’ve not previously upgraded to Windows 10, select I need to buy a Windows 10 product key. +"
0xc1900106 This indicate that upgrade process was forcefully terminated either by Rebooting or forcefully canceling the setup. "We recommended that when the Windows 10 Upgrade is initiated, one should not terminate the process at any time until the Setup completes. Before initiating the setup, we should make sure: +1. The device (Laptop or Surface) it should be connected to power source and adequately charged. +2. The user is not cancelling the setup on the Black Screen, when the setup.exe is installing devices and configuring user settings. +PS: It takes time on the device configuration and migration depending upon the Speed of the CPU and the amount of RAM on the system. +"
0xC1900208 -1047526904 This error occurs when the computer does not pass the compatibility check for upgrading to Windows 10. "This error comes when there is software/driver which is not yet certified to be compatible with windows 10. Hence you might want to re-run the compatibility check before initiating the Upgrade. +Refer AskCore Blog: Using the Windows 10 Compatibility Reports to understand upgrade issues (https://blogs.technet.microsoft.com/askcore/2016/01/21/using-the-windows-10-compatibility-reports-to-understand-upgrade-issues/) + +Once you have found the in-compatible software/drivers: +1. Uninstall incompatible software or hardware or driver, +2. Now re-run the compatibility check just to verify that there no more in-compatible software/driver on the machine. +3. If it comes clean, initiate the upgrade. +4. Else, repeat the steps until the compatibility check is clean. +"
Couldn't Update System Reserved Partition This error occurs because the System Reserved Partition (SRP) is full. Free up 15MB of space on the SRP using the appropriate method described in Knowledge Base article 3086249, and then try the upgrade again.
MismatchedLanguage, found HardBlock This error code indicates that the Current Language installed on the machine is not Supported for the Upgrade to start. We need to have English as the base Language in order to upgrade to Windows 10. There is a Hard block for the Upgrade to be performed and the compatibility scan data is saved to %Systemroot%\$WINDOWS.~BT\Sources\Panther\CompatData_YYYY.txt
Setup couldn’t start properly. Please reboot your PC and try running Windows 10 Setup again This error occurs if the upgrade files are corrupt due to a failed Windows 10 download. "The Setup.exe initializes the temporary folders to copy the data and prepare the machine for upgrade. The specific folders that are initialized are: + +1. C:\$Windows ~BT (Hidden Folder) +2. C:\$Windows~WS (Hidden Folder) + +In order to delete the above folders we would suggest that we use the Disk Clean Up tool and delete the folders and then try to run the upgrade again. +https://support.microsoft.com/en-us/help/17421/windows-free-up-drive-space +"
Unable to resurrect NewSystem object. hr=0x80070002 "This error occurs when the setup.exe is unable to create the newsystem data file when the upgrade starts. If we look at the C:\$Windows.~BT\Sources\Panther\diagerr.xml, we should see something like: +CSetupPlatform::ResurrectNewSystem: +Failure: Win32Exception: \\?\C:\$Windows.~BT\Sources\NewSystem.dat: +The system cannot find the file specified. [0x00000002] __cdecl +UnBCL::FileStream::FileStream(const class UnBCL::String *,enum +UnBCL::FileMode,enum UnBCL::FileAccess,enum UnBCL::FileShare,unsigned long)" "The NewSystem.dat is an operational file that is created at the beginning of the upgrade process and used at various points in the setup phase like driver migrations; disk space detections; Platforms detections and creating a base image of the new OS that is extracted from the INSTALL.WIM, which is the source file for the upgrade. +There are couple of solutions for this issue: +Solution 1: Disk Space +Check and Make sure that we have good amount of free disk space on the OS partition. Disk space requirements: +a. For 32-bit: Greater than 16gb +b. For 64-Bit: Greater than 20gb + +Solution 2: Upgrade Path +We need to make sure that we are upgrading the existing OS, to the New Version as per the guidelines described in https://technet.microsoft.com/en-us/itpro/windows/deploy/windows-10-upgrade-paths?f=255&MSPPError=-2147217396 + +Solution: Media Creation Tool +Use the Media Creation tool and create an ISO and then start the upgrade of the OS. The tool can be downloaded from: http://go.microsoft.com/fwlink/?LinkId=691209 +"
+ ## Related topics • Windows 10 FAQ for IT professionals From 6d2ee3eb4b253716f546d5923bbc3485fe9abcda Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 23 Sep 2016 17:01:19 -0700 Subject: [PATCH 09/39] draft --- .../resolve-windows-10-upgrade-errors.md | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 5765d2849c..036b49a288 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -29,10 +29,10 @@ The Windows Setup application is used to upgrade a computer to Windows 10, or to - Example error codes during this phase: 0x30018, 0x3000D 4. Second boot phase: Final settings are applied. This is also called the OOBE boot phase. - Example error codes during this phase: 0x4000D, 0x40017 +5. Rollback phase: This phase occurs if upgrade is unsuccessful. + - Example error codes during this phase: 0x50011, 0x50012 ->The computer can also enter a fifth, rollback (uninstall) phase if the upgrade is unsuccessful. - -Four phases of a Windows 10 upgrade: +Phases of a successful Windows 10 upgrade (rollback is not shown): ![Upgrade process](images/upgrade-process.png) @@ -42,22 +42,24 @@ WIM = Windows image (Microsoft) ## Upgrade error codes -Setup will typically return two codes: +Setup will return two codes: 1. A result code, corresponding to a specific Win32 error. 2. An extend code, corresponding to the phase and the operation when a failure occurred. For example, a result code of 0xC1900101 with an extend code of 0x4000D will be returned as: **0xC1900101 - 0x4000D** ->If only a single code is returned, this can be because a tool is being used that does not capture the extend code, for example the [Windows 10 Upgrade Assistant](https://support.microsoft.com/en-us/kb/3159635). +Note: If only a single code is returned, this can be because a tool is being used that does not capture the extend code, for example the [Windows 10 Upgrade Assistant](https://support.microsoft.com/en-us/kb/3159635). ### Extend codes The phase and operation of an extend code maps to the following tables. - +
-
+ -
+
HexPhase
0SP_EXECUTION_UNKNOWN
1SP_EXECUTION_DOWNLEVEL @@ -67,7 +69,8 @@ The phase and operation of an extend code maps to the following tables.
5SP_EXECUTION_UNINSTALL
+ -
+
HexOperation
0SP_EXECUTION_OP_UNKNOWN
1SP_EXECUTION_OP_COPY_PAYLOAD @@ -87,7 +90,8 @@ The phase and operation of an extend code maps to the following tables.
FSP_EXECUTION_OP_ADD_UNATTEND
+
+
HexOperation
10SP_EXECUTION_OP_ADD_DRIVER
11SP_EXECUTION_OP_ENABLE_FEATURE From 54fa1fb3d0d1673fc86dea7616e55178a3f9acd5 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 23 Sep 2016 17:12:38 -0700 Subject: [PATCH 10/39] draft --- .../resolve-windows-10-upgrade-errors.md | 120 +++++++++--------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 036b49a288..c13d349f1d 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -122,15 +122,15 @@ For example, you can use these tables to interpret extend code of 0x**4** During each phase of the upgrade process, setup log files are created in various locations. These log files can be very useful in troubleshooting upgrade problems. - + - @@ -327,50 +327,50 @@ Failed to run the action: Upgrade Windows.
Log fileDescriptionLocation
Log fileDescriptionLocation
setupact.logContains information about setup actions during the installation. +
setupact.logContains information about setup actions during the installation.

This is the most important log for diagnosing setup issues.

-Down-Level phase: $Windows.~BT\Sources\Panther
-Rollback phase: $Windows.~BT\Sources\Rollback
-First & second boot phase: $Windows.~BT\Sources\Panther\UnattendGC
-Pre-initialization: Windows
-Post-upgrade: Windows\Panther +**Down-Level phase**: $Windows.~BT\Sources\Panther
+**First & second boot phase**: $Windows.~BT\Sources\Panther\UnattendGC
+**Rollback phase**: $Windows.~BT\Sources\Rollback
+**Pre-initialization**: Windows
+**Post-upgrade**: Windows\Panther
setuperr.logContains information about setup errors during the installation.Same location as setupact.log
- - + - + - + - - - + + + - + - + - - - - + + + + +" @@ -393,13 +393,13 @@ Some important points to remember if you choose to use an external storage drive
Error Codes Cause Mitigation
0x80070003- 0x20007 This error occurs when there is problem with the Internet connection during the Windows 10 upgrade. "Since this error indicates that the internet connection ran into a problem, you may attempt to fix the connectivity issues and reattempt the download of the files. +
Error CodesCauseMitigation
0x80070003- 0x20007This error occurs when there is problem with the Internet connection during the Windows 10 upgrade."Since this error indicates that the internet connection ran into a problem, you may attempt to fix the connectivity issues and reattempt the download of the files. Alternatively, you may re-create installation media using ""Media Creation Tool"" from a different connected system. Refer: https://www.microsoft.com/en-us/software-download/windows10 You can either create a USB drive or an ISO. -"
0x8007025D - 0x2000C This error occurs if the ISO file's metadata is corrupt. "Re-download the ISO/Media and re-attempt the upgrade. +"
0x8007025D - 0x2000CThis error occurs if the ISO file's metadata is corrupt."Re-download the ISO/Media and re-attempt the upgrade. You may alternatively, re-create installation media using ""Media Creation Tool"" Refer: https://www.microsoft.com/en-us/software-download/windows10 You can either create a USB drive or an ISO using the Media Creation Tool. -"
0x80070490 - 0x20007 The error comes up during driver installation phase and it means that some of the device driver is incompatible. "Please ensure that all the devices are working correctly. Please review the Device Manager for any errors and troubleshoot accordingly. +"
0x80070490 - 0x20007The error comes up during driver installation phase and it means that some of the device driver is incompatible."Please ensure that all the devices are working correctly. Please review the Device Manager for any errors and troubleshoot accordingly. Refer: https://msdn.microsoft.com/windows/hardware/drivers/install/troubleshooting-device-and-driver-installations Additionally, you can review the following logs to verify which I/O device is causing the problem. ""%systemroot%\$Windows.~BT\Sources\Panther\setupact.log"" If unable to review the logs, post on Windows 10 TechNet Forum (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc) -"
0xC1900101 - 0x2000B This error occurs when the device drivers of the hardware connected to the computer prevent the Windows 10 upgrade from building the migration file list. We recommended you disconnect the devices that aren't in use when you upgrade the computer.
0xC1900101 - 0x2000c The Setup Platform has encountered an unspecified error during the WINPE Phase. This is generally caused by drivers which are not updated at the time when the upgrade was started. It is recommended to select "Download and install updates (recommended)" during the upgrade process. Additionally, you can contact the Hardware Vendor and get the updates for the device drivers that are connected to the system. Ensure all the devices other than the Mouse; Keyboard and Display are disconnected during upgrade process. Then start setup again.
0xC1900200 - 0x20008 This error occurs when the computer doesn’t meet the minimum requirements to download or upgrade to Windows 10. "Refer http://www.microsoft.com/en-us/windows/windows-10-specifications?OCID=win10_null_vanity_win10specs and make sure that the machine, on which the upgrade is being initiated, meets the minimum requirement. +"
0xC1900101 - 0x2000BThis error occurs when the device drivers of the hardware connected to the computer prevent the Windows 10 upgrade from building the migration file list.We recommended you disconnect the devices that aren't in use when you upgrade the computer.
0xC1900101 - 0x2000cThe Setup Platform has encountered an unspecified error during the WINPE Phase. This is generally caused by drivers which are not updated at the time when the upgrade was started.It is recommended to select "Download and install updates (recommended)" during the upgrade process. Additionally, you can contact the Hardware Vendor and get the updates for the device drivers that are connected to the system. Ensure all the devices other than the Mouse; Keyboard and Display are disconnected during upgrade process. Then start setup again.
0xC1900200 - 0x20008This error occurs when the computer doesn’t meet the minimum requirements to download or upgrade to Windows 10."Refer http://www.microsoft.com/en-us/windows/windows-10-specifications?OCID=win10_null_vanity_win10specs and make sure that the machine, on which the upgrade is being initiated, meets the minimum requirement. Secondly use the Windows 10 Compatibility Reports to understand upgrade issues (https://blogs.technet.microsoft.com/askcore/2016/01/21/using-the-windows-10-compatibility-reports-to-understand-upgrade-issues/) -"
0x80070004 - 0x3000D SYSTEM, LOCAL, SELF, System, and Network are reserved names that can’t be used for Computer Name. "Ensure that you do not use the reserved names as the Computer names. Rename the system to a valid Computer name. +"
0x80070004 - 0x3000DSYSTEM, LOCAL, SELF, System, and Network are reserved names that can’t be used for Computer Name."Ensure that you do not use the reserved names as the Computer names. Rename the system to a valid Computer name. See KB 3086101 for more details. -"
0xC1900101 - 0x40001 "This error indicates that we saw an error in the OOBE Phase - Stop 9F. This behavior occurs when device drivers do not handle power state transition requests properly. The error message most often occurs during one of the following actions: 1. Shutting down +"
0xC1900101 - 0x40001"This error indicates that we saw an error in the OOBE Phase - Stop 9F. This behavior occurs when device drivers do not handle power state transition requests properly. The error message most often occurs during one of the following actions: 1. Shutting down 2. Suspending or resuming from Standby mode -3. Suspending or resuming from Hibernate mode" "The most common causes for this error would be the connected devices on the machine / device as below and it would have suggested that we disable / disconnect them from the device /machine before performing the upgrade: +3. Suspending or resuming from Hibernate mode""The most common causes for this error would be the connected devices on the machine / device as below and it would have suggested that we disable / disconnect them from the device /machine before performing the upgrade: 1. Internal WIFI Modem 2. Any External connected USB devices such as WEBCAMS; Printers; USB Hard Drives 3. Check to be sure your computer and all devices are on the Hardware Compatibility List (HCL) and have WHQL signed and certified drivers. The setup.exe will perform a rollback of the OS and would return to the older OS. Once the rollback is complete if we find the problem causing driver than we need to check for %SystemDrive%\$Windows.~bt\sources\Rollback\setupmem.dmp file and have a Microsoft Support Professional look into the same. -"
0xC1900101 - 0x4001E This error indicates that the installation failed in the SECOND_BOOT phase with an error during PRE_OOBE operation. This is a generic error that occurs during the OOBE phase of Setup. We recommend you to review the FAQ for Upgrade to Windows 10 (https://support.microsoft.com/en-us/help/12435/windows-10-upgrade-faq)
0x80070005 - 0x4000D This error code means The installation failed in the SECOND_BOOT phase with an error in during MIGRATE_DATA operation. This issue may occur if we have any application / driver that is causing an issue while the upgrade to Windows 10 is going on. Preform a clean boot on the system. Refer https://support.microsoft.com/en-us/kb/929135 for steps to perform a Clean boot.
0x80070004 - 0x50012 The Computer account for the system has an invalid name. Please ensure that the machine name does not have any invalid characters (See https://technet.microsoft.com/en-us/library/cc749460(v=ws.10).aspx). Additionally, the names should not be any of the reserved names for systems. Rename the system to a valid computer name and try the Setup again. See KB 3086101 for more details.
"0xC190020e 0x80070070 - 0x50011 +"
0xC1900101 - 0x4001EThis error indicates that the installation failed in the SECOND_BOOT phase with an error during PRE_OOBE operation.This is a generic error that occurs during the OOBE phase of Setup. We recommend you to review the FAQ for Upgrade to Windows 10 (https://support.microsoft.com/en-us/help/12435/windows-10-upgrade-faq)
0x80070005 - 0x4000DThis error code means The installation failed in the SECOND_BOOT phase with an error in during MIGRATE_DATA operation.This issue may occur if we have any application / driver that is causing an issue while the upgrade to Windows 10 is going on. Preform a clean boot on the system. Refer https://support.microsoft.com/en-us/kb/929135 for steps to perform a Clean boot.
0x80070004 - 0x50012The Computer account for the system has an invalid name. Please ensure that the machine name does not have any invalid characters (See https://technet.microsoft.com/en-us/library/cc749460(v=ws.10).aspx). Additionally, the names should not be any of the reserved names for systems. Rename the system to a valid computer name and try the Setup again. See KB 3086101 for more details.
"0xC190020e 0x80070070 - 0x50011 0x80070070 - 0x50012 -0x80070070 - 0x60000" These errors would occur if your computer doesn’t have enough free space available to install the upgrade. "Typically to upgrade to Windows 10, you need free space of 16 GB for 32-bit OS and 20 GB for 64-bit OS. If there is not enough space refer the following article: +0x80070070 - 0x60000"These errors would occur if your computer doesn’t have enough free space available to install the upgrade."Typically to upgrade to Windows 10, you need free space of 16 GB for 32-bit OS and 20 GB for 64-bit OS. If there is not enough space refer the following article: https://support.microsoft.com/en-us/help/17421/windows-free-up-drive-space Note: Once the deletion is complete, initiate the upgrade and this time you should not receive the error if sufficient space has been made. If that is not enough @@ -381,7 +381,7 @@ If your device allows it, you can use an external USB drive for the upgrade proc Some important points to remember if you choose to use an external storage drive for installing Windows 10: - We recommend that the external drive is formatted in NTFS. Drives that are formatted in FAT32 may run into errors due to FAT32 file size limitations. To learn how to format in NTFS, click here. - USB drives are preferred over SD cards because drivers for SD cards are not migrated if the device does not support Connected Standby. -"
- - - - - - - + + + + + + - + - + - - - - + + + + - + - + - + - - - + + + - + +"
Error Codes Cause Mitigation
Contact your system administrator to upgrade Windows Server or Enterprise Editions This issue occurs if you run the updater tool. The tool works only with the Windows 10 Home, Pro, and Education editions. To resolve this issue, use a different method to upgrade to Windows 10 version 1607. For example, download the ISO, and then run Setup from it.
When doing an upgrade to Windows Version 1607 is it supported to use a custom install.wim (sysprepped) instead of the default install.wim that comes with Windows Version 1607 Unsupported It is not supported to replace the install.wim with custom wim (sysprepped or not). It is supported to do some minor changes to the default install.wim such as injecting latest cumulative update or remove inbox apps.
0xC1420127 The typical conversion of the error means that the specified image in the specified wim is already mounted for read/write access. When we launch the setup.exe, it checks the registry key. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount\Mounted Images to check for any previously mounted WIM files on the system and if the image is mounted we will get this error. This error would be very rare on Upgrades of WIN10 specially when upgrading to the Anniversary 1607 Build. This issue has been fixed with the Cumulative updates released in June 2016 for Windows 10. When we perform an Upgrade, it is recommended to Perform a Windows Update first and apply all important updates on the current OS and then start the Upgrade process for Windows 10.
0x8004100E This error code indicates that there is a problem with an Application that has an Invalid WMI Namespace In order to fix this problem, we need to open Application Event log and Check for Errors for various applications that could be causing this error. You can use WMIDIAG tool and make sure that the WMI is working well. The step by step instructions are available at: https://technet.microsoft.com/en-us/library/ff404265.aspx
0x80070057 This error means that One or more arguments are invalid This is a very generic error, and it could be due to any of the issues that we would have on the machine. This error may not be related to Upgrade only. It could be due to any programs; device drivers etc. There is no specific resolution for this error
0x8007007e The error indicates one of the modules required to upgrade to Windows 10 was not found, some of these modules could be manifest files, COM Classes, DLL or any app packages that may be missing. "When we start the upgrade of the OS, the Setup engine is responsible to check and confirm that all OS components / modules are running in good health, so that the upgrade succeeds. When we have any issues being reported with manifest files, COM Classes, DLL or any app packages, the setup engine would give this error. In order to fix this error, we would suggest to follow the solutions as below and then start the upgrade again. +
Error CodesCauseMitigation
Contact your system administrator to upgrade Windows Server or Enterprise EditionsThis issue occurs if you run the updater tool. The tool works only with the Windows 10 Home, Pro, and Education editions.To resolve this issue, use a different method to upgrade to Windows 10 version 1607. For example, download the ISO, and then run Setup from it.
When doing an upgrade to Windows Version 1607 is it supported to use a custom install.wim (sysprepped) instead of the default install.wim that comes with Windows Version 1607 UnsupportedIt is not supported to replace the install.wim with custom wim (sysprepped or not). It is supported to do some minor changes to the default install.wim such as injecting latest cumulative update or remove inbox apps.
0xC1420127The typical conversion of the error means that the specified image in the specified wim is already mounted for read/write access. When we launch the setup.exe, it checks the registry key. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount\Mounted Images to check for any previously mounted WIM files on the system and if the image is mounted we will get this error.This error would be very rare on Upgrades of WIN10 specially when upgrading to the Anniversary 1607 Build. This issue has been fixed with the Cumulative updates released in June 2016 for Windows 10. When we perform an Upgrade, it is recommended to Perform a Windows Update first and apply all important updates on the current OS and then start the Upgrade process for Windows 10.
0x8004100EThis error code indicates that there is a problem with an Application that has an Invalid WMI NamespaceIn order to fix this problem, we need to open Application Event log and Check for Errors for various applications that could be causing this error. You can use WMIDIAG tool and make sure that the WMI is working well. The step by step instructions are available at: https://technet.microsoft.com/en-us/library/ff404265.aspx
0x80070057This error means that One or more arguments are invalidThis is a very generic error, and it could be due to any of the issues that we would have on the machine. This error may not be related to Upgrade only. It could be due to any programs; device drivers etc. There is no specific resolution for this error
0x8007007eThe error indicates one of the modules required to upgrade to Windows 10 was not found, some of these modules could be manifest files, COM Classes, DLL or any app packages that may be missing."When we start the upgrade of the OS, the Setup engine is responsible to check and confirm that all OS components / modules are running in good health, so that the upgrade succeeds. When we have any issues being reported with manifest files, COM Classes, DLL or any app packages, the setup engine would give this error. In order to fix this error, we would suggest to follow the solutions as below and then start the upgrade again. Solution 1: System File Checker Follow the detailed steps as in: https://support.microsoft.com/en-us/kb/929833 @@ -413,32 +413,32 @@ Run DISM Command to verify the health of the system: 5. Hit Enter. 6. When you use the /CheckHealth argument, the DISM tool will report whether the image is healthy, repairable, or non-repairable. If the image is non-repairable, you should discard the image and start again. 7. If the image is repairable, you can use the /RestoreHealth argument to repair the image. Dism /Online /Cleanup-Image /RestoreHealth. -"
0x8007045d This error indicates that we ran into an I/O device error. "Please ensure that all I/O devices are working correctly. Please review the Device Manager for any errors and troubleshoot accordingly. +"
0x8007045dThis error indicates that we ran into an I/O device error."Please ensure that all I/O devices are working correctly. Please review the Device Manager for any errors and troubleshoot accordingly. Refer: https://msdn.microsoft.com/windows/hardware/drivers/install/troubleshooting-device-and-driver-installations Additionally, you can review the following logs to verify which I/O device is causing the problem. ""%systemroot%\$Windows.~BT\Sources\Panther\setupact.log"" If unable to review the logs, post on Windows 10 TechNet Forum (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc) -"
0x80070542 The user executing the Setup.exe does not have all permissions required to complete the upgrade. "Please ensure the user performing the upgrade is part of Local Administrators group or is a Local Admin. +"
0x80070542The user executing the Setup.exe does not have all permissions required to complete the upgrade. "Please ensure the user performing the upgrade is part of Local Administrators group or is a Local Admin. Additionally, to troubleshoot further you may need to identify which process is preventing access to certain resources required for upgrade process. That can be identify by using Process Monitor (https://technet.microsoft.com/en-us/sysinternals/processmonitor). Use this (https://support.microsoft.com/en-us/kb/939896) to understand how to use Process Monitor and then post the results to Windows 10 TechNet Forum (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc) -"
0x80070652 This error occurs when another program is being installed at the same time as the upgrade. Ensure that the are no other installation currently in progress. If there is, wait for the installation to complete. Restart the computer and do the upgrade to Windows 10.
0x800F0923 This error code indicates that the user entered Safe Mode during the upgrade process. In order to complete the upgrade successfully, we recommend that you reboot the system in normal mode. If a roll-back occurs, re-initiate the upgrade.
0x80200056 This error indicates when the upgrade attempts to use a security token for some of the operations, but the token is not currently available. You can attempt to re-login to the machine with a local administrator privileges and attempt to re-run the upgrade. Ensure that you do not logoff until the upgrade is complete.
0xC0000005 The error indicates that the setup process lead to an access violation "Please ensure the user performing the upgrade is part of Local Administrators group or is a Local Admin. +"
0x80070652 This error occurs when another program is being installed at the same time as the upgrade.Ensure that the are no other installation currently in progress. If there is, wait for the installation to complete. Restart the computer and do the upgrade to Windows 10.
0x800F0923This error code indicates that the user entered Safe Mode during the upgrade process.In order to complete the upgrade successfully, we recommend that you reboot the system in normal mode. If a roll-back occurs, re-initiate the upgrade.
0x80200056This error indicates when the upgrade attempts to use a security token for some of the operations, but the token is not currently available. You can attempt to re-login to the machine with a local administrator privileges and attempt to re-run the upgrade. Ensure that you do not logoff until the upgrade is complete.
0xC0000005The error indicates that the setup process lead to an access violation"Please ensure the user performing the upgrade is part of Local Administrators group or is a Local Admin. Additionally, to troubleshoot further you may need to identify which process is preventing access to certain resources required for upgrade process. That can be identify by using Process Monitor (https://technet.microsoft.com/en-us/sysinternals/processmonitor). Use this (https://support.microsoft.com/en-us/kb/939896) to understand how to use Process Monitor and then post the results to Windows 10 TechNet Forum (https://social.technet.microsoft.com/Forums/en-us/home?forum=win10itprogeneral&filter=alltypes&sort=lastpostdesc) -"
0XC0000428 "This error occurs when the digital signatures for one of the Boot Critical Drivers has not been verified. In most cases, we will see an error on Bootup which will be similar to as below: +"
0XC0000428"This error occurs when the digital signatures for one of the Boot Critical Drivers has not been verified. In most cases, we will see an error on Bootup which will be similar to as below: File: \Windows\system32\boot\winload.exe Status:0xc0000428 -Info: Windows cannot verify the digital signature for this file." "In order to fix this error, we need to look for the file that is causing the issue. The file listed in the cause section may vary as well. When this error occurs, the machine / device will show a bluescreen and will not be in a useable state. At this point, we would need to perform Automatic Repair using Windows 10 installation media. The Drivers, conflicts with other programs, malware, and memory can all cause startup problems. +Info: Windows cannot verify the digital signature for this file.""In order to fix this error, we need to look for the file that is causing the issue. The file listed in the cause section may vary as well. When this error occurs, the machine / device will show a bluescreen and will not be in a useable state. At this point, we would need to perform Automatic Repair using Windows 10 installation media. The Drivers, conflicts with other programs, malware, and memory can all cause startup problems. Automatic repair can detect and fix problems that prevent your PC from starting. Refer to the steps: a. Insert the installation USB media and boot Windows Technical Preview from it. @@ -454,13 +454,13 @@ https://www.microsoft.com/en-us/software-download/windows10 Once the media is created by the tool, it will walk you through how to set up Windows 10 on your PC. During setup, you might be asked to enter a product key. If you bought Windows 10 and are installing it for the first time, you’ll need to enter the Windows 10 product key you received in the confirmation email after your purchase. If you don’t have a product key and you’ve not previously upgraded to Windows 10, select I need to buy a Windows 10 product key. -"
0xc1900106 This indicate that upgrade process was forcefully terminated either by Rebooting or forcefully canceling the setup. "We recommended that when the Windows 10 Upgrade is initiated, one should not terminate the process at any time until the Setup completes. Before initiating the setup, we should make sure: +"
0xc1900106This indicate that upgrade process was forcefully terminated either by Rebooting or forcefully canceling the setup. "We recommended that when the Windows 10 Upgrade is initiated, one should not terminate the process at any time until the Setup completes. Before initiating the setup, we should make sure: 1. The device (Laptop or Surface) it should be connected to power source and adequately charged. 2. The user is not cancelling the setup on the Black Screen, when the setup.exe is installing devices and configuring user settings. PS: It takes time on the device configuration and migration depending upon the Speed of the CPU and the amount of RAM on the system. -"
0xC1900208 -1047526904 This error occurs when the computer does not pass the compatibility check for upgrading to Windows 10. "This error comes when there is software/driver which is not yet certified to be compatible with windows 10. Hence you might want to re-run the compatibility check before initiating the Upgrade. +"
0xC1900208 -1047526904This error occurs when the computer does not pass the compatibility check for upgrading to Windows 10."This error comes when there is software/driver which is not yet certified to be compatible with windows 10. Hence you might want to re-run the compatibility check before initiating the Upgrade. Refer AskCore Blog: Using the Windows 10 Compatibility Reports to understand upgrade issues (https://blogs.technet.microsoft.com/askcore/2016/01/21/using-the-windows-10-compatibility-reports-to-understand-upgrade-issues/) Once you have found the in-compatible software/drivers: @@ -468,23 +468,23 @@ Once you have found the in-compatible software/drivers: 2. Now re-run the compatibility check just to verify that there no more in-compatible software/driver on the machine. 3. If it comes clean, initiate the upgrade. 4. Else, repeat the steps until the compatibility check is clean. -"
Couldn't Update System Reserved Partition This error occurs because the System Reserved Partition (SRP) is full. Free up 15MB of space on the SRP using the appropriate method described in Knowledge Base article 3086249, and then try the upgrade again.
MismatchedLanguage, found HardBlock This error code indicates that the Current Language installed on the machine is not Supported for the Upgrade to start. We need to have English as the base Language in order to upgrade to Windows 10. There is a Hard block for the Upgrade to be performed and the compatibility scan data is saved to %Systemroot%\$WINDOWS.~BT\Sources\Panther\CompatData_YYYY.txt
Setup couldn’t start properly. Please reboot your PC and try running Windows 10 Setup again This error occurs if the upgrade files are corrupt due to a failed Windows 10 download. "The Setup.exe initializes the temporary folders to copy the data and prepare the machine for upgrade. The specific folders that are initialized are: +"
Couldn't Update System Reserved PartitionThis error occurs because the System Reserved Partition (SRP) is full.Free up 15MB of space on the SRP using the appropriate method described in Knowledge Base article 3086249, and then try the upgrade again.
MismatchedLanguage, found HardBlockThis error code indicates that the Current Language installed on the machine is not Supported for the Upgrade to start.We need to have English as the base Language in order to upgrade to Windows 10. There is a Hard block for the Upgrade to be performed and the compatibility scan data is saved to %Systemroot%\$WINDOWS.~BT\Sources\Panther\CompatData_YYYY.txt
Setup couldn’t start properly. Please reboot your PC and try running Windows 10 Setup againThis error occurs if the upgrade files are corrupt due to a failed Windows 10 download."The Setup.exe initializes the temporary folders to copy the data and prepare the machine for upgrade. The specific folders that are initialized are: 1. C:\$Windows ~BT (Hidden Folder) 2. C:\$Windows~WS (Hidden Folder) In order to delete the above folders we would suggest that we use the Disk Clean Up tool and delete the folders and then try to run the upgrade again. https://support.microsoft.com/en-us/help/17421/windows-free-up-drive-space -"
Unable to resurrect NewSystem object. hr=0x80070002 "This error occurs when the setup.exe is unable to create the newsystem data file when the upgrade starts. If we look at the C:\$Windows.~BT\Sources\Panther\diagerr.xml, we should see something like: +"
Unable to resurrect NewSystem object. hr=0x80070002"This error occurs when the setup.exe is unable to create the newsystem data file when the upgrade starts. If we look at the C:\$Windows.~BT\Sources\Panther\diagerr.xml, we should see something like: CSetupPlatform::ResurrectNewSystem: Failure: Win32Exception: \\?\C:\$Windows.~BT\Sources\NewSystem.dat: The system cannot find the file specified. [0x00000002] __cdecl UnBCL::FileStream::FileStream(const class UnBCL::String *,enum -UnBCL::FileMode,enum UnBCL::FileAccess,enum UnBCL::FileShare,unsigned long)" "The NewSystem.dat is an operational file that is created at the beginning of the upgrade process and used at various points in the setup phase like driver migrations; disk space detections; Platforms detections and creating a base image of the new OS that is extracted from the INSTALL.WIM, which is the source file for the upgrade. +UnBCL::FileMode,enum UnBCL::FileAccess,enum UnBCL::FileShare,unsigned long)""The NewSystem.dat is an operational file that is created at the beginning of the upgrade process and used at various points in the setup phase like driver migrations; disk space detections; Platforms detections and creating a base image of the new OS that is extracted from the INSTALL.WIM, which is the source file for the upgrade. There are couple of solutions for this issue: Solution 1: Disk Space Check and Make sure that we have good amount of free disk space on the OS partition. Disk space requirements: @@ -496,7 +496,7 @@ We need to make sure that we are upgrading the existing OS, to the New Version a Solution: Media Creation Tool Use the Media Creation tool and create an ISO and then start the upgrade of the OS. The tool can be downloaded from: http://go.microsoft.com/fwlink/?LinkId=691209 -"
From 17ea0f9a2ff94cdf237db79c15d1cd85501ba882 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 23 Sep 2016 17:17:58 -0700 Subject: [PATCH 11/39] draft --- .../deploy/resolve-windows-10-upgrade-errors.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index c13d349f1d..4cc6c23e52 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -22,17 +22,17 @@ This topic provides a brief introduction to Windows 10 installation processes an The Windows Setup application is used to upgrade a computer to Windows 10, or to perform a clean installation. Windows Setup starts and restarts the computer, gathers information, copies files, and creates or adjusts configuration settings. When performing an operating system upgrade, Windows Setup uses the following phases: -1. Downlevel phase: The downlevel phase is run within the previous operating system. Installation components are gathered. -2. Safe OS phase: A recovery partition is configured and updates are installed. An OS rollback is prepared if needed. +1. **Downlevel phase**: The downlevel phase is run within the previous operating system. Installation components are gathered. +2. **Safe OS phase**: A recovery partition is configured and updates are installed. An OS rollback is prepared if needed. - Example error codes during this phase: 0x2000C, 0x20017 -3. First boot phase: Initial settings are applied. +3. **First boot phase**: Initial settings are applied. - Example error codes during this phase: 0x30018, 0x3000D -4. Second boot phase: Final settings are applied. This is also called the OOBE boot phase. +4. **Second boot phase**: Final settings are applied. This is also called the **OOBE boot phase**. - Example error codes during this phase: 0x4000D, 0x40017 -5. Rollback phase: This phase occurs if upgrade is unsuccessful. +5. **Rollback phase**: This phase occurs if upgrade is unsuccessful. - Example error codes during this phase: 0x50011, 0x50012 -Phases of a successful Windows 10 upgrade (rollback is not shown): +**Figure 1**: Phases of a successful Windows 10 upgrade (rollback is not shown): ![Upgrade process](images/upgrade-process.png) @@ -47,7 +47,7 @@ Setup will return two codes: 1. A result code, corresponding to a specific Win32 error. 2. An extend code, corresponding to the phase and the operation when a failure occurred. -For example, a result code of 0xC1900101 with an extend code of 0x4000D will be returned as: **0xC1900101 - 0x4000D** +For example, a result code of **0xC1900101** with an extend code of **0x4000D** will be returned as: **0xC1900101 - 0x4000D** Note: If only a single code is returned, this can be because a tool is being used that does not capture the extend code, for example the [Windows 10 Upgrade Assistant](https://support.microsoft.com/en-us/kb/3159635). @@ -115,7 +115,7 @@ The phase and operation of an extend code maps to the following tables.
-For example, you can use these tables to interpret extend code of 0x**4**00**0D** as a problem during phase 4 with data migration (**4** = SP_EXECUTION_OOBE_BOOT, **0D** = SP_EXECUTION_OP_MIGRATE_DATE). +For example: You can use these tables to interpret extend code of 0x**4**00**0D** as a problem during phase 4 with data migration (**4** = SP_EXECUTION_OOBE_BOOT, **0D** = SP_EXECUTION_OP_MIGRATE_DATE). ## Log files From 676e1ceb7266bbdc912497ac079e7e0becfe3b96 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 10:24:16 -0700 Subject: [PATCH 12/39] test table --- .../resolve-windows-10-upgrade-errors.md | 42 +++++++++++++++++-- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 4cc6c23e52..914f34c31d 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -24,13 +24,13 @@ The Windows Setup application is used to upgrade a computer to Windows 10, or to 1. **Downlevel phase**: The downlevel phase is run within the previous operating system. Installation components are gathered. 2. **Safe OS phase**: A recovery partition is configured and updates are installed. An OS rollback is prepared if needed. - - Example error codes during this phase: 0x2000C, 0x20017 + - Example error codes: 0x2000C, 0x20017 3. **First boot phase**: Initial settings are applied. - - Example error codes during this phase: 0x30018, 0x3000D + - Example error codes: 0x30018, 0x3000D 4. **Second boot phase**: Final settings are applied. This is also called the **OOBE boot phase**. - - Example error codes during this phase: 0x4000D, 0x40017 + - Example error: 0x4000D, 0x40017 5. **Rollback phase**: This phase occurs if upgrade is unsuccessful. - - Example error codes during this phase: 0x50011, 0x50012 + - Example error: 0x50011, 0x50012 **Figure 1**: Phases of a successful Windows 10 upgrade (rollback is not shown): @@ -51,6 +51,40 @@ For example, a result code of **0xC1900101** with an extend code of **0x4000D** Note: If only a single code is returned, this can be because a tool is being used that does not capture the extend code, for example the [Windows 10 Upgrade Assistant](https://support.microsoft.com/en-us/kb/3159635). +### Sample table + + + + + + + + + + + + +
+

Error Codes

+
+

Cause

+
+

Mitigation

+
+

Contact + your system administrator to upgrade Windows Server or Enterprise Editions

+
+

This + issue occurs if you run the updater tool. The tool works only with the + Windows 10 Home, Pro, and Education editions.

+
+

To + resolve this issue, use a different method to upgrade to Windows 10 version + 1607. For example, download the ISO, and then run Setup from it.

+
+ ### Extend codes The phase and operation of an extend code maps to the following tables. From ab78bb7e2ba9616698891bf12d0c0a200ef288b6 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 11:10:52 -0700 Subject: [PATCH 13/39] test table --- .../resolve-windows-10-upgrade-errors.md | 127 ++-- windows/deploy/windows-10-poc-mdt.md | 548 -------------- .../deploy/windows-10-poc-sc-config-mgr.md | 645 ----------------- windows/deploy/windows-10-poc.md | 683 ------------------ 4 files changed, 46 insertions(+), 1957 deletions(-) delete mode 100644 windows/deploy/windows-10-poc-mdt.md delete mode 100644 windows/deploy/windows-10-poc-sc-config-mgr.md delete mode 100644 windows/deploy/windows-10-poc.md diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 914f34c31d..fbb09995f8 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -51,99 +51,64 @@ For example, a result code of **0xC1900101** with an extend code of **0x4000D** Note: If only a single code is returned, this can be because a tool is being used that does not capture the extend code, for example the [Windows 10 Upgrade Assistant](https://support.microsoft.com/en-us/kb/3159635). -### Sample table - - - - - - - - - - - - -
-

Error Codes

-
-

Cause

-
-

Mitigation

-
-

Contact - your system administrator to upgrade Windows Server or Enterprise Editions

-
-

This - issue occurs if you run the updater tool. The tool works only with the - Windows 10 Home, Pro, and Education editions.

-
-

To - resolve this issue, use a different method to upgrade to Windows 10 version - 1607. For example, download the ISO, and then run Setup from it.

-
- ### Extend codes The phase and operation of an extend code maps to the following tables. - +
- - - diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md deleted file mode 100644 index 05589e281d..0000000000 --- a/windows/deploy/windows-10-poc-mdt.md +++ /dev/null @@ -1,548 +0,0 @@ ---- -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 deleted file mode 100644 index 9f6e7605fb..0000000000 --- a/windows/deploy/windows-10-poc-sc-config-mgr.md +++ /dev/null @@ -1,645 +0,0 @@ ---- -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 deleted file mode 100644 index b0ae64f27e..0000000000 --- a/windows/deploy/windows-10-poc.md +++ /dev/null @@ -1,683 +0,0 @@ ---- -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. - -
+ -
HexPhase -
0SP_EXECUTION_UNKNOWN -
1SP_EXECUTION_DOWNLEVEL -
2SP_EXECUTION_SAFE_OS -
3SP_EXECUTION_FIRST_BOOT -
4SP_EXECUTION_OOBE_BOOT -
5SP_EXECUTION_UNINSTALL +
HexPhase +
0SP_EXECUTION_UNKNOWN +
1SP_EXECUTION_DOWNLEVEL +
2SP_EXECUTION_SAFE_OS +
3SP_EXECUTION_FIRST_BOOT +
4SP_EXECUTION_OOBE_BOOT +
5SP_EXECUTION_UNINSTALL
+ -
HexOperation -
0SP_EXECUTION_OP_UNKNOWN -
1SP_EXECUTION_OP_COPY_PAYLOAD -
2SP_EXECUTION_OP_DOWNLOAD_UPDATES -
3SP_EXECUTION_OP_INSTALL_UPDATES -
4SP_EXECUTION_OP_INSTALL_RECOVERY_ENVIRONMENT -
5SP_EXECUTION_OP_INSTALL_RECOVERY_IMAGE -
6SP_EXECUTION_OP_REPLICATE_OC -
7SP_EXECUTION_OP_INSTALL_DRVIERS -
8SP_EXECUTION_OP_PREPARE_SAFE_OS -
9SP_EXECUTION_OP_PREPARE_ROLLBACK -
ASP_EXECUTION_OP_PREPARE_FIRST_BOOT -
BSP_EXECUTION_OP_PREPARE_OOBE_BOOT -
CSP_EXECUTION_OP_APPLY_IMAGE -
DSP_EXECUTION_OP_MIGRATE_DATA -
ESP_EXECUTION_OP_SET_PRODUCT_KEY -
FSP_EXECUTION_OP_ADD_UNATTEND +
HexOperation +
0SP_EXECUTION_OP_UNKNOWN +
1SP_EXECUTION_OP_COPY_PAYLOAD +
2SP_EXECUTION_OP_DOWNLOAD_UPDATES +
3SP_EXECUTION_OP_INSTALL_UPDATES +
4SP_EXECUTION_OP_INSTALL_RECOVERY_ENVIRONMENT +
5SP_EXECUTION_OP_INSTALL_RECOVERY_IMAGE +
6SP_EXECUTION_OP_REPLICATE_OC +
7SP_EXECUTION_OP_INSTALL_DRVIERS +
8SP_EXECUTION_OP_PREPARE_SAFE_OS +
9SP_EXECUTION_OP_PREPARE_ROLLBACK +
ASP_EXECUTION_OP_PREPARE_FIRST_BOOT +
BSP_EXECUTION_OP_PREPARE_OOBE_BOOT +
CSP_EXECUTION_OP_APPLY_IMAGE +
DSP_EXECUTION_OP_MIGRATE_DATA +
ESP_EXECUTION_OP_SET_PRODUCT_KEY +
FSP_EXECUTION_OP_ADD_UNATTEND
+ -
HexOperation -
10SP_EXECUTION_OP_ADD_DRIVER -
11SP_EXECUTION_OP_ENABLE_FEATURE -
12SP_EXECUTION_OP_DISABLE_FEATURE -
13SP_EXECUTION_OP_REGISTER_ASYNC_PROCESS -
14SP_EXECUTION_OP_REGISTER_SYNC_PROCESS -
15SP_EXECUTION_OP_CREATE_FILE -
16SP_EXECUTION_OP_CREATE_REGISTRY -
17SP_EXECUTION_OP_BOOT -
18SP_EXECUTION_OP_SYSPREP -
19SP_EXECUTION_OP_OOBE -
1ASP_EXECUTION_OP_BEGIN_FIRST_BOOT -
1BSP_EXECUTION_OP_END_FIRST_BOOT -
1CSP_EXECUTION_OP_BEGIN_OOBE_BOOT -
1DSP_EXECUTION_OP_END_OOBE_BOOT -
1ESP_EXECUTION_OP_PRE_OOBE -
1FSP_EXECUTION_OP_POST_OOBE -
20SP_EXECUTION_OP_ADD_PROVISIONING_PACKAGE +
HexOperation +
10SP_EXECUTION_OP_ADD_DRIVER +
11SP_EXECUTION_OP_ENABLE_FEATURE +
12SP_EXECUTION_OP_DISABLE_FEATURE +
13SP_EXECUTION_OP_REGISTER_ASYNC_PROCESS +
14SP_EXECUTION_OP_REGISTER_SYNC_PROCESS +
15SP_EXECUTION_OP_CREATE_FILE +
16SP_EXECUTION_OP_CREATE_REGISTRY +
17SP_EXECUTION_OP_BOOT +
18SP_EXECUTION_OP_SYSPREP +
19SP_EXECUTION_OP_OOBE +
1ASP_EXECUTION_OP_BEGIN_FIRST_BOOT +
1BSP_EXECUTION_OP_END_FIRST_BOOT +
1CSP_EXECUTION_OP_BEGIN_OOBE_BOOT +
1DSP_EXECUTION_OP_END_OOBE_BOOT +
1ESP_EXECUTION_OP_PRE_OOBE +
1FSP_EXECUTION_OP_POST_OOBE +
20SP_EXECUTION_OP_ADD_PROVISIONING_PACKAGE
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
**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 c039cd48578a05a5b8fca099c7f25a6a1b8703ba Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 11:33:34 -0700 Subject: [PATCH 14/39] test table --- windows/deploy/resolve-windows-10-upgrade-errors.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index fbb09995f8..123b1a3550 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -58,8 +58,8 @@ The phase and operation of an extend code maps to the following tables.
- -
HexPhase + +
HexPhase
0SP_EXECUTION_UNKNOWN
1SP_EXECUTION_DOWNLEVEL
2SP_EXECUTION_SAFE_OS @@ -69,8 +69,8 @@ The phase and operation of an extend code maps to the following tables.
- -
HexOperation + +
HexOperation
0SP_EXECUTION_OP_UNKNOWN
1SP_EXECUTION_OP_COPY_PAYLOAD
2SP_EXECUTION_OP_DOWNLOAD_UPDATES @@ -90,7 +90,7 @@ The phase and operation of an extend code maps to the following tables.
- +
HexOperation
10SP_EXECUTION_OP_ADD_DRIVER
11SP_EXECUTION_OP_ENABLE_FEATURE From 8fa0eb1e7b7c709c2f2e0de337c6bdd057e5ef02 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 11:52:25 -0700 Subject: [PATCH 15/39] test table --- .../resolve-windows-10-upgrade-errors.md | 14 +++++------ windows/deploy/test-table.md | 24 +++++++++++++++++++ 2 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 windows/deploy/test-table.md diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 123b1a3550..6286d6bfa9 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -59,13 +59,13 @@ The phase and operation of an extend code maps to the following tables.
-
HexPhase -
0SP_EXECUTION_UNKNOWN -
1SP_EXECUTION_DOWNLEVEL -
2SP_EXECUTION_SAFE_OS -
3SP_EXECUTION_FIRST_BOOT -
4SP_EXECUTION_OOBE_BOOT -
5SP_EXECUTION_UNINSTALL +
HexPhase +
0SP_EXECUTION_UNKNOWN +
1SP_EXECUTION_DOWNLEVEL +
2SP_EXECUTION_SAFE_OS +
3SP_EXECUTION_FIRST_BOOT +
4SP_EXECUTION_OOBE_BOOT +
5SP_EXECUTION_UNINSTALL
diff --git a/windows/deploy/test-table.md b/windows/deploy/test-table.md new file mode 100644 index 0000000000..36b2a66604 --- /dev/null +++ b/windows/deploy/test-table.md @@ -0,0 +1,24 @@ +--- +title: Test table +description: Test table +ms.assetid: DFEFE22C-4FEF-4FD9-BFC4-9B419C339502 +keywords: deploy, error, troubleshoot, windows, 10 +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: deploy +author: greg-lindsay +localizationpriority: high +--- + +# Test table + + +
HexPhase +
0SP_EXECUTION_UNKNOWN +
1SP_EXECUTION_DOWNLEVEL +
2SP_EXECUTION_SAFE_OS +
3SP_EXECUTION_FIRST_BOOT +
4SP_EXECUTION_OOBE_BOOT +
5SP_EXECUTION_UNINSTALL +
\ No newline at end of file From c4e619b9c91729ac3fea4d6864d21c47a8f1cfd9 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 12:11:49 -0700 Subject: [PATCH 16/39] test table --- 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 947d30cf6d24ec3b621b232d68361b026efe4f59 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 12:34:06 -0700 Subject: [PATCH 17/39] test table --- windows/deploy/test-table.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/windows/deploy/test-table.md b/windows/deploy/test-table.md index 36b2a66604..8b87ac4b42 100644 --- a/windows/deploy/test-table.md +++ b/windows/deploy/test-table.md @@ -14,7 +14,8 @@ localizationpriority: high # Test table - +
HexPhase +
Phase codes
HexPhase
0SP_EXECUTION_UNKNOWN
1SP_EXECUTION_DOWNLEVEL
2SP_EXECUTION_SAFE_OS From 6c2576c1f407bdcae407d27a6a15c881e1c06ddf Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 12:54:56 -0700 Subject: [PATCH 18/39] test table --- windows/deploy/test-table.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deploy/test-table.md b/windows/deploy/test-table.md index 8b87ac4b42..3030d5b2df 100644 --- a/windows/deploy/test-table.md +++ b/windows/deploy/test-table.md @@ -15,7 +15,7 @@ localizationpriority: high -
Phase codes
HexPhase +
HexPhase
0SP_EXECUTION_UNKNOWN
1SP_EXECUTION_DOWNLEVEL
2SP_EXECUTION_SAFE_OS From 60033a1232e57aa1944fb336d9e1828103c6b277 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 13:00:40 -0700 Subject: [PATCH 19/39] test table --- windows/deploy/test-table.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/windows/deploy/test-table.md b/windows/deploy/test-table.md index 3030d5b2df..a938f378fc 100644 --- a/windows/deploy/test-table.md +++ b/windows/deploy/test-table.md @@ -16,10 +16,10 @@ localizationpriority: high
Phase codes
HexPhase -
0SP_EXECUTION_UNKNOWN -
1SP_EXECUTION_DOWNLEVEL -
2SP_EXECUTION_SAFE_OS -
3SP_EXECUTION_FIRST_BOOT -
4SP_EXECUTION_OOBE_BOOT -
5SP_EXECUTION_UNINSTALL +
0SP_EXECUTION_UNKNOWN +
1SP_EXECUTION_DOWNLEVEL +
2SP_EXECUTION_SAFE_OS +
3SP_EXECUTION_FIRST_BOOT +
4SP_EXECUTION_OOBE_BOOT +
5SP_EXECUTION_UNINSTALL
\ No newline at end of file From adaaa7141b681e6447332421307ac104fb5b4da3 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 13:19:36 -0700 Subject: [PATCH 20/39] test table --- windows/deploy/test-table.md | 62 ++++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 7 deletions(-) diff --git a/windows/deploy/test-table.md b/windows/deploy/test-table.md index a938f378fc..9d2a3cddde 100644 --- a/windows/deploy/test-table.md +++ b/windows/deploy/test-table.md @@ -15,11 +15,59 @@ localizationpriority: high -
Phase codes
HexPhase -
0SP_EXECUTION_UNKNOWN -
1SP_EXECUTION_DOWNLEVEL -
2SP_EXECUTION_SAFE_OS -
3SP_EXECUTION_FIRST_BOOT -
4SP_EXECUTION_OOBE_BOOT -
5SP_EXECUTION_UNINSTALL +
HexPhase +
0SP_EXECUTION_UNKNOWN +
1SP_EXECUTION_DOWNLEVEL +
2SP_EXECUTION_SAFE_OS +
3SP_EXECUTION_FIRST_BOOT +
4SP_EXECUTION_OOBE_BOOT +
5SP_EXECUTION_UNINSTALL +
+ + + + + +
Extend codes
+ +
HexOperation +
0SP_EXECUTION_OP_UNKNOWN +
1SP_EXECUTION_OP_COPY_PAYLOAD +
2SP_EXECUTION_OP_DOWNLOAD_UPDATES +
3SP_EXECUTION_OP_INSTALL_UPDATES +
4SP_EXECUTION_OP_INSTALL_RECOVERY_ENVIRONMENT +
5SP_EXECUTION_OP_INSTALL_RECOVERY_IMAGE +
6SP_EXECUTION_OP_REPLICATE_OC +
7SP_EXECUTION_OP_INSTALL_DRVIERS +
8SP_EXECUTION_OP_PREPARE_SAFE_OS +
9SP_EXECUTION_OP_PREPARE_ROLLBACK +
ASP_EXECUTION_OP_PREPARE_FIRST_BOOT +
BSP_EXECUTION_OP_PREPARE_OOBE_BOOT +
CSP_EXECUTION_OP_APPLY_IMAGE +
DSP_EXECUTION_OP_MIGRATE_DATA +
ESP_EXECUTION_OP_SET_PRODUCT_KEY +
FSP_EXECUTION_OP_ADD_UNATTEND +
+
+ +
HexOperation +
10SP_EXECUTION_OP_ADD_DRIVER +
11SP_EXECUTION_OP_ENABLE_FEATURE +
12SP_EXECUTION_OP_DISABLE_FEATURE +
13SP_EXECUTION_OP_REGISTER_ASYNC_PROCESS +
14SP_EXECUTION_OP_REGISTER_SYNC_PROCESS +
15SP_EXECUTION_OP_CREATE_FILE +
16SP_EXECUTION_OP_CREATE_REGISTRY +
17SP_EXECUTION_OP_BOOT +
18SP_EXECUTION_OP_SYSPREP +
19SP_EXECUTION_OP_OOBE +
1ASP_EXECUTION_OP_BEGIN_FIRST_BOOT +
1BSP_EXECUTION_OP_END_FIRST_BOOT +
1CSP_EXECUTION_OP_BEGIN_OOBE_BOOT +
1DSP_EXECUTION_OP_END_OOBE_BOOT +
1ESP_EXECUTION_OP_PRE_OOBE +
1FSP_EXECUTION_OP_POST_OOBE +
20SP_EXECUTION_OP_ADD_PROVISIONING_PACKAGE +
+
\ No newline at end of file From fd90b3d7e90ddf28e68755cb88e0de5786502c83 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 14:44:24 -0700 Subject: [PATCH 21/39] new table --- .../resolve-windows-10-upgrade-errors.md | 96 +++++++++---------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 6286d6bfa9..9b559a41a9 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -55,60 +55,60 @@ Note: If only a single code is returned, this can be because a tool is being use The phase and operation of an extend code maps to the following tables. + + +
Phase codes
HexPhase +
0SP_EXECUTION_UNKNOWN +
1SP_EXECUTION_DOWNLEVEL +
2SP_EXECUTION_SAFE_OS +
3SP_EXECUTION_FIRST_BOOT +
4SP_EXECUTION_OOBE_BOOT +
5SP_EXECUTION_UNINSTALL +
+ - - + - From 747405cce3573d9959b062cc83c812ec78734d75 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 14:52:15 -0700 Subject: [PATCH 22/39] new table --- .../resolve-windows-10-upgrade-errors.md | 84 +++++++++---------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 9b559a41a9..f2593f88ea 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -57,58 +57,58 @@ The phase and operation of an extend code maps to the following tables.
+
Extend codes
-
HexPhase -
0SP_EXECUTION_UNKNOWN -
1SP_EXECUTION_DOWNLEVEL -
2SP_EXECUTION_SAFE_OS -
3SP_EXECUTION_FIRST_BOOT -
4SP_EXECUTION_OOBE_BOOT -
5SP_EXECUTION_UNINSTALL +
HexOperation +
0SP_EXECUTION_OP_UNKNOWN +
1SP_EXECUTION_OP_COPY_PAYLOAD +
2SP_EXECUTION_OP_DOWNLOAD_UPDATES +
3SP_EXECUTION_OP_INSTALL_UPDATES +
4SP_EXECUTION_OP_INSTALL_RECOVERY_ENVIRONMENT +
5SP_EXECUTION_OP_INSTALL_RECOVERY_IMAGE +
6SP_EXECUTION_OP_REPLICATE_OC +
7SP_EXECUTION_OP_INSTALL_DRVIERS +
8SP_EXECUTION_OP_PREPARE_SAFE_OS +
9SP_EXECUTION_OP_PREPARE_ROLLBACK +
ASP_EXECUTION_OP_PREPARE_FIRST_BOOT +
BSP_EXECUTION_OP_PREPARE_OOBE_BOOT +
CSP_EXECUTION_OP_APPLY_IMAGE +
DSP_EXECUTION_OP_MIGRATE_DATA +
ESP_EXECUTION_OP_SET_PRODUCT_KEY +
FSP_EXECUTION_OP_ADD_UNATTEND
-
HexOperation -
0SP_EXECUTION_OP_UNKNOWN -
1SP_EXECUTION_OP_COPY_PAYLOAD -
2SP_EXECUTION_OP_DOWNLOAD_UPDATES -
3SP_EXECUTION_OP_INSTALL_UPDATES -
4SP_EXECUTION_OP_INSTALL_RECOVERY_ENVIRONMENT -
5SP_EXECUTION_OP_INSTALL_RECOVERY_IMAGE -
6SP_EXECUTION_OP_REPLICATE_OC -
7SP_EXECUTION_OP_INSTALL_DRVIERS -
8SP_EXECUTION_OP_PREPARE_SAFE_OS -
9SP_EXECUTION_OP_PREPARE_ROLLBACK -
ASP_EXECUTION_OP_PREPARE_FIRST_BOOT -
BSP_EXECUTION_OP_PREPARE_OOBE_BOOT -
CSP_EXECUTION_OP_APPLY_IMAGE -
DSP_EXECUTION_OP_MIGRATE_DATA -
ESP_EXECUTION_OP_SET_PRODUCT_KEY -
FSP_EXECUTION_OP_ADD_UNATTEND -
-
- -
HexOperation -
10SP_EXECUTION_OP_ADD_DRIVER -
11SP_EXECUTION_OP_ENABLE_FEATURE -
12SP_EXECUTION_OP_DISABLE_FEATURE -
13SP_EXECUTION_OP_REGISTER_ASYNC_PROCESS -
14SP_EXECUTION_OP_REGISTER_SYNC_PROCESS -
15SP_EXECUTION_OP_CREATE_FILE -
16SP_EXECUTION_OP_CREATE_REGISTRY -
17SP_EXECUTION_OP_BOOT -
18SP_EXECUTION_OP_SYSPREP -
19SP_EXECUTION_OP_OOBE -
1ASP_EXECUTION_OP_BEGIN_FIRST_BOOT -
1BSP_EXECUTION_OP_END_FIRST_BOOT -
1CSP_EXECUTION_OP_BEGIN_OOBE_BOOT -
1DSP_EXECUTION_OP_END_OOBE_BOOT -
1ESP_EXECUTION_OP_PRE_OOBE -
1FSP_EXECUTION_OP_POST_OOBE -
20SP_EXECUTION_OP_ADD_PROVISIONING_PACKAGE +
HexOperation +
10SP_EXECUTION_OP_ADD_DRIVER +
11SP_EXECUTION_OP_ENABLE_FEATURE +
12SP_EXECUTION_OP_DISABLE_FEATURE +
13SP_EXECUTION_OP_REGISTER_ASYNC_PROCESS +
14SP_EXECUTION_OP_REGISTER_SYNC_PROCESS +
15SP_EXECUTION_OP_CREATE_FILE +
16SP_EXECUTION_OP_CREATE_REGISTRY +
17SP_EXECUTION_OP_BOOT +
18SP_EXECUTION_OP_SYSPREP +
19SP_EXECUTION_OP_OOBE +
1ASP_EXECUTION_OP_BEGIN_FIRST_BOOT +
1BSP_EXECUTION_OP_END_FIRST_BOOT +
1CSP_EXECUTION_OP_BEGIN_OOBE_BOOT +
1DSP_EXECUTION_OP_END_OOBE_BOOT +
1ESP_EXECUTION_OP_PRE_OOBE +
1FSP_EXECUTION_OP_POST_OOBE +
20SP_EXECUTION_OP_ADD_PROVISIONING_PACKAGE
-
Phase codes
HexPhase -
0SP_EXECUTION_UNKNOWN -
1SP_EXECUTION_DOWNLEVEL -
2SP_EXECUTION_SAFE_OS -
3SP_EXECUTION_FIRST_BOOT -
4SP_EXECUTION_OOBE_BOOT -
5SP_EXECUTION_UNINSTALL +
HexPhase +
0SP_EXECUTION_UNKNOWN +
1SP_EXECUTION_DOWNLEVEL +
2SP_EXECUTION_SAFE_OS +
3SP_EXECUTION_FIRST_BOOT +
4SP_EXECUTION_OOBE_BOOT +
5SP_EXECUTION_UNINSTALL
From 9e587ac76664a9f16b895caef0d2363c89d4f28e Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 15:55:52 -0700 Subject: [PATCH 23/39] new table --- windows/deploy/resolve-windows-10-upgrade-errors.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index f2593f88ea..9036db78b8 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -51,12 +51,12 @@ For example, a result code of **0xC1900101** with an extend code of **0x4000D** Note: If only a single code is returned, this can be because a tool is being used that does not capture the extend code, for example the [Windows 10 Upgrade Assistant](https://support.microsoft.com/en-us/kb/3159635). -### Extend codes +### Result and extend codes -The phase and operation of an extend code maps to the following tables. +The following tables display the phase corresponding to a result code, and operation assoicated with an extend code:
Extend codes
-
HexOperation -
0SP_EXECUTION_OP_UNKNOWN -
1SP_EXECUTION_OP_COPY_PAYLOAD -
2SP_EXECUTION_OP_DOWNLOAD_UPDATES -
3SP_EXECUTION_OP_INSTALL_UPDATES -
4SP_EXECUTION_OP_INSTALL_RECOVERY_ENVIRONMENT -
5SP_EXECUTION_OP_INSTALL_RECOVERY_IMAGE -
6SP_EXECUTION_OP_REPLICATE_OC -
7SP_EXECUTION_OP_INSTALL_DRVIERS -
8SP_EXECUTION_OP_PREPARE_SAFE_OS -
9SP_EXECUTION_OP_PREPARE_ROLLBACK -
ASP_EXECUTION_OP_PREPARE_FIRST_BOOT -
BSP_EXECUTION_OP_PREPARE_OOBE_BOOT -
CSP_EXECUTION_OP_APPLY_IMAGE -
DSP_EXECUTION_OP_MIGRATE_DATA -
ESP_EXECUTION_OP_SET_PRODUCT_KEY -
FSP_EXECUTION_OP_ADD_UNATTEND +
HexOperation +
0SP_EXECUTION_OP_UNKNOWN +
1SP_EXECUTION_OP_COPY_PAYLOAD +
2SP_EXECUTION_OP_DOWNLOAD_UPDATES +
3SP_EXECUTION_OP_INSTALL_UPDATES +
4SP_EXECUTION_OP_INSTALL_RECOVERY_ENVIRONMENT +
5SP_EXECUTION_OP_INSTALL_RECOVERY_IMAGE +
6SP_EXECUTION_OP_REPLICATE_OC +
7SP_EXECUTION_OP_INSTALL_DRVIERS +
8SP_EXECUTION_OP_PREPARE_SAFE_OS +
9SP_EXECUTION_OP_PREPARE_ROLLBACK +
ASP_EXECUTION_OP_PREPARE_FIRST_BOOT +
BSP_EXECUTION_OP_PREPARE_OOBE_BOOT +
CSP_EXECUTION_OP_APPLY_IMAGE +
DSP_EXECUTION_OP_MIGRATE_DATA +
ESP_EXECUTION_OP_SET_PRODUCT_KEY +
FSP_EXECUTION_OP_ADD_UNATTEND
-
HexOperation -
10SP_EXECUTION_OP_ADD_DRIVER -
11SP_EXECUTION_OP_ENABLE_FEATURE -
12SP_EXECUTION_OP_DISABLE_FEATURE -
13SP_EXECUTION_OP_REGISTER_ASYNC_PROCESS -
14SP_EXECUTION_OP_REGISTER_SYNC_PROCESS -
15SP_EXECUTION_OP_CREATE_FILE -
16SP_EXECUTION_OP_CREATE_REGISTRY -
17SP_EXECUTION_OP_BOOT -
18SP_EXECUTION_OP_SYSPREP -
19SP_EXECUTION_OP_OOBE -
1ASP_EXECUTION_OP_BEGIN_FIRST_BOOT -
1BSP_EXECUTION_OP_END_FIRST_BOOT -
1CSP_EXECUTION_OP_BEGIN_OOBE_BOOT -
1DSP_EXECUTION_OP_END_OOBE_BOOT -
1ESP_EXECUTION_OP_PRE_OOBE -
1FSP_EXECUTION_OP_POST_OOBE -
20SP_EXECUTION_OP_ADD_PROVISIONING_PACKAGE +
HexOperation +
10SP_EXECUTION_OP_ADD_DRIVER +
11SP_EXECUTION_OP_ENABLE_FEATURE +
12SP_EXECUTION_OP_DISABLE_FEATURE +
13SP_EXECUTION_OP_REGISTER_ASYNC_PROCESS +
14SP_EXECUTION_OP_REGISTER_SYNC_PROCESS +
15SP_EXECUTION_OP_CREATE_FILE +
16SP_EXECUTION_OP_CREATE_REGISTRY +
17SP_EXECUTION_OP_BOOT +
18SP_EXECUTION_OP_SYSPREP +
19SP_EXECUTION_OP_OOBE +
1ASP_EXECUTION_OP_BEGIN_FIRST_BOOT +
1BSP_EXECUTION_OP_END_FIRST_BOOT +
1CSP_EXECUTION_OP_BEGIN_OOBE_BOOT +
1DSP_EXECUTION_OP_END_OOBE_BOOT +
1ESP_EXECUTION_OP_PRE_OOBE +
1FSP_EXECUTION_OP_POST_OOBE +
20SP_EXECUTION_OP_ADD_PROVISIONING_PACKAGE
- +
Phase codes
Result codes
HexPhase
0SP_EXECUTION_UNKNOWN
1SP_EXECUTION_DOWNLEVEL From e58a22aeb8c6fa3b63dc6c768c816141cbd39383 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 16:09:27 -0700 Subject: [PATCH 24/39] new table --- windows/deploy/resolve-windows-10-upgrade-errors.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 9036db78b8..a5349fbf43 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -51,12 +51,12 @@ For example, a result code of **0xC1900101** with an extend code of **0x4000D** Note: If only a single code is returned, this can be because a tool is being used that does not capture the extend code, for example the [Windows 10 Upgrade Assistant](https://support.microsoft.com/en-us/kb/3159635). -### Result and extend codes +### Extend codes -The following tables display the phase corresponding to a result code, and operation assoicated with an extend code: +The following tables display the phase and operation assoicated with an extend code: - +
Result codes
Extend code: phase
HexPhase
0SP_EXECUTION_UNKNOWN
1SP_EXECUTION_DOWNLEVEL @@ -67,7 +67,7 @@ The following tables display the phase corresponding to a result code, and opera
- +
Extend codes
Extend code: operation
HexOperation @@ -114,7 +114,7 @@ The following tables display the phase corresponding to a result code, and opera
-For example: You can use these tables to interpret extend code of 0x**4**00**0D** as a problem during phase 4 with data migration (**4** = SP_EXECUTION_OOBE_BOOT, **0D** = SP_EXECUTION_OP_MIGRATE_DATE). +For example: A code of 0x**4**00**0D** is a problem during **phase 4** with the **data migration** operation (**4** = SP_EXECUTION_OOBE_BOOT, **0D** = SP_EXECUTION_OP_MIGRATE_DATE). ## Log files From 534cb705ee0685900523922a727c9d166b085e5b Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 26 Sep 2016 16:13:57 -0700 Subject: [PATCH 25/39] removed test table --- windows/deploy/test-table.md | 73 ------------------------------------ 1 file changed, 73 deletions(-) delete mode 100644 windows/deploy/test-table.md diff --git a/windows/deploy/test-table.md b/windows/deploy/test-table.md deleted file mode 100644 index 9d2a3cddde..0000000000 --- a/windows/deploy/test-table.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Test table -description: Test table -ms.assetid: DFEFE22C-4FEF-4FD9-BFC4-9B419C339502 -keywords: deploy, error, troubleshoot, windows, 10 -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: deploy -author: greg-lindsay -localizationpriority: high ---- - -# Test table - - - -
Phase codes
HexPhase -
0SP_EXECUTION_UNKNOWN -
1SP_EXECUTION_DOWNLEVEL -
2SP_EXECUTION_SAFE_OS -
3SP_EXECUTION_FIRST_BOOT -
4SP_EXECUTION_OOBE_BOOT -
5SP_EXECUTION_UNINSTALL -
- - - - - - -
Extend codes
- -
HexOperation -
0SP_EXECUTION_OP_UNKNOWN -
1SP_EXECUTION_OP_COPY_PAYLOAD -
2SP_EXECUTION_OP_DOWNLOAD_UPDATES -
3SP_EXECUTION_OP_INSTALL_UPDATES -
4SP_EXECUTION_OP_INSTALL_RECOVERY_ENVIRONMENT -
5SP_EXECUTION_OP_INSTALL_RECOVERY_IMAGE -
6SP_EXECUTION_OP_REPLICATE_OC -
7SP_EXECUTION_OP_INSTALL_DRVIERS -
8SP_EXECUTION_OP_PREPARE_SAFE_OS -
9SP_EXECUTION_OP_PREPARE_ROLLBACK -
ASP_EXECUTION_OP_PREPARE_FIRST_BOOT -
BSP_EXECUTION_OP_PREPARE_OOBE_BOOT -
CSP_EXECUTION_OP_APPLY_IMAGE -
DSP_EXECUTION_OP_MIGRATE_DATA -
ESP_EXECUTION_OP_SET_PRODUCT_KEY -
FSP_EXECUTION_OP_ADD_UNATTEND -
-
- -
HexOperation -
10SP_EXECUTION_OP_ADD_DRIVER -
11SP_EXECUTION_OP_ENABLE_FEATURE -
12SP_EXECUTION_OP_DISABLE_FEATURE -
13SP_EXECUTION_OP_REGISTER_ASYNC_PROCESS -
14SP_EXECUTION_OP_REGISTER_SYNC_PROCESS -
15SP_EXECUTION_OP_CREATE_FILE -
16SP_EXECUTION_OP_CREATE_REGISTRY -
17SP_EXECUTION_OP_BOOT -
18SP_EXECUTION_OP_SYSPREP -
19SP_EXECUTION_OP_OOBE -
1ASP_EXECUTION_OP_BEGIN_FIRST_BOOT -
1BSP_EXECUTION_OP_END_FIRST_BOOT -
1CSP_EXECUTION_OP_BEGIN_OOBE_BOOT -
1DSP_EXECUTION_OP_END_OOBE_BOOT -
1ESP_EXECUTION_OP_PRE_OOBE -
1FSP_EXECUTION_OP_POST_OOBE -
20SP_EXECUTION_OP_ADD_PROVISIONING_PACKAGE -
-
\ No newline at end of file From 812553ec71230d78a542ca4a05ff238595e14969 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 28 Sep 2016 11:36:00 -0700 Subject: [PATCH 26/39] updates --- .../resolve-windows-10-upgrade-errors.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index a5349fbf43..5aef1c48e6 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -29,10 +29,10 @@ The Windows Setup application is used to upgrade a computer to Windows 10, or to - Example error codes: 0x30018, 0x3000D 4. **Second boot phase**: Final settings are applied. This is also called the **OOBE boot phase**. - Example error: 0x4000D, 0x40017 -5. **Rollback phase**: This phase occurs if upgrade is unsuccessful. +5. **Uninstall phase**: This phase occurs if upgrade is unsuccessful. - Example error: 0x50011, 0x50012 -**Figure 1**: Phases of a successful Windows 10 upgrade (rollback is not shown): +**Figure 1**: Phases of a successful Windows 10 upgrade (uninstall is not shown): ![Upgrade process](images/upgrade-process.png) @@ -118,29 +118,25 @@ For example: A code of 0x**4**00**0D** is a problem during **phase ## Log files -During each phase of the upgrade process, setup log files are created in various locations. These log files can be very useful in troubleshooting upgrade problems. +Various log files are created during each phase of the upgrade process. These log files are essential for detailed troubleshooting of upgrade problems. The most useful log is **setupact.log**, which is located in a different folder depending on the phase in which a problem occurred with the upgrade process. Recall that you can determine the phase from + +See the following table. - + + - + - + - + - + - + - +
Log fileDescriptionLocation
Log fileDescriptionLocationWhen to use
setupact.logContains information about setup actions during the installation.
-

This is the most important log for diagnosing setup issues.

-**Down-Level phase**: $Windows.~BT\Sources\Panther
-**First & second boot phase**: $Windows.~BT\Sources\Panther\UnattendGC
-**Rollback phase**: $Windows.~BT\Sources\Rollback
-**Pre-initialization**: Windows
-**Post-upgrade**: Windows\Panther -
setupact.logContains information about setup actions during the installation.Down-Level phase: $Windows.~BT\Sources\PantherAll down-level failures and starting point for rollback investigations.
setuperr.logContains information about setup errors during the installation.Same location as setupact.log
setuperr.logContains information about setup errors during the installation.Same location as setupact.log
Setupmem.dmpIf OS bugchecks during upgrade, setup will attempt to extract a mini-dump.$Windows.~BT\Sources\Rollback
Setupmem.dmpIf OS bugchecks during upgrade, setup will attempt to extract a mini-dump.$Windows.~BT\Sources\Rollback
miglog.xmlContains information about the user directory structure. This information includes security identifiers (SIDs).Windows\Panther
miglog.xmlContains information about the user directory structure. This information includes security identifiers (SIDs).Windows\Panther
Appraiser XML logsContains application compatibility information.$Windows.~BT\Sources\Panther
Appraiser XML logsContains application compatibility information.$Windows.~BT\Sources\Panther
BlueBox.logContains information communication between setup.exe and Windows Update.Windows\Logs\Mosetup
BlueBox.logContains information communication between setup.exe and Windows Update.Windows\Logs\Mosetup
@@ -500,6 +496,10 @@ Use the Media Creation tool and create an ISO and then start the upgrade of the
+## Appendix A: Example setupact.log + + + ## Related topics • Windows 10 FAQ for IT professionals From 6abb716e4a728028d1232180e7ea0e4b2ffdc62b Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Wed, 28 Sep 2016 15:42:20 -0700 Subject: [PATCH 27/39] updates --- .../resolve-windows-10-upgrade-errors.md | 58 +++++++++++-------- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 5aef1c48e6..634137d387 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -45,15 +45,16 @@ WIM = Windows image (Microsoft) Setup will return two codes: 1. A result code, corresponding to a specific Win32 error. -2. An extend code, corresponding to the phase and the operation when a failure occurred. +2. An extend code, representing the phase when a failure occurred. + - The extend code contains information about both the *phase* in which an error occurred, and the *operation* that was being performed when the error occurred. -For example, a result code of **0xC1900101** with an extend code of **0x4000D** will be returned as: **0xC1900101 - 0x4000D** +>For example, a result code of **0xC1900101** with an extend code of **0x4000D** will be returned as: **0xC1900101 - 0x4000D**. In this case, the extend code 0x4000D can be evaluated as representing a problem during phase 4 (0x4) with data migration (000D). A list of extend codes and the associated phase and operation is provided below. -Note: If only a single code is returned, this can be because a tool is being used that does not capture the extend code, for example the [Windows 10 Upgrade Assistant](https://support.microsoft.com/en-us/kb/3159635). +Note: If only a result code is returned, this can be because a tool is being used that was not able to capture the extend code. For example, if you are using the [Windows 10 Upgrade Assistant](https://support.microsoft.com/en-us/kb/3159635) then only a result code might be returned. ### Extend codes -The following tables display the phase and operation assoicated with an extend code: +The following tables provide the corresponding phase and operation for values of an extend code: @@ -114,30 +115,41 @@ The following tables display the phase and operation assoicated with an extend c
Extend code: phase
-For example: A code of 0x**4**00**0D** is a problem during **phase 4** with the **data migration** operation (**4** = SP_EXECUTION_OOBE_BOOT, **0D** = SP_EXECUTION_OP_MIGRATE_DATE). - ## Log files -Various log files are created during each phase of the upgrade process. These log files are essential for detailed troubleshooting of upgrade problems. The most useful log is **setupact.log**, which is located in a different folder depending on the phase in which a problem occurred with the upgrade process. Recall that you can determine the phase from - -See the following table. +Various log files are created during each phase of the upgrade process. These log files are essential for troubleshooting upgrade problems. The most useful log is **setupact.log**, which is located in a different folder depending on the phase in which a problem occurred with the upgrade process. Recall that you can determine the phase from the extend code. The following table describes some log files and how to use them for troubleshooting purposes: - - - - - - - - +
Log fileDescriptionLocationWhen to use -
setupact.logContains information about setup actions during the installation.Down-Level phase: $Windows.~BT\Sources\PantherAll down-level failures and starting point for rollback investigations. -
setuperr.logContains information about setup errors during the installation.Same location as setupact.log -
Setupmem.dmpIf OS bugchecks during upgrade, setup will attempt to extract a mini-dump.$Windows.~BT\Sources\Rollback -
miglog.xmlContains information about the user directory structure. This information includes security identifiers (SIDs).Windows\Panther -
Appraiser XML logsContains application compatibility information.$Windows.~BT\Sources\Panther -
BlueBox.logContains information communication between setup.exe and Windows Update.Windows\Logs\Mosetup
Log filePhase: LocationDescriptionWhen to use + +
setupact.logDown-Level:
$Windows.~BT\Sources\Panther
Contains information about setup actions during the downlevel phase. All down-level failures and starting point for rollback investigations.
This is the most important log for diagnosing setup issues. +
OOBE:
$Windows.~BT\Sources\Panther
Contains information about actions during the OOBE phase.Investigating rollbacks that failed during OOBE phase and operations – 0x4001C, 0x4001D, 0x4001E, 0x4001F. +
Rollback:
$Windows.~BT\Sources\Panther
Contains information about actions during rollback.Investigating generic rollbacks - 0xC1900101. +
Pre-initialization (prior to downlevel):
$Windows.~BT\Sources\Panther
Contains information about initializing setup.If setup fails to launch. +
Post-upgrade (after OOBE):
$Windows.~BT\Sources\Panther
Contains information about setup actions during the installation.Investigate post-upgrade related issues. + +
setuperr.logSame as setupact.logContains information about setup errors during the installation.Review all errors encountered during the installation phase. + +
miglog.xmlPost-upgrade (after OOBE):
Windows\Panther
Contains information about what was migrated during the installation.Identify post upgrade data migration issues. + +
BlueBox.logDown-Level:
Windows\Logs\Mosetup
Contains information communication between setup.exe and Windows Update.Use during WSUS and WU down-level failures or for 0xC1900107. + +
Supplemental rollback logs:
+Setupmem.dmp
+setupapi.dev.log
+Event logs (*.evtx) + + +
$Windows.~BT\Sources\RollbackAdditional logs collected during rollback. +Setupmem.dmp: If OS bugchecks during upgrade, setup will attempt to extract a mini-dump.
+Setupapi: Device install issues – 0x30018
+Event logs: Generic rollbacks (0xC1900101) or unexpected reboots. + + + + +
## Common error codes and resolution procedures From e8ee8bf076fa39c6f734e4254c644fb1ad7adc9b Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 29 Sep 2016 11:16:44 -0700 Subject: [PATCH 28/39] updates --- .../resolve-windows-10-upgrade-errors.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 634137d387..9be9c98f19 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -48,7 +48,7 @@ Setup will return two codes: 2. An extend code, representing the phase when a failure occurred. - The extend code contains information about both the *phase* in which an error occurred, and the *operation* that was being performed when the error occurred. ->For example, a result code of **0xC1900101** with an extend code of **0x4000D** will be returned as: **0xC1900101 - 0x4000D**. In this case, the extend code 0x4000D can be evaluated as representing a problem during phase 4 (0x4) with data migration (000D). A list of extend codes and the associated phase and operation is provided below. +>For example, a result code of **0xC1900101** with an extend code of **0x4000D** will be returned as: **0xC1900101 - 0x4000D**. In this case, the extend code **0x4000D** can be evaluated as representing a problem during phase 4 (**0x4**) with data migration (**000D**). A list of extend codes with phase and operation associations is provided below. Note: If only a result code is returned, this can be because a tool is being used that was not able to capture the extend code. For example, if you are using the [Windows 10 Upgrade Assistant](https://support.microsoft.com/en-us/kb/3159635) then only a result code might be returned. @@ -154,6 +154,8 @@ Event logs: Generic rollbacks (0xC1900101) or unexpected reboots. ## Common error codes and resolution procedures +A common result code is 0xC1900101. This result code can be thrown at any stage of the upgrade process, except for the SafeOS phase. Therefore, it can be associated with several different extend codes. A result code of 0xC1900101 usually indicates that an incompatible driver is present, which can cause blue screens, system hangs, and unexpected reboots. Analysis of all available supplemental log files is typically helpful in indentifying the incompatible driver. You can also attempt to run setup in the absence of drivers by performing a [clean boot](https://support.microsoft.com/en-us/kb/929135) before initiating the upgrade process. + - - - - - - - @@ -220,6 +215,14 @@ For more information, see [How to perform a clean boot in Windows](https://suppo

Ensure you select the option to "Download and install updates (recommended)."

+ + + + + + + +
Error code @@ -179,13 +181,6 @@ Event logs: Generic rollbacks (0xC1900101) or unexpected reboots.
0x8007002C - 0x4000DThe user cancelled an interactive dialog.Start the upgrade process again again.
0xC1900101 - 0x4000D A driver configuration issue occurred during the Windows setup process and a rollback occurred.
0x8007002C - 0x4000DThe user cancelled an interactive dialog.Start the upgrade process again again.
## Common errors I've edited but don't know how to classify From 6356ec12bec314ca349ee091a1e73ceecf097f23 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 29 Sep 2016 11:24:21 -0700 Subject: [PATCH 29/39] updates --- .../resolve-windows-10-upgrade-errors.md | 63 ++++++++++--------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 9be9c98f19..cac06aad4a 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -121,27 +121,28 @@ Various log files are created during each phase of the upgrade process. These lo -
Log filePhase: LocationDescriptionWhen to use +Log filePhase: LocationDescriptionWhen to use -
setupact.logDown-Level:
$Windows.~BT\Sources\Panther
Contains information about setup actions during the downlevel phase. All down-level failures and starting point for rollback investigations.
This is the most important log for diagnosing setup issues. -
OOBE:
$Windows.~BT\Sources\Panther
Contains information about actions during the OOBE phase.Investigating rollbacks that failed during OOBE phase and operations – 0x4001C, 0x4001D, 0x4001E, 0x4001F. -
Rollback:
$Windows.~BT\Sources\Panther
Contains information about actions during rollback.Investigating generic rollbacks - 0xC1900101. -
Pre-initialization (prior to downlevel):
$Windows.~BT\Sources\Panther
Contains information about initializing setup.If setup fails to launch. -
Post-upgrade (after OOBE):
$Windows.~BT\Sources\Panther
Contains information about setup actions during the installation.Investigate post-upgrade related issues. +
setupact.logDown-Level:
$Windows.~BT\Sources\Panther
Contains information about setup actions during the downlevel phase. All down-level failures and starting point for rollback investigations.
This is the most important log for diagnosing setup issues. +
OOBE:
$Windows.~BT\Sources\Panther
Contains information about actions during the OOBE phase.Investigating rollbacks that failed during OOBE phase and operations – 0x4001C, 0x4001D, 0x4001E, 0x4001F. +
Rollback:
$Windows.~BT\Sources\Panther
Contains information about actions during rollback.Investigating generic rollbacks - 0xC1900101. +
Pre-initialization (prior to downlevel):
$Windows.~BT\Sources\Panther
Contains information about initializing setup.If setup fails to launch. +
Post-upgrade (after OOBE):
$Windows.~BT\Sources\Panther
Contains information about setup actions during the installation.Investigate post-upgrade related issues. -
setuperr.logSame as setupact.logContains information about setup errors during the installation.Review all errors encountered during the installation phase. +
setuperr.logSame as setupact.logContains information about setup errors during the installation.Review all errors encountered during the installation phase. -
miglog.xmlPost-upgrade (after OOBE):
Windows\Panther
Contains information about what was migrated during the installation.Identify post upgrade data migration issues. +
miglog.xmlPost-upgrade (after OOBE):
Windows\Panther
Contains information about what was migrated during the installation.Identify post upgrade data migration issues. -
BlueBox.logDown-Level:
Windows\Logs\Mosetup
Contains information communication between setup.exe and Windows Update.Use during WSUS and WU down-level failures or for 0xC1900107. +
BlueBox.logDown-Level:
Windows\Logs\Mosetup
Contains information communication between setup.exe and Windows Update.Use during WSUS and WU down-level failures or for 0xC1900107. -
Supplemental rollback logs:
+
Supplemental rollback logs:
Setupmem.dmp
setupapi.dev.log
Event logs (*.evtx) -
$Windows.~BT\Sources\RollbackAdditional logs collected during rollback. +$Windows.~BT\Sources\RollbackAdditional logs collected during rollback. + Setupmem.dmp: If OS bugchecks during upgrade, setup will attempt to extract a mini-dump.
Setupapi: Device install issues – 0x30018
Event logs: Generic rollbacks (0xC1900101) or unexpected reboots. @@ -158,14 +159,14 @@ A common result code is 0xC1900101. This result code can be thrown at any stage - - - - + + - - - + + - - - + + - - - + + - - - + + + From b9f4316063f06f8713c68e357f334f88335bd76b Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 29 Sep 2016 11:43:44 -0700 Subject: [PATCH 30/39] updates --- .../resolve-windows-10-upgrade-errors.md | 74 ++++++++++--------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index cac06aad4a..5744d2f08c 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -117,32 +117,34 @@ The following tables provide the corresponding phase and operation for values of ## Log files -Various log files are created during each phase of the upgrade process. These log files are essential for troubleshooting upgrade problems. The most useful log is **setupact.log**, which is located in a different folder depending on the phase in which a problem occurred with the upgrade process. Recall that you can determine the phase from the extend code. The following table describes some log files and how to use them for troubleshooting purposes: +Various log files are created during each phase of the upgrade process. These log files are essential for troubleshooting upgrade problems. The most useful log is **setupact.log**, which is located in a different folder depending on the phase in which a problem occurred with the upgrade process. Recall that you can determine the phase from the extend code. + +

The following table describes some log files and how to use them for troubleshooting purposes:

Error code -Cause -Mitigation +Error code +Cause +Mitigation
0xC1900101 - 0x20017A driver has caused an illegal operation and Windows was not able to migrate the driver, resulting in a rollback of the operating system.To resolve this issue:
+
0xC1900101 - 0x20017A driver has caused an illegal operation and Windows was not able to migrate the driver, resulting in a rollback of the operating system.To resolve this issue:
1. Make sure all that drivers are updated.
2. Open the Setuperr.log and Setupact.log files under the %windir%\Panther directory, and then locate the problem drivers. Refer: [Understanding Failures and Log Files](https://technet.microsoft.com/en-us/library/ee851579.aspx)
@@ -174,18 +175,18 @@ A common result code is 0xC1900101. This result code can be thrown at any stage
0xC1900101 - 0x30018A device driver has stopped responding to setup.exe during the upgrade process.Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display. Contact your hardware vendor to obtain updated device drivers. +0xC1900101 - 0x30018A device driver has stopped responding to setup.exe during the upgrade process.Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display. Contact your hardware vendor to obtain updated device drivers.

Ensure that "Download and install updates (recommended)" is accepted at the start of the upgrade process.

0xC1900101 - 0x4000DA driver configuration issue occurred during the Windows setup process and a rollback occurred.

Review the rollback log and determine the stop code. The rollback log is located in the **C:\$Windows.~BT\Sources\Panther** folder. Look for text similar to the following: -

+

0xC1900101 - 0x4000DA driver configuration issue occurred during the Windows setup process and a rollback occurred.

Review the rollback log and determine the stop code. The rollback log is located in the **C:\$Windows.~BT\Sources\Panther** folder. Look for text similar to the following: +


Info SP Crash 0x0000007E detected
Info SP Module name :
Info SP Bugcheck parameter 1 : 0xFFFFFFFFC0000005 @@ -196,7 +197,7 @@ A common result code is 0xC1900101. This result code can be thrown at any stage
Info SP Rollback: Showing splash window with restoring text: Restoring your previous version of Windows. -

Typically there is a a dump file for the crash to analyze. If you are not equipped to debug the dump, then attempt the following basic troubleshooting procedures:
+

Typically there is a a dump file for the crash to analyze. If you are not equipped to debug the dump, then attempt the following basic troubleshooting procedures:
1. Make sure you have enough disk space.
2. If a driver is identified in the bug check message, disable the driver, or check with the manufacturer for driver updates.
@@ -206,9 +207,9 @@ A common result code is 0xC1900101. This result code can be thrown at any stage

0xC1900101 - 0x40017Windows 10 upgrade fails after the second reboot, which is most like to be caused by a faulty driver, for example antivirus filter drivers or encryption drivers.Clean boot into Windows, and then attempt the upgrade to Windows 10.
+
0xC1900101 - 0x40017Windows 10 upgrade fails after the second reboot, which is most like to be caused by a faulty driver, for example antivirus filter drivers or encryption drivers.Clean boot into Windows, and then attempt the upgrade to Windows 10.
For more information, see [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135). @@ -217,9 +218,9 @@ For more information, see [How to perform a clean boot in Windows](https://suppo
0x8007002C - 0x4000DThe user cancelled an interactive dialog.Start the upgrade process again again.0x8007002C - 0x4000DThe user cancelled an interactive dialog.Start the upgrade process again again.
- - - -
Log filePhase: LocationDescriptionWhen to use +Log filePhase: LocationDescriptionWhen to use -
setupact.logDown-Level:
$Windows.~BT\Sources\Panther
Contains information about setup actions during the downlevel phase. All down-level failures and starting point for rollback investigations.
This is the most important log for diagnosing setup issues. -
OOBE:
$Windows.~BT\Sources\Panther
Contains information about actions during the OOBE phase.Investigating rollbacks that failed during OOBE phase and operations – 0x4001C, 0x4001D, 0x4001E, 0x4001F. -
Rollback:
$Windows.~BT\Sources\Panther
Contains information about actions during rollback.Investigating generic rollbacks - 0xC1900101. -
Pre-initialization (prior to downlevel):
$Windows.~BT\Sources\Panther
Contains information about initializing setup.If setup fails to launch. -
Post-upgrade (after OOBE):
$Windows.~BT\Sources\Panther
Contains information about setup actions during the installation.Investigate post-upgrade related issues. +
setupact.logDown-Level:
$Windows.~BT\Sources\Panther
Contains information about setup actions during the downlevel phase. All down-level failures and starting point for rollback investigations.
This is the most important log for diagnosing setup issues. +
OOBE:
$Windows.~BT\Sources\Panther
Contains information about actions during the OOBE phase.Investigating rollbacks that failed during OOBE phase and operations – 0x4001C, 0x4001D, 0x4001E, 0x4001F. +
Rollback:
$Windows.~BT\Sources\Panther
Contains information about actions during rollback.Investigating generic rollbacks - 0xC1900101. +
Pre-initialization (prior to downlevel):
$Windows.~BT\Sources\Panther
Contains information about initializing setup.If setup fails to launch. +
Post-upgrade (after OOBE):
$Windows.~BT\Sources\Panther
Contains information about setup actions during the installation.Investigate post-upgrade related issues. -
setuperr.logSame as setupact.logContains information about setup errors during the installation.Review all errors encountered during the installation phase. +
setuperr.logSame as setupact.logContains information about setup errors during the installation.Review all errors encountered during the installation phase. -
miglog.xmlPost-upgrade (after OOBE):
Windows\Panther
Contains information about what was migrated during the installation.Identify post upgrade data migration issues. +
miglog.xmlPost-upgrade (after OOBE):
Windows\Panther
Contains information about what was migrated during the installation.Identify post upgrade data migration issues. -
BlueBox.logDown-Level:
Windows\Logs\Mosetup
Contains information communication between setup.exe and Windows Update.Use during WSUS and WU down-level failures or for 0xC1900107. +
BlueBox.logDown-Level:
Windows\Logs\Mosetup
Contains information communication between setup.exe and Windows Update.Use during WSUS and WU down-level failures or for 0xC1900107. -
Supplemental rollback logs:
+
Supplemental rollback logs:
Setupmem.dmp
setupapi.dev.log
Event logs (*.evtx) -
$Windows.~BT\Sources\RollbackAdditional logs collected during rollback. - +$Windows.~BT\Sources\RollbackAdditional logs collected during rollback. + Setupmem.dmp: If OS bugchecks during upgrade, setup will attempt to extract a mini-dump.
Setupapi: Device install issues – 0x30018
Event logs: Generic rollbacks (0xC1900101) or unexpected reboots. @@ -159,14 +161,14 @@ A common result code is 0xC1900101. This result code can be thrown at any stage - - - - + + - - - + + - - - + + - - - + + - - - + + + @@ -231,9 +233,9 @@ For more information, see [How to perform a clean boot in Windows](https://suppo
Error code -Cause -Mitigation +Error code +Cause +Mitigation
0xC1900101 - 0x20017A driver has caused an illegal operation and Windows was not able to migrate the driver, resulting in a rollback of the operating system.To resolve this issue:
+
0xC1900101 - 0x20017A driver has caused an illegal operation and Windows was not able to migrate the driver, resulting in a rollback of the operating system.To resolve this issue:
1. Make sure all that drivers are updated.
2. Open the Setuperr.log and Setupact.log files under the %windir%\Panther directory, and then locate the problem drivers. Refer: [Understanding Failures and Log Files](https://technet.microsoft.com/en-us/library/ee851579.aspx)
@@ -175,18 +177,18 @@ A common result code is 0xC1900101. This result code can be thrown at any stage
0xC1900101 - 0x30018A device driver has stopped responding to setup.exe during the upgrade process.Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display. Contact your hardware vendor to obtain updated device drivers. +0xC1900101 - 0x30018A device driver has stopped responding to setup.exe during the upgrade process.Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display. Contact your hardware vendor to obtain updated device drivers.

Ensure that "Download and install updates (recommended)" is accepted at the start of the upgrade process.

0xC1900101 - 0x4000DA driver configuration issue occurred during the Windows setup process and a rollback occurred.

Review the rollback log and determine the stop code. The rollback log is located in the **C:\$Windows.~BT\Sources\Panther** folder. Look for text similar to the following: -

+

0xC1900101 - 0x4000DA driver configuration issue occurred during the Windows setup process and a rollback occurred.

Review the rollback log and determine the stop code. The rollback log is located in the **C:\$Windows.~BT\Sources\Panther** folder. Look for text similar to the following: +


Info SP Crash 0x0000007E detected
Info SP Module name :
Info SP Bugcheck parameter 1 : 0xFFFFFFFFC0000005 @@ -197,7 +199,7 @@ A common result code is 0xC1900101. This result code can be thrown at any stage
Info SP Rollback: Showing splash window with restoring text: Restoring your previous version of Windows. -

Typically there is a a dump file for the crash to analyze. If you are not equipped to debug the dump, then attempt the following basic troubleshooting procedures:
+

Typically there is a a dump file for the crash to analyze. If you are not equipped to debug the dump, then attempt the following basic troubleshooting procedures:
1. Make sure you have enough disk space.
2. If a driver is identified in the bug check message, disable the driver, or check with the manufacturer for driver updates.
@@ -207,9 +209,9 @@ A common result code is 0xC1900101. This result code can be thrown at any stage

0xC1900101 - 0x40017Windows 10 upgrade fails after the second reboot, which is most like to be caused by a faulty driver, for example antivirus filter drivers or encryption drivers.Clean boot into Windows, and then attempt the upgrade to Windows 10.
+
0xC1900101 - 0x40017Windows 10 upgrade fails after the second reboot, which is most like to be caused by a faulty driver, for example antivirus filter drivers or encryption drivers.Clean boot into Windows, and then attempt the upgrade to Windows 10.
For more information, see [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135). @@ -218,9 +220,9 @@ For more information, see [How to perform a clean boot in Windows](https://suppo
0x8007002C - 0x4000DThe user cancelled an interactive dialog.Start the upgrade process again again.0x8007002C - 0x4000DThe user cancelled an interactive dialog.Start the upgrade process again again.
- From b88a873d13a36cb82ff304e3acab4ba445c2e497 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 29 Sep 2016 15:04:15 -0700 Subject: [PATCH 31/39] updates --- .../resolve-windows-10-upgrade-errors.md | 133 +++++++++++------- 1 file changed, 83 insertions(+), 50 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 5744d2f08c..df5023588a 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -117,7 +117,7 @@ The following tables provide the corresponding phase and operation for values of ## Log files -Various log files are created during each phase of the upgrade process. These log files are essential for troubleshooting upgrade problems. The most useful log is **setupact.log**, which is located in a different folder depending on the phase in which a problem occurred with the upgrade process. Recall that you can determine the phase from the extend code. +Various log files are created during each phase of the upgrade process. These log files are essential for troubleshooting upgrade problems. The most useful log is **setupact.log**. These logs are located in a different folder depending on the Windows Setup phase. Recall that you can determine the phase from the extend code.

The following table describes some log files and how to use them for troubleshooting purposes: @@ -149,47 +149,72 @@ Setupmem.dmp: If OS bugchecks during upgrade, setup will attempt to extract a mi Setupapi: Device install issues – 0x30018
Event logs: Generic rollbacks (0xC1900101) or unexpected reboots. - - - -

Error code -Cause -Mitigation +Error code +Cause +Mitigation
-## Common error codes and resolution procedures -A common result code is 0xC1900101. This result code can be thrown at any stage of the upgrade process, except for the SafeOS phase. Therefore, it can be associated with several different extend codes. A result code of 0xC1900101 usually indicates that an incompatible driver is present, which can cause blue screens, system hangs, and unexpected reboots. Analysis of all available supplemental log files is typically helpful in indentifying the incompatible driver. You can also attempt to run setup in the absence of drivers by performing a [clean boot](https://support.microsoft.com/en-us/kb/929135) before initiating the upgrade process. - - - - - - - - - - - +

Error code -Cause -Mitigation -
0xC1900101 - 0x20017A driver has caused an illegal operation and Windows was not able to migrate the driver, resulting in a rollback of the operating system.To resolve this issue:
+## Common errors +A common result code is 0xC1900101. This result code can be thrown at any stage of the upgrade process, with the exception of the SafeOS phase. 0xC1900101 usually indicates that an incompatible driver is present, which can cause blue screens, system hangs, and unexpected reboots. + +Analysis of all available supplemental log files is typically helpful in indentifying the incompatible driver. You can also attempt to run setup in the absence of drivers by performing a [clean boot](https://support.microsoft.com/en-us/kb/929135) before initiating the upgrade process. The following general procedures can be used to diagnose a result code of 0xC1900101 during different phases of Windows Setup: + + + + + + +
0xC1900101 - 0x20017
+ +
Cause +
A driver has caused an illegal operation. +
Windows was not able to migrate the driver, resulting in a rollback of the operating system. +
+
+ + - +
Mitigation +
1. Make sure all that drivers are updated.
-2. Open the Setuperr.log and Setupact.log files under the %windir%\Panther directory, and then locate the problem drivers. Refer: [Understanding Failures and Log Files](https://technet.microsoft.com/en-us/library/ee851579.aspx)
+2. Open the Setuperr.log and Setupact.log files under the %windir%\Panther directory, and then locate the problem drivers. +
For more information, see [Understanding Failures and Log Files](https://technet.microsoft.com/en-us/library/ee851579.aspx).
3. Update or uninstall the problem drivers. -
+
-
0xC1900101 - 0x30018A device driver has stopped responding to setup.exe during the upgrade process.Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display. Contact your hardware vendor to obtain updated device drivers. -

Ensure that "Download and install updates (recommended)" is accepted at the start of the upgrade process. -

+ + + + +
0xC1900101 - 0x30018
+ +
Cause +
A device driver has stopped responding to setup.exe during the upgrade process. +
+
+ +
Mitigation +
+Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display. +
Contact your hardware vendor to obtain updated device drivers. +
Ensure that "Download and install updates (recommended)" is accepted at the start of the upgrade process. +
+
-
0xC1900101 - 0x4000DA driver configuration issue occurred during the Windows setup process and a rollback occurred.

Review the rollback log and determine the stop code. The rollback log is located in the **C:\$Windows.~BT\Sources\Panther** folder. Look for text similar to the following: -

-
Info SP Crash 0x0000007E detected +

+ + + + +
0xC1900101 - 0x4000D
+ +
Cause +
A rollback occurred due to a driver configuration issue. +
+
+ + - - - - -
Mitigation +

Review the rollback log and determine the stop code. +
The rollback log is located in the **C:\$Windows.~BT\Sources\Panther** folder. Look for text similar to the following: +

Info SP Crash 0x0000007E detected
Info SP Module name :
Info SP Bugcheck parameter 1 : 0xFFFFFFFFC0000005
Info SP Bugcheck parameter 2 : 0xFFFFF8015BC0036A @@ -202,31 +227,39 @@ A common result code is 0xC1900101. This result code can be thrown at any stage

Typically there is a a dump file for the crash to analyze. If you are not equipped to debug the dump, then attempt the following basic troubleshooting procedures:
1. Make sure you have enough disk space.
-2. If a driver is identified in the bug check message, disable the driver, or check with the manufacturer for driver updates.
+2. If a driver is identified in the bug check message, disable the driver or check with the manufacturer for driver updates.
3. Try changing video adapters.
4. Check with your hardware vendor for any BIOS updates.
5. Disable BIOS memory options such as caching or shadowing. -

0xC1900101 - 0x40017Windows 10 upgrade fails after the second reboot, which is most like to be caused by a faulty driver, for example antivirus filter drivers or encryption drivers.Clean boot into Windows, and then attempt the upgrade to Windows 10.
+

+
+
+ +

+ + + + +
0xC1900101 - 0x40017
+ +
Cause +
Windows 10 upgrade failed after the second reboot. +
This is usually caused by a faulty driver. For example: antivirus filter drivers or encryption drivers. +
+
+ + - - - - - - - - -
Mitigation +
Clean boot into Windows, and then attempt the upgrade to Windows 10.
For more information, see [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135).

Ensure you select the option to "Download and install updates (recommended)." -

0x8007002C - 0x4000DThe user cancelled an interactive dialog.Start the upgrade process again again.
+
+ + ## Common errors I've edited but don't know how to classify From 109e826c2ab2ec34346c69e193043377ed268203 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 29 Sep 2016 15:58:57 -0700 Subject: [PATCH 32/39] updates --- .../resolve-windows-10-upgrade-errors.md | 77 ++++++++++++++----- 1 file changed, 56 insertions(+), 21 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index df5023588a..797d592ae0 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -153,21 +153,27 @@ Event logs: Generic rollbacks (0xC1900101) or unexpected reboots. -## Common errors +## Common error codes -A common result code is 0xC1900101. This result code can be thrown at any stage of the upgrade process, with the exception of the SafeOS phase. 0xC1900101 usually indicates that an incompatible driver is present, which can cause blue screens, system hangs, and unexpected reboots. +A common result code is 0xC1900101. This result code can be thrown at any stage of the upgrade process, with the exception of the SafeOS phase. 0xC1900101 usually indicates that an incompatible driver is present, which can cause blue screens, system hangs, and unexpected reboots. Analysis of all available supplemental log files is typically helpful in indentifying the incompatible driver. You can also attempt to run setup in the absence of drivers by performing a [clean boot](https://support.microsoft.com/en-us/kb/929135) before initiating the upgrade process. -Analysis of all available supplemental log files is typically helpful in indentifying the incompatible driver. You can also attempt to run setup in the absence of drivers by performing a [clean boot](https://support.microsoft.com/en-us/kb/929135) before initiating the upgrade process. The following general procedures can be used to diagnose a result code of 0xC1900101 during different phases of Windows Setup: +

The following general procedures can be used to diagnose a result code of 0xC1900101 during different phases of Windows Setup: - - + +
0xC1900101 - 0x20017
+ + +
+
Code +
0xC1900101 - 0x20017 +
+ +

Cause
A driver has caused an illegal operation. -
Windows was not able to migrate the driver, resulting in a rollback of the operating system. +
Windows was not able to migrate the driver, resulting in a rollback of the operating system.

Mitigation @@ -179,16 +185,18 @@ Analysis of all available supplemental log files is typically helpful in indenti
+
Code +
0xC1900101 - 0x30018
-

- - + + +
0xC1900101 - 0x30018
- +

Cause -
A device driver has stopped responding to setup.exe during the upgrade process. +
A device driver has stopped responding to setup.exe during the upgrade process.
Mitigation @@ -199,16 +207,18 @@ Disconnect all peripheral devices that are connected to the system, except for t
+
Code +
0xC1900101 - 0x4000D
-

- - + + + +
0xC1900101 - 0x4000D
- +

Cause -
A rollback occurred due to a driver configuration issue. +
A rollback occurred due to a driver configuration issue.
Mitigation @@ -235,17 +245,20 @@ Disconnect all peripheral devices that are connected to the system, except for t
+
Code +
0xC1900101 - 0x40017
-

- - + +
0xC1900101 - 0x40017
- +

Cause
Windows 10 upgrade failed after the second reboot. -
This is usually caused by a faulty driver. For example: antivirus filter drivers or encryption drivers. +
This is usually caused by a faulty driver. For example: antivirus filter drivers or encryption drivers.
Mitigation @@ -257,10 +270,32 @@ For more information, see [How to perform a clean boot in Windows](https://suppo
+ + + + + + + + + + + + + + + + + + + + + ## Common errors I've edited but don't know how to classify From 6e8a27ce1afef6bf60220a66042c7af64bf60665 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 29 Sep 2016 16:25:30 -0700 Subject: [PATCH 33/39] updates --- .../resolve-windows-10-upgrade-errors.md | 95 +++++++++---------- 1 file changed, 43 insertions(+), 52 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 797d592ae0..be15c44233 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -161,23 +161,25 @@ A common result code is 0xC1900101. This result code can be thrown at any stage
- -
+
+ -
Code -
0xC1900101 - 0x20017 +
Code +
0xC1900101 - 0x20017

-
Cause -
A driver has caused an illegal operation. +
Cause +
A driver has caused an illegal operation.
Windows was not able to migrate the driver, resulting in a rollback of the operating system.

+ + - -
Mitigation -
+
Mitigation +
1. Make sure all that drivers are updated.
2. Open the Setuperr.log and Setupact.log files under the %windir%\Panther directory, and then locate the problem drivers.
For more information, see [Understanding Failures and Log Files](https://technet.microsoft.com/en-us/library/ee851579.aspx).
@@ -186,21 +188,24 @@ A common result code is 0xC1900101. This result code can be thrown at any stage
- -
Code -
0xC1900101 - 0x30018 +
+ + +
Code +
0xC1900101 - 0x30018

-
Cause -
A device driver has stopped responding to setup.exe during the upgrade process. +
Cause +
A device driver has stopped responding to setup.exe during the upgrade process.

+ + - -
Mitigation -
+
Mitigation +
Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display.
Contact your hardware vendor to obtain updated device drivers.
Ensure that "Download and install updates (recommended)" is accepted at the start of the upgrade process. @@ -208,21 +213,24 @@ Disconnect all peripheral devices that are connected to the system, except for t
- -
Code -
0xC1900101 - 0x4000D +
+ + +
Code +
0xC1900101 - 0x4000D

-
Cause -
A rollback occurred due to a driver configuration issue. +
Cause +
A rollback occurred due to a driver configuration issue.

+ + - -
Mitigation -

Review the rollback log and determine the stop code. +

Mitigation +

Review the rollback log and determine the stop code.
The rollback log is located in the **C:\$Windows.~BT\Sources\Panther** folder. Look for text similar to the following:

Info SP Crash 0x0000007E detected
Info SP Module name : @@ -247,22 +255,25 @@ Disconnect all peripheral devices that are connected to the system, except for t

- -
Code -
0xC1900101 - 0x40017 +
+ + +
Code +
0xC1900101 - 0x40017

-
Cause -
Windows 10 upgrade failed after the second reboot. +
Cause +
Windows 10 upgrade failed after the second reboot.
This is usually caused by a faulty driver. For example: antivirus filter drivers or encryption drivers.

+ + - + + + + + + + + + + From 722ad2d5580b3f825d52caed4e1b55ac2dd93e5b Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 3 Oct 2016 17:48:40 -0700 Subject: [PATCH 39/39] added note about LTSB and free upgrade --- windows/deploy/windows-10-upgrade-paths.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/windows/deploy/windows-10-upgrade-paths.md b/windows/deploy/windows-10-upgrade-paths.md index b6c196f4d1..9356e2c31c 100644 --- a/windows/deploy/windows-10-upgrade-paths.md +++ b/windows/deploy/windows-10-upgrade-paths.md @@ -19,9 +19,11 @@ author: greg-lindsay This topic provides a summary of available upgrade paths to Windows 10. You can upgrade to Windows 10 from Windows 7 or a later operating system. This includes upgrading from one release of Windows 10 to later release of Windows 10. Migrating from one edition of Windows 10 to a different edition of the same release is also supported. For more information about migrating to a different edition of Windows 10, see [Windows 10 edition upgrade](windows-10-edition-upgrades.md). +>**Windows 10 LTSB**: The upgrade paths displayed below do not apply to Windows 10 LTSB. In-place upgrade from Windows 7 or Windows 8.1 to Windows 10 LTSB is not supported. + >**Windows N/KN**: Windows "N" and "KN" editions follow the same upgrade paths shown below. If the pre-upgrade and post-upgrade editions are not the same type (e.g. Windows 8.1 Pro N to Windows 10 Pro), personal data will be kept but applications and settings will be removed during the upgrade process. ->**Free upgrade**: Some upgrade paths qualify for a free upgrade using Windows Update. For a list of upgrade paths that are available as part of the free upgrade offer, see [Free upgrade paths](#Free-upgrade-paths). +>**Free upgrade**: The Windows 10 free upgrade offer expired on July 29, 2016. For more information, see [Free upgrade paths](#Free-upgrade-paths). ✔ = Full upgrade is supported including personal data, settings, and applications.
D = Edition downgrade; personal data is maintained, applications and settings are removed.
Mitigation -
Clean boot into Windows, and then attempt the upgrade to Windows 10.
+
Mitigation +
Clean boot into Windows, and then attempt the upgrade to Windows 10.
For more information, see [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135). @@ -275,26 +286,6 @@ For more information, see [How to perform a clean boot in Windows](https://suppo - - - - - - - - - - - - - - - - - - - - ## Common errors I've edited but don't know how to classify From 0e18f481166dc6cf00ee35f076df372ac182d3a5 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 29 Sep 2016 16:37:21 -0700 Subject: [PATCH 34/39] updates --- .../resolve-windows-10-upgrade-errors.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index be15c44233..301c5c3ac3 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -155,17 +155,17 @@ Event logs: Generic rollbacks (0xC1900101) or unexpected reboots. ## Common error codes -A common result code is 0xC1900101. This result code can be thrown at any stage of the upgrade process, with the exception of the SafeOS phase. 0xC1900101 usually indicates that an incompatible driver is present, which can cause blue screens, system hangs, and unexpected reboots. Analysis of all available supplemental log files is typically helpful in indentifying the incompatible driver. You can also attempt to run setup in the absence of drivers by performing a [clean boot](https://support.microsoft.com/en-us/kb/929135) before initiating the upgrade process. +A common result code is 0xC1900101. This result code can be thrown at any stage of the upgrade process, with the exception of the SafeOS phase. 0xC1900101 usually indicates that an incompatible driver is present, which can cause blue screens, system hangs, and unexpected reboots. Analysis of supplemental log files is often helpful in indentifying the incompatible driver. You can also attempt to run setup in the absence of drivers by performing a [clean boot](https://support.microsoft.com/en-us/kb/929135) before initiating the upgrade process. -

The following general procedures can be used to diagnose a result code of 0xC1900101 during different phases of Windows Setup: +

The following general procedures can be used to diagnose some of the most common error codes that contain a result code of 0xC1900101: - -
+
Code -
0xC1900101 - 0x20017 +
0xC1900101 - 0x20017

@@ -175,7 +175,7 @@ A common result code is 0xC1900101. This result code can be thrown at any stage

+ - -
Mitigation @@ -188,11 +188,11 @@ A common result code is 0xC1900101. This result code can be thrown at any stage
+
Code -
0xC1900101 - 0x30018 +
0xC1900101 - 0x30018

@@ -201,7 +201,7 @@ A common result code is 0xC1900101. This result code can be thrown at any stage

+ - -
Mitigation @@ -213,11 +213,11 @@ Disconnect all peripheral devices that are connected to the system, except for t
+
Code -
0xC1900101 - 0x4000D +
0xC1900101 - 0x4000D

@@ -226,7 +226,7 @@ Disconnect all peripheral devices that are connected to the system, except for t

+ - - @@ -293,7 +295,7 @@ Other common codes and mitigation procedures:
Mitigation @@ -255,11 +255,11 @@ Disconnect all peripheral devices that are connected to the system, except for t
+
Code -
0xC1900101 - 0x40017 +
0xC1900101 - 0x40017

@@ -269,7 +269,7 @@ Disconnect all peripheral devices that are connected to the system, except for t

+
Mitigation From c7eaba3c4af2eb5cbde5035c1a116126b406daa8 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 29 Sep 2016 16:57:50 -0700 Subject: [PATCH 35/39] updates --- .../resolve-windows-10-upgrade-errors.md | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 301c5c3ac3..c8a8cf8627 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -284,7 +284,135 @@ For more information, see [How to perform a clean boot in Windows](https://suppo
+Other common codes and mitigation procedures: + + + + + + + + + + + + + + + + + + + + + + +
+ + +
Code +
+ +Here is a code + +
+ +

+
Cause +
+ +Here is a cause + +
+

+ + +
Mitigation +
+ +Here is a mitigation procedure. + +
+
+ + +
Code +
+ +Here is a code + +
+ +

+
Cause +
+ +Here is a cause. + +
+

+ + +
Mitigation +
+ +Here is a mitigation procedure. + +
+
+ + +
Code +
+ +Here is a code + +
+ +

+
Cause +
+ +Here is a cause. + +
+

+ + +
Mitigation +
+ +Here is a mitigation procedure. + +
+
+ + +
Code +
+ +Here is a code + +
+ +

+
Cause +
+ +Here is a cause. + +
+

+ + +
Mitigation +
+ +Here is a mitigation procedure. + +
+
## Common errors I've edited but don't know how to classify From 0a5c0805b5ede5d9c30dbdec4bfebdef5e30cc6d Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 29 Sep 2016 16:59:39 -0700 Subject: [PATCH 36/39] updates --- .../resolve-windows-10-upgrade-errors.md | 45 ++++++++++++++++--- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index c8a8cf8627..9d8626d2f0 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -155,7 +155,7 @@ Event logs: Generic rollbacks (0xC1900101) or unexpected reboots. ## Common error codes -A common result code is 0xC1900101. This result code can be thrown at any stage of the upgrade process, with the exception of the SafeOS phase. 0xC1900101 usually indicates that an incompatible driver is present, which can cause blue screens, system hangs, and unexpected reboots. Analysis of supplemental log files is often helpful in indentifying the incompatible driver. You can also attempt to run setup in the absence of drivers by performing a [clean boot](https://support.microsoft.com/en-us/kb/929135) before initiating the upgrade process. +A common result code is 0xC1900101. This result code can be thrown at any stage of the upgrade process, with the exception of the SafeOS phase. 0xC1900101 is a generic rollback code, and usually indicates that an incompatible driver is present. The incompatible driver can cause blue screens, system hangs, and unexpected reboots. Analysis of supplemental log files is often helpful, such as the minidump file (($Windows.~bt\Sources\Rollback\setupmem.dmp), event logs (($Windows.~bt\Sources\Rollback\*.evtx), and the device install log ($Windows.~bt\Sources\Rollback\setupapi\setupapi.dev.log). The device install log is particularly helpful if rollback occurs during the sysprep operation (extend code 0x30018). To resolve a rollback due to driver conflicts, run setup in the absence of drivers by performing a [clean boot](https://support.microsoft.com/en-us/kb/929135) before initiating the upgrade process.

The following general procedures can be used to diagnose some of the most common error codes that contain a result code of 0xC1900101: @@ -165,13 +165,15 @@ A common result code is 0xC1900101. This result code can be thrown at any stage
Code -
0xC1900101 - 0x20017 +
0xC1900101 - 0x20017 +

Cause
A driver has caused an illegal operation.
Windows was not able to migrate the driver, resulting in a rollback of the operating system. +

Code
-Here is a code +8007042B - 0x4000D
@@ -324,7 +326,7 @@ Here is a mitigation procedure.
Code
-Here is a code +8007001F - 0x4000D
@@ -355,7 +357,7 @@ Here is a mitigation procedure.
Code
-Here is a code +8007042B - 0x4001E
@@ -387,7 +389,38 @@ Here is a mitigation procedure.
Code
-Here is a code +800704B8 - 0x3001A + +
+ +

+
Cause +
+ +Here is a cause. + +
+

+ + +
Mitigation +
+ +Here is a mitigation procedure. + +
+
+ + +
Code +
+ +8000405 - 0x20007
From ca9a248c4b2b67d74e5ed67d13cd55a0e27ce137 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Fri, 30 Sep 2016 12:44:40 -0700 Subject: [PATCH 37/39] updates --- .../resolve-windows-10-upgrade-errors.md | 43 ++++++++++++++++--- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 9d8626d2f0..23e1cc2935 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -155,12 +155,41 @@ Event logs: Generic rollbacks (0xC1900101) or unexpected reboots. ## Common error codes +### 0xC1900101 + A common result code is 0xC1900101. This result code can be thrown at any stage of the upgrade process, with the exception of the SafeOS phase. 0xC1900101 is a generic rollback code, and usually indicates that an incompatible driver is present. The incompatible driver can cause blue screens, system hangs, and unexpected reboots. Analysis of supplemental log files is often helpful, such as the minidump file (($Windows.~bt\Sources\Rollback\setupmem.dmp), event logs (($Windows.~bt\Sources\Rollback\*.evtx), and the device install log ($Windows.~bt\Sources\Rollback\setupapi\setupapi.dev.log). The device install log is particularly helpful if rollback occurs during the sysprep operation (extend code 0x30018). To resolve a rollback due to driver conflicts, run setup in the absence of drivers by performing a [clean boot](https://support.microsoft.com/en-us/kb/929135) before initiating the upgrade process. -

The following general procedures can be used to diagnose some of the most common error codes that contain a result code of 0xC1900101: +

See the following general troubleshooting procedures associated with a result code of 0xC1900101: + + + + + + + @@ -286,7 +315,9 @@ For more information, see [How to perform a clean boot in Windows](https://suppo
+ + +
Code +
0xC1900101 - 0x2000c +
+ +

+
Cause +
Windows Setup encountered an unspecified error during the WinPE phase. +
This is generally caused by out-of-date drivers. +
+

+ + +
Mitigation +
Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display. +
Contact your hardware vendor to obtain updated device drivers. +
Ensure that "Download and install updates (recommended)" is accepted at the start of the upgrade process. +
+
@@ -182,10 +211,10 @@ A common result code is 0xC1900101. This result code can be thrown at any stage
Mitigation
-1. Make sure all that drivers are updated.
-2. Open the Setuperr.log and Setupact.log files under the %windir%\Panther directory, and then locate the problem drivers. -
For more information, see [Understanding Failures and Log Files](https://technet.microsoft.com/en-us/library/ee851579.aspx).
-3. Update or uninstall the problem drivers. +Ensure that all that drivers are updated.
+Open the Setuperr.log and Setupact.log files in the %windir%\Panther directory, and then locate the problem drivers. +
For more information, see [Understanding Failures and Log Files](https://technet.microsoft.com/en-us/library/ee851579.aspx). +
Update or uninstall the problem drivers.
-Other common codes and mitigation procedures: +### 0x800xxxxx + +
From b889c122c0cb0a9df2a4898404cf41f971a03231 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Mon, 3 Oct 2016 17:31:15 -0700 Subject: [PATCH 38/39] draft --- .../resolve-windows-10-upgrade-errors.md | 96 +++++++++++++++++-- 1 file changed, 88 insertions(+), 8 deletions(-) diff --git a/windows/deploy/resolve-windows-10-upgrade-errors.md b/windows/deploy/resolve-windows-10-upgrade-errors.md index 23e1cc2935..9c18df817e 100644 --- a/windows/deploy/resolve-windows-10-upgrade-errors.md +++ b/windows/deploy/resolve-windows-10-upgrade-errors.md @@ -42,18 +42,40 @@ WIM = Windows image (Microsoft) ## Upgrade error codes -Setup will return two codes: +If the upgrade process is not successful, Windows Setup will return two codes: -1. A result code, corresponding to a specific Win32 error. -2. An extend code, representing the phase when a failure occurred. - - The extend code contains information about both the *phase* in which an error occurred, and the *operation* that was being performed when the error occurred. +1. **A result code**: The result code corresponds to a specific Win32 error. +2. **An extend code**: The extend code contains information about both the *phase* in which an error occurred, and the *operation* that was being performed when the error occurred. ->For example, a result code of **0xC1900101** with an extend code of **0x4000D** will be returned as: **0xC1900101 - 0x4000D**. In this case, the extend code **0x4000D** can be evaluated as representing a problem during phase 4 (**0x4**) with data migration (**000D**). A list of extend codes with phase and operation associations is provided below. +>For example, a result code of **0xC1900101** with an extend code of **0x4000D** will be returned as: **0xC1900101 - 0x4000D**. Note: If only a result code is returned, this can be because a tool is being used that was not able to capture the extend code. For example, if you are using the [Windows 10 Upgrade Assistant](https://support.microsoft.com/en-us/kb/3159635) then only a result code might be returned. +### Result codes + +>A result code of **0xC1900101** is generic and indicates that a rollback occurred. In most cases, the cause is a driver compatibility issue.
To troubleshoot a failed upgrade that has returned a result code of 0xC1900101, analyze the extend code to determine the Windows Setup phase, and see the [Common error codes](#common-error-codes) section later in this topic. + +Result codes can be matched to the type of error encountered. To match a result code to an error: + +1. Identify the error code type, using the first hexidecimal digit: +
8 = Win32 error code (ex: 0x**8**0070070) +
C = NTSTATUS value (ex: 0x**C**1900107) +2. Write down the last 4 digits of the error code (ex: 0x8007**0070** = 0070). These digits correspond to the last 16 bits of the [HRESULT](https://msdn.microsoft.com/en-us/library/cc231198.aspx) or the [NTSTATUS](https://msdn.microsoft.com/en-us/library/cc231200.aspx) structure. +3. Based on the type of error code determined in the first step, match the 4 digits derived from the second step to either a [Win32 error code](https://msdn.microsoft.com/en-us/library/cc231199.aspx), or an [NTSTATUS value](https://msdn.microsoft.com/en-us/library/cc704588.aspx). + +For example: +- 0x80070070 = Win32 = 0070 = 0x00000070 = ERROR_DISK_FULL +- 0xC1900107 = NTSTATUS = 0107 = 0x00000107 = STATUS_SOME_NOT_MAPPED + + ### Extend codes +Extend codes can be matched to the phase and operation when an error occurred. To match an extend code to the phase and operation: + +1. Use the first digit to identify the phase (ex: 0x4000D = 4). +2. Use the last two digits to identify the operation (ex: 0x4000D = 0D). +3. Match the phase and operation to values in the tables provided below. + The following tables provide the corresponding phase and operation for values of an extend code: @@ -115,6 +137,8 @@ The following tables provide the corresponding phase and operation for values of
+For example: An extend code of **0x4000D**, represents a problem during phase 4 (**0x4**) with data migration (**000D**). + ## Log files Various log files are created during each phase of the upgrade process. These log files are essential for troubleshooting upgrade problems. The most useful log is **setupact.log**. These logs are located in a different folder depending on the Windows Setup phase. Recall that you can determine the phase from the extend code. @@ -152,7 +176,6 @@ Event logs: Generic rollbacks (0xC1900101) or unexpected reboots.
- ## Common error codes ### 0xC1900101 @@ -166,6 +189,32 @@ A common result code is 0xC1900101. This result code can be thrown at any stage

+ +
Code +
0xC1900101 - 0x20004 +
+ +

+
Cause +
Windows Setup encountered an error during the SAFE_OS with the INSTALL_RECOVERY_ENVIRONMENT operation +
This is generally caused by out-of-date drivers. +
+

+ + +
Mitigation +
Uninstall antivirus applications. +
Remove all unused SATA devices. +
Remove all unused devices and drivers. +
Update drivers and BIOS. +
+
+ + + + + + @@ -376,7 +452,11 @@ Here is a cause.
Code
0xC1900101 - 0x2000c @@ -246,6 +295,32 @@ Disconnect all peripheral devices that are connected to the system, except for t
+ +
Code +
0xC1900101 - 0x3000D +
+ +

+
Cause +
Installation failed during the FIRST_BOOT phase while attempting the MIGRATE_DATA operation. +
This can occur due to a problem with a display driver. + +
+

+ + +
Mitigation +
+Disconnect all peripheral devices that are connected to the system, except for the mouse, keyboard and display. +
Update or uninstall the display driver. +
+
+
Code
0xC1900101 - 0x4000D @@ -365,7 +440,8 @@ Here is a mitigation procedure.
Cause
-Here is a cause. +The installation failed during the second boot phase while attempting the MIGRATE_DATA operation. +
This issue can occur due to an application or driver incompatibility.
Mitigation
-Here is a mitigation procedure. +Clean boot into Windows, and then attempt the upgrade to Windows 10.
+ +For more information, see [How to perform a clean boot in Windows](https://support.microsoft.com/en-us/kb/929135). + +

Ensure you select the option to "Download and install updates (recommended)."