This commit is contained in:
greg-lindsay
2021-09-02 10:57:02 -07:00
206 changed files with 4075 additions and 3266 deletions

View File

@ -62,7 +62,7 @@ If any of these checks fails, the conversion will not proceed and an error will
## Syntax
<table style="font-family:consolas;font-size:12px" >
<table>
<TR><TD>MBR2GPT /validate|convert [/disk:&lt;diskNumber>] [/logs:&lt;logDirectory>] [/map:&lt;source>=&lt;destination>] [/allowFullOS]
</TABLE>

View File

@ -47,7 +47,7 @@ You can use Group Policy settings or mobile device management (MDM) to configure
With Windows 10, admins have a lot of flexibility in configuring how their devices scan and receive updates.
[Specify Intranet Microsoft update service location](#specify-intranet-microsoft-update-service-location) allows admins to point devices to an internal Microsoft update service location, while [Do not connect to any Windows Update Internet locations](#do-not-connect-to-any-windows-update-internet-locations) gives them to option to restrict devices to just that internal update service. [Automatic Updates Detection Frequency](#automatic-updates-detection-frequency) controls how frequently devices scan for updates.
[Specify Intranet Microsoft update service location](#specify-intranet-microsoft-update-service-location) allows admins to point devices to an internal Microsoft update service location, while [Do not connect to any Windows Update Internet locations](#do-not-connect-to-any-windows-update-internet-locations) gives them the option to restrict devices to just that internal update service. [Automatic Updates Detection Frequency](#automatic-updates-detection-frequency) controls how frequently devices scan for updates.
You can make custom device groups that'll work with your internal Microsoft update service by using [Enable client-side targeting](#enable-client-side-targeting). You can also make sure your devices receive updates that were not signed by Microsoft from your internal Microsoft update service, through [Allow signed updates from an intranet Microsoft update service location](#allow-signed-updates-from-an-intranet-microsoft-update-service-location).
@ -255,4 +255,4 @@ HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\
- [Configure Delivery Optimization for Windows 10 updates](waas-delivery-optimization.md)
- [Configure BranchCache for Windows 10 updates](waas-branchcache.md)
- [Configure Windows Update for Business](waas-configure-wufb.md)
- [Manage device restarts after updates](waas-restart.md)
- [Manage device restarts after updates](waas-restart.md)

View File

@ -116,7 +116,7 @@ Some lines in the text below are shortened to enhance readability. The date and
<br><B>setuperr.log</B> content:
<pre style="font-size: 10px; overflow-y: visible">
<pre>
27:08, Error SP Error READ, 0x00000570 while gathering/applying object: File, C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]. Will return 0[gle=0x00000570]
27:08, Error MIG Error 1392 while gathering object C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]. Shell application requested abort![gle=0x00000570]
27:08, Error Gather failed. Last error: 0x00000000
@ -129,7 +129,7 @@ Some lines in the text below are shortened to enhance readability. The date and
The first line indicates there was an error **0x00000570** with the file **C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]** (shown below):
<pre style="font-size: 10px; overflow-y: visible">
<pre>
27:08, Error SP Error READ, 0x00000570 while gathering/applying object: File, C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN]. Will return 0[gle=0x00000570]
</PRE>
@ -139,7 +139,7 @@ Therefore, Windows Setup failed because it was not able to migrate the corrupt f
<br><B>setupact.log</B> content:
<pre style="font-size: 10px; overflow-y: visible">
<pre>
27:00, Info Gather started at 10/5/2016 23:27:00
27:00, Info [0x080489] MIG Setting system object filter context (System)
27:00, Info [0x0803e5] MIG Not unmapping HKCU\Software\Classes; it is not mapped
@ -164,7 +164,7 @@ Therefore, Windows Setup failed because it was not able to migrate the corrupt f
<br><B>setupapi.dev.log</B> content:
<pre style="font-size: 10px; overflow-y: visible">
<pre>
>>> [Device Install (UpdateDriverForPlugAndPlayDevices) - PCI\VEN_8086&DEV_8C4F]
>>> Section start 2019/09/26 20:13:01.623
cmd: rundll32.exe "C:\WINDOWS\Installer\MSI6E4C.tmp",zzzzInvokeManagedCustomActionOutOfProc SfxCA_95972906 484 ChipsetWiX.CustomAction!Intel.Deployment.ChipsetWiX.CustomActions.InstallDrivers

View File

