myselfidem

Create your own Autounattend.xml All-In-One (x86/amd64)

150 posts in this topic

Many thanks bphlpt for the improvement of batches and the link RyanVM.net about this question! ;)

Regards

Share this post


Link to post
Share on other sites

Ah!

Now I understand. I looked carefully at the post myselfidem referred to, and this is my conclusion:

I'll make two different files, one firstlog_x86.cmd and another firstlog_x64.cmd.

To the firstlog_x86.cmd I'll add this:

if exist "%SystemRoot%\SysWOW64\cmd.exe" if defined PROCESSOR_ARCHITEW6432 goto :exit

Or, in other words, if the x86 batch is run on x64 OS, it will just exit so only the x64 batch runs.

If this works you two are my heroes. If I got it wrong, you may hit me for being stupid. :-)

Will test it as soon as possible.

Cheers.

Share this post


Link to post
Share on other sites

Escorpiom, double check your logic.

Your logic says:

If A And B Then Exit.

My logic says:

If NOT ( If NOT A And If NOT B ) Then Exit.

They are not the same.

Mine can be reworded as:

If A Or ( If NOT A And If B ) Then Exit

But since batch does not have an "Or" that can't easily work without breaking the code into multiple statements.

Also, B, ie the existence of PROCESSOR_ARCHITEW6432, ONLY matters if NOT A, ie if "%SystemRoot%\SysWOW64\cmd.exe" does not exist. Any decision made strictly on the existence of PROCESSOR_ARCHITEW6432 might be incorrect.

I know it can be confusing, but I believe the way I wrote it in my earlier post is the most efficient structure.

Cheers and Regards

Edited by bphlpt

Share this post


Link to post
Share on other sites

You're right, it is confusing.

I just made two batches on my x86 system to test te output. Sometimes I have to make it a bit more "visual" to understand it, this time I got it.

@echo off
if not exist "%SystemRoot%\SysWOW64\cmd.exe" (if not defined PROCESSOR_ARCHITEW6432 set Arch0=x86 && goto :Cpu86)
goto :exit
:Cpu86
echo this is for x86 OS.
pause
exit
:exit
echo this would be a 64 bit OS and exits.
pause
exit

This correctly returns that it is for x86 OS.


@echo off
if exist "%SystemRoot%\SysWOW64\cmd.exe" (if defined PROCESSOR_ARCHITEW6432 set Arch0=x86 && goto :Cpu86)
goto :exit
:Cpu86
echo this is for x86 OS.
pause
exit
:exit
echo this would be a 64 bit OS and exits.
pause
exit

When taking the "not" out, it returns 64 bit OS. This is only to test the statement, and the output is correct.

It is indeed the best way to deal with the issue.

Some other things I noticed:

- the autologon count 999999 setting is not needed if you use a blank password, I created a user account "User" and no password, and was logged on.

- For a random computername you can use a *

- If you don't want to use a key, it is possible to set "skipmachineoobe" to "true". I know it is not recommended by Microsoft but it allows me to install any Windows edition with one Autounattend file while retaining the 30 days trial period. It is necessary to specify the other parameters like user account creation and such. Note that this doesn't work for DVD installation method, as you need to choose the Windows version.

- Disabling UAC from the Autounattend.xml didn't work, I had to put some registry settings in firstlogon.cmd. I guess it has to do with the "offlineservicing" setting, as I use another installation method (NT6FastInstaller) this would not be "offline".

Cheers.

Share this post


Link to post
Share on other sites

@Escorpiom

Using your suggested values we can use an Autounattend.xml for Windows 7 AIO, like this (example):


<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" 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>fr-FR</UILanguage>
</SetupUILanguage>
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</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>fr-FR</UILanguage>
</SetupUILanguage>
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Diagnostics>
<OptIn>false</OptIn>
</Diagnostics>
<DiskConfiguration>
<WillShowUI>OnError</WillShowUI>
<Disk wcm:action="add">
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
<!--System partition-->
<CreatePartitions>
<CreatePartition wcm:action="add">
<Order>1</Order>
<Type>Primary</Type>
<Size>100</Size>
</CreatePartition>
<CreatePartition wcm:action="add">
<Order>2</Order>
<Type>Primary</Type>
<Extend>true</Extend>
</CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>system</Label>
<Order>1</Order>
<PartitionID>1</PartitionID>
</ModifyPartition>
<!--Windows partition-->
<ModifyPartition wcm:action="add">
<Format>NTFS</Format>
<Label>SEVEN</Label>
<Letter>C</Letter>
<Order>2</Order>
<PartitionID>2</PartitionID>
</ModifyPartition>
</ModifyPartitions>
</Disk>
</DiskConfiguration>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<DynamicUpdate>
<Enable>false</Enable>
<WillShowUI>Never</WillShowUI>
</DynamicUpdate>
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>2</PartitionID>
</InstallTo>
<WillShowUI>OnError</WillShowUI>
<InstallToAvailablePartition>false</InstallToAvailablePartition>
</OSImage>
</ImageInstall>
<UserData>
<AcceptEula>true</AcceptEula>
</UserData>
<EnableFirewall>true</EnableFirewall>
</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">
<Diagnostics>
<OptIn>false</OptIn>
</Diagnostics>
<DiskConfiguration>
<WillShowUI>OnError</WillShowUI>
<Disk wcm:action="add">
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
<!--System partition-->
<CreatePartitions>
<CreatePartition wcm:action="add">
<Order>1</Order>
<Type>Primary</Type>
<Size>100</Size>
</CreatePartition>
<CreatePartition wcm:action="add">
<Order>2</Order>
<Type>Primary</Type>
<Extend>true</Extend>
</CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>system</Label>
<Order>1</Order>
<PartitionID>1</PartitionID>
</ModifyPartition>
<!--Windows partition-->
<ModifyPartition wcm:action="add">
<Format>NTFS</Format>
<Label>SEVEN</Label>
<Letter>C</Letter>
<Order>2</Order>
<PartitionID>2</PartitionID>
</ModifyPartition>
</ModifyPartitions>
</Disk>
</DiskConfiguration>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<DynamicUpdate>
<Enable>false</Enable>
<WillShowUI>Never</WillShowUI>
</DynamicUpdate>
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>2</PartitionID>
</InstallTo>
<WillShowUI>OnError</WillShowUI>
<InstallToAvailablePartition>false</InstallToAvailablePartition>
</OSImage>
</ImageInstall>
<UserData>
<AcceptEula>true</AcceptEula>
</UserData>
<EnableFirewall>true</EnableFirewall>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<component name="Microsoft-Windows-Security-SPP-UX" 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">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>*</ComputerName>
<TimeZone>W. Europe Standard Time</TimeZone>
</component>
<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">
<ComputerName>*</ComputerName>
<TimeZone>W. Europe Standard Time</TimeZone>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-International-Core" 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">
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<TimeZone>W. Europe Standard Time</TimeZone>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<SkipMachineOOBE>true</SkipMachineOOBE>
</OOBE>
<AutoLogon>
<Enabled>true</Enabled>
<Username>Paul</Username>
</AutoLogon>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Description>Post Setup Installation</Description>
<!--Batch file to launch the 32-bit program-->
<CommandLine>cmd /c %SystemDrive%\Install\FirstLog_x86.cmd</CommandLine>
<Order>1</Order>
<RequiresUserInput>false</RequiresUserInput>
</SynchronousCommand>
</FirstLogonCommands>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<DisplayName>Paul</DisplayName>
<Name>Paul</Name>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
<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">
<TimeZone>W. Europe Standard Time</TimeZone>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<SkipMachineOOBE>true</SkipMachineOOBE>
</OOBE>
<AutoLogon>
<Enabled>true</Enabled>
<Username>Paul</Username>
</AutoLogon>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Description>Post Setup Installation</Description>
<!--Batch file to launch the 64-bit program-->
<CommandLine>cmd /c %SystemDrive%\Install\FirstLog_x64.cmd</CommandLine>
<Order>1</Order>
<RequiresUserInput>false</RequiresUserInput>
</SynchronousCommand>
</FirstLogonCommands>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<DisplayName>Paul</DisplayName>
<Name>Paul</Name>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
</settings>
</unattend>

The default key will be installed for each Windows 7 version we choose!

Cheers and Regards!

Edited by myselfidem

Share this post


Link to post
Share on other sites

Yes, but when using a blank password you can take out this:


<AutoLogon>
<Enabled>true</Enabled>
<Username>Paul</Username>
</AutoLogon>

And you could add these in OOBE:

<ProtectYourPC>3</ProtectYourPC>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>

In other words, setting "skipmachineoobe" to true does not mean these setting will be skipped, they will be processed.

Everything else looks great!

Cheers.

Share this post


Link to post
Share on other sites
...

- If you don't want to use a key, it is possible to set "skipmachineoobe" to "true". I know it is not recommended by Microsoft but it allows me to install any Windows edition with one Autounattend file while retaining the 30 days trial period. It is necessary to specify the other parameters like user account creation and such. Note that this doesn't work for DVD installation method, as you need to choose the Windows version.

- Disabling UAC from the Autounattend.xml didn't work, I had to put some registry settings in firstlogon.cmd. I guess it has to do with the "offlineservicing" setting, as I use another installation method (NT6FastInstaller) this would not be "offline".

