client has a program that is only XP compatible. they require all users (9 of them) to be able to login to any computer (9 computers) and run this app. all of the workstations are running Windows 7
setting up windows xp mode, their line of business application, and the printer takes about 15 minutes per user.
9 users x 9 computers = 81 'setups'. (calculates to roughly 20 hours)
originally the client stated that only certain users would be logging into certain computers, this amounted to ~15 setups. of course, the next day, i learn that they want all users to be able to logon to any computer and have access the XP-only app--this is after i had spent about 3-4 hours manually setting the original 15 profiles up.
after getting up from the mental blow--i gathered my self and went to work on a GPO. to make a long story short--i came up with this gameplan:
1. customize one of the Win7 XP Mode images (install the LOB app, printer)
2. use a GPO to copy this file out when a user logs on
3. create a shortcut on the users' desktop to launch the VM
to that end, i setup the following GPOs
1. copy image file to the machine upon login
2. copy over CreateVirtualMachine.wsf script to the workstation
3. bind the image file from step1 to the user profile using the script copied over in step2. i used a login script for this.
4. create a shortcut on the desktop that will launch the newly provisioned Image.
this seemed to do the trick, however--i did not account for the fact that since all the VMs would have the same NETBIOS name, the images would play havoc on the Win7 Host. we encountered "duplicate name exists on the network" messages, and "duplicate ip address.." messages. this effectively shutdown the network on the host OS.
so--that night, i went back to work. i needed a way for all the VMs to have a different NETBIOS names (all 81 of them). after much consternation i did some research and tried netdom.exe to no avail since these workstations were not joined to a domain. upon more digging, i found a utility that not only renames the computer, but has the ability to specify the new name using randomly generated characters--perfect!.
the batch file looked something like this:
comprename.exe 234398-XPM ?1?2?3?4-xp2
shutdown -r -t 1
i edited the RUNONCE registry key so my batch file would--well run once. the splash.rtf message basically tells the user that the computer is going to reboot, and instructs them to close the splash.rtf window once read. otherwise, the rest of the script will not process.
i found this method to work nicely. installing the driver and local printer for the tcp/ip network printer works around the flaky VPC print redirection.
the only downside to this solution is that your workstations will take about 3-4 minutes while the 1.5GB image file gets transferred over (my switch is 10/100). users will only have to wait once per machine, as subsequent logins will not require the file copy.
other things worth mentioning:
running the VM's in "Shared Networking" would obviate the need to rename all the VMs, but for whatever reason--when I deployed the and binded them to user profiles--it defaulted to natively using the host's NIC.
if you look at the settings of the default "Windows XP Mode" and click on the hard disk 1, you will notice there is a parent disk located @
C:\Program Files\Windows XP Mode\Windows XP Mode base.vhd
it took a while for this to sink into my mind. the 1.5GB image that i customized is actually a differencing disk! this means that not only does one need to install windows virtual pc, you need to also install the Windows XP Mode as well.
in terms of authentication--these users are just going to have to deal with inconvenience of manually entering in their credentials. the splash.rtm page will come in handy when i have to instruct them on how to do this down the road. since the VMs will usually be hibernated, i don't think this will be that big of a deal.
RunOnce Registry Key
Deploying Windows XP Mode
Windows XP Mode IT Pro Deployment Overview
Virtual PC Guy's Blog