@ -92,13 +92,13 @@ The following tables provide the corresponding phase and operation for values of
<table cellspacing="0" cellpadding="0">
<tr><td colspan="2" align="center" valign="top" BGCOLOR="#a0e4fa"><font color="#000000"><b>Extend code: phase</b></td>
<tr><td style='padding:0in 4pt 0in 4pt'><b>Hex</b><td style='padding:0in 5.4pt 0in 5.4pt'><b>Phase</b>
<tr><td style='padding:0in 4pt 0in 4pt'>0<td style='padding:0in 4pt 0in 4pt'>SP_EXECUTION_UNKNOWN
<tr><td style='padding:0in 4pt 0in 4pt'>1<td style='padding:0in 4pt 0in 4pt'>SP_EXECUTION_DOWNLEVEL
<tr><td style='padding:0in 4pt 0in 4pt'>2<td style='padding:0in 4pt 0in 4pt'>SP_EXECUTION_SAFE_OS
<tr><td style='padding:0in 4pt 0in 4pt'>3<td style='padding:0in 4pt 0in 4pt'>SP_EXECUTION_FIRST_BOOT
<tr><td style='padding:0in 4pt 0in 4pt'>4<td style='padding:0in 4pt 0in 4pt'>SP_EXECUTION_OOBE_BOOT
<tr><td style='padding:0in 4pt 0in 4pt'>5<td style='padding:0in 4pt 0in 4pt'>SP_EXECUTION_UNINSTALL
<tr><td><b>Hex</b><td><b>Phase</b>
<tr><td>0<td>SP_EXECUTION_UNKNOWN
<tr><td>1<td>SP_EXECUTION_DOWNLEVEL
<tr><td>2<td>SP_EXECUTION_SAFE_OS
<tr><td>3<td>SP_EXECUTION_FIRST_BOOT
<tr><td>4<td>SP_EXECUTION_OOBE_BOOT
<tr><td>5<td>SP_EXECUTION_UNINSTALL
</table>
@ -106,45 +106,45 @@ The following tables provide the corresponding phase and operation for values of
<tr><td colspan="2" align="center" valign="top" BGCOLOR="#a0e4fa"><font color="#000000"><B>Extend code: operation</B></td>
<tr><td align="left" valign="top" style='border:dotted #A6A6A6 1.0pt;'>
<table>
<tr><td style='padding:0in 4pt 0in 4pt'><b>Hex</b><td style='padding:0in 4pt 0in 4pt'><span style='padding:0in 5.4pt 0in 5.4pt;'><b>Operation</b>
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>0<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_UNKNOWN
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>1<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_COPY_PAYLOAD
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>2<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_DOWNLOAD_UPDATES
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>3<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_INSTALL_UPDATES
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>4<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_INSTALL_RECOVERY_ENVIRONMENT
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>5<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_INSTALL_RECOVERY_IMAGE
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>6<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_REPLICATE_OC
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>7<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_INSTALL_DRVIERS
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>8<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_PREPARE_SAFE_OS
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>9<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_PREPARE_ROLLBACK
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>A<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_PREPARE_FIRST_BOOT
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>B<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_PREPARE_OOBE_BOOT
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>C<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_APPLY_IMAGE
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>D<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_MIGRATE_DATA
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>E<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_SET_PRODUCT_KEY
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>F<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_ADD_UNATTEND
<tr><td><b>Hex</b><td><span style='padding:0in 5.4pt 0in 5.4pt;'><b>Operation</b>
<tr><td><span>0<td><span>SP_EXECUTION_OP_UNKNOWN
<tr><td><span>1<td><span>SP_EXECUTION_OP_COPY_PAYLOAD
<tr><td><span>2<td><span>SP_EXECUTION_OP_DOWNLOAD_UPDATES
<tr><td><span>3<td><span>SP_EXECUTION_OP_INSTALL_UPDATES
<tr><td><span>4<td><span>SP_EXECUTION_OP_INSTALL_RECOVERY_ENVIRONMENT
<tr><td><span>5<td><span>SP_EXECUTION_OP_INSTALL_RECOVERY_IMAGE
<tr><td><span>6<td><span>SP_EXECUTION_OP_REPLICATE_OC
<tr><td><span>7<td><span>SP_EXECUTION_OP_INSTALL_DRVIERS
<tr><td><span>8<td><span>SP_EXECUTION_OP_PREPARE_SAFE_OS
<tr><td><span>9<td><span>SP_EXECUTION_OP_PREPARE_ROLLBACK
<tr><td><span>A<td><span>SP_EXECUTION_OP_PREPARE_FIRST_BOOT
<tr><td><span>B<td><span>SP_EXECUTION_OP_PREPARE_OOBE_BOOT
<tr><td><span>C<td><span>SP_EXECUTION_OP_APPLY_IMAGE
<tr><td><span>D<td><span>SP_EXECUTION_OP_MIGRATE_DATA
<tr><td><span>E<td><span>SP_EXECUTION_OP_SET_PRODUCT_KEY
<tr><td><span>F<td><span>SP_EXECUTION_OP_ADD_UNATTEND
</table>
</td>
<td align="left" valign="top" style='border:dotted #A6A6A6 1.0pt;'>
<table>
<tr><td style='padding:0in 4pt 0in 4pt'><b>Hex</b><td style='padding:0in 4pt 0in 4pt'><b>Operation</b>
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>10<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_ADD_DRIVER
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>11<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_ENABLE_FEATURE
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>12<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_DISABLE_FEATURE
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>13<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_REGISTER_ASYNC_PROCESS
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>14<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_REGISTER_SYNC_PROCESS
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>15<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_CREATE_FILE
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>16<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_CREATE_REGISTRY
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>17<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_BOOT
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>18<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_SYSPREP
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>19<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_OOBE
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>1A<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_BEGIN_FIRST_BOOT
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>1B<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_END_FIRST_BOOT
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>1C<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_BEGIN_OOBE_BOOT
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>1D<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_END_OOBE_BOOT
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>1E<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_PRE_OOBE
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>1F<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_POST_OOBE
<tr><td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>20<td style='padding:0in 4pt 0in 4pt'><span style='font-size:9.0pt'>SP_EXECUTION_OP_ADD_PROVISIONING_PACKAGE
<tr><td><b>Hex</b><td><b>Operation</b>
<tr><td><span>10<td><span>SP_EXECUTION_OP_ADD_DRIVER
<tr><td><span>11<td><span>SP_EXECUTION_OP_ENABLE_FEATURE
<tr><td><span>12<td><span>SP_EXECUTION_OP_DISABLE_FEATURE
<tr><td><span>13<td><span>SP_EXECUTION_OP_REGISTER_ASYNC_PROCESS
<tr><td><span>14<td><span>SP_EXECUTION_OP_REGISTER_SYNC_PROCESS
<tr><td><span>15<td><span>SP_EXECUTION_OP_CREATE_FILE
<tr><td><span>16<td><span>SP_EXECUTION_OP_CREATE_REGISTRY
<tr><td><span>17<td><span>SP_EXECUTION_OP_BOOT
<tr><td><span>18<td><span>SP_EXECUTION_OP_SYSPREP
<tr><td><span>19<td><span>SP_EXECUTION_OP_OOBE
<tr><td><span>1A<td><span>SP_EXECUTION_OP_BEGIN_FIRST_BOOT
<tr><td><span>1B<td><span>SP_EXECUTION_OP_END_FIRST_BOOT
<tr><td><span>1C<td><span>SP_EXECUTION_OP_BEGIN_OOBE_BOOT
<tr><td><span>1D<td><span>SP_EXECUTION_OP_END_OOBE_BOOT
<tr><td><span>1E<td><span>SP_EXECUTION_OP_PRE_OOBE
<tr><td><span>1F<td><span>SP_EXECUTION_OP_POST_OOBE
<tr><td><span>20<td><span>SP_EXECUTION_OP_ADD_PROVISIONING_PACKAGE
</table>
</td>
</tr>

View File

