Prerequisites

WinPE

What to do: Create or refresh a WinPE environment compatible with SDA. Build WinPE using the Windows ADK (see next section) and then import it into the SDA appliance with Media Manager.

Samba Password

  • On the appliance, open the Control Panel and set the Samba password in General Settings.
Configure the Samba password

Driver Management

What to do: Centralize drivers by model/OS. Add them to the SDA driver library and assign them to the relevant scripted installs. Make sure storage, network, and chipset drivers are available at WinPE stage.

Windows ADK / WinPE Installation

What to do: Install the Windows ADK (Deployment Tools) and the WinPE Add-ons on the workstation where you run SDA Media Manager. After each major Windows release, reinstall the matching ADK/WinPE version.

SDA Media Manager Installation

Note: Reinstall Media Manager after every new SDA version or patch.

  • From the SDA web UI, download and install Media Manager on your admin workstation (where ADK/WinPE is installed).
Download Media Manager

Adding Sources and Tasks in SDA

To handle Legacy BIOS vs UEFI automatically, use a script that detects the firmware type and calls the appropriate diskpart routine. Use this example:

Diskpart Script (GitHub) – Auto UEFI/Legacy

Two possible executables:

  • Disk_x64.exe for 64-bit ISOs
  • Disk_x86.exe for 32-bit ISOs

These small AutoIt tools detect the BIOS type using wpeutil UpdateBootInfo and read HKLM\System\CurrentControlSet\Control. They then run the right diskpart file:

  • BIOS.txt
  • UEFI.txt

You can edit those text files to match your partitioning standard.

Legacy BIOS example (single C partition):

 select disk 0 clean create partition primary select partition 1 active assign exit 

UEFI example (single C partition):

 select disk 0 clean convert gpt create partition efi size=100 format quick fs=fat32 label="System" assign letter="S" create partition msr size=128 create partition primary format quick fs=ntfs label="Windows" assign letter="C" 
  • Adjust the two diskpart files before zipping, then create the Pre-Install task that calls the executable.
Diskpart setup in SDA

Windows 10/11 Source

In KACE SDA Media Manager:

  • Enter the appliance name and the Samba password.
  • In the Download Windows Media tab, specify the Windows version (10 or 11) and the path to your customized media (for example, ISO with NetFx3 added).
Upload the Windows ISO

Unattend.xml File

Note: Unlike Windows 10, on Windows 11 you must explicitly set the target DiskID and PartitionID. In the UEFI example above, Windows is on DiskID=0 / PartitionID=3.

