unattended.xml help!
#1
Posted 18 September 2012 - 11:57 AM
1. Is there a place that explains this pretty clearly so I can try to gain some understanding myself? I would like to learn it so I don't have to ask all the time. I know the xml is much more powerful than what was previously available. Almost two many options to understand.
2. Is there a place where you can run a command say a batch file to do processing like in XP during the setup phase (called in commandlines.txt) The main reason I'm looking for this is because it customized the default user in XP. So all users got the what I set up during this phase. So I would inject HKCU keys and things like Windows Background or shortcuts during this phase that I wanted every user to have on first boot. Then after this they can delete the stuff not needed.
3. What is the proper method to inject folders and files (used to use the OEM section) into the file system to be run in step 2 and after?
4. Where can I control installed components like I did with the sif? Like do not install games...
#2
Posted 18 September 2012 - 02:37 PM
Lawson23,
1. To start, you should use the Windows System Image Manager to create your answer file (unattend.xml). WSIM has a validate function that will help you get the file set up properly. WSIM is a part of the Windows Automated Installation Kit (WAIK). A short TechNet video that shows how to use WSIM can be found here. More detailed TechNet articles for using WSIM can be found here. The Unattended Installation Settings Reference is where you will find descriptions and instructions for all the components that can be used in the answer file.
2. The Synchronouscommand and RunAsynchronous commands will let you run batch files or command line commands in the answer file.
3. You can either use the Deployment Image Servicing and Management tool (DISM) to modify the Wim image offline, or use the commands in #2 to call network locations, copy files, and more.
4. You can either use DISM to uninstall packages from the default image on the DVD or you can create a customized image that does not have the items that you do not want. You can customize the image in Audit Mode, then use the 'CopyProfile' component in the answer file to make the administrator profile (Audit mode uses the administrator profile) the default user profile.
I would also recommend that you take a look at the Microsoft Deployment Toolkit (MDT). MDT is a common console for Microsoft's free deployment tools, including all the above mentioned tools and can help make your deployments fast and easy. This short video will give you a quick overview of MDT. There is a lot of flexibility gained by using MDT, such as managing drivers for different hardware, installing software after Windows is installed, and controlling a number of settings that would normally be in the answer file.
There are many more videos and articles that will help you with your deployments on the Deliver and Deploy Windows 7 page of the Springboard Series on TechNet.
Hope this helps,
David
Windows Outreach Team - IT Pro
#3
Posted 11 January 2013 - 08:14 AM
I'm trying to replicate what I did in the SIF file for drivers:
OemPnpDriversPath ="driverpath"
this puts this information into this registry entry on the pc:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion] "DevicePath"=
Now for this process I was told to use the auditSystem mode to add these drivers. Here is my xml:
<settings pass="auditSystem">
<component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:keyValue="998fe066" wcm:action="add">
<Path>C:\DRV\Systems\e6410\NIC</Path>
</PathAndCredentials>
<!-- <PathAndCredentials wcm:keyValue="6e0a4d58" wcm:action="add">
<Path>C:\temp\Downloads\e6410x64</Path>
</PathAndCredentials>
<PathAndCredentials wcm:keyValue="ec6923c4" wcm:action="add">
<Path>C:\temp\Downloads\e6410x64\Nic\R290983\Windows7-x64</Path>
</PathAndCredentials>
-->
</DriverPaths>
</component>
</settings>
This is not putting anything in this reg key and that is ok if Win 7 no longer does this but it is also not installing the driver in the location C:\DRV\Systems\e6410\NIC.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion] "DevicePath"=
#4
Posted 11 January 2013 - 10:37 AM
I would also like to re-iterate my suggestion above to look at MDT. MDT can manage device drivers for all of your hardware and will install the appropriate drivers upon deployment for you without needing to put all drivers into the image. Also, if a new version of a driver is released, you simply make the change in MDT, rather than loading your image, changing the driver and re-capturing the image.
Hope this Helps,
David
Windows Outreach Team – IT Pro
This post has been edited by WinOutreach4: 11 January 2013 - 10:40 AM
#5
Posted 11 January 2013 - 11:07 AM
lawson23, on 11 January 2013 - 08:14 AM, said:
This is easiest method for Drivers if you don't want to inject them.
and yes $OEM$ are still useable even on Win 8
http://www.msfn.org/...-an-oem-folder/
This post has been edited by maxXPsoft: 11 January 2013 - 11:08 AM
#6
Posted 14 January 2013 - 08:49 AM
maxXPsoft, on 11 January 2013 - 11:07 AM, said:
lawson23, on 11 January 2013 - 08:14 AM, said:
This is easiest method for Drivers if you don't want to inject them.
and yes $OEM$ are still useable even on Win 8
http://www.msfn.org/...-an-oem-folder/
MaxXPsoft
This is exactly what I want (trying) to do but I have some questions regarding this.
Can my path be something else? The way your article reads I'm a bit confused.
At the start of the article you do exactly what I want to do by $OEM$\$1\Drivers (I use: $OEM$\$1\Drv)
but below you reference $WinPEDriver$
What is that path? From your image it is something outside of the OEM folder? I guess this is where I'm having some confusion.
This post has been edited by lawson23: 14 January 2013 - 08:50 AM
#7
Posted 14 January 2013 - 09:32 AM
Windows scans all drives for this folder and uses that if found.
It will do this in first pass and is perfect if you also had a boot critical
It should be just on the root of any drive like a USB jump drive or the install dvd. D:\$WinPEDriver$. You can see it can have long path names like my picture.
I usually inject mine into my image
#8
Posted 14 January 2013 - 10:40 AM
put driver files in oem folder like I did in XP: $OEM$\$1\Drv
then use this in my unattended.xml
<component name="Microsoft-Windows-PnpCustomizationsWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:action="add" wcm:keyValue="1">
<Path>c:\DRV</Path>
</PathAndCredentials>
</DriverPaths>
</component>
The other question I have with XP I had to put in every folder that contained a driver. What I have read so far for 7 I only have to put a root folder in the xml. Is this true?
#9
Posted 15 January 2013 - 08:49 AM
<component name="Microsoft-Windows-PnpCustomizationsWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:action="add" wcm:keyValue="1">
<Path>c:\DRV</Path>
</PathAndCredentials>
</DriverPaths>
</component>
This did not work so now trying
<component name="Microsoft-Windows-PnpCustomizationsWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:action="add" wcm:keyValue="1">
<Path>c:\DRV\systems\e6410\nic</Path>
</PathAndCredentials>
</DriverPaths>
</component>
#10
Posted 15 January 2013 - 09:35 AM
The way Win 7 installs the C drive you refer to is not renamed to that till after a reboot. Depending on how many drives you have it could be any letter. People have used configsetroot which tells windows to look on root where the xml is
<Path>$WinPEDriver$</Path> by far is easiest if not injecting with folder created like this dvd\$WinPEDriver$
This post has been edited by maxXPsoft: 15 January 2013 - 09:37 AM
#11
Posted 15 January 2013 - 10:30 AM
maxXPsoft, on 15 January 2013 - 09:35 AM, said:
The way Win 7 installs the C drive you refer to is not renamed to that till after a reboot. Depending on how many drives you have it could be any letter. People have used configsetroot which tells windows to look on root where the xml is
<Path>$WinPEDriver$</Path> by far is easiest if not injecting with folder created like this dvd\$WinPEDriver$
Ok but I'm having a hard time understanding <Path>$WinPEDriver$</Path> will this look at $OEM$\$1\Drv or c:\DRV ??
PS sorry for being such a pain.
This post has been edited by lawson23: 15 January 2013 - 10:39 AM
#12
Posted 15 January 2013 - 12:28 PM
$WinPEDriver$.png (8.61K)
Number of downloads: 1
#13
Posted 15 January 2013 - 12:30 PM
<settings pass="windowsPE">
<component name="Microsoft-Windows-PnpCustomizationsWinPE" processorArchitecture="@ProcessArchitecture" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:action="add" wcm:keyValue="201">
<Path>$WinPEDriver$</Path>
</PathAndCredentials>
</DriverPaths>
</component>
This did not appear to work so I'm still trying to understand your article where you state to place the drivers in $oem$ like I do with XP.
#14
Posted 16 January 2013 - 02:22 AM
processorArchitecture="@ProcessArchitecture"
If your 64 bit then
processorArchitecture="amd64"
or
processorArchitecture="x86"
also why change things, use what is given
<PathAndCredentials wcm:action="add" wcm:keyValue="1"
1 mistake in an xml and thats it, it will take you down PERIOD
Once again the correct way and all you change is processorArchitecture
<component name="Microsoft-Windows-PnpCustomizationsWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:action="add" wcm:keyValue="1">
<Path>$WinPEDriver$</Path>
</PathAndCredentials>
</DriverPaths>
</component>
This post has been edited by maxXPsoft: 16 January 2013 - 02:24 AM
#15
Posted 16 January 2013 - 09:03 AM
processorArchitecture="@ProcessArchitecture"
Actually that is filled in based on the system type by our deployment solution but since we will only be deploying x64 systems I can pull that out and put in amd64 to set it static.
Above is what is in file before deployment.
This is the xml that is seen after deployment is complete.
<?xml version='1.0' encoding='utf-8'?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="specialize" wasPassProcessed="true">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="AMD64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ProductKey>*SENSITIVE*DATA*DELETED*</ProductKey>
<ComputerName>PC1098</ComputerName>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<RefreshRate>75</RefreshRate>
<VerticalResolution>1024</VerticalResolution>
</Display>
</component>
<component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="AMD64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Identification>
<JoinWorkgroup>workgroup</JoinWorkgroup>
</Identification>
</component>
<component name="Microsoft-Windows-DNS-Client" processorArchitecture="AMD64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Interfaces>
<Interface wcm:action="add">
<Identifier>5C-26-0A-48-66-58</Identifier>
<DNSDomain>workgroup</DNSDomain>
<DNSServerSearchOrder>
<IpAddress wcm:action="add" wcm:keyValue="1">10.0.xxx.xxx</IpAddress>
<IpAddress wcm:action="add" wcm:keyValue="2">10.0.xxx.xxx</IpAddress>
</DNSServerSearchOrder>
</Interface>
</Interfaces>
</component>
<component name="Microsoft-Windows-TCPIP" processorArchitecture="AMD64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Interfaces>
<Interface wcm:action="add">
<Identifier>5C-26-0A-48-66-58</Identifier>
<Ipv4Settings>
<DhcpEnabled>true</DhcpEnabled>
</Ipv4Settings><Ipv6Settings>
<DhcpEnabled>true</DhcpEnabled>
</Ipv6Settings>
</Interface>
</Interfaces>
</component>
</settings>
<settings pass="windowsPE" wasPassProcessed="true">
<component name="Microsoft-Windows-PnpCustomizationsWinPE" processorArchitecture="AMD64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:action="add" wcm:keyValue="201">
<Path>$WinPEDriver$</Path>
</PathAndCredentials>
</DriverPaths>
</component>
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="AMD64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SetupUILanguage>
<UILanguage>en-US</UILanguage>
</SetupUILanguage>
<InputLocale>0409:00000409</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="AMD64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>1</PartitionID>
</InstallTo>
</OSImage>
</ImageInstall>
<UserData>
<AcceptEula>true</AcceptEula>
</UserData>
</component>
</settings>
<settings pass="oobeSystem" wasPassProcessed="true">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="AMD64" publicKeyToken="31bf3856ad364e35" 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>
<SkipUserOOBE>true</SkipUserOOBE>
<NetworkLocation>Work</NetworkLocation>
<ProtectYourPC>1</ProtectYourPC>
</OOBE>
<RegisteredOrganization>Altiris</RegisteredOrganization>
<RegisteredOwner>Altiris User</RegisteredOwner>
<TimeZone>Eastern Standard Time</TimeZone>
<UserAccounts>
<AdministratorPassword>*SENSITIVE*DATA*DELETED*</AdministratorPassword>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>*SENSITIVE*DATA*DELETED*</Password>
<Name>Altiris</Name>
<Description>Altiris User</Description>
<DisplayName>Altiris</DisplayName>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<RefreshRate>75</RefreshRate>
<VerticalResolution>1024</VerticalResolution>
</Display>
</component>
</settings>
<settings pass="offlineServicing" wasPassProcessed="true">
<component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="AMD64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:keyValue="1" wcm:action="add">
<Path>X:\DRIVERS</Path>
</PathAndCredentials>
</DriverPaths>
</component>
</settings>
<!-- <settings pass="offlineServicing">
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<EnableLUA>false</EnableLUA>
</component>
<component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:action="add" wcm:keyValue="200">
<Path>%systemdrive%\DRV\Systems\e6410\NIC</Path>
</PathAndCredentials>
</DriverPaths>
</component>
</settings>
<settings pass="auditSystem">
<component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:keyValue="998fe066" wcm:action="add">
<Path>C:\DRV\Systems\e6410\NIC</Path>
</PathAndCredentials>
<PathAndCredentials wcm:keyValue="6e0a4d58" wcm:action="add">
<Path>C:\temp\Downloads\e6410x64</Path>
</PathAndCredentials>
<PathAndCredentials wcm:keyValue="ec6923c4" wcm:action="add">
<Path>C:\temp\Downloads\e6410x64\Nic\R290983\Windows7-x64</Path>
</PathAndCredentials>
</DriverPaths>
</component>
</settings> -->
</unattend>
#16
Posted 17 January 2013 - 11:01 AM
If not you may need to add this
<settings pass="generalize">
<component name="Microsoft-Windows-PnpSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
</component>
</settings>
and then do not add any more reference to Driverpaths. Remove from your <settings pass="offlineServicing">
Quote
#17
Posted 17 January 2013 - 01:03 PM
I'm trying to duplicate the $OEM$ driver install like I could do with XP sif file. Just as in the article you created describe using:
$1 <<- Drive Root
$1\Drivers <<- where some OEM place driver files
but I use:
$1 <<- Drive Root
$1\DRV <<- where some OEM place driver files
I'm not using a dvd I'm using a deployment solution (altiris) to push this stuff out. They capture the sources folder only so not sure if I can add $winpedriver$ folder as you describe. I'm really courious if I can duplicate what I used to do above. Is this possible or not? Also Altiris has a driver setup routine that is putting in the offline service area. I'm not sure I want to pull this out. I would think I could use multiple methods if the xml allows it.
I'm thinking of doing a registry modification after deployment to update the driver location key and then forcing a pnp check since nothing appears to be working out with the xml.
#18
Posted 17 January 2013 - 01:29 PM
I can say this about $OEM$ folder and transfer to HDD during install (at least for 2k/XP/2k3) -
When the install is from CD/DVD, the $OEM$ folder is on the CD/DVD ROOT, and contents within will copy to the HDD.
When the install is from HDD, the $OEM$ folder is placed within the HDD "I386" Folder, and contents within will copy to the HDD.
This is according to the $OEM$ naming structure as indicated (what copies to where), e.g. $1 transfers to HDD ROOT etc.
It appears you're "rolling out" remotely from HDD, so... (I386=SOURCES?
HTH (and you'll get more specific or I will be corrected from someone who has used this method)...
This post has been edited by submix8c: 17 January 2013 - 01:30 PM
#19
Posted 17 January 2013 - 08:33 PM
submix8c, on 17 January 2013 - 01:29 PM, said:
With Win 7/8 you place the $OEM$ within the sources folder and they are copied to respective locations.
lawson23
Glad you finally told me what you are using. When I searched the @ProcessArchitecture it was returning sym,antec links and I wondered why
Symantec Puts Altiris Unit on the Block
You could use $1\DRV or even $1\$WinPEDriver$
but any boot critical will not be available till the driver setup routine you talk of has run
This post has been edited by maxXPsoft: 17 January 2013 - 09:02 PM
#20
Posted 18 January 2013 - 09:22 AM
So my question is there anyway to kick that driver routine off with the way I'm putting the drivers on the system from the xml? To duplicate what I did with XP? We have so few systems it is just easier to manage drviers this way than injecting and all that stuff.
If I renamed my folder from drv to $winpedriver$ would it then possibly work? I'm just trying to learn and understand this. Will say they went from like a few options to way to many.
Also I never got an answer regarding how the drivers have to be put in the xml. If I have multiple folders do I have to put multiple entries or just the one root entry.
For example currently I only place on driver in my driver folder but it is located:
sources\$OEM$\$1\DRV\Systems\e6410\NIC
From what I read you can now just define the root location but this was not true with the sif oem method.
- ← Slipstreaming updates in Boot.wim
- Unattended Windows 7/Server 2008R2
- Help for integrate multiples drivers to a Windows 7 source →



Help
Back to top