@ -187,13 +187,13 @@ The following system environment variables are necessary in the scenarios outlin
<td align="left"><p>USMT_WORKING_DIR</p></td>
<td align="left"><p>Full path to a working directory</p></td>
<td align="left"><p>Required when USMT binaries are located on read-only media, which does not support the creation of log files or temporary storage. To set the system environment variable, at a command prompt type the following:</p>
<pre class="syntax" space="preserve"><code>Set USMT_WORKING_DIR=[path to working directory]</code></pre></td>
<pre class="syntax"><code>Set USMT_WORKING_DIR=[path to working directory]</code></pre></td>
</tr>
<tr class="even">
<td align="left"><p>MIG_OFFLINE_PLATFORM_ARCH</p></td>
<td align="left"><p>32 or 64</p></td>
<td align="left"><p>While operating offline, this environment variable defines the architecture of the offline system, if the system does not match the WinPE and Scanstate.exe architecture. This environment variable enables the 32-bit ScanState application to gather data from a computer with 64-bit architecture, or the 64-bit ScanState application to gather data from a computer with 32-bit architecture. This is required when auto-detection of the offline architecture doesn't function properly, for example, when the source system is running a 64-bit version of Windows XP. For example, to set this system environment variable for a 32-bit architecture, at a command prompt type the following:</p>
<pre class="syntax" space="preserve"><code>Set MIG_OFFLINE_PLATFORM_ARCH=32</code></pre></td>
<pre class="syntax"><code>Set MIG_OFFLINE_PLATFORM_ARCH=32</code></pre></td>
</tr>
</tbody>
</table>

View File

@ -293,7 +293,7 @@ The MigDocs.xml file calls the **GenerateDocPatterns** function, which takes thr
<td align="left"><p>ScanProgramFiles</p></td>
<td align="left"><p>The <em>ScanProgramFiles</em> argument is valid only when the <strong>GenerateDocPatterns</strong> function is called in a system context. This argument determines whether or not to scan the Program Files directory to gather registered file name extensions for known applications.</p>
<p>For example, when set to <strong>TRUE</strong>, the function discovers and migrates .doc files under the Microsoft Office directory, because .doc is a file name extension registered to a Microsoft Office application. The <strong>GenerateDocPatterns</strong> function generates this inclusion pattern for .doc files:</p>
<pre class="syntax" space="preserve"><code>&lt;pattern type=&quot;File&quot;&gt;C:\Program Files\Microsoft Office<em>[</em>.doc]&lt;/pattern&gt;</code></pre>
<pre class="syntax"><code>&lt;pattern type=&quot;File&quot;&gt;C:\Program Files\Microsoft Office<em>[</em>.doc]&lt;/pattern&gt;</code></pre>
<p>If a child folder of an included folder contains an installed application, ScanProgramFiles will also create an exclusion rule for the child folder. All folders under the application folder will be scanned recursively for registered file name extensions.</p></td>
<td align="left"><p>False</p></td>
</tr>
@ -424,11 +424,11 @@ In the examples below, the source computer has a .txt file called "new text docu
<tbody>
<tr class="odd">
<td align="left"><p>Rule 1</p></td>
<td align="left"><pre class="syntax" space="preserve"><code>&lt;pattern type=&quot;File&quot;&gt;d:\new folder[new text document.txt]&lt;/pattern&gt;</code></pre></td>
<td align="left"><pre class="syntax"><code>&lt;pattern type=&quot;File&quot;&gt;d:\new folder[new text document.txt]&lt;/pattern&gt;</code></pre></td>
</tr>
<tr class="even">
<td align="left"><p>Rule 2</p></td>
<td align="left"><pre class="syntax" space="preserve"><code>&lt;pattern type=&quot;File&quot;&gt;d:\new folder<em>[</em>]&lt;/pattern&gt;</code></pre></td>
<td align="left"><pre class="syntax"><code>&lt;pattern type=&quot;File&quot;&gt;d:\new folder<em>[</em>]&lt;/pattern&gt;</code></pre></td>
</tr>
</tbody>
</table>

View File

@ -414,7 +414,7 @@ For this example, the following table describes the resulting behavior if you ad
</thead>
<tbody>
<tr class="odd">
<td align="left"><pre class="syntax" space="preserve"><code>&lt;merge script=&quot;MigXmlHelper.DestinationPriority()&quot;&gt;
<td align="left"><pre class="syntax"><code>&lt;merge script=&quot;MigXmlHelper.DestinationPriority()&quot;&gt;
&lt;objectSet&gt;
&lt;pattern type=&quot;File&quot;&gt;c:\data* [<em>]&lt;/pattern&gt;
&lt;/objectSet&gt;
@ -423,7 +423,7 @@ For this example, the following table describes the resulting behavior if you ad
<p>During LoadState, only C:\Data\SampleA.txt will be restored.</p></td>
</tr>
<tr class="even">
<td align="left"><pre class="syntax" space="preserve"><code>&lt;merge script=&quot;MigXmlHelper.SourcePriority()&quot;&gt;
<td align="left"><pre class="syntax"><code>&lt;merge script=&quot;MigXmlHelper.SourcePriority()&quot;&gt;
&lt;objectSet&gt;
&lt;pattern type=&quot;File&quot;&gt;c:\data* [</em>]&lt;/pattern&gt;
&lt;/objectSet&gt;
@ -432,7 +432,7 @@ For this example, the following table describes the resulting behavior if you ad
<p>During LoadState, all the files will be restored, overwriting the existing files on the destination computer.</p></td>
</tr>
<tr class="odd">
<td align="left"><pre class="syntax" space="preserve"><code>&lt;merge script=&quot;MigXmlHelper.SourcePriority()&quot;&gt;
<td align="left"><pre class="syntax"><code>&lt;merge script=&quot;MigXmlHelper.SourcePriority()&quot;&gt;
&lt;objectSet&gt;
&lt;pattern type=&quot;File&quot;&gt;c:\data\ [*]&lt;/pattern&gt;
&lt;/objectSet&gt;

View File