Replace in this example:

  • Password1 ➜ the local Administrator password you want.
  • <LogonCount>1</LogonCount> ➜ number of automatic sign-ins you want.
  • leblogosd ➜ your organization name.
 &lt;?xml version="1.0" encoding="utf-8"?> &lt;unattend xmlns="urn:schemas-microsoft-com:unattend"> &lt;settings pass="windowsPE"> &lt;component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> &lt;ImageInstall> &lt;OSImage> &lt;WillShowUI>OnError&lt;/WillShowUI> &lt;InstallTo> &lt;DiskID>0&lt;/DiskID> &lt;PartitionID>3&lt;/PartitionID> &lt;/InstallTo> &lt;/OSImage> &lt;/ImageInstall> &lt;ComplianceCheck> &lt;DisplayReport>OnError&lt;/DisplayReport> &lt;/ComplianceCheck> &lt;UserData> &lt;AcceptEula>true&lt;/AcceptEula> &lt;ProductKey> &lt;Key>W269N-WFGWX-YVC9B-4J6C9-T83GX&lt;/Key> &lt;/ProductKey> &lt;/UserData> &lt;/component> &lt;component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> &lt;SetupUILanguage> &lt;UILanguage>en-US&lt;/UILanguage> &lt;/SetupUILanguage> &lt;InputLocale>0409:00000409&lt;/InputLocale> &lt;SystemLocale>fr-FR&lt;/SystemLocale> &lt;UILanguage>fr-FR&lt;/UILanguage> &lt;UserLocale>fr-FR&lt;/UserLocale> &lt;/component> &lt;/settings> &lt;settings pass="generalize"> &lt;component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> &lt;DoNotCleanTaskBar>true&lt;/DoNotCleanTaskBar> &lt;/component> &lt;/settings> &lt;settings pass="specialize"> &lt;component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" name="Microsoft-Windows-UnattendedJoin" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> &lt;Identification> &lt;JoinWorkgroup>WORKGROUP&lt;/JoinWorkgroup> &lt;/Identification> &lt;/component> &lt;component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> &lt;ComputerName>*&lt;/ComputerName> &lt;ProductKey>W269N-WFGWX-YVC9B-4J6C9-T83GX&lt;/ProductKey> &lt;RegisteredOrganization>leblogosd&lt;/RegisteredOrganization> &lt;RegisteredOwner>leblogosd&lt;/RegisteredOwner> &lt;DoNotCleanTaskBar>true&lt;/DoNotCleanTaskBar> &lt;TimeZone>Romance Standard Time&lt;/TimeZone> &lt;/component> &lt;component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> &lt;Home_Page>about:blank&lt;/Home_Page> &lt;/component> &lt;component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> &lt;RunSynchronous> &lt;RunSynchronousCommand wcm:action="add"> &lt;Description>EnableAdmin&lt;/Description> &lt;Order>1&lt;/Order> &lt;Path>cmd /c net user Administrator /active:yes&lt;/Path> &lt;/RunSynchronousCommand> &lt;RunSynchronousCommand wcm:action="add"> &lt;Description>UnfilterAdministratorToken&lt;/Description> &lt;Order>2&lt;/Order> &lt;Path>cmd /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0 /f&lt;/Path> &lt;/RunSynchronousCommand> &lt;RunSynchronousCommand wcm:action="add"> &lt;Description>disable user account page&lt;/Description> &lt;Order>3&lt;/Order> &lt;Path>reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\OOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f&lt;/Path> &lt;/RunSynchronousCommand> &lt;RunSynchronousCommand wcm:action="add"> &lt;Description>disable async RunOnce&lt;/Description> &lt;Order>4&lt;/Order> &lt;Path>reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer /v AsyncRunOnce /t REG_DWORD /d 0 /f&lt;/Path> &lt;/RunSynchronousCommand> &lt;/RunSynchronous> &lt;/component> &lt;component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> &lt;InputLocale>040C:0000040C&lt;/InputLocale> &lt;SystemLocale>fr-FR&lt;/SystemLocale> &lt;UILanguage>fr-FR&lt;/UILanguage> &lt;UserLocale>fr-FR&lt;/UserLocale> &lt;/component> &lt;component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-TapiSetup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> &lt;TapiConfigured>0&lt;/TapiConfigured> &lt;TapiUnattendLocation> &lt;AreaCode>""&lt;/AreaCode> &lt;CountryOrRegion>1&lt;/CountryOrRegion> &lt;LongDistanceAccess>9&lt;/LongDistanceAccess> &lt;OutsideAccess>9&lt;/OutsideAccess> &lt;PulseOrToneDialing>1&lt;/PulseOrToneDialing> &lt;DisableCallWaiting>""&lt;/DisableCallWaiting> &lt;InternationalCarrierCode>""&lt;/InternationalCarrierCode> &lt;LongDistanceCarrierCode>""&lt;/LongDistanceCarrierCode> &lt;Name>Default&lt;/Name> &lt;/TapiUnattendLocation> &lt;/component> &lt;component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> &lt;DisableSR>1&lt;/DisableSR> &lt;/component> &lt;/settings> &lt;settings pass="oobeSystem"> &lt;component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> &lt;UserAccounts> &lt;AdministratorPassword> &lt;Value>Password1&lt;/Value> &lt;PlainText>true&lt;/PlainText> &lt;/AdministratorPassword> &lt;/UserAccounts> &lt;AutoLogon> &lt;Enabled>true&lt;/Enabled> &lt;Username>Administrator&lt;/Username> &lt;Domain>.&lt;/Domain> &lt;Password> &lt;Value>Password1&lt;/Value> &lt;PlainText>true&lt;/PlainText> &lt;/Password> &lt;LogonCount>1&lt;/LogonCount> &lt;/AutoLogon> &lt;OOBE> &lt;HideEULAPage>true&lt;/HideEULAPage> &lt;NetworkLocation>Work&lt;/NetworkLocation> &lt;ProtectYourPC>1&lt;/ProtectYourPC> &lt;HideLocalAccountScreen>true&lt;/HideLocalAccountScreen> &lt;HideOnlineAccountScreens>true&lt;/HideOnlineAccountScreens> &lt;HideWirelessSetupInOOBE>true&lt;/HideWirelessSetupInOOBE> &lt;/OOBE> &lt;RegisteredOrganization>leblogosd&lt;/RegisteredOrganization> &lt;RegisteredOwner>leblogosd&lt;/RegisteredOwner> &lt;TimeZone>Romance Standard Time&lt;/TimeZone> &lt;/component> &lt;component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> &lt;InputLocale>040C:0000040C&lt;/InputLocale> &lt;SystemLocale>fr-FR&lt;/SystemLocale> &lt;UILanguage>fr-FR&lt;/UILanguage> &lt;UserLocale>fr-FR&lt;/UserLocale> &lt;/component> &lt;/settings> &lt;settings pass="offlineServicing"> &lt;component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> &lt;DriverPaths> &lt;PathAndCredentials wcm:keyValue="1" wcm:action="add"> &lt;Path>\Drivers&lt;/Path> &lt;/PathAndCredentials> &lt;/DriverPaths> &lt;/component> &lt;/settings> &lt;/unattend> 

