[Libosinfo] [PATCH v2] win8: Add install script
Fabiano Fidêncio
fabiano at fidencio.org
Wed Jan 9 01:33:10 UTC 2013
On Tue, Jan 8, 2013 at 11:19 PM, Zeeshan Ali (Khattak)
<zeeshanak at gnome.org> wrote:
> From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>
>
> Using the desktop profile, I was able to do an express installation
> against GNOME Boxes.
>
> I'm adding a seperate script for windows 8 rather than re-using the
> existing unattended.xml we have for windows 7 because windows 8 requires
> product key to be specified while it remains optional for windows 7.
ACK!
> ---
> data/install-scripts/Makefile.am | 1 +
> data/install-scripts/windows-8-unattend.xml | 419 ++++++++++++++++++++++++++++
> data/oses/windows.xml.in | 3 +-
> 3 files changed, 422 insertions(+), 1 deletion(-)
> create mode 100644 data/install-scripts/windows-8-unattend.xml
>
> diff --git a/data/install-scripts/Makefile.am b/data/install-scripts/Makefile.am
> index cb24e09..29715d2 100644
> --- a/data/install-scripts/Makefile.am
> +++ b/data/install-scripts/Makefile.am
> @@ -6,6 +6,7 @@ database_DATA = \
> windows-cmd.xml \
> windows-reg.xml \
> windows-unattend.xml \
> + windows-8-unattend.xml \
> $(NULL)
>
> EXTRA_DIST = $(database_DATA)
> diff --git a/data/install-scripts/windows-8-unattend.xml b/data/install-scripts/windows-8-unattend.xml
> new file mode 100644
> index 0000000..cc6472b
> --- /dev/null
> +++ b/data/install-scripts/windows-8-unattend.xml
> @@ -0,0 +1,419 @@
> +<libosinfo version="0.0.1">
> + <install-script id='http://microsoft.com/windows/8/unattend/jeos'>
> + <profile>jeos</profile>
> + <path-format>dos</path-format>
> + <product-key-format>$$$$$-$$$$$-$$$$$-$$$$$-$$$$$</product-key-format>
> + <expected-filename>autounattend.xml</expected-filename>
> + <can-pre-install-drivers>true</can-pre-install-drivers>
> + <config>
> + <param name="admin-password" policy="optional"/>
> + <param name="hardware-arch" policy="optional"/>
> + <param name="l10n-language" policy="optional" value-map="http://microsoft.com/win/8/l10n-language-reverse"/>
> + <param name="user-login" policy="optional"/>
> + <param name="user-password" policy="optional"/>
> + <param name="user-realname" policy="optional"/>
> + <param name="reg-product-key" policy="required"/>
> + <param name="target-disk" policy="optional"/>
> + <param name="pre-install-drivers-disk" policy="optional"/>
> + <param name="pre-install-drivers-location" policy="optional"/>
> + </config>
> + <template>
> + <xsl:stylesheet
> + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> + version="1.0">
> +
> + <xsl:output method="xml" indent="yes"/>
> +
> + <xsl:template name="target-disk">
> + <xsl:choose>
> + <xsl:when test="config/target-disk != ''">
> + <xsl:value-of select="config/target-disk"/>
> + </xsl:when>
> + <xsl:otherwise>
> + <xsl:text>C</xsl:text>
> + </xsl:otherwise>
> + </xsl:choose>
> + </xsl:template>
> +
> + <xsl:template name="arch">
> + <xsl:choose>
> + <xsl:when test="count(config/hardware-arch) > 0">
> + <xsl:value-of select="config/hardware-arch"/>
> + </xsl:when>
> + <xsl:otherwise>
> + <xsl:text>x86</xsl:text>
> + </xsl:otherwise>
> + </xsl:choose>
> + </xsl:template>
> +
> + <xsl:template name="pre-install-drivers-disk">
> + <xsl:choose>
> + <xsl:when test="config/pre-install-drivers-disk != ''">
> + <xsl:value-of select="config/pre-install-drivers-disk"/>
> + </xsl:when>
> + <xsl:otherwise>
> + <xsl:text>A</xsl:text>
> + </xsl:otherwise>
> + </xsl:choose>
> + </xsl:template>
> +
> + <xsl:template name="pre-install-drivers-location">
> + <xsl:choose>
> + <xsl:when test="config/pre-install-drivers-location != ''">
> + <xsl:value-of select="config/pre-install-drivers-location"/>
> + </xsl:when>
> + <xsl:otherwise>
> + <xsl:text>\</xsl:text>
> + </xsl:otherwise>
> + </xsl:choose>
> + </xsl:template>
> +
> + <xsl:template match="/install-script-config">
> + <unattend xmlns="urn:schemas-microsoft-com:unattend">
> + <settings pass="windowsPE">
> + <component name="Microsoft-Windows-PnpCustomizationsWinPE" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> + <xsl:attribute name="processorArchitecture">
> + <xsl:call-template name="arch"/>
> + </xsl:attribute>
> + <DriverPaths>
> + <PathAndCredentials wcm:keyValue="1" wcm:action="add">
> + <Path><xsl:call-template name="pre-install-drivers-disk"/>:<xsl:call-template name="pre-install-drivers-location"/></Path>
> + </PathAndCredentials>
> + </DriverPaths>
> + </component>
> + <component name="Microsoft-Windows-Setup" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> + <xsl:attribute name="processorArchitecture">
> + <xsl:call-template name="arch"/>
> + </xsl:attribute>
> + <DiskConfiguration>
> + <WillShowUI>OnError</WillShowUI>
> + <Disk>
> + <CreatePartitions>
> + <CreatePartition>
> + <Order>1</Order>
> + <Size>1</Size>
> + <Type>Primary</Type>
> + </CreatePartition>
> + </CreatePartitions>
> + <DiskID>0</DiskID>
> + <WillWipeDisk>true</WillWipeDisk>
> + <ModifyPartitions>
> + <ModifyPartition>
> + <Active>true</Active>
> + <Extend>true</Extend>
> + <Format>NTFS</Format>
> + <Label><xsl:call-template name="target-disk"/> drive</Label>
> + <Letter><xsl:call-template name="target-disk"/></Letter>
> + <Order>1</Order>
> + <PartitionID>1</PartitionID>
> + </ModifyPartition>
> + </ModifyPartitions>
> + </Disk>
> + </DiskConfiguration>
> + <ImageInstall>
> + <OSImage>
> + <InstallTo>
> + <DiskID>0</DiskID>
> + <PartitionID>1</PartitionID>
> + </InstallTo>
> + <WillShowUI>OnError</WillShowUI>
> + </OSImage>
> + </ImageInstall>
> + <UserData>
> + <AcceptEula>true</AcceptEula>
> + <ProductKey>
> + <Key><xsl:value-of select="config/reg-product-key"/></Key>
> + </ProductKey>
> + </UserData>
> + </component>
> + <component name="Microsoft-Windows-International-Core-WinPE" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> + <xsl:attribute name="processorArchitecture">
> + <xsl:call-template name="arch"/>
> + </xsl:attribute>
> + <SetupUILanguage>
> + <UILanguage><xsl:value-of select="config/l10n-language"/></UILanguage>
> + </SetupUILanguage>
> + <SystemLocale><xsl:value-of select="config/l10n-language"/></SystemLocale>
> + <UILanguage><xsl:value-of select="config/l10n-language"/></UILanguage>
> + <UserLocale><xsl:value-of select="config/l10n-language"/></UserLocale>
> + </component>
> + </settings>
> + <settings pass="oobeSystem">
> + <component name="Microsoft-Windows-Shell-Setup" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> + <xsl:attribute name="processorArchitecture">
> + <xsl:call-template name="arch"/>
> + </xsl:attribute>
> + <UserAccounts>
> + <AdministratorPassword>
> + <Value><xsl:value-of select="config/admin-password"/></Value>
> + <PlainText>true</PlainText>
> + </AdministratorPassword>
> +
> + <xsl:if test="count(config/user-login) > 0">
> + <LocalAccounts>
> + <LocalAccount wcm:action="add">
> + <Password>
> + <Value><xsl:value-of select="config/user-password"/></Value>
> + <PlainText>false</PlainText>
> + </Password>
> + <Name><xsl:value-of select="config/user-login"/></Name>
> + <DisplayName><xsl:value-of select="config/user-realname"/></DisplayName>
> + <Group>users</Group>
> + </LocalAccount>
> + </LocalAccounts>
> + </xsl:if>
> + </UserAccounts>
> + <xsl:if test="count(config/user-login) > 0">
> + <AutoLogon>
> + <Password>
> + <Value><xsl:value-of select="config/user-password"/></Value>
> + <PlainText>true</PlainText>
> + </Password>
> + <Enabled>true</Enabled>
> + <LogonCount>5</LogonCount>
> + <Username><xsl:value-of select="config/user-login"/></Username>
> + </AutoLogon>
> + </xsl:if>
> + <OOBE>
> + <NetworkLocation>Work</NetworkLocation>
> + <HideEULAPage>true</HideEULAPage>
> + <ProtectYourPC>3</ProtectYourPC>
> + <SkipMachineOOBE>true</SkipMachineOOBE>
> + <SkipUserOOBE>true</SkipUserOOBE>
> + </OOBE>
> + <FirstLogonCommands>
> + <SynchronousCommand wcm:action="add">
> + <Order>1</Order>
> + <Description>Turn Off Network Selection pop-up</Description>
> + <CommandLine>cmd /c reg add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NewNetworkWindowOff"</CommandLine>
> + </SynchronousCommand>
> + <SynchronousCommand wcm:action="add">
> + <Order>2</Order>
> + <Description>Shutting down Windows</Description>
> + <CommandLine>cmd /C shutdown /s /t 0</CommandLine>
> + </SynchronousCommand>
> + </FirstLogonCommands>
> + </component>
> + </settings>
> + </unattend>
> + </xsl:template>
> + </xsl:stylesheet>
> + </template>
> + </install-script>
> +
> + <!-- DESKTOP PROFILE -->
> + <install-script id='http://microsoft.com/windows/8/unattend/desktop'>
> + <profile>desktop</profile>
> + <path-format>dos</path-format>
> + <product-key-format>$$$$$-$$$$$-$$$$$-$$$$$-$$$$$</product-key-format>
> + <expected-filename>autounattend.xml</expected-filename>
> + <can-pre-install-drivers>true</can-pre-install-drivers>
> + <config>
> + <param name="admin-password" policy="optional"/>
> + <param name="hardware-arch" policy="required"/>
> + <param name="l10n-language" policy="optional" value-map="http://microsoft.com/win/8/l10n-language-reverse"/>
> + <param name="user-login" policy="optional"/>
> + <param name="user-password" policy="optional"/>
> + <param name="user-realname" policy="optional"/>
> + <param name="hostname" policy="required"/>
> + <param name="reg-product-key" policy="required"/>
> + <param name="target-disk" policy="optional"/>
> + <param name="pre-install-drivers-disk" policy="optional"/>
> + <param name="pre-install-drivers-location" policy="optional"/>
> + </config>
> + <template>
> + <xsl:stylesheet
> + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> + version="1.0">
> +
> + <xsl:output method="xml" indent="yes"/>
> +
> + <xsl:template name="target-disk">
> + <xsl:choose>
> + <xsl:when test="config/target-disk != ''">
> + <xsl:value-of select="config/target-disk"/>
> + </xsl:when>
> + <xsl:otherwise>
> + <xsl:text>C</xsl:text>
> + </xsl:otherwise>
> + </xsl:choose>
> + </xsl:template>
> +
> + <xsl:template name="arch">
> + <xsl:choose>
> + <xsl:when test="config/hardware-arch = 'x86_64'">
> + <xsl:text>amd64</xsl:text>
> + </xsl:when>
> + <xsl:when test="config/hardware-arch = 'i386'">
> + <xsl:text>x86</xsl:text>
> + </xsl:when>
> + <xsl:otherwise>
> + <xsl:text>x86</xsl:text>
> + </xsl:otherwise>
> + </xsl:choose>
> + </xsl:template>
> +
> + <xsl:template name="pre-install-drivers-disk">
> + <xsl:choose>
> + <xsl:when test="config/pre-install-drivers-disk != ''">
> + <xsl:value-of select="config/pre-install-drivers-disk"/>
> + </xsl:when>
> + <xsl:otherwise>
> + <xsl:text>A</xsl:text>
> + </xsl:otherwise>
> + </xsl:choose>
> + </xsl:template>
> +
> + <xsl:template name="pre-install-drivers-location">
> + <xsl:choose>
> + <xsl:when test="config/pre-install-drivers-location != ''">
> + <xsl:value-of select="config/pre-install-drivers-location"/>
> + </xsl:when>
> + <xsl:otherwise>
> + <xsl:text>\</xsl:text>
> + </xsl:otherwise>
> + </xsl:choose>
> + </xsl:template>
> +
> + <xsl:template match="/install-script-config">
> + <unattend xmlns="urn:schemas-microsoft-com:unattend">
> + <settings pass="windowsPE">
> + <component name="Microsoft-Windows-PnpCustomizationsWinPE" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> + <xsl:attribute name="processorArchitecture">
> + <xsl:call-template name="arch"/>
> + </xsl:attribute>
> + <DriverPaths>
> + <PathAndCredentials wcm:keyValue="1" wcm:action="add">
> + <Path><xsl:call-template name="pre-install-drivers-disk"/>:<xsl:call-template name="pre-install-drivers-location"/></Path>
> + </PathAndCredentials>
> + </DriverPaths>
> + </component>
> + <component name="Microsoft-Windows-Setup" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> + <xsl:attribute name="processorArchitecture">
> + <xsl:call-template name="arch"/>
> + </xsl:attribute>
> + <DiskConfiguration>
> + <WillShowUI>OnError</WillShowUI>
> + <Disk>
> + <CreatePartitions>
> + <CreatePartition>
> + <Order>1</Order>
> + <Size>1</Size>
> + <Type>Primary</Type>
> + </CreatePartition>
> + </CreatePartitions>
> + <DiskID>0</DiskID>
> + <WillWipeDisk>true</WillWipeDisk>
> + <ModifyPartitions>
> + <ModifyPartition>
> + <Active>true</Active>
> + <Extend>true</Extend>
> + <Format>NTFS</Format>
> + <Label><xsl:call-template name="target-disk"/> drive</Label>
> + <Letter><xsl:call-template name="target-disk"/></Letter>
> + <Order>1</Order>
> + <PartitionID>1</PartitionID>
> + </ModifyPartition>
> + </ModifyPartitions>
> + </Disk>
> + </DiskConfiguration>
> + <ImageInstall>
> + <OSImage>
> + <InstallTo>
> + <DiskID>0</DiskID>
> + <PartitionID>1</PartitionID>
> + </InstallTo>
> + <WillShowUI>OnError</WillShowUI>
> + </OSImage>
> + </ImageInstall>
> + <UserData>
> + <AcceptEula>true</AcceptEula>
> + <ProductKey>
> + <Key><xsl:value-of select="config/reg-product-key"/></Key>
> + </ProductKey>
> + </UserData>
> + </component>
> + <component name="Microsoft-Windows-International-Core-WinPE" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> + <xsl:attribute name="processorArchitecture">
> + <xsl:call-template name="arch"/>
> + </xsl:attribute>
> + <SetupUILanguage>
> + <UILanguage><xsl:value-of select="config/l10n-language"/></UILanguage>
> + </SetupUILanguage>
> + <SystemLocale><xsl:value-of select="config/l10n-language"/></SystemLocale>
> + <UILanguage><xsl:value-of select="config/l10n-language"/></UILanguage>
> + <UserLocale><xsl:value-of select="config/l10n-language"/></UserLocale>
> + </component>
> + </settings>
> + <xsl:if test="os/version > 6.0">
> + <settings pass="specialize">
> + <component name="Microsoft-Windows-Shell-Setup" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> + <xsl:attribute name="processorArchitecture">
> + <xsl:call-template name="arch"/>
> + </xsl:attribute>
> + <ComputerName><xsl:value-of select="config/hostname"/></ComputerName>
> + </component>
> + </settings>
> + </xsl:if>
> + <settings pass="oobeSystem">
> + <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="BOXES_CPU" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> + <xsl:attribute name="processorArchitecture">
> + <xsl:call-template name="arch"/>
> + </xsl:attribute>
> + <UserAccounts>
> + <AdministratorPassword>
> + <Value><xsl:value-of select="config/admin-password"/></Value>
> + <PlainText>true</PlainText>
> + </AdministratorPassword>
> + <xsl:if test="count(config/user-login) > 0">
> + <LocalAccounts>
> + <LocalAccount wcm:action="add">
> + <Password>
> + <Value><xsl:value-of select="config/user-password"/></Value>
> + <PlainText>true</PlainText>
> + </Password>
> + <Description><xsl:value-of select="config/user-realname"/></Description>
> + <DisplayName><xsl:value-of select="config/user-realname"/></DisplayName>
> + <Group>Administrators;Power Users</Group>
> + <Name><xsl:value-of select="config/user-login"/></Name>
> + </LocalAccount>
> + </LocalAccounts>
> + </xsl:if>
> + </UserAccounts>
> + <xsl:if test="count(config/user-login) > 0">
> + <AutoLogon>
> + <Password>
> + <Value><xsl:value-of select="config/user-password"/></Value>
> + <PlainText>true</PlainText>
> + </Password>
> + <Enabled>true</Enabled>
> + <LogonCount>5</LogonCount>
> + <Username><xsl:value-of select="config/user-login"/></Username>
> + </AutoLogon>
> + </xsl:if>
> + <OOBE>
> + <xsl:if test="os/version > 6.0">
> + <NetworkLocation>Work</NetworkLocation>
> + <SkipMachineOOBE>true</SkipMachineOOBE>
> + <SkipUserOOBE>true</SkipUserOOBE>
> + </xsl:if>
> + <HideEULAPage>true</HideEULAPage>
> + <ProtectYourPC>3</ProtectYourPC>
> + </OOBE>
> + <xsl:if test="os/version > 6.0">
> + <FirstLogonCommands>
> + <SynchronousCommand wcm:action="add">
> + <Order>1</Order>
> + <Description>Turn Off Network Selection pop-up</Description>
> + <CommandLine>cmd /c reg add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NewNetworkWindowOff"</CommandLine>
> + </SynchronousCommand>
> + </FirstLogonCommands>
> + </xsl:if>
> + </component>
> + </settings>
> + </unattend>
> + </xsl:template>
> + </xsl:stylesheet>
> + </template>
> + </install-script>
> +</libosinfo>
> diff --git a/data/oses/windows.xml.in b/data/oses/windows.xml.in
> index 310de62..364fcaa 100644
> --- a/data/oses/windows.xml.in
> +++ b/data/oses/windows.xml.in
> @@ -822,7 +822,8 @@
> </devices>
>
> <installer>
> - <script id='http://microsoft.com/windows/unattend'/>
> + <script id='http://microsoft.com/windows/8/unattend/jeos'/>
> + <script id='http://microsoft.com/windows/8/unattend/desktop'/>
> </installer>
> </os>
>
> --
> 1.8.0.2
>
> _______________________________________________
> Libosinfo mailing list
> Libosinfo at redhat.com
> https://www.redhat.com/mailman/listinfo/libosinfo
--
Fabiano Fidêncio
More information about the Libosinfo
mailing list