[Libosinfo] [PATCH 2/2] win8: Add install script
Zeeshan Ali (Khattak)
zeeshanak at gnome.org
Thu Dec 27 20:23:10 UTC 2012
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 option for windows 7.
---
data/install-scripts/Makefile.am | 1 +
data/install-scripts/windows-8-unattend.xml | 453 ++++++++++++++++++++++++++++
data/oses/windows.xml.in | 3 +-
3 files changed, 456 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..9e5afbc
--- /dev/null
+++ b/data/install-scripts/windows-8-unattend.xml
@@ -0,0 +1,453 @@
+<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"/>
+ <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="language">
+ <xsl:variable name="language">
+ <xsl:value-of select="config/l10n-language"/>
+ </xsl:variable>
+ <xsl:variable name="formatted-language">
+ <xsl:value-of select="translate($language,'_','-')"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($formatted-language,'.')">
+ <xsl:value-of select="substring-before($formatted-language,'.')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$formatted-language"/>
+ </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:call-template name="language"/></UILanguage>
+ </SetupUILanguage>
+ <SystemLocale><xsl:call-template name="language"/></SystemLocale>
+ <UILanguage><xsl:call-template name="language"/></UILanguage>
+ <UserLocale><xsl:call-template name="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"/>
+ <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="language">
+ <xsl:variable name="language">
+ <xsl:value-of select="config/l10n-language"/>
+ </xsl:variable>
+ <xsl:variable name="formatted-language">
+ <xsl:value-of select="translate($language,'_','-')"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($formatted-language,'.')">
+ <xsl:value-of select="substring-before($formatted-language,'.')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$formatted-language"/>
+ </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:call-template name="language"/></UILanguage>
+ </SetupUILanguage>
+ <SystemLocale><xsl:call-template name="language"/></SystemLocale>
+ <UILanguage><xsl:call-template name="language"/></UILanguage>
+ <UserLocale><xsl:call-template name="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
More information about the Libosinfo
mailing list