Windows 7 - a REALLY unattended installation?
Has anyone managed to get a truly unattended installation of Windows 7 working?
I don't want it to prompt me to accept the region/keyboard, etc. I don't want it to prompt me to create an account and name the PC. I want it to join the domain, and use the serial number of the computer as the name. I want it to come up, on the domain, and ready for a domain user to login. This was pretty simple with the old sysprep from XP, but this process isn't nearly as intuitive. I thought the whole point of creating the unattend.xml was so that it would actually be UNATTENDED. Silly me...
What do I have to do to actually get it to be configured from the get go like I could with XP? I'm sure there's something i'm missing in the unattend.xml that will fix this, but there are an insane amount of settings in there, some that work, some that don't, some that are depreciated. Has anyone figured out the right ones to use?
Comments
This is probably the page you
This is probably the page you need:
http://technet.microsoft.com/en-us/library/dd74454...
That will give you the information that you need in your sysprep file for doing a sysprep to prepare for an unattended installation. Specifically, when you're sysprep a system that you're going to restart in WinPE to pull as an image, you use these tags for sysprep: sysprep /generalize /oobe /shutdown /unattend:"%YOURSYSPREPFILE.xml%"
Essentially, a sysprep file for a prepared system from which you're going to make an image for an unattended install needs certain things to be configured in passes 4 and 7, and will ignore settings in the other answer file passes. To give you an idea, this is the file I use:
-----
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="%MYTOKEN%" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>en-us</InputLocale>
<SystemLocale>en-us</SystemLocale>
<UILanguage>en-us</UILanguage>
<UserLocale>en-us</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="%MYTOKEN%" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<ProtectYourPC>1</ProtectYourPC>
<NetworkLocation>Work</NetworkLocation>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
</OOBE>
<UserAccounts>
<AdministratorPassword>
<Value>%MYPASS%</Value>
<PlainText>false</PlainText>
</AdministratorPassword>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value>%MYPASS%</Value>
<PlainText>false</PlainText>
</Password>
<Name>Local Account</Name>
<Group>Administrators</Group>
<DisplayName>Local Account</DisplayName>
<Description>Local Account</Description>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<TimeZone>Mountain Standard Time</TimeZone>
<RegisteredOrganization>%MYORGANIZATION%</RegisteredOrganization>
<RegisteredOwner>%MYORGANIZATION%</RegisteredOwner>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="%MYTOKEN%" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>*</ComputerName>
<RegisteredOrganization>%MYORGANIZATION%</RegisteredOrganization>
<RegisteredOwner>%MYORGANIZATION%</RegisteredOwner>
</component>
</settings>
<cpi:offlineImage cpi:source="wim:c:/install.wim#Windows 7 ENTERPRISE" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>
-----
That should give you a better idea. Good luck!
Some Clarification
I'm a huge fan of this forum. Long time lurker, first time poster. Since the release of Windows 7, I have been scouring the forums looking for ideas and tips. When DS 6.9 SP3 dropped, we started our effort to generate an image for Win 7 that was suitable for deployment. I have been through the WAIK and generated my XML file the way I want it, but I have a few questions that need some clarification.
1. To enable DS to use the Win 7 sysprep files, where do I put it? I've put the sysprep.exe found in the C:\Windows\System32\Sysprep directory just about everywhere I an think of, on the DS server, and I get no joy when I use the Sysprep option, in a Capture Image.
2. Piggybacking on question 1, is is better to allow DS to sysprep the image or run the command on the computer, then capture the image?
3. I really like the idea of using a "tokenized" XML file, and I have that part working fine, but feeding the file to sysprep has been a challenge. I tried to do it in Automation, but received an error that Sysprep was not a valid 32-bit application (the command I was running was a script that read: C:\Windows\System32\Sysprep\Sysprep.exe /generalize /oobe /shutdown /unattend:F:\Images\%NAME%.xml). Can the DS tokens be included in an unattend.xml file that is executed on the machine, pre-Captuer Image task, and pull the proper values upon deployment?
4. If I can get Win 7 sysprep working through DS, I will just feed that sysprep command via the Deploy Image job and life will be good. Does anyone see any issues with it?
I've probably tried 25 permutations of the above scenarios, but have yet to have success. When I try to sysprep with DS, the machine never gets the sysprep executed against it. When I run sysprep on the actual computer, it doesn't get the proper variables, because it was executed in Production.
At this point, I'm banging my head against the wall, trying to figure it out. I'm asking the collective wisdom of this forum for their assistance. Thank you all, in advance.
Win7 Unattend working for us ...
I have an complete unattend for Windows 7 working. I created the Unattend.xml using WAIK. I copied that to my deployment server. I then wrote a custom script that the computer name and id gets passed to it. It is a server side script. The script parses the xml file, replacing the computer name with the name passed to it. I then create an xml file from the computer id passed to the script. Once this process is complete, I then FIRM copy the <id>.xml to the target computer as Unattend.xml.
A bit off topic, but something to watch out for in Windows 7 Unattended Installations:
I'm having just one small issue in the fact the Default user does not get applied to new users that log in. The reason is the Default user is not used any longer and is not supported by Microsoft. Instead the Administator profile is used as the Default User profile now.
In the Unattend.XML file you have to use the COPYPROFILE statement, which is completey supported by MS. It worked a couple of times. THe last time I tried it, it did not work. I found out it was because I did not remove the computer from the Domain and the user whose credentials I used to join the Domain, don't have the rights to remove it from the Domain.
Thank you
Bob,
Thank you so much for your reply. Your approach makes perfect sense. The firm copy of the .xml file back to the host was the missing piece. Thanks again for the information.
Any chance that you can share
Any chance that you can share that custom script you made?
Grab a copy of WAIK
How about grabbing a copy of the Windows Automated Installation Kit for Windows 7?
This Microsoft tool is all about creating an unattended installation for windows 7 deployment.
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
help still needed...
I've been using the WAIK to create my XML files. and reading numerous technet articles as well as other sites for automating this. I can get it fully automated without a user prompt at this point (though, I do need that trick for the XML parsing, etc)...
My only problems still remaining are:
Partitioning - someone mentioned that only passes 4 and 7 are looked at during sysprep? In the Technet guide for setting this up, they specify for creating partitions:
http://technet.microsoft.com/en-us/library/dd349348(WS.10).aspx
However, if you run sysprep with the options for creating partitions, etc, when the computer boots up and 'builds' it doesn't setup the partitions. Now, mind you, the last time I was building unattended images was XP, so I never did this for Vista. Maybe it only does this section if you prep the image a different way? I'm totally lost on this part. I know the partitions are specified in the WinPE pass....so, does that mean that the section will only parse if you boot into WinPE? I mean, I guess I can get around this by running diskpart commands in WinPE, but I don't know if the image will still work propery with the bitlocker, etc, etc. This whole section is a bit confusing. This is probably my biggest remaining hangup.
Specialization - while it parsed the information for the OEM section, adding the hours, graphics, etc, it apparently did not parse the Themes part of it. I specified a desktop background, etc, but it just comes up as the Windows Aero theme. I've tried the direct path to it, using a variable (%WINDIR%), nothing seems to direct it to where I want it to go. This seems to be the last 'finishing touch' I wanted to add to the machine that doesn't work.
Also, it does not join the domain, but until I get the script to parse the XML and plug in the serial number or something for the name i'm not going to stress over that.
Hope someone can help explain some of this to me. I'm sure most of it is pretty simple and i'm just not understanding the process. I'm dying to get this automated and deployable like we did with XP.
----------------------------------------------- i'm no stranger to slack, but i'm not a slacker
1 part fixed...one part still some very odd issues
Ok...as for the Specialization. I'm not sure if it's a rights thing (because Win7 uses that funky TrustedInstaller account), but I found a way to get the background working. If you put the graphics within one of the folders in C:\Windows\Web\Wallpaper it will hold onto the graphic normally. You can set it in the registry when you're creating your default user. I'm not sure why, but if you set in there to point anywhere else, it just gives you a black background (transcodedwallpaper.jpg). I'm sure it has to be a rights issue, but still, this at least works. Also, I did try specifying this within the XML and it didn't work, so I have no idea why the XML won't parse that section right. Either way, this is a workaround.
Now, as for the partitions. Since I have a working image now, I tried deploying to a new machine with RDEPLOY manually. I deselected the OEM partition and let it deploy the image (image has 2 partitions, one for bitlocker, one for OS). It deployed fine, no problems. However, if I create a job in DS to deploy it (and specify in the advanced section to remove the OEM partition) the computer won't boot up and gives me an error. Only way to fix this is to fdisk the whole thing to one partition and format it. Then I can deploy the image. So, apparently if you rdeploy to a machine that already has the 2 partitions, something gets really screwy and, while the image will load onto the machine, the machine will basically blow up on boot.
Anyone have any insight into why this might be, or a way around it?
----------------------------------------------- i'm no stranger to slack, but i'm not a slacker
Would you like to reply?
Login or Register to post your comment.