Supress the network location prompt on an unattended installation

In Windows Vista and 7 when doing an unattended installation, there is a bug in the process in which the network location specified in the unattended xml file does not get applied. Here's how to supress that dialog.

The easiest way to do this is by adding a RunSynchronousCommand to RunSynchronous section in the x86_Microsoft-Windows-Deployment_neutral block in the specialize phase of your unattend.xml file.

To stop the Network Locator Prompt from appearing add a fourth RunSynchronous command to RunSynchronous block (specialize) with the following details:

  • In the Description field, enter something to identify the task - like "DisableNetworkLocationPrompt".
  • In the Order field enter 4 (if you are editing the BDD 2007 created unattend.xml file) or 1 if it is your first RunSynchronous command.
  • In the Path field enter the command line (as one complete line) - reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\FirstNetwork" /v Category /t REG_DWORD /d 00000001 /f
  • In the WillReboot field enter Never
When this command runs as part of the build or deploy process, the Network Location Prompt will be suppressed.

Edit: After trying a few things on Windows 7, I found that the above didn't work. It may work on Vista, but not 7. Here's the fix that worked for 7:
In the Path field enter this command line instead: reg add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NewNetworkWindowOff /f"

Supressing the local user account setup when deploying Windows 7

A nice tip from the recently released WAIK for Windows 7 RC documentation:
(I used workaround 1)

Help update: Suppressing the user accounts–creation page in Windows Welcome.

The user accounts–creation page in Windows Welcome is suppressed if a user or a group is added to a local security group. Add a user or a group to a local security group by doing one of the following:

* Create a local user.
* Add a domain user to a local security group with the Microsoft-Windows-Shell-Setup | UserAccounts unattended installation setting.

To suppress the user accounts–creation page in Windows Welcome, without creating a local user, use one of the following workarounds:

Workaround 1
If the computer is already joined to a domain, use the following XML example to add the Domain Users security group to the Local Users security group.

<DomainAccounts>
<DomainAccountList wcm:action="add">
<DomainAccount wcm:action="add">
<Group>Users</Group>
<Name>Domain Users</Name>
</DomainAccount>
<Domain>FabrikamDomain</Domain>
</DomainAccountList>
</DomainAccounts>

Because joining a domain automatically adds the Domain Users security group to the Local Users security group, the DomainAccounts command does not affect the membership of the Local Users group. However, using this XML example to join a domain will also suppress the user accounts–creation page in Windows Welcome.

Workaround 2
Use the sysprep /quit command to set the following registry value to 1:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OOBE\UnattendCreatedUser

Remove Office 2007 Opt-In Screen via Group Policy Registry Entry

Add the following reg entries to Group Policy under User Configuration > Preferences > Windows Settings > Registry

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\U ser Settings\Product code]
"Count"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\C ommon\General]
"Authorized"=dword:00009904
"ShownOptIn"=dword:00000001

Adding drivers to a Windows 7 Boot Image

I'm starting to play around with Windows 7 deployment using the WAIK that was just released yesterday for the Windows 7 RC. I hope to post more about deployment in general, but one of the things that changes from Vista to 7 is the introduction of a new tool - DISM. Let's say you've created a Windows 7 boot image from which you want to capture or deploy a reference image. You'll need to add drivers (specifically NIC drivers) to the image for the machines you want to deploy on. Here's how to do it.

First, check the image and make sure you are loading the correct index. (you can find the file name by right clicking on it in the WDS console and going to properties). Next you mount the image to a temporary directory. You then add the driver to the image using the /add-driver command. Finally, you commit the changes to the image. That's it!

dism /get-wiminfo /wimfile:I:\images\boot\x86\images\boot.wim
dism /mount-wim /wimfile:I:\images\boot\x86\images\boot.wim /index:2 /mountdir:"X:\temp\mount"
dism /image:"d:\temp\mount" /add-driver /driver:X:\driverdir\driver.inf
dism /unmount-wim /mountdir:d:\temp\mount /commit