@ -119,15 +119,15 @@ The following is a custom .xml file named CustomFile.xml that migrates My Videos
</thead>
<tbody>
<tr class="odd">
<td align="left"><pre class="syntax" space="preserve"><code>&lt;condition&gt;MigXmlHelper.DoesObjectExist(&quot;File&quot;,&quot;%CSIDL_MYVIDEO%&quot;)&lt;/condition&gt;</code></pre></td>
<td align="left"><pre class="syntax"><code>&lt;condition&gt;MigXmlHelper.DoesObjectExist(&quot;File&quot;,&quot;%CSIDL_MYVIDEO%&quot;)&lt;/condition&gt;</code></pre></td>
<td align="left"><p>Verifies that My Videos exists on the source computer.</p></td>
</tr>
<tr class="even">
<td align="left"><pre class="syntax" space="preserve"><code>&lt;include filter=&#39;MigXmlHelper.IgnoreIrrelevantLinks()&#39;&gt;</code></pre></td>
<td align="left"><pre class="syntax"><code>&lt;include filter=&#39;MigXmlHelper.IgnoreIrrelevantLinks()&#39;&gt;</code></pre></td>
<td align="left"><p>Filters out the shortcuts in My Videos that do not resolve on the destination computer. This has no effect on files that are not shortcuts. For example, if there is a shortcut in My Videos on the source computer that points to C:\Folder1, that shortcut will be migrated only if C:\Folder1 exists on the destination computer. However, all other files, such as .mp3 files, migrate without any filtering.</p></td>
</tr>
<tr class="odd">
<td align="left"><pre class="syntax" space="preserve"><code>&lt;pattern type=&quot;File&quot;&gt;%CSIDL_MYVIDEO%* [*]&lt;/pattern&gt;</code></pre></td>
<td align="left"><pre class="syntax"><code>&lt;pattern type=&quot;File&quot;&gt;%CSIDL_MYVIDEO%* [*]&lt;/pattern&gt;</code></pre></td>
<td align="left"><p>Migrates My Videos for all users.</p></td>
</tr>
</tbody>
@ -176,19 +176,19 @@ This table describes the behavior in the following example .xml file.
</thead>
<tbody>
<tr class="odd">
<td align="left"><pre class="syntax" space="preserve"><code>&lt;pattern type=&quot;File&quot;&gt;%ProgramFiles%\USMTTestFolder* [USMTTestFile.txt]&lt;/pattern&gt;</code></pre></td>
<td align="left"><pre class="syntax"><code>&lt;pattern type=&quot;File&quot;&gt;%ProgramFiles%\USMTTestFolder* [USMTTestFile.txt]&lt;/pattern&gt;</code></pre></td>
<td align="left"><p>Migrates all instances of the file Usmttestfile.txt from all sub-directories under %ProgramFiles%\USMTTestFolder.</p></td>
</tr>
<tr class="even">
<td align="left"><pre class="syntax" space="preserve"><code>&lt;pattern type=&quot;File&quot;&gt;%ProgramFiles%\USMTDIRTestFolder* [<em>]&lt;/pattern&gt;</code></pre></td>
<td align="left"><pre class="syntax"><code>&lt;pattern type=&quot;File&quot;&gt;%ProgramFiles%\USMTDIRTestFolder* [<em>]&lt;/pattern&gt;</code></pre></td>
<td align="left"><p>Migrates the whole directory under %ProgramFiles%\USMTDIRTestFolder.</p></td>
</tr>
<tr class="odd">
<td align="left"><pre class="syntax" space="preserve"><code>&lt;pattern type=&quot;Registry&quot;&gt;HKCU\Software\USMTTESTKEY* [MyKey]&lt;/pattern&gt;</code></pre></td>
<td align="left"><pre class="syntax"><code>&lt;pattern type=&quot;Registry&quot;&gt;HKCU\Software\USMTTESTKEY* [MyKey]&lt;/pattern&gt;</code></pre></td>
<td align="left"><p>Migrates all instances of MyKey under HKCU\Software\USMTTESTKEY.</p></td>
</tr>
<tr class="even">
<td align="left"><pre class="syntax" space="preserve"><code>&lt;pattern type=&quot;Registry&quot;&gt;HKLM\Software\USMTTESTKEY* [</em>]&lt;/pattern&gt;</code></pre></td>
<td align="left"><pre class="syntax"><code>&lt;pattern type=&quot;Registry&quot;&gt;HKLM\Software\USMTTESTKEY* [</em>]&lt;/pattern&gt;</code></pre></td>
<td align="left"><p>Migrates the entire registry hive under HKLM\Software\USMTTESTKEY.</p></td>
</tr>
</tbody>

View File

@ -3465,7 +3465,7 @@ Syntax:
<li><p>Specify up to three &lt;role&gt; elements within a &lt;component&gt; — one "Binaries" role element, one "Settings" role element and one "Data" role element. These parameters do not change the migration behavior — their only purpose is to help you categorize the settings that you are migrating. You can nest these &lt;role&gt; elements, but each nested element must be of the same role parameter.</p></li>
<li><p>Specify one "Container" &lt;role&gt; element within a &lt;component&gt; element. In this case, you cannot specify any child &lt;rules&gt; elements, only other &lt;component&gt; elements. And each child &lt;component&gt; element must have the same type as that of parent &lt;component&gt; element. For example:</p></li>
</ol>
<pre class="syntax" space="preserve"><code>&lt;component context=&quot;UserAndSystem&quot; type=&quot;Application&quot;&gt;
<pre class="syntax"><code>&lt;component context=&quot;UserAndSystem&quot; type=&quot;Application&quot;&gt;
&lt;displayName _locID=&quot;migapp.msoffice2003&quot;&gt;Microsoft Office 2003&lt;/displayName&gt;
&lt;environment name=&quot;GlobalEnv&quot; /&gt;
&lt;role role=&quot;Container&quot;&gt;

View File

