locked
Headless installation, autounattend.xml RRS feed

  • General discussion

  • Continued discussion from another thread...

    The idea of this thread is to share how to install Windows Server 2012 (Beta) Essentials on a server without display/keyboard. On my part, I installed it on my old WHS server, which is an enhanced (new CPU, more memory) HP MediaSmart server EX 490.

    What I did was this:

    1. Prepare the USB stick (I used the"Windows 7 USB DVD Download Tool"); Also copy autounattend.xml to the USB stick; Plug-in the stick at the back of my server (front USB ports don't boot).
    2. Remove all disks from the server.
    3. Clean the disk intended as the system disk (I did this in my desktop PC, with DISKPART).
    4. Install the cleaned disk in the bottom bay.
    5. Turn on the machine, and wait for a long time (it took almost an hour, much longer than an installation on a virtual machine).
    6. Browse to the server (http://server/connect)
    7. Enter data (product key etc.), and wait some more
    8. Once set-up, proceed with connecting the clients

    The autounattend.xml was produced with Windows System Image Manager (aka WSIM).

    Here is the autounattend.xml, which works on the system described above:

    <?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="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                <SetupUILanguage>
                    <UILanguage>en-US</UILanguage>
                </SetupUILanguage>
                <InputLocale>de-CH</InputLocale>
                <SystemLocale>de-CH</SystemLocale>
                <UILanguage>en-US</UILanguage>
                <UserLocale>de-CH</UserLocale>
                <UILanguageFallback></UILanguageFallback>
            </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">
                <DiskConfiguration>
                    <Disk wcm:action="add">
                        <CreatePartitions>
                            <CreatePartition wcm:action="add">
                                <Order>1</Order>
                                <Size>350</Size>
                                <Type>Primary</Type>
                            </CreatePartition>
                            <CreatePartition wcm:action="add">
                                <Extend>false</Extend>
                                <Order>2</Order>
                                <Type>Primary</Type>
                                <Size>122880</Size>
                            </CreatePartition>
                        </CreatePartitions>
                        <ModifyPartitions>
                            <ModifyPartition wcm:action="add">
                                <Active>true</Active>
                                <Format>NTFS</Format>
                                <Label>Boot</Label>
                                <Order>1</Order>
                                <PartitionID>1</PartitionID>
                            </ModifyPartition>
                            <ModifyPartition wcm:action="add">
                                <Format>NTFS</Format>
                                <Label>System</Label>
                                <Order>2</Order>
                                <PartitionID>2</PartitionID>
                            </ModifyPartition>
                        </ModifyPartitions>
                        <DiskID>0</DiskID>
                        <WillWipeDisk>true</WillWipeDisk>
                    </Disk>
                </DiskConfiguration>
                <ImageInstall>
                    <OSImage>
                        <InstallFrom>
                            <MetaData wcm:action="add">
                                <Key>/IMAGE/NAME</Key>
                                <Value>Windows Server 2012 Essentials</Value>
                            </MetaData>
                        </InstallFrom>
                        <InstallTo>
                            <DiskID>0</DiskID>
                            <PartitionID>2</PartitionID>
                        </InstallTo>
                        <InstallToAvailablePartition>false</InstallToAvailablePartition>
                        <WillShowUI>OnError</WillShowUI>
                    </OSImage>
                </ImageInstall>
                <UserData>
                    <ProductKey>
                        <WillShowUI>OnError</WillShowUI>
                        <Key></Key>
                    </ProductKey>
                    <AcceptEula>true</AcceptEula>
                    <FullName>[Your Name]</FullName>
                    <Organization>[Your Org]</Organization>
                </UserData>
            </component>
        </settings>
        <settings pass="specialize">
            <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>Everest</ComputerName>
                <RegisteredOrganization>[Your Org]</RegisteredOrganization>
                <RegisteredOwner>[Your Name]</RegisteredOwner>
                <TimeZone>W. Europe Standard Time</TimeZone>
                <ProductKey>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</ProductKey>
            </component>
            <component name="Microsoft-Windows-TerminalServices-LocalSessionManager" 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">
                <fDenyTSConnections>false</fDenyTSConnections>
            </component>
            <component name="Networking-MPSSVC-Svc" 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">
                <FirewallGroups>
                    <FirewallGroup wcm:action="add" wcm:keyValue="Remote Desktop">
                        <Active>true</Active>
                        <Group>@FirewallAPI.dll,-28752</Group>
                        <Profile>all</Profile>
                    </FirewallGroup>
                </FirewallGroups>
            </component>
        </settings>
        <cpi:offlineImage cpi:source="wim:d:/temp/install/install.wim#Windows Server 2012 Essentials" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
    </unattend>


    • Changed type Tinue Friday, July 13, 2012 8:05 PM not a question...
    • Edited by Tinue Sunday, July 15, 2012 9:00 AM Increased size of hidden partition (on suggestion of "Grey"
    Friday, July 13, 2012 8:04 PM

All replies

  • FWIW:  I just looked at a "standard" install and the system reserved is 350mb with 78mb free.  So it looks like 8 may need more space....

    Grey

    Saturday, July 14, 2012 12:22 PM
  • It's strange: When I install with a 100MB partition I get 63.4 of 99.9 used. With a 350MB partition I get 108 of 349 used. But I guess it doesn't really matter on a 2TB disk, if I allocate 250MB more or not. Therefore I changed the script above.
    Sunday, July 15, 2012 10:55 AM
  • Adding this link back from your first post  for the time zone

    http://technet.microsoft.com/en-us/library/ff715394.aspx

    So the "new" cfg.ini file will only do the WSE12 OOBE (Out Of Box Expereince), therefore it is no good for headless.  Combine a cfg.ini with the above autounattent.xml for a complete headless install.  put both files in the root of the install media.

    cfg.ini sample

    [InitialConfiguration]
    ;Optional, display language can only be one of the installed language
    Language=en-us
    ;Optional, The name of a script that runs after setupComplete.cmd but before the initial configuration begins.
    ;Optional
    Locale=en-us
    ;Optional
    Country=US
    ;Optional
    Keyboard=0409:00000409
    AcceptEula=true
    ;This is only required on a server where an OEM EULA has been specified
    ;by using the OOBE.xml file

    ;Optional. Example: My Company Name
    CompanyName=Contoso
    ServerName=MyServer
    ; Example: CONTOSO
    NetbiosName=contoso
    ; Example: contoso.local
    DNSName=consoto.local
    ; Used to set the user name for the domain admin
    UserName=Grey
    ;The password has to be strong and at least 8 characters
    PlainTextPassword=Passw0rd
    ;. Used to set the user name for the domain standard user account. Ignored in migration mode.
    StdUserName=Grace
    ;. The password for the domain standard user account has to be strong and at least 8 characters
    StdUserPlainTextPassword=Passw0rd
    ;Controls the Watson and automatic update settings
    Settings=None


    Grey

    Wednesday, July 18, 2012 1:04 AM
  • Continued discussion from another thread...

    The idea of this thread is to share how to install Windows Server 2012 (Beta) Essentials on a server without display/keyboard. On my part, I installed it on my old WHS server, which is an enhanced (new CPU, more memory) HP MediaSmart server EX 490.

    What I did was this:

      • Prepare the USB stick (I used the"Windows 7 USB DVD Download Tool"); Also copy autounattend.xml to the USB stick; Plug-in the stick at the back of my server (front USB ports don't boot).
      • Remove all disks from the server.
      • Clean the disk intended as the system disk (I did this in my desktop PC, with DISKPART).
      • Install the cleaned disk in the bottom bay.
      • Turn on the machine, and wait for a long time (it took almost an hour, much longer than an installation on a virtual machine).
      • Browse to the server (http://server/connect)
      • Enter data (product key etc.), and wait some more
      • Once set-up, proceed with connecting the clients

    The autounattend.xml was produced with Windows System Image Manager (aka WSIM).

    Here is the autounattend.xml, which works on the system described above:



    Unattend innstall with .xml file will not work on my EX470. I have followed all instruktions but the installation stops each time after preparing/configuring the disk. No install files copyed/installed. Also tryed with the cfg.ini file too. Have no VGA-cable yet. Any idea how to proceed? Struggeled with these for many days now...
    Monday, October 8, 2012 12:45 AM
  • It is proven to work, my guess is your unatend is bad, and or a bad disc


    Grey


    • Edited by Still Grey Monday, October 8, 2012 11:52 PM
    Monday, October 8, 2012 11:52 PM
  • Is your Ex470 upgraded?  WSE2012 requires 2 GB RAM minimum and the stock EX470 came with 512 MB RAM.

    When I installed WHS2011 on my EX470, I did it by removing the boot drive and installing it in a PC (this is described in http://www.kewney.com/posts/database/installing-windows-home-server-2011-on-hp-mediasmart-ex470-or-ex475).  I didn't try this for WSE as I am using new hardware, but the same approach might work.

    Wednesday, October 10, 2012 6:27 PM
  • The installation installs but when the PC restarts to finish installation... if you do not unplugg the USB drive the installation restarts. Gotta wait to see when the server restarts itself?
    Monday, December 3, 2012 8:38 PM
  • Hi, I was windering if you could help me out making a fully unatended file for Server 2012 for an HP EX485 (no possible keyboard or mouse. I never got the recovery disk when i bought it used and i got Server 2012 Standard from Dreamspark with school.
    Thursday, December 6, 2012 1:14 AM
  • In many cases this process is not necessary. I started the installation on another PC (maybe a PC that is not too modern) with 64bit processor, keyboard and monitor. When I asked the first installation reboot the PC turned off, remove the hard drive and insert it into my EX490. The installation continued and after a while it detected on the network with a ping to the name he had given to the server. From that moment I logged on Terminal Server and continue with the installation.

    Hardware Astracción Layer  in newer versions of Windows is much improved and allows these things.

    • Edited by amgl7223 Friday, February 1, 2013 11:27 AM
    Friday, February 1, 2013 11:26 AM
  • Hello Tinue,

    What processor and memory do you have?

    I want a upgrade to

    Monday, February 11, 2013 1:02 PM
  • <?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="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
               
    <SetupUILanguage>
                   
    <UILanguage>en-US</UILanguage>
               
    </SetupUILanguage>
               
    <InputLocale>de-CH</InputLocale>
               
    <SystemLocale>de-CH</SystemLocale>
               
    <UILanguage>en-US</UILanguage>
               
    <UserLocale>de-CH</UserLocale>
               
    <UILanguageFallback></UILanguageFallback>
           
    </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">
               
    <DiskConfiguration>
                   
    <Disk wcm:action="add">
                       
    <CreatePartitions>
                           
    <CreatePartition wcm:action="add">
                               
    <Order>1</Order>
                               
    <Size>350</Size>
                               
    <Type>Primary</Type>
                           
    </CreatePartition>
                           
    <CreatePartition wcm:action="add">
                               
    <Extend>false</Extend>
                               
    <Order>2</Order>
                               
    <Type>Primary</Type>
                               
    <Size>122880</Size>
                           
    </CreatePartition>
                       
    </CreatePartitions>
                       
    <ModifyPartitions>
                           
    <ModifyPartition wcm:action="add">
                               
    <Active>true</Active>
                               
    <Format>NTFS</Format>
                               
    <Label>Boot</Label>
                               
    <Order>1</Order>
                               
    <PartitionID>1</PartitionID>
                           
    </ModifyPartition>
                           
    <ModifyPartition wcm:action="add">
                               
    <Format>NTFS</Format>
                               
    <Label>System</Label>
                               
    <Order>2</Order>
                               
    <PartitionID>2</PartitionID>
                           
    </ModifyPartition>
                       
    </ModifyPartitions>
                       
    <DiskID>0</DiskID>
                       
    <WillWipeDisk>true</WillWipeDisk>
                   
    </Disk>
               
    </DiskConfiguration>
               
    <ImageInstall>
                   
    <OSImage>
                       
    <InstallFrom>
                           
    <MetaData wcm:action="add">
            what do I put here
    <Key>/IMAGE/NAME</Key>
                               
    <Value>Windows Server 2012 Essentials</Value>
                           
    </MetaData>
                       
    </InstallFrom>
                       
    <InstallTo>
                           
    <DiskID>0</DiskID>
                           
    <PartitionID>2</PartitionID>
                       
    </InstallTo>
                       
    <InstallToAvailablePartition>false</InstallToAvailablePartition>
                       
    <WillShowUI>OnError</WillShowUI>
                   
    </OSImage>
               
    </ImageInstall>
               
    <UserData>
                   
    <ProductKey>
                       
    <WillShowUI>OnError</WillShowUI>
                       
    <Key></Key>
                   
    </ProductKey>
                   
    <AcceptEula>true</AcceptEula>
                   
    <FullName>[Your Name]</FullName>
                   
    <Organization>[Your Org]</Organization>
               
    </UserData>
           
    </component>
       
    </settings>
       
    <settings pass="specialize">
           
    <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>Everest</ComputerName>
               
    <RegisteredOrganization>[Your Org]</RegisteredOrganization>
               
    <RegisteredOwner>[Your Name]</RegisteredOwner>
               
    <TimeZone>W. Europe Standard Time</TimeZone>
               
    <ProductKey>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</ProductKey>
           
    </component>
           
    <component name="Microsoft-Windows-TerminalServices-LocalSessionManager" 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">
               
    <fDenyTSConnections>false</fDenyTSConnections>
           
    </component>
           
    <component name="Networking-MPSSVC-Svc" 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">
               
    <FirewallGroups>
                   
    <FirewallGroup wcm:action="add" wcm:keyValue="Remote Desktop">
                       
    <Active>true</Active>
                       
    <Group>@FirewallAPI.dll,-28752</Group>
                       
    <Profile>all</Profile>
                   
    </FirewallGroup>
               
    </FirewallGroups>
           
    </component>
       
    </settings>
       
    <cpi:offlineImage cpi:source="wim:d:/temp/install/install.wim#Windows Server 2012 Essentials" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
    </unattend>
    Saturday, October 17, 2015 1:59 PM
  • On first glance, this seems to be for 64-bit processor architectures, hence the "amd64" reference. There's also other very specific values in the example which may not work in each and every case.

    With other words: do not consider this example "universal" because it is not.

    Thursday, October 29, 2015 9:23 AM
  • Not sure I understand your reply.  All Server OS are 64 bit

    Grey

    Thursday, October 29, 2015 12:19 PM
  • amgl7223: What kind of Terminal Server did you use? And what data to connect to a server to continue installation? Name/password, etc? Please give as much info as possible. I started setup on a desktop computer till the first reboot, then I moved HDD to MSS. What is next? I did not use an XML file because there is no need for that in this way, right?





    • Edited by duraley Wednesday, September 28, 2016 4:54 PM
    Wednesday, September 28, 2016 4:38 PM
  • He meant he RDP (MSTSC) to the name he gave server during setup.  The User would be administrator and the password would be the one entered during setup

    What is MSS?  a Headless box?


    Grey

    Wednesday, September 28, 2016 5:32 PM