Install a tiny version of Windows 11 without any inputs. (autounattend.xml)

2025-03-10 11:03:59 - No Comments

Windows 11 Tiny Edition

  1. Download Windows 11 from the Microsoft website (https://www.microsoft.com/software-download/windows11)
  2. Mount the downloaded ISO image using Windows Explorer.
  3. Download Git by going to https://git-scm.com/download/win and the download will start automatically.
  4. Install git by running the installer.
git clone https://github.com/ntdevlabs/tiny11builder.git
cd tiny11builder

Next up we need a autounattend.xml file and we can create one using this generator:
https://schneegans.de/windows/unattend-generator/

A thing you can add to that script is a shutdown command to enable more installs than one with the script.

                <SynchronousCommand wcm:action="add">
                    <CommandLine>cmd /c shutdown /s /t 0</CommandLine>
                    <Description>Shut down immediately</Description>
                    <Order>2</Order>
                </SynchronousCommand>

We also need to add a couple of things to the tiny11maker.ps1 below when it removes OneDrive.

Remove-Item -Path "$ScratchDisk\tiny11\efi\microsoft\boot\efisys.bin" -Force | Out-Null
Rename-Item -Path "$ScratchDisk\tiny11\efi\microsoft\boot\efisys_noprompt.bin" -NewName "efisys.bin" | Out-Null

Remove-Item -Path "$ScratchDisk\tiny11\efi\microsoft\boot\cdboot.efi" -Force | Out-Null
Rename-Item -Path "$ScratchDisk\tiny11\efi\microsoft\boot\cdboot_noprompt.efi" -NewName "cdboot.efi" | Out-Null

Remove-Item -Path "$ScratchDisk\tiny11\boot\bootfix.bin" -Force | Out-Null

Next up we run the powershell script.

Set-ExecutionPolicy unrestricted
./tiny11maker.ps1
  1. Select the drive letter where the image is mounted (only the letter, no colon :)
  2. Select the SKU that you want the image to be based.
  3. Choose if you need .NET 3.5
  4. When the image is completed, you will see it in the script directory, with the name tiny11.iso
#!/bin/bash

vboxmanage createvm --name=$1 --ostype="Windows11_64" --register
vboxmanage modifyvm $1 --cpus=2
vboxmanage modifyvm $1 --memory=2048
vboxmanage modifyvm $1 --pae=off
vboxmanage modifyvm $1 --longmode=on

vboxmanage modifyvm $1 --audio-driver=none
vboxmanage modifyvm $1 --firmware=efi64
vboxmanage modifyvm $1 --tpm-type=2.0
vboxmanage modifyvm $1 --clipboard-mode=bidirectional
vboxmanage modifyvm $1 --bridgeadapter1="eno1"
vboxmanage modifyvm $1 --nic1=bridged
vboxmanage setextradata $1 VBoxInternal2/EfiSecureBoot 1

vboxmanage createhd --filename=/tmp/$1.vdi --size=20000 --format=VDI --variant=Fixed 
vboxmanage storagectl $1 --name="SATA Controller" --add=sata --controller=IntelAhci
vboxmanage storageattach $1 --storagectl="SATA Controller" --port=0 --device=0 --type=hdd --medium=/tmp/$1.vdi
vboxmanage storagectl $1 --name="IDE Controller" --add=ide --controller=PIIX4
vboxmanage storageattach $1 --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /tmp/tiny11.iso

vboxmanage modifyvm $1 --boot1=dvd
vboxmanage modifyvm $1 --boot2=disk

virtualboxvm --startvm $1

Be the first to leave a 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.