@ -30,109 +30,109 @@ The following table summarizes various Windows 10 deployment scenarios. The scen
- Traditional deployment methods use existing tools to deploy operating system images.<br>&nbsp;
<table border="0">
<tr><td align="center" style="width:16%; border:1;" bgcolor='#a0e4fa'><b>Category</b></td>
<td align="center" style="width:16%; border:1;" bgcolor='#a0e4fa'><b>Scenario</b></td>
<td align="center" style="width:16%; border:1;" bgcolor='#a0e4fa'><b>Description</b></td>
<td align="center" style="width:16%; border:1;" bgcolor='#a0e4fa'><b>More information</b></td></tr>
<tr><td align="center" bgcolor='#a0e4fa'><b>Category</b></td>
<td align="center" bgcolor='#a0e4fa'><b>Scenario</b></td>
<td align="center" bgcolor='#a0e4fa'><b>Description</b></td>
<td align="center" bgcolor='#a0e4fa'><b>More information</b></td></tr>
<tr><td align='center' valign='middle' style='width:16%; border:1;' rowspan="2">Modern</td>
<td align="center">
[Windows Autopilot](#windows-autopilot)</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
Customize the out-of-box-experience (OOBE) for your organization, and deploy a new system with apps and settings already configured.
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
<a href="/windows/deployment/windows-autopilot/windows-10-autopilot">Overview of Windows Autopilot</a>
</td>
</tr>
<tr>
<td align="center" style="width:16%; border:1;">
<td align="center">
[In-place upgrade](#in-place-upgrade)
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
Use Windows Setup to update your OS and migrate apps and settings. Rollback data is saved in Windows.old.
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
<a href="/windows/deployment/deploy-windows-mdt/upgrade-to-windows-10-with-the-microsoft-deployment-toolkit">Perform an in-place upgrade to Windows 10 with MDT</a><br><a href="/windows/deployment/deploy-windows-cm/upgrade-to-windows-10-with-configuraton-manager">Perform an in-place upgrade to Windows 10 using Configuration Manager</a>
</td>
</tr>
<tr>
<td align="center" style="width:16%; border:1;" rowspan="3">
<td align="center" rowspan="3">
Dynamic
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
[Subscription Activation](#windows-10-subscription-activation)
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
Switch from Windows 10 Pro to Enterprise when a subscribed user signs in.
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
<a href="/windows/deployment/windows-10-enterprise-subscription-activation">Windows 10 Subscription Activation</a>
</td>
</tr>
<tr>
<td align="center" style="width:16%; border:1;">
<td align="center">
[AAD / MDM](#dynamic-provisioning)
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
The device is automatically joined to AAD and configured by MDM.
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
<a href="/windows/client-management/mdm/azure-active-directory-integration-with-mdm">Azure Active Directory integration with MDM</a>
</td>
</tr>
<tr>
<td align="center" style="width:16%; border:1;">
<td align="center">
[Provisioning packages](#dynamic-provisioning)
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
Using the Windows Imaging and Configuration Designer tool, create provisioning packages that can be applied to devices.
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
<a href="/windows/configuration/configure-devices-without-mdm">Configure devices without MDM</a>
</td>
</tr>
<tr>
<td align="center" style="width:16%; border:1;" rowspan="3">
<td align="center" rowspan="3">
Traditional
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
[Bare metal](#new-computer)
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
Deploy a new device, or wipe an existing device and deploy with a fresh image.
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
<a href="/windows/deployment/deploy-windows-mdt/deploy-a-windows-10-image-using-mdt">Deploy a Windows 10 image using MDT</a><br><a href="/windows/deployment/deploy-windows-cm/deploy-windows-10-using-pxe-and-configuration-manager">Deploy Windows 10 using PXE and Configuration Manager</a>
</td>
</tr>
<tr>
<td align="center" style="width:16%; border:1;">
<td align="center">
[Refresh](#computer-refresh)
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
Also called wipe and load. Redeploy a device by saving the user state, wiping the disk, then restoring the user state.
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
<a href="/windows/deployment/deploy-windows-mdt/refresh-a-windows-7-computer-with-windows-10">Refresh a Windows 7 computer with Windows 10</a><br><a href="/windows/deployment/deploy-windows-cm/refresh-a-windows-7-client-with-windows-10-using-configuration-manager">Refresh a Windows 7 SP1 client with Windows 10 using Configuration Manager</a>
</td>
</tr>
<tr>
<td align="center" style="width:16%; border:1;">
<td align="center">
[Replace](#computer-replace)
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
Replace an existing device with a new one by saving the user state on the old device and then restoring it to the new device.
</td>
<td align="center" style="width:16%; border:1;">
<td align="center">
<a href="/windows/deployment/deploy-windows-mdt/replace-a-windows-7-computer-with-a-windows-10-computer">Replace a Windows 7 computer with a Windows 10 computer</a><br><a href="/windows/deployment/deploy-windows-cm/replace-a-windows-7-client-with-windows-10-using-configuration-manager">Replace a Windows 7 SP1 client with Windows 10 using Configuration Manager</a>
</td>
</tr>

View File

@ -46,7 +46,7 @@ Topics and procedures in this guide are summarized in the following table. An es
<br>
<div style='font-size:9.0pt'>
<div>
<table border="1" cellspacing="0" cellpadding="0">
<tr><td BGCOLOR="#a0e4fa"><B>Topic</B><td BGCOLOR="#a0e4fa"><B>Description</B><td BGCOLOR="#a0e4fa"><B>Time</B>
@ -226,8 +226,8 @@ A reference image serves as the foundation for Windows 10 devices in your organi
26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands:
<div style='font-size:8.0pt'>
<pre style="overflow-y: visible">
<div>
<pre>
New-VM REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB
Set-VMMemory REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20

View File

@ -55,7 +55,7 @@ Topics and procedures in this guide are summarized in the following table. An es
<br>
<div style='font-size:9.0pt'>
<div>
<table border="1" cellspacing="0" cellpadding="0">
<tr><TD BGCOLOR="#a0e4fa"><font color="#000000"><B>Topic</B></font></td><TD BGCOLOR="#a0e4fa"><font color="#000000"><B>Description</B></font></td><TD BGCOLOR="#a0e4fa"><font color="#000000"><B>Time</B></font></td></tr>
@ -83,7 +83,7 @@ One computer that meets the hardware and software specifications below is requir
Hardware requirements are displayed below:
<div style='font-size:9.0pt'>
<div>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
@ -179,7 +179,7 @@ Starting with Windows 8, the host computers microprocessor must support secon
1. To verify your computer supports SLAT, open an administrator command prompt, type **systeminfo**, press ENTER, and review the section displayed at the bottom of the output, next to Hyper-V Requirements. See the following example:
<pre style="overflow-y: visible">
<pre>
C:\>systeminfo
...
@ -195,7 +195,7 @@ Starting with Windows 8, the host computers microprocessor must support secon
You can also identify Hyper-V support using [tools](/archive/blogs/taylorb/hyper-v-will-my-computer-run-hyper-v-detecting-intel-vt-and-amd-v) provided by the processor manufacturer, the [msinfo32](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc731397(v=ws.11)) tool, or you can download the [coreinfo](/sysinternals/downloads/coreinfo) utility and run it, as shown in the following example:
<pre style="overflow-y: visible">
<pre>
C:\>coreinfo -v
Coreinfo v3.31 - Dump information on system CPU and memory topology
@ -214,11 +214,11 @@ Starting with Windows 8, the host computers microprocessor must support secon
2. The Hyper-V feature is not installed by default. To install it, open an elevated Windows PowerShell window and type the following command:
<pre style="overflow-y: visible">Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All</pre>
<pre>Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All</pre>
This command works on all operating systems that support Hyper-V, but on Windows Server operating systems you must type an additional command to add the Hyper-V Windows PowerShell module and the Hyper-V Manager console. This command will also install Hyper-V if it isn't already installed, so if desired you can just type the following command on Windows Server 2012 or 2016 instead of using the Enable-WindowsOptionalFeature command:
<pre style="overflow-y: visible">Install-WindowsFeature -Name Hyper-V -IncludeManagementTools</pre>
<pre>Install-WindowsFeature -Name Hyper-V -IncludeManagementTools</pre>
When you are prompted to restart the computer, choose **Yes**. The computer might restart more than once. After installation is complete, you can open Hyper-V Manager by typing **virtmgmt.msc** at an elevated command prompt.
@ -256,7 +256,7 @@ After completing these steps, you will have three files in the **C:\VHD** direct
The following displays the procedures described in this section, both before and after downloading files:
<pre style="overflow-y: visible">
<pre>
C:>mkdir VHD
C:>cd VHD
C:\VHD&gt;ren 9600*.vhd 2012R2-poc-1.vhd
@ -301,7 +301,7 @@ If you have a PC available to convert to VM (computer 2):
When creating a VM in Hyper-V, you must specify either generation 1 or generation 2. The following table describes requirements for these two types of VMs.
<div style='font-size:9.0pt'>
<div>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
@ -331,13 +331,13 @@ If the PC is running a 32-bit OS or the OS is Windows 7, it must be converted to
- To determine the OS and architecture of a PC, type **systeminfo** at a command prompt and review the output next to **OS Name** and **System Type**.
- To determine the partition style, open a Windows PowerShell prompt on the PC and type the following command:
<pre style="overflow-y: visible">
<pre>
Get-WmiObject -Class Win32_DiskPartition | Select-Object -Property SystemName,Caption,Type
</pre>
If the **Type** column does not indicate GPT, then the disk partition format is MBR ("Installable File System" = MBR). In the following example, the disk is GPT:
<pre style="overflow-y: visible">
<pre>
PS C:> Get-WmiObject -Class Win32_DiskPartition | Select-Object -Property SystemName,Caption,Type
SystemName Caption Type
@ -348,7 +348,7 @@ USER-PC1 Disk #0, Partition #1 GPT
On a computer running Windows 8 or later, you can also type **Get-Disk** at a Windows PowerShell prompt to discover the partition style. The default output of this cmdlet displays the partition style for all attached disks. Both commands are displayed below. In this example, the client computer is running Windows 8.1 and uses a GPT style partition format:
<pre style="overflow-y: visible">
<pre>
PS C:> Get-WmiObject -Class Win32_DiskPartition | Select-Object -Property SystemName,Caption,Type
SystemName Caption Type
@ -372,7 +372,7 @@ Number Friendly Name OperationalStatus Tota
The following table displays the Hyper-V VM generation to choose based on the OS, architecture, and partition style. Links to procedures to create the corresponding VMs are included.
<div style='font-size:9.0pt'>
<div>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
@ -455,7 +455,7 @@ Notes:<BR>
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:
<pre style="overflow-y: visible">
<pre>
C:\vhd>dir /B
2012R2-poc-1.vhd
2012R2-poc-2.vhd
@ -471,7 +471,7 @@ Notes:<BR>
2. On the computer you wish to convert, open an elevated command prompt and type the following command:
<pre style="overflow-y: visible">mountvol s: /s</pre>
<pre>mountvol s: /s</pre>
This command temporarily assigns a drive letter of S to the system volume and mounts it. If the letter S is already assigned to a different volume on the computer, then choose one that is available (ex: mountvol z: /s).
@ -488,7 +488,7 @@ Notes:<BR>
6. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHDX file (PC1.vhdx) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory:
<pre style="overflow-y: visible">
<pre>
C:\vhd>dir /B
2012R2-poc-1.vhd
2012R2-poc-2.vhd
@ -512,7 +512,7 @@ Notes:<BR>
5. When the Disk2vhd utility has completed converting the source computer to a VHD, copy the VHD file (w7.vhd) to your Hyper-V host in the C:\VHD directory. There should now be four files in this directory:
<pre style="overflow-y: visible">
<pre>
C:\vhd>dir /B
2012R2-poc-1.vhd
2012R2-poc-2.vhd
@ -531,7 +531,7 @@ Notes:<BR>
To ensure that enhanced session mode is enabled on the Hyper-V host, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host:
<pre style="overflow-y: visible">Set-VMhost -EnableEnhancedSessionMode $TRUE</pre>
<pre>Set-VMhost -EnableEnhancedSessionMode $TRUE</pre>
>If enhanced session mode was not previously enabled, close any existing virtual machine connections and re-open them to enable access to enhanced session mode. As mentioned previously: instructions to "type" commands provided in this guide can be typed, but the preferred method is to copy and paste these commands. Most of the commands to this point in the guide have been brief, but many commands in sections below are longer and more complex.
@ -541,7 +541,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
1. To add available space for the partition, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host:
<pre style="overflow-y: visible">
<pre>
Resize-VHD -Path c:\VHD\2012R2-poc-2.vhd -SizeBytes 100GB
$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
@ -549,7 +549,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
2. Verify that the mounted VHD drive is resized to 100 GB, and then dismount the drive:
<pre style="overflow-y: visible">
<pre>
Get-Volume -DriveLetter $x
Dismount-VHD -Path c:\VHD\2012R2-poc-2.vhd</pre>
@ -563,7 +563,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
&nbsp;&nbsp;&nbsp;C) Replace each instance of "poc-external" used in this guide with the name of your existing external virtual switch<BR>
If you choose B) or C), then do not run the second command below.
<pre style="overflow-y: visible">
<pre>
New-VMSwitch -Name poc-internal -SwitchType Internal -Notes "PoC Network"
New-VMSwitch -Name poc-external -NetAdapterName (Get-NetAdapter |?{$_.Status -eq "Up" -and !$_.Virtual}).Name -Notes "PoC External"
</pre>
@ -574,7 +574,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
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:
<pre style="overflow-y: visible">
<pre>
(Get-VMHostNumaNode).MemoryAvailable
</pre>
@ -582,7 +582,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
3. Determine the available memory for VMs by dividing the available RAM by 4. For example:
<pre style="overflow-y: visible">
<pre>
(Get-VMHostNumaNode).MemoryAvailable/4
2775.5
</pre>
@ -592,7 +592,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
4. At the elevated Windows PowerShell prompt, type the following command to create two new VMs. Other VMs will be added later.
>**Important**: Replace the value of 2700MB for $maxRAM in the first command below with the RAM value that you calculated in the previous step.
<pre style="overflow-y: visible">
<pre>
$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
@ -609,7 +609,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
To create a generation 1 VM (using c:\vhd\w7.vhdx):
<pre style="overflow-y: visible">
<pre>
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
@ -617,7 +617,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
To create a generation 2 VM (using c:\vhd\PC1.vhdx):
<pre style="overflow-y: visible">
<pre>
New-VM -Name "PC1" -Generation 2 -VHDPath c:\vhd\PC1.vhdx -SwitchName poc-internal
Set-VMMemory -VMName "PC1" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes $maxRAM -Buffer 20
Enable-VMIntegrationService -Name "Guest Service Interface" -VMName PC1
@ -629,7 +629,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
First, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host to create a temporary VHD that will be used to save the OS image. Do not forget to include a pipe (|) at the end of the first five commands:
<pre style="overflow-y: visible">
<pre>
New-VHD -Path c:\vhd\d.vhd -SizeBytes 1TB |
Mount-VHD -Passthru |
Get-Disk -Number {$_.DiskNumber} |
@ -641,7 +641,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
Next, create the PC1 VM with two attached VHDs, and boot to DVD ($maxram must be defined previously using the same Windows PowerShell prompt):
<pre style="overflow-y: visible">
<pre>
New-VM -Name "PC1" -VHDPath c:\vhd\w7.vhd -SwitchName poc-internal
Add-VMHardDiskDrive -VMName PC1 -Path c:\vhd\d.vhd
Set-VMDvdDrive -VMName PC1 -Path c:\vhd\w10-enterprise.iso
@ -659,13 +659,13 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
4. Click **Command Prompt**.
5. Type the following command to save an image of the OS drive:
<pre style="overflow-y: visible">
<pre>
dism /Capture-Image /ImageFile:D:\c.wim /CaptureDir:C:\ /Name:Drive-C
</pre>
6. Wait for the OS image to complete saving, and then type the following commands to convert the C: drive to MBR:
<pre style="overflow-y: visible">
<pre>
diskpart
select disk 0
clean
@ -681,7 +681,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
7. Type the following commands to restore the OS image and boot files:
<pre style="overflow-y: visible">
<pre>
dism /Apply-Image /ImageFile:D:\c.wim /Index:1 /ApplyDir:C:\
bcdboot c:\windows
exit
@ -691,7 +691,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
9. Click **Ctrl+Alt+Del**, and then in the bottom right corner, click **Shut down**.
10. Type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host to remove the temporary disks and drives from PC1:
<pre style="overflow-y: visible">
<pre>
Remove-VMHardDiskDrive -VMName PC1 -ControllerType IDE -ControllerNumber 0 -ControllerLocation 1
Set-VMDvdDrive -VMName PC1 -Path $null
</pre>
@ -700,7 +700,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
1. At an elevated Windows PowerShell prompt on the Hyper-V host, start the first Windows Server VM and connect to it by typing the following commands:
<pre style="overflow-y: visible">
<pre>
Start-VM DC1
vmconnect localhost DC1
</pre>
@ -710,7 +710,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
4. Right-click **Start**, point to **Shut down or sign out**, and click **Sign out**. The VM connection will reset and a new connection dialog box will appear enabling you to choose a custom display configuration. Select a desktop size, click **Connect** and sign in again with the local Administrator account. Note: Signing in this way ensures that [enhanced session mode](/windows-server/virtualization/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:
<pre style="overflow-y: visible">
<pre>
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
@ -722,19 +722,19 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
6. Install the Active Directory Domain Services role by typing the following command at an elevated Windows PowerShell prompt:
<pre style="overflow-y: visible">
<pre>
Install-WindowsFeature -Name AD-Domain-Services -IncludeAllSubFeature -IncludeManagementTools
</pre>
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:
<pre style="overflow-y: visible">
<pre>
Restart-Computer
</pre>
8. When DC1 has rebooted, sign in again and open an elevated Windows PowerShell prompt. Now you can promote the server to be a domain controller. The directory services restore mode password must be entered as a secure string. Type the following commands at the elevated Windows PowerShell prompt:
<pre style="overflow-y: visible">
<pre>
$pass = "pass@word1" | ConvertTo-SecureString -AsPlainText -Force
Install-ADDSForest -DomainName contoso.com -InstallDns -SafeModeAdministratorPassword $pass -Force
</pre>
@ -743,7 +743,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
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 suppress the post-DHCP-install alert:
<pre style="overflow-y: visible">
<pre>
Add-DnsServerPrimaryZone -NetworkID "192.168.0.0/24" -ReplicationScope Forest
Add-WindowsFeature -Name DHCP -IncludeManagementTools
netsh dhcp add securitygroups
@ -754,7 +754,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
10. Next, add a DHCP scope and set option values:
<pre style="overflow-y: visible">
<pre>
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
</pre>
@ -763,13 +763,13 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
11. The DNS server role will also be installed on the member server, SRV1, at 192.168.0.2 so that we can forward DNS queries from DC1 to SRV1 to resolve Internet names without having to configure a forwarder outside the PoC network. Since the IP address of SRV1 already exists on DC1's network adapter, it will be automatically added during the DCPROMO process. To verify this server-level DNS forwarder on DC1, type the following command at an elevated Windows PowerShell prompt on DC1:
<pre style="overflow-y: visible">
<pre>
Get-DnsServerForwarder
</pre>
The following output should be displayed:
<pre style="overflow-y: visible">
<pre>
UseRootHint : True
Timeout(s) : 3
EnableReordering : True
@ -779,7 +779,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
If this output is not displayed, you can use the following command to add SRV1 as a forwarder:
<pre style="overflow-y: visible">
<pre>
Add-DnsServerForwarder -IPAddress 192.168.0.2
</pre>
@ -791,7 +791,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
On DC1, open an elevated Windows PowerShell prompt and type the following commands:
<pre style="overflow-y: visible">
<pre>
New-ADUser -Name User1 -UserPrincipalName user1 -Description "User account" -AccountPassword (ConvertTo-SecureString "pass@word1" -AsPlainText -Force) -ChangePasswordAtLogon $false -Enabled $true
New-ADUser -Name MDT_BA -UserPrincipalName MDT_BA -Description "MDT Build Account" -AccountPassword (ConvertTo-SecureString "pass@word1" -AsPlainText -Force) -ChangePasswordAtLogon $false -Enabled $true
New-ADUser -Name CM_JD -UserPrincipalName CM_JD -Description "Configuration Manager Join Domain Account" -AccountPassword (ConvertTo-SecureString "pass@word1" -AsPlainText -Force) -ChangePasswordAtLogon $false -Enabled $true
@ -810,7 +810,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
13. If the PC1 VM is not started yet, using an elevated Windows PowerShell prompt on the Hyper-V host, start the client VM (PC1), and connect to it:
<pre style="overflow-y: visible">
<pre>
Start-VM PC1
vmconnect localhost PC1
</pre>
@ -866,7 +866,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
18. Minimize the PC1 window and switch to the Hyper-V host computer. Open an elevated Windows PowerShell ISE window on the Hyper-V host (right-click Windows PowerShell and then click **Run ISE as Administrator**) and type the following commands in the (upper) script editor pane:
<pre style="overflow-y: visible">
<pre>
(Get-WmiObject Win32_ComputerSystem).UnjoinDomainOrWorkgroup($null,$null,0)
$pass = "pass@word1" | ConvertTo-SecureString -AsPlainText -Force
$user = "contoso\administrator"
@ -884,7 +884,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
19. Click **File**, click **Save As**, and save the commands as **c:\VHD\pc1.ps1** on the Hyper-V host.
20. In the (lower) terminal input window, type the following commands to enable Guest Service Interface on PC1 and then use this service to copy the script to PC1:
<pre style="overflow-y: visible">
<pre>
Enable-VMIntegrationService -VMName PC1 -Name "Guest Service Interface"
Copy-VMFile "PC1" -SourcePath "C:\VHD\pc1.ps1" -DestinationPath "C:\pc1.ps1" -CreateFullPath -FileSource Host
</pre>
@ -895,7 +895,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
21. On PC1, type the following commands at an elevated Windows PowerShell prompt:
<pre style="overflow-y: visible">
<pre>
Get-Content c:\pc1.ps1 | powershell.exe -noprofile -
</pre>
@ -906,7 +906,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
23. 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.
24. On the Hyper-V host computer, at an elevated Windows PowerShell prompt, type the following commands:
<pre style="overflow-y: visible">
<pre>
Start-VM SRV1
vmconnect localhost SRV1
</pre>
@ -915,7 +915,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
26. 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.
27. Open an elevated Windows PowerShell prompt on SRV1 and type the following commands:
<pre style="overflow-y: visible">
<pre>
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
@ -927,7 +927,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
28. Wait for the computer to restart, sign in again, then type the following commands at an elevated Windows PowerShell prompt:
<pre style="overflow-y: visible">
<pre>
$pass = "pass@word1" | ConvertTo-SecureString -AsPlainText -Force
$user = "contoso\administrator"
$cred = New-Object System.Management.Automation.PSCredential($user,$pass)
@ -937,7 +937,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
29. 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:
<pre style="overflow-y: visible">
<pre>
Install-WindowsFeature -Name DNS -IncludeManagementTools
Install-WindowsFeature -Name WDS -IncludeManagementTools
Install-WindowsFeature -Name Routing -IncludeManagementTools
@ -947,7 +947,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
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:
<pre style="overflow-y: visible">
<pre>
Get-NetAdapter | ? status -eq up | Get-NetIPAddress -AddressFamily IPv4 | ft IPAddress, InterfaceAlias
IPAddress InterfaceAlias
@ -964,7 +964,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
31. To configure SRV1 with routing capability for the PoC network, type or paste the following commands at an elevated Windows PowerShell prompt on SRV1:
<pre style="overflow-y: visible">
<pre>
Install-RemoteAccess -VpnType Vpn
cmd /c netsh routing ip nat install
cmd /c netsh routing ip nat add interface name="Ethernet 2" mode=FULL
@ -974,13 +974,13 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
32. 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:
<pre style="overflow-y: visible">
<pre>
Add-DnsServerConditionalForwarderZone -Name contoso.com -MasterServers 192.168.0.1
</pre>
33. 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:
<pre style="overflow-y: visible">
<pre>
ping www.microsoft.com
</pre>
@ -988,13 +988,13 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
**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:
<pre style="overflow-y: visible">
<pre>
Add-DnsServerForwarder -IPAddress (Get-DnsClientServerAddress -InterfaceAlias "Ethernet 2").ServerAddresses
</pre>
34. If DNS and routing are both working correctly, you will see the following on DC1 and PC1 (the IP address might be different, but that is OK):
<pre style="overflow-y: visible">
<pre>
PS C:\> ping www.microsoft.com
Pinging e2847.dspb.akamaiedge.net [23.222.146.170] with 32 bytes of data:
@ -1012,7 +1012,7 @@ The second Windows Server 2012 R2 VHD needs to be expanded in size from 40GB to
35. Verify that all three VMs can reach each other, and the Internet. See [Appendix A: Verify the configuration](#appendix-a-verify-the-configuration) for more information.
36. 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:
<pre style="overflow-y: visible">
<pre>
runas /noprofile /env /user:administrator@contoso.com "cmd /c slmgr -rearm"
Restart-Computer
</pre>
@ -1025,7 +1025,7 @@ Use the following procedures to verify that the PoC environment is configured pr
1. On DC1, open an elevated Windows PowerShell prompt and type the following commands:
<pre style="overflow-y: visible">
<pre>
Get-Service NTDS,DNS,DHCP
DCDiag -a
Get-DnsServerResourceRecord -ZoneName contoso.com -RRType A
@ -1047,7 +1047,7 @@ Use the following procedures to verify that the PoC environment is configured pr
2. On SRV1, open an elevated Windows PowerShell prompt and type the following commands:
<pre style="overflow-y: visible">
<pre>
Get-Service DNS,RemoteAccess
Get-DnsServerForwarder
Resolve-DnsName -Server dc1.contoso.com -Name www.microsoft.com
@ -1063,7 +1063,7 @@ Use the following procedures to verify that the PoC environment is configured pr
3. On PC1, open an elevated Windows PowerShell prompt and type the following commands:
<pre style="overflow-y: visible">
<pre>
whoami
hostname
nslookup www.microsoft.com
@ -1082,7 +1082,7 @@ Use the following procedures to verify that the PoC environment is configured pr
<P>&nbsp;
<div style='font-size:9.0pt'>
<div>
<table border="1" cellspacing="0" cellpadding="0">
<tr><TD BGCOLOR="#a0e4fa"><font color="#000000"><B>Term</B></font>

View File

@ -185,7 +185,7 @@ After entering these commands, connect to the VM that you just created and wait
See the sample output below. In this sample, the VM is created under the **c:\autopilot** directory and the vmconnect.exe command is used (which is only available on Windows Server). If you installed Hyper-V on Windows 10, use Hyper-V Manager to connect to your VM.
<pre style="overflow-y: visible">
<pre>
PS C:\autopilot&gt; dir c:\iso