Escorpiom and myselfidem - It would be really great if we could come up with appropriate settings that would accomplish these in all cases, ie have a truly universal AutoUnattend.xml that would work as intended for both DVD and USB installation methods and hopefully for all the most popular installation tools including Win Toolkit, WinNTSetup, WinSetupFromUSB with GUI, RMPrepUSB, NT6FastInstaller, DX WinNT6.x True Integrator, and any others I've forgotten including plain vanilla installs using nothing but MS tools and methods. Possible, or just wishful thinking?

Please feel free to list all other OS installation tools anyone is aware of that the Autounattend.xml might be used with. It would be nice to have them all listed in one place. Note also that I have not used all the tools I listed above so if I listed one that has nothing at all to do with Autounattend.xml please let me know.

Cheers and Regards

Edited by bphlpt

Share this post


Link to post
Share on other sites

In that case the only setting left for a DVD install is the Windows version to install.

There is a file on the dvd that defines the windows version "ei.cfg" but probably, if the Autounattend file is present ei.cfg will be ignored (not sure about that)

So that would require to set the Windows version in the Autounattend.xml, making it not universal.

Everyone has his or her way, as said before I'm using a modified NT6Fast installer, the advantage is that it skips the WinPE pass.

ImageX will extract the wim index I choose to the harddisk, create boot menu and bootsector and copies the autounattend file to the windows\panther folder and firstlogon.cmd to c:\install folder.

That takes about 4 or 5 minutes, only when rebooting the autounattend.xml will get used. This method is universal for all editions, both x86 and x64.

On a side note, I modified the NT6Fast installer to do the partitioning and have included a XP universal .wim image, so I have only one script that can deploy many OS the unattended way.

bphlpt, did you look at the test batches I made? Did I get it right this time?

Cheers.

Edited by Escorpiom

Share this post


Link to post
Share on other sites

There is a file on the dvd that defines the windows version "ei.cfg" but probably, if the Autounattend file is present ei.cfg will be ignored (not sure about that)

If we want choose the Windows 7 AIO Edition image to install ; we must remove the ei.cfg file!

You can open ei.cfg file with notepad to read the desciption about Windows. If we keep this file only ONE Edition can be installed!

@bphlpt

We must select keyboard layout and language inside Autounattend.xml file, we can't make an universal Autounattend.xml file, but we can adapt the values to suit your needs!

However, here is an example, using Escorpiom values, and Admin as account!


<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" 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>fr-FR</UILanguage>
</SetupUILanguage>
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</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>fr-FR</UILanguage>
</SetupUILanguage>
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Diagnostics>
<OptIn>false</OptIn>
</Diagnostics>
<DiskConfiguration>
<WillShowUI>OnError</WillShowUI>
<Disk wcm:action="add">
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
<!--System partition-->
<CreatePartitions>
<CreatePartition wcm:action="add">
<Order>1</Order>
<Type>Primary</Type>
<Size>100</Size>
</CreatePartition>
<CreatePartition wcm:action="add">
<Order>2</Order>
<Type>Primary</Type>
<Extend>true</Extend>
</CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>system</Label>
<Order>1</Order>
<PartitionID>1</PartitionID>
</ModifyPartition>
<!--Windows partition-->
<ModifyPartition wcm:action="add">
<Format>NTFS</Format>
<Label>SEVEN</Label>
<Letter>C</Letter>
<Order>2</Order>
<PartitionID>2</PartitionID>
</ModifyPartition>
</ModifyPartitions>
</Disk>
</DiskConfiguration>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<DynamicUpdate>
<Enable>false</Enable>
<WillShowUI>Never</WillShowUI>
</DynamicUpdate>
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>2</PartitionID>
</InstallTo>
<WillShowUI>OnError</WillShowUI>
<InstallToAvailablePartition>false</InstallToAvailablePartition>
</OSImage>
</ImageInstall>
<UserData>
<AcceptEula>true</AcceptEula>
</UserData>
<EnableFirewall>true</EnableFirewall>
</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">
<Diagnostics>
<OptIn>false</OptIn>
</Diagnostics>
<DiskConfiguration>
<WillShowUI>OnError</WillShowUI>
<Disk wcm:action="add">
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
<!--System partition-->
<CreatePartitions>
<CreatePartition wcm:action="add">
<Order>1</Order>
<Type>Primary</Type>
<Size>100</Size>
</CreatePartition>
<CreatePartition wcm:action="add">
<Order>2</Order>
<Type>Primary</Type>
<Extend>true</Extend>
</CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>system</Label>
<Order>1</Order>
<PartitionID>1</PartitionID>
</ModifyPartition>
<!--Windows partition-->
<ModifyPartition wcm:action="add">
<Format>NTFS</Format>
<Label>SEVEN</Label>
<Letter>C</Letter>
<Order>2</Order>
<PartitionID>2</PartitionID>
</ModifyPartition>
</ModifyPartitions>
</Disk>
</DiskConfiguration>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<DynamicUpdate>
<Enable>false</Enable>
<WillShowUI>Never</WillShowUI>
</DynamicUpdate>
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>2</PartitionID>
</InstallTo>
<WillShowUI>OnError</WillShowUI>
<InstallToAvailablePartition>false</InstallToAvailablePartition>
</OSImage>
</ImageInstall>
<UserData>
<AcceptEula>true</AcceptEula>
</UserData>
<EnableFirewall>true</EnableFirewall>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<component name="Microsoft-Windows-Security-SPP-UX" 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">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>*</ComputerName>
<TimeZone>W. Europe Standard Time</TimeZone>
</component>
<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">
<ComputerName>*</ComputerName>
<TimeZone>W. Europe Standard Time</TimeZone>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-International-Core" 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">
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<TimeZone>W. Europe Standard Time</TimeZone>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<NetworkLocation>Home</NetworkLocation>
<ProtectYourPC>1</ProtectYourPC>
<SkipMachineOOBE>true</SkipMachineOOBE>
</OOBE>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Description>Post Setup Installation</Description>
<!--Batch file to launch the 32-bit programs-->
<CommandLine>cmd /c %SystemDrive%\Install\FirstLog_x86.cmd</CommandLine>
<Order>1</Order>
<RequiresUserInput>false</RequiresUserInput>
</SynchronousCommand>
</FirstLogonCommands>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<DisplayName>Admin</DisplayName>
<Name>Admin</Name>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
<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">
<TimeZone>W. Europe Standard Time</TimeZone>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<NetworkLocation>Home</NetworkLocation>
<ProtectYourPC>1</ProtectYourPC>
<SkipMachineOOBE>true</SkipMachineOOBE>
</OOBE>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Description>Post Setup Installation</Description>
<!--Batch file to launch the 64-bit or 32-bit programs-->
<CommandLine>cmd /c %SystemDrive%\Install\FirstLog_x64.cmd</CommandLine>
<Order>1</Order>
<RequiresUserInput>false</RequiresUserInput>
</SynchronousCommand>
</FirstLogonCommands>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<DisplayName>Admin</DisplayName>
<Name>Admin</Name>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
</settings>
</unattend>

I will add this example inside SetProductKey.rar soon!

Regards

Edited by myselfidem

Share this post


Link to post
Share on other sites
...

Everyone has his or her way, as said before I'm using a modified NT6Fast installer, the advantage is that it skips the WinPE pass.

ImageX will extract the wim index I choose to the harddisk, create boot menu and bootsector and copies the autounattend file to the windows\panther folder and firstlogon.cmd to c:\install folder.

That takes about 4 or 5 minutes, only when rebooting the autounattend.xml will get used. This method is universal for all editions, both x86 and x64.

On a side note, I modified the NT6Fast installer to do the partitioning and have included a XP universal .wim image, so I have only one script that can deploy many OS the unattended way.

I would love to hear the details of this method, it's advantages and disadvantages, and why you chose to use this way over RMPrepUSB and the other options. Probably best to explain the details in another thread though. Don't want to hijack the thread.

bphlpt, did you look at the test batches I made? Did I get it right this time?

:) As if I'm an expert. LOL Actually, it depends. I only looked at them briefly before and thought they were two tests you made with the first one giving the correct results and the second one not. Is that correct? And it is then called from the "FirstLogonCommand" section for x86 only, since x64 only commands can be called cleanly in a separate batch from the "FirstLogonCommand" amd64 section. Is that correct? Assuming both of those statements are correct, so the batch will only be called from the "FirstLogonCommand" section for x86 and statements inside will only be intended to be executed by a 32-bit OS, hence the whole reason for the "IF" tests, and also assuming that you do not need the Arch0 variable for any reason, then your batch can be written:

@echo off
if not exist "%SystemRoot%\SysWOW64\cmd.exe" if not defined PROCESSOR_ARCHITEW6432 goto :Cpu86
goto :exit
:Cpu86

:: Put all your x86 only statements here

:exit
exit

which is what you had only slightly "cleaned up". :)

If my understanding was not correct, I would be happy to take a look at the actual routine you are trying to use to see if I can spot any problems. I would also need to know when it is called and where it is called from.

Cheers and Regards

Share this post


Link to post
Share on other sites

If we want choose the Windows 7 AIO Edition image to install ; we must remove the ei.cfg file!

You can open ei.cfg file with notepad to read the desciption about Windows. If we keep this file only ONE Edition can be installed!

...

So Escorpiom had it backwards? The presence of the ei.cfg file will override the Autounattend.xml? So if the ei.cfg file is removed we can use the same Autounattend.xml for either DVD or USB use?

Shouldn't your comment above:

<!--Batch file to launch the 64-bit or 32-bit programs-->

actually be:

<!--Batch file to launch the 64-bit programs-->

since from where it is it will only be called for a 64-bit OS?

While your other comment:

<!--Batch file to launch the 32-bit programs-->

