Windows 7 - Deploying Printers via Group Policy Preferences

I've begun testing Windows 7 deployment on our network and came across a new setting which effects deploying printers using Group Policy Preferences. The setting is under Computer Configuration --> Policies --> Administrative Templates --> Printers. It is named "Extend Point and Print connection to search Windows update."

If for some reason you don't have a Windows 7 driver on your server or in the image, you can enable this setting to allow the client machine to pull a driver down from Windows Update. This combined with disabling the security prompts under the "Point and Print Restrictions" will allow seamless installation of deployed printers for all users on the network.

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

X-mouse functionality in vista

This is another one of those usability tips that makes my work flow in Vista a little better, in my opinion. If you don’t know what x-mouse is, it is basically a mode in which the window focus follows your mouse cursor. It's commonly used in Linux. I like it because it makes it easer to type in windows that may have other windows on top of them and it requires less clicking to change focus while working.

This was actually part of XP’s PowerToys, but as they still haven’t released PowerToys for Vista, it’s a good way to get it.

1. Open up Regedit and browse to [HKEY_CURRENT_USER\Control Panel\Desktop]
2. Look for the REG_Binary key "UserPreferencesMask" in the right pane. You will see its value as a string of hex numbers. Mine was hex 98,12,03,80,10,00,00,00.
3. Next you need to add the hex value '1' to the first hex value on the left in the hex string found in step 2. Using the hex string I have as an example: 98h + 41h = d9h. You can use the Calculator (in scientific mode) in Vista to do this simple addition. My new hex value, using my example, string now becomes d9,12,03,80,10,00,00,00
4. Next, Right click on the "UserPreferencesMask" key and choose 'Modify',then alter the original value of "UserPreferencesMask" to your new value found in step 3.
5. Next, at the same [HKEY_CURRENT_USER\Control Panel\Desktop] registry location right click in the right pane and choose to add a new DWORD (32-bit) value and name this value "ActiveWndTrkTimeout". Next right click on your new "ActiveWndTrkTimeout" DWORD and choose modify and put in the time (in milliseconds) that suits you for the mouse switching between windows.
6. Close Regedit and re-boot.
Now for multiple windows open on the desktop, the window the mouse pointer is on will become the active window and come to the foreground without having to click on it. You may need to play with the value for "ActiveWndTrkTimeout" a little to get it correct. These are the values (below) I used to test with and the time for the mouse to remain over a window before its bought forward is 3 seconds (3000 miliseconds). Experiment with your time and find something that suits you:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Desktop]
"UserPreferencesMask"=hex:d9,12,03,80,10,00,00,00
"ActiveWndTrkTimeout"=dword:00000bb89F

Vista Taskbar Order

| 0 comments

I've enjoyed using Vista for a long time now, but as with every OS there are some things that I like to tweak to make the experience just right. I found this tip over at the Shell:Revealed blog a while back and use it on my system. I have certain programs open every day and like keeping them ordered the same way in the taskbar all the time. To ensure they always stay where you want, do the following:

Create a file named taskbar.ini in the following location:

C:\Users\username\AppData\Roaming\Microsoft\Windows\explorer\

With info like so:

[ApplicationSortOrder]
outlook.exe=1
firefox.exe=2

Listing the exe names in the order you want to sort them. After a reboot the programs will be ordered just how you'd like every time.