Pre-Installation Tasks: GetComputerName

In the Pre-Installation Tasks:

  • Add a naming rule.
Naming rule — step 1
  • Change the command line to: GetComputerName_x64.exe /dialog /log
Naming rule — step 2

Mid-Level Tasks: SetComputerName

In the Mid-Level Tasks:

  • Add the naming rule that applies the previously captured name.
Apply computer name

Post-Installation Tasks: SMA AGENT

  • In Post-Installation Tasks, create a program to install the SMA agent.
Create SMA agent task
  • Add the MSI found at \\k1000\client\agent_provisioning\windows_platform.
Add agent MSI
  • Change the install command to include the SMA server name and an enrollment token.
Install command with server and token

Post-Installation Tasks: Adobe Reader

Using Adobe Reader as an example (same approach for other apps):

Prepare the app ZIP
  • In Post-Installation Tasks, add an application.
Add a post-install application
  • Add the installation sources (your ZIP).
Attach the app sources
  • Set the install command (e.g., install.bat).
Silent install command

Scripted Installation

Creating a New Scripted Installation

  • In Deployments, select Scripted Install.
Create a scripted install
  • Enter the installation name.
  • Specify the Windows ISO name (10/11).
Select the ISO
  • Use a custom answer file.
  • Provide the path to your unattend.xml.
Link the answer file

Adding Tasks

  • Add the Pre-Install tasks (diskpart/naming), Mid-Level tasks (SetComputerName), and Post-Install tasks (agent, apps).
Scripted tasks — 1
Scripted tasks — 2
Scripted tasks — 3
  • Save/validate.

Once the task is ready, you can deploy Windows 10/11.

Deployment

  • PXE-boot and choose Scripted Install.
PXE boot menu
  • Select your scripted installation.
Select the install
  • The installation starts.
Deployment progress

Similar Posts

One Comment

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.