should actually be:

<!--Batch file to launch the 32-bit or 64-bit programs-->

since from where it is it will be called for both 32-bit and 64-bit OS? Or am I missing something?

Cheers and Regards

Edited by bphlpt

Share this post


Link to post
Share on other sites

So Escorpiom had it backwards? The presence of the ei.cfg file will override the Autounattend.xml? So if the ei.cfg file is removed we can use the same Autounattend.xml for either DVD or USB use?

No, the presence of ei.cfg don't override the Autounattend.xml file at all. But, if we keep this one, only one Edition can be installed (32-bit or 64-bit) with install.wim (Ultimate for example) images merged of course.

We need first, to create our customized Windows 7 AIO, to have Windows 7 Ultimate Edition because all images are included inside.

Example mine:

ei.cfg


[EditionID]
Ultimate
[Channel]
Retail
[VL]
0

But, if we want choose to install any Windows 7 versions (32-bit or 64-bit) we must remove this file and during the installation a window let us choose the Windows 7 Edition we want install.

I made new comments about programs inside the Autounattend.xml AIO file, working on cpu x86 or amd64. The batch files aren't the same: FirstLog_x86.cmd and FirstLog_x64.cmd.

Because on a computer runing 32-bit OS we can only install 32-bit programs, but on a computer runing 64-bit OS we can install 32-bit programs and/or 64-bit programs.

Regards

Edited by myselfidem

Share this post


Link to post
Share on other sites
Because on a computer runing 32-bit OS we can only install 32-bit programs, but on a computer runing 64-bit OS we can install 32-bit programs and/or 64-bit programs.

That is true of course, and I understand your point, but I just figured that since for a computer running a 64-bit OS the "<FirstLogonCommands>" for BOTH "x86" AND "amd64" sections will get processed, it made sense to put the 32-bit programs in the "x86" section and the 64-bit programs in the "amd64" section. No? I realize that there will be a few exceptions to this rule, but in general I thought that was the best way. If I am incorrect, could you please give me some examples?

Actually I just thought of an example that requires programs to be listed in both "x86" and "amd64" batches, assuming that the batches are set up to only be run for 32-bit and 64-bit OS's respectively - dual arch installers such as Adobe Flash. Since it is now only provided as a dual arch installer it should go in both the "x86" section and in the "amd64" section, with the "IF" tests set up to make sure that the installer is only run once. As an alternative, you could have two different sections within your 32-bit batch for 32-bit vs 64-bit OS installations to utilize. You could even get fancy and have three different sections - an "all" section at the beginning which would get run for any installation, then your "IF" tests would split it into 32-bit only and 64-bit only sections. The batch called from the "amd64" section would then truly only need to be 64-bit programs to be used in 64-bit OS. Right?

Cheers and Regards

Share this post


Link to post
Share on other sites

That is true of course, and I understand your point, but I just figured that since for a computer running a 64-bit OS the "<FirstLogonCommands>" for BOTH "x86" AND "amd64" sections will get processed, it made sense to put the 32-bit programs in the "x86" section and the 64-bit programs in the "amd64" section. No? I realize that there will be a few exceptions to this rule, but in general I thought that was the best way. If I am incorrect, could you please give me some examples?

Yes, you are right, it make sens!

But, however we can choose to install 32-bit programs on 64-bit OS!

We must adapt the batch files to suit your needs using "<FistLogonCommands>" for both "x86" and "amd64", with this particular Autounattend.xml file, because all passes are executed!

About Adobe Flash Player, we can install on 32-bit OS or 64-bit OS.

Like this, on Windows 7 64-bit OS, I can install Office 2007 32-bit version, Java 32-bit version, IE9 32-bit version, etc.

We are free to install what we want with the batch files.

Regards

*Edit: About dual arch programs

Actually I just thought of an example that requires programs to be listed in both "x86" and "amd64" batches, assuming that the batches are set up to only be run for 32-bit and 64-bit OS's respectively - dual arch installers such as Adobe Flash. Since it is now only provided as a dual arch installer it should go in both the "x86" section and in the "amd64" section, with the "IF" tests set up to make sure that the installer is only run once. As an alternative, you could have two different sections within your 32-bit batch for 32-bit vs 64-bit OS installations to utilize. You could even get fancy and have three different sections - an "all" section at the beginning which would get run for any installation, then your "IF" tests would split it into 32-bit only and 64-bit only sections. The batch called from the "amd64" section would then truly only need to be 64-bit programs to be used in 64-bit OS. Right?

If I well understand the dual architecture programs are used on different CPU and OS.

That means:

- on a computer with cpu x86 the 32-bit program will be installed

- on a computer with cpu x64 and OS 64-bit, 32-bit and/or 64-bit programs could be installed

- on a computer with cpu x64 and OS 32-bit, the 32-bit program will be installed

But using the batch file you improved, all seems to work fine! ;)

Regards

Edited by myselfidem

Share this post


Link to post
Share on other sites

Escorpiom and myselfidem - It would be really great if we could come up with appropriate settings that would accomplish these in all cases, ie have a truly universal AutoUnattend.xml that would work as intended for both DVD and USB installation methods and hopefully for all the most popular installation tools including Win Toolkit, WinNTSetup, WinSetupFromUSB with GUI, RMPrepUSB, NT6FastInstaller, DX WinNT6.x True Integrator, and any others I've forgotten including plain vanilla installs using nothing but MS tools and methods. Possible, or just wishful thinking?

Another tool is "WinAIO Maker Professional v1.3":

http://forums.mydigi...-Setup-Solution

The interesting part also is that we can select the option: Enable x64 Recovery Mode

Using: ar_seven_am, Escorpion, bphlpt advices, we can use our Autounattend.xml AIO file:

We can remove some unwanted values, of course!

Example = using only ONE WindowsPE pass and a random name for the computer (*)

Autounattend.xml


<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" 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>fr-FR</UILanguage>
</SetupUILanguage>
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Diagnostics>
<OptIn>false</OptIn>
</Diagnostics>
<DiskConfiguration>
<WillShowUI>OnError</WillShowUI>
<Disk wcm:action="add">
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
<!--System partition-->
<CreatePartitions>
<CreatePartition wcm:action="add">
<Order>1</Order>
<Type>Primary</Type>
<Size>100</Size>
</CreatePartition>
<CreatePartition wcm:action="add">
<Order>2</Order>
<Type>Primary</Type>
<Extend>true</Extend>
</CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>system</Label>
<Order>1</Order>
<PartitionID>1</PartitionID>
</ModifyPartition>
<!--Windows partition-->
<ModifyPartition wcm:action="add">
<Format>NTFS</Format>
<Label>SEVEN</Label>
<Letter>C</Letter>
<Order>2</Order>
<PartitionID>2</PartitionID>
</ModifyPartition>
</ModifyPartitions>
</Disk>
</DiskConfiguration>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<DynamicUpdate>
<Enable>false</Enable>
<WillShowUI>Never</WillShowUI>
</DynamicUpdate>
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>2</PartitionID>
</InstallTo>
<WillShowUI>OnError</WillShowUI>
<InstallToAvailablePartition>false</InstallToAvailablePartition>
</OSImage>
</ImageInstall>
<UserData>
<AcceptEula>true</AcceptEula>
</UserData>
<EnableFirewall>true</EnableFirewall>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<component name="Microsoft-Windows-Security-SPP-UX" 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">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>*</ComputerName>
<TimeZone>W. Europe Standard Time</TimeZone>
</component>
<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">
<ComputerName>*</ComputerName>
<TimeZone>W. Europe Standard Time</TimeZone>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-International-Core" 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">
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<TimeZone>W. Europe Standard Time</TimeZone>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<SkipMachineOOBE>true</SkipMachineOOBE>
</OOBE>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Description>Post Setup Installation</Description>
<!--Batch file to launch 32-bit programs-->
<CommandLine>cmd /c %SystemDrive%\Install\FirstLog_x86.cmd</CommandLine>
<Order>1</Order>
<RequiresUserInput>false</RequiresUserInput>
</SynchronousCommand>
</FirstLogonCommands>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<DisplayName>Admin</DisplayName>
<Name>Admin</Name>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
<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">
<TimeZone>W. Europe Standard Time</TimeZone>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<SkipMachineOOBE>true</SkipMachineOOBE>
</OOBE>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Description>Post Setup Installation</Description>
<!--Batch file to launch the 64-bit or 32-bit programs-->
<CommandLine>cmd /c %SystemDrive%\Install\FirstLog_x64.cmd</CommandLine>
<Order>1</Order>
<RequiresUserInput>false</RequiresUserInput>
</SynchronousCommand>
</FirstLogonCommands>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<DisplayName>Admin</DisplayName>
<Name>Admin</Name>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
</settings>
</unattend>

Regards

Edited by myselfidem

Share this post


Link to post
Share on other sites

Another tool is "WinAIO Maker Professional v1.3":

http://forums.mydigi...-Setup-Solution

The interesting part also is that we can select the option: Enable x64 Recovery Mode

I thought that Win Toolkit offered that same capability. Can anyone confirm that it does or does not?

Cheer and Regards

Edited by bphlpt

Share this post


Link to post
Share on other sites

myselfidem, I think ur autounattend.xml will not work if we add some extra command in setting specialize also OOBE, an example I make 2 firstlogon command (one for x86, 2nd for x64), becuz since x64 have x86 feature too in the image, it will check x86 setting too even we choose x64 image, that will mess up installation command if we make that separately depend on the system architecture itself (mostly worse in specialize setting, if we choose x86 as first, it will use x86 n ignore x64), all u need to change is move amd64 first as first setting than x86 as 2nd setting in autounattend.xml.

Thanks to explain the trouble!

We are trying to create an "Autounattend.xml AIO" file, for any Windows 7 versions (32-bit or 64-bit) we choose to install!

After many tests, I see that we can keep the order for x86 and amd64 passes whithout trouble...

But it's needed to create carefully the batch files for "RunSynchronousCommand" inside "specialize passes"

and "FirstLogonCommands" inside "oobeSystem passes"!

I also tested the Daemon Tools program (dual architecture).

On a Virtual Machine it's needed first to install the "TrustedPublisher Certificate" for Daemon Tools to install fine the program and the Virtual device.

Browse inside the registry to:


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\TrustedPublisher\Certificates\5557C0953FBD9F93745B214FB2483E9369B597F0]
"Blob"=...

Or for 64-bit:


[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\SystemCertificates\TrustedPublisher\Certificates\5557C0953FBD9F93745B214FB2483E9369B597F0]
"Blob"=....

I've updated the folder SetProductKey.rar (all batch files updated) , on my sig below, with the new example for Daemon Tools.

Tested Windows 7 32-bit and 64-bit (AIO), on Oracle VM VirtualBox, and works fine!

(vbs files are used to hide the command prompt window)

Here is the Autounattend.xml AIO file (for Daemon Tools, as example)


<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" 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>fr-FR</UILanguage>
</SetupUILanguage>
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Diagnostics>
<OptIn>false</OptIn>
</Diagnostics>
<DiskConfiguration>
<WillShowUI>OnError</WillShowUI>
<Disk wcm:action="add">
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
<!--System partition-->
<CreatePartitions>
<CreatePartition wcm:action="add">
<Order>1</Order>
<Type>Primary</Type>
<Size>100</Size>
</CreatePartition>
<CreatePartition wcm:action="add">
<Order>2</Order>
<Type>Primary</Type>
<Extend>true</Extend>
</CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>system</Label>
<Order>1</Order>
<PartitionID>1</PartitionID>
</ModifyPartition>
<!--Windows partition-->
<ModifyPartition wcm:action="add">
<Format>NTFS</Format>
<Label>SEVEN</Label>
<Letter>C</Letter>
<Order>2</Order>
<PartitionID>2</PartitionID>
</ModifyPartition>
</ModifyPartitions>
</Disk>
</DiskConfiguration>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<DynamicUpdate>
<Enable>false</Enable>
<WillShowUI>Never</WillShowUI>
</DynamicUpdate>
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>2</PartitionID>
</InstallTo>
<WillShowUI>OnError</WillShowUI>
<InstallToAvailablePartition>false</InstallToAvailablePartition>
</OSImage>
</ImageInstall>
<UserData>
<AcceptEula>true</AcceptEula>
</UserData>
<EnableFirewall>true</EnableFirewall>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>WScript.exe //B "%SystemDrive%\Install\Apps\Daemon\Daemon_x86.vbs"</Path>
</RunSynchronousCommand>
</RunSynchronous>
</component>
<component name="Microsoft-Windows-Deployment" 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">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>WScript.exe //B "%SystemDrive%\Install\Apps\Daemon\Daemon_x64.vbs"</Path>
</RunSynchronousCommand>
</RunSynchronous>
</component>
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<component name="Microsoft-Windows-Security-SPP-UX" 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">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>*</ComputerName>
<TimeZone>W. Europe Standard Time</TimeZone>
</component>
<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">
<ComputerName>*</ComputerName>
<TimeZone>W. Europe Standard Time</TimeZone>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-International-Core" 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">
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<TimeZone>W. Europe Standard Time</TimeZone>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<SkipMachineOOBE>true</SkipMachineOOBE>
</OOBE>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Description>Post Setup Installation</Description>
<!--Batch file to launch 32-bit programs-->
<CommandLine>cmd /c %SystemDrive%\Install\FirstLog_x86.cmd</CommandLine>
<Order>1</Order>
<RequiresUserInput>false</RequiresUserInput>
</SynchronousCommand>
</FirstLogonCommands>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<DisplayName>Admin</DisplayName>
<Name>Admin</Name>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
<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">
<TimeZone>W. Europe Standard Time</TimeZone>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<SkipMachineOOBE>true</SkipMachineOOBE>
</OOBE>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Description>Post Setup Installation</Description>
<!--Batch file to launch the 64-bit or 32-bit programs-->
<CommandLine>cmd /c %SystemDrive%\Install\FirstLog_x64.cmd</CommandLine>
<Order>1</Order>
<RequiresUserInput>false</RequiresUserInput>
</SynchronousCommand>
</FirstLogonCommands>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<DisplayName>Admin</DisplayName>
<Name>Admin</Name>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
</settings>
</unattend>
<!--Customized by myselfidem. For Windows 7 AIO (x86 and amd64). One Administrator account (Admin) whithout password. Adapt the values to suit your needs.-->
<!--No key needed. Look at the batch files inside the folder: 'Unattend-Examples' as examples-->

Cheers and Regards

post-23163-0-23017500-1339592133_thumb.j

Edited by myselfidem

Share this post


Link to post
Share on other sites
We are trying to create an "Autounattend.xml AIO" file, for any Windows 7 versions (32-bit or 64-bit) we choose to install!

After many tests, I see that we can keep the order for x86 and amd64 passes whithout trouble...

But it's needed to create carefully the batch files for "RunSynchronousCommand" inside "specialize passes"

and "FirstLogonCommands" inside "oobeSystem passes"!

Thank you for continuing to work to make the Autounattend.xml as robust, universal, and bulletproof as possible. But I have to ask, in addition to everything you are doing, if processing amd64 first and x86 second as ar_seven_am and I have suggested, can even help with just one potential problem and make it even more bulletproof, why do you not want to do that? If it doesn't hurt anything in any way, why not?

Cheers and Regards

Edited by bphlpt

Share this post


Link to post
Share on other sites

Many thanks bphlpt !

Well, of course, we can do like you and ar_seven_am have suggested, processing amd64 first and x86 second inside our Autounattend.xml file - to avoid potential problems - installing Windows 7 64-bit editions with Windows 7 AIO - for "RunSynchronousCommand" inside "specialize passes" and "FirstLogonCommands" inside "oobeSystem passes"!

This seems to be the best way finally ! :P

Regards

*Edit:

However, we can see that the two passes are executed anyway even if processing amd64 first and x86 second installing Windows 7 64-bit versions!

We can look at "setupact.log" inside: C:\Windows\Panther\UnattendGC\setupact.log

After testing successfully Windows 7 64-bit AIO, here is mine setupact.log on VM Oracle VirtualBox

setupact.log



2012-06-13 23:26:52, Info [windeploy.exe] ------------------------------------------------
2012-06-13 23:26:52, Info [windeploy.exe] WinDeploy.exe launched with command-line []...
2012-06-13 23:26:52, Info [windeploy.exe] Setup has not completed, adding pending reboot.
2012-06-13 23:26:52, Info [windeploy.exe] Found generalization state [0x4], setup.exe completion flag [False] --> launching setup.exe.
2012-06-13 23:26:52, Info [windeploy.exe] Launching [C:\Windows\system32\oobe\setup.exe]...
2012-06-13 23:28:33, Info [Shell Unattend] Running 'specialize' pass
2012-06-13 23:28:33, Info [Shell Unattend] ComputerName: generating computer name from user name
2012-06-13 23:28:33, Info [Shell Unattend] ComputerName: generated name 'MICROSO-17DUIUO'
2012-06-13 23:28:33, Info [Shell Unattend] ComputerName set to MICROSO-17DUIUO
2012-06-13 23:28:33, Info [Shell Unattend] TimeZone: Time zone set to 'W. Europe Standard Time'
2012-06-13 23:28:33, Info [Shell Unattend] Exiting 'specialize' pass with status 0x001f1000
2012-06-13 23:28:33, Info [SETUPUGC.EXE] SetupUGC launched with command line [specialize]
2012-06-13 23:28:33, Info [SETUPUGC.EXE] SetupUGC running to process unattend settings for pass [specialize]
2012-06-13 23:28:33, Info [SETUPUGC.EXE] Processing any RunSynchronous setting...
2012-06-13 23:28:33, Info [SETUPUGC.EXE] Running commands is not yet in progress
2012-06-13 23:28:33, Info [0x090008] PANTHR CBlackboard::Open: C:\Windows\panther\commandexec\CommandExec succeeded.
2012-06-13 23:28:33, Info [SETUPUGC.EXE] Found run command in registry: credentials = { domain is not specified, username is not specified, password info not logged }
2012-06-13 23:28:33, Info [SETUPUGC.EXE] Found run command in registry: will continue execution without examining exit code
2012-06-13 23:28:33, Info [SETUPUGC.EXE] Found run command in registry: path = [WScript.exe //B "%SystemDrive%\Install\Apps\Daemon\Daemon_x64.vbs"]
2012-06-13 23:28:33, Info [SETUPUGC.EXE] Found RunSynchronous command: [WScript.exe //B "%SystemDrive%\Install\Apps\Daemon\Daemon_x64.vbs"]
2012-06-13 23:29:00, Info [SETUPUGC.EXE] Finished executing [WScript.exe //B "%SystemDrive%\Install\Apps\Daemon\Daemon_x64.vbs"] synchronously
2012-06-13 23:29:00, Info [SETUPUGC.EXE] Process returned with exit code 0x0
2012-06-13 23:29:00, Info [0x090009] PANTHR CBlackboard::Close: c:\windows\panther\commandexec\commandexec.
2012-06-13 23:29:00, Info [SETUPUGC.EXE] Processing any RunAsynchronous setting...
2012-06-13 23:29:00, Info [SETUPUGC.EXE] Running commands is not yet in progress
2012-06-13 23:29:00, Info [0x090008] PANTHR CBlackboard::Open: C:\Windows\panther\commandexec\CommandExec succeeded.
2012-06-13 23:29:00, Info [0x090009] PANTHR CBlackboard::Close: c:\windows\panther\commandexec\commandexec.
2012-06-13 23:29:00, Info [SETUPUGC.EXE] Processing ExtendOSPartition setting (if present)...
2012-06-13 23:29:00, Info [SETUPUGC.EXE] SetupUGC returning with exit code [0]
2012-06-13 23:29:01, Info [SETUPUGC.EXE] SetupUGC launched with command line [specialize]
2012-06-13 23:29:01, Info [SETUPUGC.EXE] SetupUGC running to process unattend settings for pass [specialize]
2012-06-13 23:29:01, Info [SETUPUGC.EXE] Processing any RunSynchronous setting...
2012-06-13 23:29:01, Info [SETUPUGC.EXE] Running commands is not yet in progress
2012-06-13 23:29:01, Info [0x090008] PANTHR CBlackboard::Open: C:\Windows\panther\commandexec\CommandExec succeeded.
2012-06-13 23:29:01, Info [SETUPUGC.EXE] Found run command in registry: credentials = { domain is not specified, username is not specified, password info not logged }
2012-06-13 23:29:01, Info [SETUPUGC.EXE] Found run command in registry: will continue execution without examining exit code
2012-06-13 23:29:01, Info [SETUPUGC.EXE] Found run command in registry: path = [WScript.exe //B "%SystemDrive%\Install\Apps\Daemon\Daemon_x86.vbs"]
2012-06-13 23:29:01, Info [SETUPUGC.EXE] Found RunSynchronous command: [WScript.exe //B "%SystemDrive%\Install\Apps\Daemon\Daemon_x86.vbs"]
2012-06-13 23:29:02, Info [SETUPUGC.EXE] Finished executing [WScript.exe //B "%SystemDrive%\Install\Apps\Daemon\Daemon_x86.vbs"] synchronously
2012-06-13 23:29:02, Info [SETUPUGC.EXE] Process returned with exit code 0x0
2012-06-13 23:29:02, Info [0x090009] PANTHR CBlackboard::Close: c:\windows\panther\commandexec\commandexec.
2012-06-13 23:29:02, Info [SETUPUGC.EXE] Processing any RunAsynchronous setting...
2012-06-13 23:29:02, Info [SETUPUGC.EXE] Running commands is not yet in progress
2012-06-13 23:29:02, Info [0x090008] PANTHR CBlackboard::Open: C:\Windows\panther\commandexec\CommandExec succeeded.
2012-06-13 23:29:02, Info [0x090009] PANTHR CBlackboard::Close: c:\windows\panther\commandexec\commandexec.
2012-06-13 23:29:02, Info [SETUPUGC.EXE] Processing ExtendOSPartition setting (if present)...
2012-06-13 23:29:02, Info [SETUPUGC.EXE] SetupUGC returning with exit code [0]
2012-06-13 23:29:03, Info [Shell Unattend] Running 'specialize' pass
2012-06-13 23:29:03, Info [Shell Unattend] ComputerName: generating computer name from user name
2012-06-13 23:29:03, Info [Shell Unattend] ComputerName: generated name 'UTILISA-2V3W0O5'
2012-06-13 23:29:03, Info [Shell Unattend] ComputerName set to UTILISA-2V3W0O5
2012-06-13 23:29:03, Info [Shell Unattend] TimeZone: Time zone set to 'W. Europe Standard Time'
2012-06-13 23:29:03, Info [Shell Unattend] Exiting 'specialize' pass with status 0x001f1000
2012-06-13 23:29:06, Info [windeploy.exe] Process exited with exit code [0x0]
2012-06-13 23:29:06, Info [windeploy.exe] Found completion flag [True], reboot requested flag [True] --> rebooting computer before proceeding with deployment...
2012-06-13 23:29:06, Info [windeploy.exe] Making sure that SystemSetupInProgress is cleared.
2012-06-13 23:29:06, Info [windeploy.exe] An immediate reboot or shutdown was requested/required... rebooting / shutting down computer
2012-06-13 23:29:06, Info [windeploy.exe] Flushing registry to disk...
2012-06-13 23:29:07, Info [windeploy.exe] Flush took 859 ms.
2012-06-13 23:29:07, Info [windeploy.exe] WinDeploy.exe exiting with code [0x0]
2012-06-13 23:29:59, Info [windeploy.exe] ------------------------------------------------
2012-06-13 23:29:59, Info [windeploy.exe] WinDeploy.exe launched with command-line []...
2012-06-13 23:29:59, Info [windeploy.exe] Updating pass status for [specialize] to reflect reboot: 0x8 --> 0x9
2012-06-13 23:29:59, Info [windeploy.exe] Making sure that SystemSetupInProgress is cleared.
2012-06-13 23:29:59, Info [windeploy.exe] UnattendSearchExplicitPath: Found unattend file at [C:\Windows\Panther\unattend.xml]; examining for applicability.
2012-06-13 23:29:59, Info [windeploy.exe] UnattendSearchExplicitPath: Found usable unattend file for pass [oobeSystem] at [C:\Windows\Panther\unattend.xml].
2012-06-13 23:29:59, Info [windeploy.exe] Found unattend file: [C:\Windows\Panther\unattend.xml]
2012-06-13 23:29:59, Info [windeploy.exe] This is supposed to be an OOBE boot; checking for <Reseal> setting override in unattend file [C:\Windows\Panther\unattend.xml]...
2012-06-13 23:30:02, Info [windeploy.exe] Started WinSAT; will need to wait
2012-06-13 23:30:08, Info [windeploy.exe] Launching [C:\Windows\system32\oobe\oobeldr.exe /system]...
2012-06-13 23:30:08, Info [oobeldr.exe] OOBELdr.exe launched with command-line [/system]...
2012-06-13 23:30:08, Info [oobeldr.exe] OrchestrateUpdateImageState: Updating image state from [IMAGE_STATE_SPECIALIZE_RESEAL_TO_OOBE] --> [IMAGE_STATE_UNDEPLOYABLE]
2012-06-13 23:30:08, Info [oobeldr.exe] Parsing command line arguments...
2012-06-13 23:30:08, Info [oobeldr.exe] Parsing the following command line: [/system]
2012-06-13 23:30:08, Info [oobeldr.exe] Status for unattend pass [oobeSystem] = 0x0
2012-06-13 23:30:08, Info [oobeldr.exe] UnattendSearchExplicitPath: Found unattend file at [C:\Windows\Panther\unattend.xml]; examining for applicability.
2012-06-13 23:30:08, Info [oobeldr.exe] UnattendSearchExplicitPath: Found usable unattend file for pass [oobeSystem] at [C:\Windows\Panther\unattend.xml].
2012-06-13 23:30:08, Info [oobeldr.exe] Running oobeSystem pass with discovered unattend file [C:\Windows\Panther\unattend.xml]...
2012-06-13 23:30:08, Info [oobeldr.exe] Caching copy of unattend file: [C:\Windows\Panther\unattend.xml] -- cached at --> [C:\Windows\panther\unattend.xml]
2012-06-13 23:30:08, Info [oobeldr.exe] Source and destination paths are identical; skipping file copy.
2012-06-13 23:30:08, Info [oobeldr.exe] Cached unattend file, returned: [%windir%\panther\unattend.xml]
2012-06-13 23:30:08, Info [oobeldr.exe] Current pass status for [oobeSystem] is [0x0]
2012-06-13 23:30:08, Info [oobeldr.exe] Applying data-only settings overrides using SMI...
2012-06-13 23:30:08, Info CSI [email="00000001@2012/6/13:21:30:08.750"]00000001@2012/6/13:21:30:08.750[/email] WcpInitialize (wcp.dll version 0.0.0.6) called (stack @0x7fefb10e9a1 @0x7fefb3b9470 @0x7fefb3d3eb6 @0x7fefb3a5468 @0x7fefb3a43b7 @0xff7ca10f)
2012-06-13 23:30:08, Info [oobeldr.exe] Successfully applied data-only settings overrides.
2012-06-13 23:30:08, Info [oobeldr.exe] Calling into RunSMIActionPass to execute unattend GCs for pass [oobeSystem]
2012-06-13 23:30:08, Info [oobeldr.exe] [Action Queue] : GenerateActionQueue begin
2012-06-13 23:30:08, Info [oobeldr.exe] [Action Queue] : Processing pass = oobeSystem
2012-06-13 23:30:08, Info [oobeldr.exe] [Action Queue] : Generating queue file to C:\Windows\panther\actionqueue\oobeSystem.uaq
2012-06-13 23:30:08, Info [oobeldr.exe] [Action Queue] : Identity 0: Microsoft-Windows-Shell-Setup, Culture=neutral, Version=6.1.7600.16385, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=x86, versionScope=NonSxS
2012-06-13 23:30:08, Info [oobeldr.exe] [Action Queue] : Identity 1: Microsoft-Windows-International-Core, Culture=neutral, Version=6.1.7600.16385, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=amd64, versionScope=NonSxS
2012-06-13 23:30:08, Info [oobeldr.exe] [Action Queue] : Identity 2: Microsoft-Windows-International-Core, Culture=neutral, Version=6.1.7600.16385, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=x86, versionScope=NonSxS
2012-06-13 23:30:08, Info [oobeldr.exe] [Action Queue] : Identity 3: Microsoft-Windows-Shell-Setup, Culture=neutral, Version=6.1.7600.16385, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=amd64, versionScope=NonSxS
2012-06-13 23:30:08, Info [oobeldr.exe] [Action Queue] : Using component order file C:\Windows\winsxs\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7600.16385_none_655452efe0fb810b\GlobalInstallOrder.xml
2012-06-13 23:30:08, Info CSI [email="00000001@2012/6/13:21:30:08.890"]00000001@2012/6/13:21:30:08.890[/email] WcpInitialize (wcp.dll version 0.0.0.6) called (stack @0x7fefae5e9a1 @0x7fefb440930 @0x7fefb43fa00 @0x7fefb43f805 @0xff7c9c40 @0xff7c966e)
2012-06-13 23:30:09, Info [oobeldr.exe] [Action Queue] : Found manifest file C:\Windows\Winsxs\Manifests\amd64_microsoft-windows-international-core_31bf3856ad364e35_6.1.7600.16385_none_459f562ff37206dd.manifest
2012-06-13 23:30:09, Info [oobeldr.exe] [Action Queue] : Found manifest file C:\Windows\Winsxs\Manifests\x86_microsoft-windows-shell-setup_31bf3856ad364e35_6.1.7600.16385_none_d23128cf4af3c40d.manifest
2012-06-13 23:30:09, Info [oobeldr.exe] [Action Queue] : Found manifest file C:\Windows\Winsxs\Manifests\x86_microsoft-windows-international-core_31bf3856ad364e35_6.1.7600.16385_none_e980baac3b1495a7.manifest
2012-06-13 23:30:09, Info [oobeldr.exe] [Action Queue] : Found manifest file C:\Windows\Winsxs\Manifests\amd64_microsoft-windows-shell-setup_31bf3856ad364e35_6.1.7600.16385_none_2e4fc45303513543.manifest
2012-06-13 23:30:09, Info [oobeldr.exe] [Action Queue] : GenerateActionQueue finish (hr = 0x0)
2012-06-13 23:30:09, Info [oobeldr.exe] [Action Queue] : ProcessActionQueue start
2012-06-13 23:30:09, Info [oobeldr.exe] [Action Queue] : ProcessActionQueue using queue file C:\Windows\panther\actionqueue\oobeSystem.uaq
2012-06-13 23:30:09, Info [oobeldr.exe] [Action Queue] : Command Line = C:\WINDOWS\SYSTEM32\MUIUNATTEND.EXE / arguments = / pass = oobeSystem / manifest path = C:\Windows\Winsxs\Manifests\amd64_microsoft-windows-international-core_31bf3856ad364e35_6.1.7600.16385_none_459f562ff37206dd.manifest
2012-06-13 23:30:09, Info [oobeldr.exe] [Action Queue] : Command Line = C:\WINDOWS\SYSWOW64\RUNDLL32.EXE / arguments = shsetup.dll,SHUnattendedSetup / pass = oobeSystem / manifest path = C:\Windows\Winsxs\Manifests\x86_microsoft-windows-shell-setup_31bf3856ad364e35_6.1.7600.16385_none_d23128cf4af3c40d.manifest
2012-06-13 23:30:09, Info [oobeldr.exe] [Action Queue] : Command Line = C:\WINDOWS\SYSWOW64\MUIUNATTEND.EXE / arguments = / pass = oobeSystem / manifest path = C:\Windows\Winsxs\Manifests\x86_microsoft-windows-international-core_31bf3856ad364e35_6.1.7600.16385_none_e980baac3b1495a7.manifest
2012-06-13 23:30:09, Info [oobeldr.exe] [Action Queue] : Command Line = C:\WINDOWS\SYSTEM32\RUNDLL32.EXE / arguments = shsetup.dll,SHUnattendedSetup / pass = oobeSystem / manifest path = C:\Windows\Winsxs\Manifests\amd64_microsoft-windows-shell-setup_31bf3856ad364e35_6.1.7600.16385_none_2e4fc45303513543.manifest
2012-06-13 23:30:09, Info [oobeldr.exe] [Action Queue] : Executing command "C:\WINDOWS\SYSTEM32\MUIUNATTEND.EXE" oobeSystem
2012-06-13 23:30:09, Info [MUIUNATTEND.EXE] Starting MuiUnattend.exe GC
2012-06-13 23:30:09, Info [MUIUNATTEND.EXE] muiunattend is called with pass: oobeSystem
2012-06-13 23:30:09, Info [MUIUNATTEND.EXE] Found unattend setting "UILanguage" with value: "fr-FR".
2012-06-13 23:30:09, Info [MUIUNATTEND.EXE] Unattended setting "UILanguageFallback" could not be found. error:(2). Ignoring.
2012-06-13 23:30:09, Info [MUIUNATTEND.EXE] Found unattend setting "Systemlocale" with value: "fr-CH".
2012-06-13 23:30:09, Info [MUIUNATTEND.EXE] Found unattend setting "UserLocale" with value: "fr-CH".
2012-06-13 23:30:09, Info [MUIUNATTEND.EXE] Found unattend setting "InputLocale" with value: "100c:0000100c".
2012-06-13 23:30:09, Info [MUIUNATTEND.EXE] Setting UILanguage setting.
2012-06-13 23:30:09, Info [MUIUNATTEND.EXE] Setting UILanguage setting to fr-FR succeded.
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Setting system locale using unattended setting SystemLocale:"fr-CH".
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Set system locale to "fr-CH" successfully.
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Setting input locale using unattended setting InputLocale:"100c:0000100c;0807:00000807" and apply the same setting to default user accont/system accounts/new user account.
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Set input locale to "100c:0000100c;0807:00000807" and apply the same setting to default user accont/system accounts/new user account successfully.
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Setting user locale to using unattended setting UserLocale:"fr-CH", and try apply the same settings to default user accont/system accounts/new user account.
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Succeed in setting current user locale to "fr-CH".
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Succeed in setting location to 223.
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Succeed in copying settings for current user locale "fr-CH" to default user/system/new user accounts.
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Set user locale to "fr-CH" successfully and apply the same settings to default user acconts/system account/new user account.
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Applying user settings to all user (non-system) accounts.
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Input locale is set for user:Administrator, value:100c:0000100c;0807:00000807.
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] User locale is set for user:Administrator, value:fr-CH.
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Applying settings to user (non-system) accounts succeeded.
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Setting OOBE handshake information succeeded.
2012-06-13 23:30:10, Info [MUIUNATTEND.EXE] Exiting MuiUnattend.exe GC
2012-06-13 23:30:11, Info [oobeldr.exe] [Action Queue] : process exit code = 0
2012-06-13 23:30:11, Info [oobeldr.exe] [Action Queue] : Unattend action returned operation complete.
2012-06-13 23:30:11, Info [oobeldr.exe] [Action Queue] : Executing command "C:\WINDOWS\SYSWOW64\RUNDLL32.EXE" shsetup.dll,SHUnattendedSetup oobeSystem
2012-06-13 23:30:12, Info [Shell Unattend] Running 'oobeSystem' pass
2012-06-13 23:30:12, Info [Shell Unattend] Display: Requested Display Settings [1280 x 1024, 32 bpp, 60 hz]
2012-06-13 23:30:12, Warning [Shell Unattend] Display: ChangeDisplaySettings(all) failed (-2), trying separate parts...
2012-06-13 23:30:12, Info [Shell Unattend] Display: Successfully set width & height.
2012-06-13 23:30:12, Info [Shell Unattend] Display: Successfully set bits per pixel.
2012-06-13 23:30:12, Warning [Shell Unattend] Display: Attempt to set refresh rate failed. (-2)
2012-06-13 23:30:12, Info [Shell Unattend] LogonCommands: Set command 'cmd /c %SystemDrive%\Install\FirstLog_x86.cmd'
2012-06-13 23:30:12, Info [Shell Unattend] TimeZone: Time zone set to 'W. Europe Standard Time'
2012-06-13 23:30:13, Info [Shell Unattend] UserAccounts: created account 'Admin'
2012-06-13 23:30:13, Info [Shell Unattend] UserAccounts: added 'Admin' to group 'Users'
2012-06-13 23:30:13, Info [Shell Unattend] UserAccounts: Password set for 'Admin'
2012-06-13 23:30:13, Info [Shell Unattend] UserAccounts: added 'Admin' to group 'Administrators'
2012-06-13 23:30:13, Info [Shell Unattend] Exiting 'oobeSystem' pass with status 0x00000000
2012-06-13 23:30:13, Info [oobeldr.exe] [Action Queue] : process exit code = 0
2012-06-13 23:30:13, Info [oobeldr.exe] [Action Queue] : Unattend action returned operation complete.
2012-06-13 23:30:13, Info [oobeldr.exe] [Action Queue] : Executing command "C:\WINDOWS\SYSWOW64\MUIUNATTEND.EXE" oobeSystem
2012-06-13 23:30:13, Info [MUIUNATTEND.EXE] Starting MuiUnattend.exe GC
2012-06-13 23:30:13, Info [MUIUNATTEND.EXE] muiunattend is called with pass: oobeSystem
2012-06-13 23:30:13, Info [MUIUNATTEND.EXE] Found unattend setting "UILanguage" with value: "fr-FR".
2012-06-13 23:30:13, Info [MUIUNATTEND.EXE] Unattended setting "UILanguageFallback" could not be found. error:(2). Ignoring.
2012-06-13 23:30:13, Info [MUIUNATTEND.EXE] Found unattend setting "Systemlocale" with value: "fr-CH".
2012-06-13 23:30:13, Info [MUIUNATTEND.EXE] Found unattend setting "UserLocale" with value: "fr-CH".
2012-06-13 23:30:13, Info [MUIUNATTEND.EXE] Found unattend setting "InputLocale" with value: "100c:0000100c".
2012-06-13 23:30:13, Info [MUIUNATTEND.EXE] Setting UILanguage setting.
2012-06-13 23:30:13, Info [MUIUNATTEND.EXE] Setting UILanguage setting to fr-FR succeded.
2012-06-13 23:30:14, Info [MUIUNATTEND.EXE] Setting system locale using unattended setting SystemLocale:"fr-CH".
2012-06-13 23:30:14, Info [MUIUNATTEND.EXE] Set system locale to "fr-CH" successfully.
2012-06-13 23:30:14, Info [MUIUNATTEND.EXE] Setting input locale using unattended setting InputLocale:"100c:0000100c;0807:00000807" and apply the same setting to default user accont/system accounts/new user account.
2012-06-13 23:30:15, Info [MUIUNATTEND.EXE] Set input locale to "100c:0000100c;0807:00000807" and apply the same setting to default user accont/system accounts/new user account successfully.
2012-06-13 23:30:15, Info [MUIUNATTEND.EXE] Setting user locale to using unattended setting UserLocale:"fr-CH", and try apply the same settings to default user accont/system accounts/new user account.
2012-06-13 23:30:15, Info [MUIUNATTEND.EXE] Succeed in setting current user locale to "fr-CH".
2012-06-13 23:30:15, Info [MUIUNATTEND.EXE] Succeed in setting location to 223.
2012-06-13 23:30:15, Info [MUIUNATTEND.EXE] Succeed in copying settings for current user locale "fr-CH" to default user/system/new user accounts.
2012-06-13 23:30:15, Info [MUIUNATTEND.EXE] Set user locale to "fr-CH" successfully and apply the same settings to default user acconts/system account/new user account.
2012-06-13 23:30:15, Info [MUIUNATTEND.EXE] Applying user settings to all user (non-system) accounts.
2012-06-13 23:30:15, Info [MUIUNATTEND.EXE] Input locale is set for user:Administrator, value:100c:0000100c;0807:00000807.
2012-06-13 23:30:15, Info [MUIUNATTEND.EXE] User locale is set for user:Administrator, value:fr-CH.
2012-06-13 23:30:15, Info [MUIUNATTEND.EXE] Applying settings to user (non-system) accounts succeeded.
2012-06-13 23:30:15, Info [MUIUNATTEND.EXE] Setting OOBE handshake information succeeded.
2012-06-13 23:30:15, Info [MUIUNATTEND.EXE] Exiting MuiUnattend.exe GC
2012-06-13 23:30:15, Info [oobeldr.exe] [Action Queue] : process exit code = 0
2012-06-13 23:30:15, Info [oobeldr.exe] [Action Queue] : Unattend action returned operation complete.
2012-06-13 23:30:15, Info [oobeldr.exe] [Action Queue] : Executing command "C:\WINDOWS\SYSTEM32\RUNDLL32.EXE" shsetup.dll,SHUnattendedSetup oobeSystem
2012-06-13 23:30:15, Info [Shell Unattend] Running 'oobeSystem' pass
2012-06-13 23:30:15, Info [Shell Unattend] Display: Requested Display Settings [1280 x 1024, 32 bpp, 60 hz]
2012-06-13 23:30:15, Warning [Shell Unattend] Display: ChangeDisplaySettings(all) failed (-2), trying separate parts...
2012-06-13 23:30:15, Info [Shell Unattend] Display: Successfully set width & height.
2012-06-13 23:30:15, Info [Shell Unattend] Display: Successfully set bits per pixel.
2012-06-13 23:30:15, Warning [Shell Unattend] Display: Attempt to set refresh rate failed. (-2)
2012-06-13 23:30:15, Info [Shell Unattend] LogonCommands: Set command 'cmd /c %SystemDrive%\Install\FirstLog_x64.cmd'
2012-06-13 23:30:15, Info [Shell Unattend] TimeZone: Time zone set to 'W. Europe Standard Time'
2012-06-13 23:30:15, Info [Shell Unattend] UserAccounts: Password set for 'Admin'
2012-06-13 23:30:15, Info [Shell Unattend] Exiting 'oobeSystem' pass with status 0x00000000
2012-06-13 23:30:15, Info [oobeldr.exe] [Action Queue] : process exit code = 0
2012-06-13 23:30:15, Info [oobeldr.exe] [Action Queue] : Unattend action returned operation complete.
2012-06-13 23:30:15, Info [oobeldr.exe] [Action Queue] : ProcessActionQueue finish (hr = 0x0)
2012-06-13 23:30:15, Info [oobeldr.exe] Successfully completed execution of GC queue
2012-06-13 23:30:15, Info [oobeldr.exe] Flushing registry to disk...
2012-06-13 23:30:16, Info [oobeldr.exe] Flush took 515 ms.
2012-06-13 23:30:16, Info [oobeldr.exe] Successfully completed RunSMIPass for oobeSystem.
2012-06-13 23:30:16, Info [oobeldr.exe] No reboot has been requested for oobeSystem unattend.
2012-06-13 23:30:16, Info [oobeldr.exe] Successfully ran oobeSystem pass.
2012-06-13 23:30:16, Info [oobeldr.exe] Launching [C:\Windows\system32\oobe\msoobe.exe]...
2012-06-13 23:30:16, Info [msoobe.exe] Starting service sppsvc
2012-06-13 23:30:17, Info [msoobe.exe] Service sppsvc reports as running
2012-06-13 23:30:17, Info [msoobe.exe] Starting service audiosrv
2012-06-13 23:30:18, Info [msoobe.exe] Service audiosrv reports as running
2012-06-13 23:30:18, Info [msoobe.exe] Successfully created first boot reg key
2012-06-13 23:30:18, Info [msoobe.exe] Found SkipMachineOOBE value
2012-06-13 23:30:18, Info [msoobe.exe] Running mandatory tasks
2012-06-13 23:30:18, Info [msoobe.exe] Doing background work directly in MandatoryTasks; eType=1
2012-06-13 23:30:18, Info [msoobe.exe] Successfully installed product key
2012-06-13 23:30:18, Info [msoobe.exe] Starting service netprofm
2012-06-13 23:30:20, Info [msoobe.exe] Service netprofm reports as running
2012-06-13 23:30:20, Info [msoobe.exe] Successfully signalled event to start up services
2012-06-13 23:30:20, Info [msoobe.exe] Doing background work directly in MandatoryTasks; eType=0
2012-06-13 23:30:20, Info [msoobe.exe] Starting service Schedule
2012-06-13 23:30:23, Info [msoobe.exe] Service Schedule is already running
2012-06-13 23:30:23, Info [msoobe.exe] Successfully verified and committed UI language settings
2012-06-13 23:30:31, Info [msoobe.exe] Successfully notified UI language change
2012-06-13 23:30:31, Info [msoobe.exe] Successfully installed Windows Recovery Environment
2012-06-13 23:30:33, Info [msoobe.exe] Successfully removed administrator profile
2012-06-13 23:30:33, Info [msoobe.exe] Exiting mandatory tasks... [0x00000000]
2012-06-13 23:30:33, Info [msoobe.exe] Cleaning up background work
2012-06-13 23:30:33, Info [oobeldr.exe] OrchestrateUpdateImageState: Updating image state from [IMAGE_STATE_UNDEPLOYABLE] --> [IMAGE_STATE_COMPLETE]
2012-06-13 23:30:33, Info [oobeldr.exe] OOBELdr.exe exiting with code [0x0]...
2012-06-13 23:30:33, Info [windeploy.exe] Process exited with exit code [0x0]
2012-06-13 23:30:33, Info [0x090008] PANTHR CBlackboard::Open: C:\Windows\Panther\SetupInfo succeeded.
2012-06-13 23:30:33, Info [0x090009] PANTHR CBlackboard::Close: c:\windows\panther\setupinfo.
2012-06-13 23:30:33, Info [windeploy.exe] WinDeploy.exe exiting with code [0x0]

Autounattend.xml


<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" 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>fr-FR</UILanguage>
</SetupUILanguage>
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Diagnostics>
<OptIn>false</OptIn>
</Diagnostics>
<DiskConfiguration>
<WillShowUI>OnError</WillShowUI>
<Disk wcm:action="add">
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
<!--System partition-->
<CreatePartitions>
<CreatePartition wcm:action="add">
<Order>1</Order>
<Type>Primary</Type>
<Size>100</Size>
</CreatePartition>
<CreatePartition wcm:action="add">
<Order>2</Order>
<Type>Primary</Type>
<Extend>true</Extend>
</CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>system</Label>
<Order>1</Order>
<PartitionID>1</PartitionID>
</ModifyPartition>
<!--Windows partition-->
<ModifyPartition wcm:action="add">
<Format>NTFS</Format>
<Label>SEVEN</Label>
<Letter>C</Letter>
<Order>2</Order>
<PartitionID>2</PartitionID>
</ModifyPartition>
</ModifyPartitions>
</Disk>
</DiskConfiguration>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<DynamicUpdate>
<Enable>false</Enable>
<WillShowUI>Never</WillShowUI>
</DynamicUpdate>
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>2</PartitionID>
</InstallTo>
<WillShowUI>OnError</WillShowUI>
<InstallToAvailablePartition>false</InstallToAvailablePartition>
</OSImage>
</ImageInstall>
<UserData>
<AcceptEula>true</AcceptEula>
</UserData>
<EnableFirewall>true</EnableFirewall>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Deployment" 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">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>WScript.exe //B "%SystemDrive%\Install\Apps\Daemon\Daemon_x64.vbs"</Path>
</RunSynchronousCommand>
</RunSynchronous>
</component>
<component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>WScript.exe //B "%SystemDrive%\Install\Apps\Daemon\Daemon_x86.vbs"</Path>
</RunSynchronousCommand>
</RunSynchronous>
</component>
<component name="Microsoft-Windows-Security-SPP-UX" 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">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<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">
<ComputerName>*</ComputerName>
<TimeZone>W. Europe Standard Time</TimeZone>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>*</ComputerName>
<TimeZone>W. Europe Standard Time</TimeZone>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" 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">
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>100c:0000100c</InputLocale>
<SystemLocale>fr-CH</SystemLocale>
<UILanguage>fr-FR</UILanguage>
<UserLocale>fr-CH</UserLocale>
</component>
<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">
<TimeZone>W. Europe Standard Time</TimeZone>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<SkipMachineOOBE>true</SkipMachineOOBE>
</OOBE>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Description>Post Setup Installation</Description>
<CommandLine>cmd /c %SystemDrive%\Install\FirstLog_x64.cmd</CommandLine>
<Order>1</Order>
<RequiresUserInput>false</RequiresUserInput>
</SynchronousCommand>
</FirstLogonCommands>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<DisplayName>Admin</DisplayName>
<Name>Admin</Name>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<TimeZone>W. Europe Standard Time</TimeZone>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<RefreshRate>60</RefreshRate>
</Display>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<SkipMachineOOBE>true</SkipMachineOOBE>
</OOBE>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Description>Post Setup Installation</Description>
<CommandLine>cmd /c %SystemDrive%\Install\FirstLog_x86.cmd</CommandLine>
<Order>1</Order>
<RequiresUserInput>false</RequiresUserInput>
</SynchronousCommand>
</FirstLogonCommands>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
<DisplayName>Admin</DisplayName>
<Name>Admin</Name>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
</settings>
</unattend>

I think it seems we can't avoid some problem if the batch files aren't good anyway, and changing or not the passes order makes no difference!

setupact.zip

Edited by myselfidem

Share this post


Link to post
Share on other sites

*Edit:

However, we can see that the two passes are executed anyway even if processing amd64 first and x86 second installing Windows 7 64-bit versions!

There is a way around the "two pass" problem. Put in a statement that tests for a file that is created the first time the batch file is run. If the file is there (test returns true), then exit the batch file.

Simply put this at the beginning of the batch file and problem is solved. No more "run twice" problem.


if exits=%SystemDrive%\filetemp.txt exit
echo . > %SystemDrive%\filetemp.txt

Edited by crashfly

Share this post


Link to post
Share on other sites

Many thanks crashfly !

Yes the workaround works fine...but we must adapt the batch files if we want install Windows 7 x86 versions!

Regards

Edited by myselfidem

Share this post


Link to post
Share on other sites
Well, of course, we can do like you and ar_seven_am have suggested, processing amd64 first and x86 second inside our Autounattend.xml file - to avoid potential problems - installing Windows 7 64-bit editions with Windows 7 AIO - for "RunSynchronousCommand" inside "specialize passes" and "FirstLogonCommands" inside "oobeSystem passes"!

This seems to be the best way finally ! :P

Regards

*Edit:

However, we can see that the two passes are executed anyway even if processing amd64 first and x86 second installing Windows 7 64-bit versions!

We can look at "setupact.log" inside: C:\Windows\Panther\UnattendGC\setupact.log

After testing successfully Windows 7 64-bit AIO, here is mine setupact.log on VM Oracle VirtualBox

Thank you for putting the amd64 section first. You are correct that both sections will still run and that this is not a substitute for a properly constructed batch file. But both ar_seven_am and I, and perhaps others, prefer it this way, and again if it doesn't create any problems for you, why not? crashfly's method of checking for the existence of a file that either should or shouldn't be there if a routine has already been run, is one that is very often used and is a proven way to handle a situation that just can't seem to be handled any other way. Of course it is also always best if you have to create a flag file that you make every attempt to clean up after yourself and delete the flag file after you no longer need it. Assuming the batch will only be attempted to run twice, and you actually only want the code below the test to run once, this can be accomplished as follows:


if exits=%SystemDrive%\filetemp.txt del %SystemDrive%\filetemp.txt & exit
echo . > %SystemDrive%\filetemp.txt

(This also assumes that this code is in a batch file that will be called twice. If you have separate batch files for the x86 and amd64 section then this solution might not work for you.) And this test does not have to be the first lines of the batch. If there is code you always want to have run, even if it has been run before, then put this test after that code. To accomplish exactly what you want during an OS build requires a delicate dance between the Autoattend.xml and the batch files that it calls and exactly how those batch files are constructed - what is in them and in what order. Perhaps we should expand this thread's discussion to include the batch file's construction and contents in more detail since the batch files and the Autoattend.xml are so intertwined?

Cheers and Regards

Edited by bphlpt

Share this post


Link to post
Share on other sites

Well, perhaps the method crashfly suggested is the most convenient, in my case I'd rather have one batch only instead of two.

Going to do some tests. In the same way you can also set a reg key and check it when the batch runs, for example

REG QUERY , if exist "key" then exit

REG ADD "key"

Or something similar, nothing will be written to disk. Perhaps the RunOnceEx key if we are using it?

The method bphlpt explained is working perfect also, tested it yesterday. Thanks for the effort.

Ah, almost forgot, my batch will add some reg entries, after that it searches for a network share, if not found it searches for a local source.

If a source is found, it sets the post install source as a drive letter.

On that source drive is an universal ROE batch that adds the RunOnceEx entries to the registry. After that it is executed.

At the end a little cleanup and a reboot.

So: Autounattend > Firstlogon.cmd > ROE.cmd.

Where the Firstlogon is always on the systemdrive, the ROE batch can be anywhere.

Cheers.

Edited by Escorpiom

Share this post


Link to post
Share on other sites

Assuming the batch will only be attempted to run twice, and you actually only want the code below the test to run once, this can be accomplished as follows:


if exits=%SystemDrive%\filetemp.txt del %SystemDrive%\filetemp.txt & exit
echo . > %SystemDrive%\filetemp.txt

(This also assumes that this code is in a batch file that will be called twice. If you have separate batch files for the x86 and amd64 section then this solution might not work for you.) And this test does not have to be the first lines of the batch. If there is code you always want to have run, even if it has been run before, then put this test after that code. To accomplish exactly what you want during an OS build requires a delicate dance between the Autoattend.xml and the batch files that it calls and exactly how those batch files are constructed - what is in them and in what order.

Many thanks,

YES, it is the best way to set first passes amd64 and second x86 inside our Autounattend.xml AIO file ! ;)

But, I am not totally sure!

Sorry, but it would be nice if someone can give an example solving the Windows 7 AIO 64-bit installation about the passes! Because, I think since the begenning that SPTD Virtual Driver, seems not to be a good one!

Perhaps we should expand this thread's discussion to include the batch file's construction and contents in more detail since the batch files and the Autouattend.xml are so intertwined?

Yes, I think so. I think you and suggestions crashfly, have solved the problem improving the batch files!

As example, working fine for me with Daemon Tools (any order inside Autounattend.xml file):

Daemon_x86.cmd (set inside RunSynchronousCommand)


@echo off
echo.
if not exist "%SystemRoot%\SysWOW64\cmd.exe" if not defined PROCESSOR_ARCHITEW6432 goto :Cpu86
goto :exit
echo.
:Cpu86
rem TrustedPublisher Certificate needed to install Virtual SPTD Setup
regedit /s "%SystemDrive%\Install\Apps\Daemon\Daemon32.reg"
echo.
cmd /c %SystemDrive%\Install\Apps\Daemon\daemon-tools.exe /S
echo.
:exit

Daemon_x64.cmd


@echo off
echo.
if exist "%SystemRoot%\SysWOW64\cmd.exe" goto :Cpu64
goto :exit
echo.
:Cpu64
rem TrustedPublisher Certificate needed to install Virtual SPTD Setup
regedit /s "%SystemDrive%\Install\Apps\Daemon\Daemon64.reg"
echo.
cmd /c %SystemDrive%\Install\Apps\Daemon\daemon-tools.exe /S
echo.
:exit

@Escorpiom

Thanks to share your results !

Regards

Edited by myselfidem

Share this post


Link to post
Share on other sites

Here is the regkey I'm using to check for a double firstlogon-run:


REG QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PostInstall" /V "FirstLogonRan" >NUL 2>&1 && exit
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PostInstall" /V "FirstLogonRan" /T REG_DWORD /D "1" /F >NUL 2>&1

Not tested yet, but it should work.

I chose this reg key because it seems that it will not be redirected on x64. Adding should not be a problem, firstlogon runs as admin.

@myselfidem:

Your autounattend.xml has only the x86 WinPE pass, not the x64. Is it not needed?

Cheers.

Edited by Escorpiom

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now