Deploy to a Remotely Controlled Computer
Applies To: Windows 7, Windows Server 2008 R2
Note
This content applies to Windows 7. For Windows 8 content, see Windows Deployment with the Windows ADK.
A remotely controlled computer is a computer without a monitor, a keyboard, or a mouse (also called a headless computer). Because remotely controlled computers must be connected to a network, there are additional networking configurations that you must enable, such as enabling ports in the firewall and enabling remote desktop connections. Unattended installations are required for this type of computer configuration.
The instructions in this topic are for installing Windows Server® 2008 and Windows Server® 2008 R2. If you want to install a remotely controlled Windows® 7 or Windows Vista® computer, you must configure additional setting to prevent Windows® Welcome user interface pages from being displayed. For more information, see Automate Windows Welcome.
To create an answer file for a remotely controlled computer
Create a new answer file or update your existing answer file.
For more information about creating or updating an answer file, see Work with Answer Files in Windows SIM.
If you are creating an answer file for a Unified Extensible Firmware Interface (UEFI)-based computer, you must create additional partitions in your answer file. For more information, see Create UEFI-based Hard-Disk Partitions by Using Windows SIM. You must also ensure that the firmware of your EFI-based computer is configured to boot to EFI mode, and not to BIOS mode. Consult your firmware documentation for more information.
Add the following settings to your answer file in the listed configuration pass.
Component | Configuration pass |
---|---|
Microsoft-Windows-International-Core-WinPE |
windowsPE |
Microsoft-Windows-Setup/DiskConfiguration |
windowsPE |
Microsoft-Windows-Setup/UserData |
windowsPE |
Microsoft-Windows-Setup/ImageInstall |
windowsPE |
Microsoft-Windows-Shell-Setup |
specialize |
Microsoft-Windows-TerminalServices-LocalSessionManager |
specialize |
Microsoft-Windows-TerminalServices-RDP-WinStationExtensions |
specialize |
Networking-MPSSVC-Svc/FirewallGroup |
specialize |
Microsoft-Windows-Shell-Setup/OOBE |
oobeSystem |
Microsoft-Windows-Shell-Setup/UserAccounts/AdministratorPassword |
oobeSystem |
Microsoft-Windows-International-Core |
oobeSystem |
To configure the windowsPE settings
- Configure the language setting in the Microsoft-Windows-International-Core-WinPE component.
Component path | Setting and value |
---|---|
Microsoft-Windows-International-Core-WinPE/SetupUILanguage |
UILanguage=language |
Microsoft-Windows-International-Core-WinPE |
UILanguage=language |
- Configure the Microsoft-Windows-Setup node with the following setting.
Component path | Setting and value |
---|---|
Microsoft-Windows-Setup |
EnableNetwork=false Set this value to True if you are using a network share during unattended installation. |
Configure the disk partitions by using the Microsoft-Windows-Setup component. Right-click DiskConfiguration, and then select Insert New Disk.
In the DiskConfiguration node, right-click CreatePartitions, and then select Insert new CreatePartition. Repeat this step to create a second CreatePartition setting.
In the DiskConfiguration node, right-click ModifyPartitions, and then select Insert new ModifyPartition. Repeat this step to create a second ModifyPartition setting.
Configure the Microsoft-Windows-Setup/DiskConfiguration node with the following settings.
Component path | Setting and value |
---|---|
Microsoft-Windows-Setup/DiskConfiguration/Disk |
WillWipeDisk=true DiskID=0 Modify these values if you are deploying to a different hard disk configuration. |
Microsoft-Windows-Setup/DiskConfiguration/Disk/CreatePartitions/CreatePartition |
Extend=falseOrder=1 Size=300 Type=Primary Modify these values if you are deploying to a different hard disk configuration. |
Microsoft-Windows-Setup/DiskConfiguration/Disk/CreatePartitions/CreatePartition |
Order=2 Extend=true Type=Primary Modify these values if you are deploying to a different hard disk configuration. |
Microsoft-Windows-Setup/DiskConfiguration/Disk/ModifyPartitions/ModifyPartition |
Active=true Extend=false Format=NTFS Label=System Order=1 PartitionID=1 TypeID=0x27 Modify these values if you are deploying to a different hard disk configuration. |
Microsoft-Windows-Setup/DiskConfiguration/Disk/ModifyPartitions/ModifyPartition |
Extend=falseFormat=NTFS Label=Windows Letter=C Order=2 PartitionID=2 TypeID=0x7 Modify these values if you are deploying to a different hard disk configuration. |
Note
If you are creating an answer file for a Unified Extensible Firmware Interface (UEFI)-based computer, you must configure different partition types in your answer file. For more information, see Create UEFI-based Hard-Disk Partitions by Using Windows SIM.
In the Microsoft-Windows-Setup component, expand the ImageInstall node, and then expand the OSImage node.
Configure the Microsoft-Windows-Setup/ImageInstall/OSImage node with the following settings.
Component path | Setting and value |
---|---|
Microsoft-Windows-Setup/ImageInstall/OSImage/InstallTo |
DiskID=disk PartitionID=partition |
Right-click InstallFrom, and then select Insert New MetaData.
Configure the Microsoft-Windows-Setup/ImageInstall/OSImage/InstallFrom/MetaData node with the following settings.
Component path | Setting and value |
---|---|
Microsoft-Windows-Setup/ImageInstall/OSImage/InstallFrom/MetaData |
Key=image metadata identifier Value=image metadata value For example, Key=/IMAGE/INDEX Value=2 |
- Configure the Microsoft-Windows-Setup/UserData node with the following settings.
Component path | Setting and value |
---|---|
Microsoft-Windows-Setup/UserData/ProductKey |
ProductKey/Key=product_key ProductKey/WillShowUI=Never |
Microsoft-Windows-Setup/UserData |
AcceptEula=true |
To configure the specialize settings
- Configure Microsoft-Windows-Shell-Setup with the following settings.
Component path | Setting and value |
---|---|
Microsoft-Windows-Shell-Setup |
ComputerName=computername |
- Configure the Microsoft-Windows-TerminalServices-LocalSessionManager component with the following settings.
Component path | Setting and value |
---|---|
Microsoft-Windows-TerminalServices-LocalSessionManager |
fDenyTSConnections=false |
- Configure the Microsoft-Windows-TerminalServices-RDP-WinStationExtensions component with the following settings.
Component path | Setting and value |
---|---|
Microsoft-Windows-TerminalServices-RDP-WinStationExtensions |
UserAuthentication=0 |
In the answer file pane, right-click FirewallGroups, and then select Insert new Firewall Group.
Configure the Firewall Group with the following settings.
Component path | Setting and value |
---|---|
Networking-MPSSVC-Svc/FirewallGroups/FirewallGroup |
Active=true Group=Remote Desktop Key=EnableRemoteDesktop Profile=all |
To configure the oobeSystem settings
- Configure Microsoft-Windows-Shell-Setup with the following settings.
Component path | Setting and value |
---|---|
Microsoft-Windows-Shell-Setup/UserAccounts/AdministratorPassword |
Value=password |
Microsoft-Windows-Shell-Setup/OOBE |
HideEULAPage=true |
- Configure Microsoft-Windows-International-Core with the following settings.
Component path | Setting and value |
---|---|
Microsoft-Windows-International-Core |
InputLocale=language SystemLocale= language UILanguage= language UserLocale=language |
You are now ready to install your Windows image.
Note
If you run the Sysprep command with the /generalize option on your Windows image, some settings that are required to prevent user interface pages from displaying might be reset. When the computer boots after the generalize process, the installation might display Windows Welcome user interface pages. To prevent the user interface pages from displaying, use an answer file with the Sysprep command to hide the user interface pages during Windows Welcome. For more information, see Automate Windows Welcome. For more information about using an answer file with the Sysprep tool, see How Sysprep Works.
Sample Answer File
A sample answer file is provided below. In some cases, settings configured with -INSERT VALUE HERE-
need to be completed with your specific values.
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>2</PartitionID>
</InstallTo>
<InstallFrom>
<MetaData wcm:action="add">
<Key>/IMAGE/INDEX</Key>
<Value>-INSERT VALUE HERE-</Value>
</MetaData>
</InstallFrom>
</OSImage>
</ImageInstall>
<UserData>
<ProductKey>
<Key>-INSERT VALUE HERE-</Key>
<WillShowUI>OnError</WillShowUI>
</ProductKey>
<AcceptEula>true</AcceptEula>
</UserData>
<DiskConfiguration>
<Disk wcm:action="add">
<CreatePartitions>
<CreatePartition wcm:action="add">
<Extend>false</Extend>
<Order>1</Order>
<Size>300</Size>
<Type>Primary</Type>
</CreatePartition>
<CreatePartition wcm:action="add">
<Order>2</Order>
<Extend>true</Extend>
<Type>Primary</Type>
</CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Extend>false</Extend>
<Format>NTFS</Format>
<Label>System</Label>
<Order>1</Order>
<PartitionID>1</PartitionID>
<TypeID>0x27</TypeID>
</ModifyPartition>
<ModifyPartition wcm:action="add">
<Extend>false</Extend>
<Format>NTFS</Format>
<Label>Windows</Label>
<Letter>C</Letter>
<Order>2</Order>
<PartitionID>2</PartitionID>
<TypeID>0x7</TypeID>
</ModifyPartition>
</ModifyPartitions>
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
</Disk>
</DiskConfiguration>
</component>
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SetupUILanguage>
<UILanguage>en-us</UILanguage>
</SetupUILanguage>
<InputLocale>en-us</InputLocale>
<UILanguage>en-us</UILanguage>
<UILanguageFallback>en-us</UILanguageFallback>
<UserLocale>en-us</UserLocale>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OOBE>
<HideEULAPage>true</HideEULAPage>
</OOBE>
<AutoLogon>
<Password>
<Value>-INSERT VALUE HERE-</Value>
<PlainText>true</PlainText>
</Password>
<LogonCount>9</LogonCount>
<Username>Administrator</Username>
<Enabled>true</Enabled>
</AutoLogon>
<UserAccounts>
<AdministratorPassword>
<Value>-INSERT VALUE HERE-</Value>
<PlainText>true</PlainText>
</AdministratorPassword>
</UserAccounts>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<fDenyTSConnections>false</fDenyTSConnections>
</component>
<component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<FirewallGroups>
<FirewallGroup wcm:action="add" wcm:keyValue="EnableRemoteDesktop">
<Active>true</Active>
<Group>Remote Desktop</Group>
<Profile>all</Profile>
</FirewallGroup>
</FirewallGroups>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>Headless</ComputerName>
</component>
</settings>
</unattend>