Windows 10

Windows 10 LTSC 2019 | Unattended Installation



INTRO

Windows 10 LTSC 2019 is a stripped-down version of Windows 10 replacing the Windows Embedded line of editions. I do really like this version of Windows 10 and I wish more PCs were running it as it does not contain the bloatware by Microsoft as we’re custom to seeing on standard Windows 10 editions.

In a previous post, here. I shared with you how to automate a clean installation of Windows 10 feature build 1803. Well, 1803 is in the past now, and I will be releasing new AutoUnattend.xml configurations in the future. I recently received a Dell PowerEdge R230 and am now running Windows Hyper-V Server 2019 in my home environment so testing things is going to be a lot faster now.

In any case, I have an AutoUnattend.xml ready and tested for Windows 10 Enterprise LTSC 2019. The install goes straight to the desktop, there are no user prompts, tested the install with and without an active Internet Connection available to the Virtual Machine.

I will not be adding BIOS versions in the future because UEFI is the way forward now. Everybody should be pushing for migration to UEFI. If you want or need a BIOS/MBR version, you can use WSIM to create your own and compare to my Windows 10 1803 version.

A couple of things to take into consideration via the customizations I added.

ANSWER FILE NOTES

  • The computer name is “WR-CLI-DWK-01”.
    • Naming Convention: WinReflection – Client – Dell Workstation – Install Instance
  • No Product Key was used because one was not needed.
  • Once connected to the Internet, you will have 90 days to evaluate.
  • 2 Local User Accounts will be created, Administrator (Built-in Administrator), and Support (Administrator).
  • The resolution is set to 1280 x 1024.
  • D:\unattended\FirstLogonCommands1.cmd is run on the first login to the Built-in Administrator account from the D: drive which is a USB drive. I use this to apply all the changes I want, Group Policies, drivers, files, settings, etc.
  • An Internet Explorer shortcut is added to the taskbar.

Please change to your liking. Please let me know if there are any issues.

PREPARING FOR INSTALL

The passwords in these Answer Files are hashed in Base64, you can use an online decoder to get the value, which I will give you. It’s “Password01!” without quotes. Only the Administrator user accounts will have this password, Support I just used a random one, and you need to change them after the OS is installed. The dummy password is just to get things going that’s why it’s not a secure one.

Additionally, if you need to install to a different disk, you need to first boot the installation media and go into Command Prompt via Windows PE. See below for commands and output on one of my servers using DiskPart.

BAT (Batchfile)
C:\Users\Administrator>diskpart

Microsoft DiskPart version 10.0.17763.1911

Copyright (C) Microsoft Corporation.
On computer: WR-CLI-DWK-G77

DISKPART> list disk

Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0   Online        232 GB  0       B   *
Disk 1   Online        232 GB  1024    KB  *

The DiskIDs will be listed, and this is what will be seen when the OS installed. There are two lines in the Answer File with the DiskID. You need to replace “0” with the DiskID you want to install to. If you get this wrong, you will lose data wiping a different disk. If you do not see your disks, it’s most likely because Windows PE does not have drivers for your SATA or RAID controllers, and you will need to integrate those with DISM commands and then use DISM commands again to integrate the drivers or use third-party software like NTLite.

The easiest way to get the drivers you need is on a fully installed OS; you simply use these commands to export all third-party drivers (.inf) into a folder. You will want to do this before installing since there is no GUI or Windows Desktop to do so after the fact. You will want to integrate into both the install.wim image and the boot.wim images.

I have noticed when using the Answer File saved to a USB drive, sometimes Windows Setup boots-up before the chipset and USB controllers are ready, so you may need to click “Install” first, but after that the install should take off in unattended fashion. The only way around this is to integrate the AutoUnattend.xml file into the boot.wim image next to Windows Setup, this is explained in a post I made years ago in 2018 which you can find.

AUTOUNATTEND.XML – UEFI | GPT:

XML
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
        <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">
            <UserData>
                <AcceptEula>true</AcceptEula>
                <FullName></FullName>
                <Organization></Organization>
            </UserData>
            <DiskConfiguration>
                <Disk wcm:action="add">
                    <CreatePartitions>
                        <CreatePartition wcm:action="add">
                            <Type>EFI</Type>
                            <Size>512</Size>
                            <Order>1</Order>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Extend>false</Extend>
                            <Type>MSR</Type>
                            <Order>2</Order>
                            <Size>128</Size>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Type>Primary</Type>
                            <Order>3</Order>
                            <Size>1024</Size>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>4</Order>
                            <Type>Primary</Type>
                            <Extend>true</Extend>
                        </CreatePartition>
                    </CreatePartitions>
                    <ModifyPartitions>
                        <ModifyPartition wcm:action="add">
                            <Format>FAT32</Format>
                            <Order>1</Order>
                            <PartitionID>1</PartitionID>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>2</Order>
                            <PartitionID>2</PartitionID>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Format>NTFS</Format>
                            <Order>3</Order>
                            <PartitionID>3</PartitionID>
                            <Label>Recovery</Label>
                            <TypeID>DE94BBA4-06D1-4D40-A16A-BFD50179D6AC</TypeID>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Format>NTFS</Format>
                            <Label>Windows</Label>
                            <Order>4</Order>
                            <PartitionID>4</PartitionID>
                        </ModifyPartition>
                    </ModifyPartitions>
                    <DiskID>0</DiskID>
                    <WillWipeDisk>true</WillWipeDisk>
                </Disk>
                <WillShowUI>OnError</WillShowUI>
            </DiskConfiguration>
            <ImageInstall>
                <OSImage>
                    <InstallTo>
                        <DiskID>0</DiskID>
                        <PartitionID>4</PartitionID>
                    </InstallTo>
                    <InstallToAvailablePartition>false</InstallToAvailablePartition>
                    <WillShowUI>OnError</WillShowUI>
                </OSImage>
            </ImageInstall>
            <Display>
                <HorizontalResolution>1280</HorizontalResolution>
                <VerticalResolution>1024</VerticalResolution>
            </Display>
        </component>
        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <SetupUILanguage>
                <UILanguage>en-US</UILanguage>
            </SetupUILanguage>
            <UserLocale>en-US</UserLocale>
            <UILanguage>en-US</UILanguage>
            <SystemLocale>en-US</SystemLocale>
            <InputLocale>en-US</InputLocale>
        </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>WR-CLI-DWK-01</ComputerName>
            <RegisteredOwner></RegisteredOwner>
            <RegisteredOrganization></RegisteredOrganization>
            <Display>
                <HorizontalResolution>1280</HorizontalResolution>
                <VerticalResolution>1024</VerticalResolution>
            </Display>
        </component>
    </settings>
    <settings pass="oobeSystem">
        <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">
            <UserAccounts>
                <AdministratorPassword>
                    <Value>UABhAHMAcwB3AG8AcgBkADAAMQAhAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
                    <PlainText>false</PlainText>
                </AdministratorPassword>
                <LocalAccounts>
                    <LocalAccount wcm:action="add">
                        <Password>
                            <Value>TQBhAHMAdABlAHIAMAAxACEAUABhAHMAcwB3AG8AcgBkAA==</Value>
                            <PlainText>false</PlainText>
                        </Password>
                        <Name>Support</Name>
                        <Group>Administrators</Group>
                    </LocalAccount>
                </LocalAccounts>
            </UserAccounts>
            <AutoLogon>
                <Password>
                    <Value>UABhAHMAcwB3AG8AcgBkADAAMQAhAFAAYQBzAHMAdwBvAHIAZAA=</Value>
                    <PlainText>false</PlainText>
                </Password>
                <Enabled>true</Enabled>
                <Username>Administrator</Username>
            </AutoLogon>
            <OOBE>
                <ProtectYourPC>3</ProtectYourPC>
                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
                <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
            </OOBE>
            <FirstLogonCommands>
                <SynchronousCommand wcm:action="add">
                    <Order>1</Order>
                    <CommandLine>D:\unattended\FirstLogonCommands1.cmd</CommandLine>
                </SynchronousCommand>
            </FirstLogonCommands>
            <TaskbarLinks>
                <Link0>%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk</Link0>
                <Link1></Link1>
            </TaskbarLinks>
            <Display>
                <HorizontalResolution>1280</HorizontalResolution>
                <VerticalResolution>1024</VerticalResolution>
            </Display>
        </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>en-US</InputLocale>
            <SystemLocale>en-US</SystemLocale>
            <UILanguage>en-US</UILanguage>
            <UserLocale>en-US</UserLocale>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="catalog:w:/cese_x64free_en-us_dv5/wsim answer files and catalogs/install_windows 10 enterprise ltsc 2019 evaluation.clg" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

CONCLUSION 

That should be it. Let me know if you have any issues with it. Have a great day!

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *