$currentDirectory = $PSScriptRoot + "HWID"
$serialNumber = (Get-WmiObject -class win32_bios).SerialNumber
$outputFile = $serialNumber + ".csv"
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
New-Item -Type Directory -Force -Path $currentDirectory
Set-Location -Path $currentDirectory
$env:Path += ";C:\Program Files\WindowsPowerShell\Scripts"
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Install-Script -Name Get-WindowsAutopilotInfo -Confirm:$false
Get-WindowsAutopilotInfo -OutputFile $outputFile
Open Powershell as administrator, and paste following code
$code = (Get-WmiObject -query "select * from SoftwareLicensingService").OA3xOriginalProductKey
slmgr /ipk $code
slmgr /ato
Alternatieve methode
slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
slmgr /ato
slmgr /skms kms8.msguides.com
slmgr /ato
Use ExcludeLastKnownGoodUrl to prevent Outlook from using the last known good AutoDiscover URL
HKEY_CURRENT_USER\Software\Microsoft\Office\x.0\Outlook\Autodiscover
DWORD: ExcludeLastKnownGoodUrl
Value: 1
OR
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\x.0\Outlook\Autodiscover
DWORD: ExcludeLastKnownGoodUrl
Value: 1
Download Windows ISO
https://www.microsoft.com/en-us/software-download/windows11
Export Autopilot
Open Powershell as Administrator
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-Module -Name WindowsAutopilotIntune -MinimumVersion 5.4.0 -Force
Install-Module -Name Microsoft.Graph.Groups -Force
Install-Module -Name Microsoft.Graph.Authentication -Force
Install-Module Microsoft.Graph.Identity.DirectoryManagement -Force
Import-Module -Name WindowsAutopilotIntune -MinimumVersion 5.4
Import-Module -Name Microsoft.Graph.Groups
Import-Module -Name Microsoft.Graph.Authentication
Import-Module -Name Microsoft.Graph.Identity.DirectoryManagement
Connect to Entra in Powershell
Connect-MgGraph -Scopes "Device.ReadWrite.All", "DeviceManagementManagedDevices.ReadWrite.All", "DeviceManagementServiceConfig.ReadWrite.All", "Domain.ReadWrite.All", "Group.ReadWrite.All", "GroupMember.ReadWrite.All", "User.Read"
Export all autopilot profiles
Connect-MgGraph -Scopes "Device.ReadWrite.All", "DeviceManagementManagedDevices.ReadWrite.All", "DeviceManagementServiceConfig.ReadWrite.All", "Domain.ReadWrite.All", "Group.ReadWrite.All", "GroupMember.ReadWrite.All", "User.Read"
$AutopilotProfile = Get-AutopilotProfile
$targetDirectory = "C:\Autopilot"
$AutopilotProfile | ForEach-Object {
New-Item -ItemType Directory -Path "$targetDirectory\$($_.displayName)"
$_ | ConvertTo-AutopilotConfigurationJSON | Set-Content -Encoding Ascii "$targetDirectory\$($_.displayName)\AutopilotConfigurationFile.json"
}
Export drivers
Export-WindowsDriver –Online -Destination C:\DATA\Drivers

Insert data in to iso
Get the info from the original iso file, this one is mounted on your pc.
Dism /get-wiminfo /wimfile:"E:\sources\install.wim"

Create the wim file from the selected version
Dism /export-image /SourceImageFile:"E:\sources\install.wim" /SourceIndex:6 /DestinationImageFile:C:\DATA\WIM\install.wim /Compress:max /CheckIntegrity
Lets mount the wim file
Dism /mount-wim /wimfile:"C:\DATA\WIM\install.wim" /index:1 /mountdir:C:\DATA\Mount
Insert autopiltfile
After WIM is mounted – Copy AutopilotConfigurationFile.json to: %MountDir%\Windows\Provisioning\Autopilot\
Insert drivers
dism /image:C:\DATA\Mount /add-driver /driver:C:\temp\drivers\ /recurse
WIM file commit and unmount
Dism /Commit-Image /MountDir:C:\DATA\Mount
Dism /Unmount-Image /MountDir:C:\DATA\Mount /commit
Split file size to USB
Dism /Split-Image /ImageFile:"C:\DATA\WIM\install.wim" /SWMFile:"C:\DATA\SWM\install.SWM" /FileSize:3800
Copy SWM files to sources (USB)

Troubelshooting – OOBE Problems
Shift-F10
MDMDiagnosticsTool.exe -area Autopilot;TPM -cab c:\autopilot.cab
Sources
https://www.simsenblog.dk/2022/02/06/bootable-windows-11-incl-autopilot-json-file/
https://learn.microsoft.com/en-us/autopilot/tutorial/existing-devices/setup-autopilot-profile
The problem with azure joined pc’s is that you need a local user if you want to authenticate from a device not in the same tenant.
- Allow remote connections

2. Set the settings as following

3. Add local user –> MMC –> ADD Module (Local users)

Now you can login to the device with the local created user, you can add the user to the group administrators for full control.

source: https://techcommunity.microsoft.com/t5/microsoft-365/add-my-domain-to-365-without-email/m-p/1627304
Create a new connector in office 365 exchange admin “Add connector”

Create a connector from “Office 365” to “Your organization’s email server”

Give a valid name and keep the haeders

Choose “Only when i have a transport rule …”

Next add the external mx records

I kept these settings

Add a test account and validate the settings with an email
Next create a Mail flow > rule

With the following settings

Enforce this rule and enable it
Verwachte duurtijd:
- 1 week
Volgende zaken heb je nodig:
- factuur met serienummers
- csv met devicehash (Manually register devices with Windows Autopilot | Microsoft Learn)
Stappenplan:
Ga naar https://endpoint.microsoft.com klik door op “probleemoplossing en ondersteuning”

Klik vervolgens op “Intune”

Geef als foutmelding in “Error 808 when uploading csv to intune” en klik op de pijl

Scroll nu helemaal naar onder en klik op “Contact opnemen met ondersteuning”
Er zal vervolgens contact worden opgenomen via mail, hierbij zullen ze vragen naar het factuur en de csv’s. Vervolgens duurt het ongeveer een week voordat de gegevens worden vrijgegeven uit de andere tenant.
Use an X32 rack as stagebox for X32 console.
First things first, link X32 rack with console with an SFTP-cable from AES-A to AES-A
X32 Rack settings
Set clock-source on rack to AES50 A (in top the A sign should turn green)

Set HA Remote on rack to AES50 Port A

On the routing page set AES A inputs as desired

In the routing page go to XLR and set to an unused AES A range

If you like to manual adjust settings, you can do this in the user page

X32 Console settings
Lock the stagebox in the setup page

Now link the AES inputs from the rack to your console

Set the outputs to the AES ports

Created at: Generate autounattend.xml files for Windows 10/11 (schneegans.de)
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<settings pass="offlineServicing"/>
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<SetupUILanguage>
<UILanguage>nl-NL</UILanguage>
</SetupUILanguage>
<InputLocale>0813:00000813</InputLocale>
<SystemLocale>nl-BE</SystemLocale>
<UILanguage>nl-NL</UILanguage>
<UserLocale>nl-BE</UserLocale>
</component>
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<SetupUILanguage>
<UILanguage>nl-NL</UILanguage>
</SetupUILanguage>
<InputLocale>0813:00000813</InputLocale>
<SystemLocale>nl-BE</SystemLocale>
<UILanguage>nl-NL</UILanguage>
<UserLocale>nl-BE</UserLocale>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>3</PartitionID>
</InstallTo>
</OSImage>
</ImageInstall>
<UserData>
<ProductKey>
<Key>VK7JG-NPHTM-C97JM-9MPGT-3V66T</Key>
</ProductKey>
<AcceptEula>true</AcceptEula>
</UserData>
<RunSynchronous>
<RunSynchronousCommand>
<Order>1</Order>
<Path>cmd.exe /c echo SELECT DISK=0 >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>2</Order>
<Path>cmd.exe /c echo CLEAN >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>3</Order>
<Path>cmd.exe /c echo CONVERT GPT >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>4</Order>
<Path>cmd.exe /c echo CREATE PARTITION EFI SIZE=100 >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>5</Order>
<Path>cmd.exe /c echo FORMAT QUICK FS=FAT32 LABEL="System" >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>6</Order>
<Path>cmd.exe /c echo CREATE PARTITION MSR SIZE=16 >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>7</Order>
<Path>cmd.exe /c echo CREATE PARTITION PRIMARY >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>8</Order>
<Path>cmd.exe /c echo FORMAT QUICK FS=NTFS LABEL="Windows" >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>9</Order>
<Path>cmd.exe /c diskpart /s X:\diskpart.txt >> X:\diskpart.log</Path>
</RunSynchronousCommand>
</RunSynchronous>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>3</PartitionID>
</InstallTo>
</OSImage>
</ImageInstall>
<UserData>
<ProductKey>
<Key>VK7JG-NPHTM-C97JM-9MPGT-3V66T</Key>
</ProductKey>
<AcceptEula>true</AcceptEula>
</UserData>
<RunSynchronous>
<RunSynchronousCommand>
<Order>1</Order>
<Path>cmd.exe /c echo SELECT DISK=0 >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>2</Order>
<Path>cmd.exe /c echo CLEAN >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>3</Order>
<Path>cmd.exe /c echo CONVERT GPT >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>4</Order>
<Path>cmd.exe /c echo CREATE PARTITION EFI SIZE=100 >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>5</Order>
<Path>cmd.exe /c echo FORMAT QUICK FS=FAT32 LABEL="System" >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>6</Order>
<Path>cmd.exe /c echo CREATE PARTITION MSR SIZE=16 >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>7</Order>
<Path>cmd.exe /c echo CREATE PARTITION PRIMARY >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>8</Order>
<Path>cmd.exe /c echo FORMAT QUICK FS=NTFS LABEL="Windows" >> X:\diskpart.txt</Path>
</RunSynchronousCommand>
<RunSynchronousCommand>
<Order>9</Order>
<Path>cmd.exe /c diskpart /s X:\diskpart.txt >> X:\diskpart.log</Path>
</RunSynchronousCommand>
</RunSynchronous>
</component>
</settings>
<settings pass="generalize"/>
<settings pass="specialize"/>
<settings pass="auditSystem"/>
<settings pass="auditUser"/>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<InputLocale>0813:00000813</InputLocale>
<SystemLocale>nl-BE</SystemLocale>
<UILanguage>nl-NL</UILanguage>
<UserLocale>nl-BE</UserLocale>
</component>
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<InputLocale>0813:00000813</InputLocale>
<SystemLocale>nl-BE</SystemLocale>
<UILanguage>nl-NL</UILanguage>
<UserLocale>nl-BE</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Name>Admin</Name>
<Group>Administrators</Group>
<Password>
<Value>password</Value>
<PlainText>true</PlainText>
</Password>
</LocalAccount>
<LocalAccount wcm:action="add">
<Name>User</Name>
<Group>Users</Group>
<Password>
<Value>password</Value>
<PlainText>true</PlainText>
</Password>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<AutoLogon/>
<OOBE>
<ProtectYourPC>3</ProtectYourPC>
<HideEULAPage>true</HideEULAPage>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
</OOBE>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Name>Admin</Name>
<Group>Administrators</Group>
<Password>
<Value>password</Value>
<PlainText>true</PlainText>
</Password>
</LocalAccount>
<LocalAccount wcm:action="add">
<Name>User</Name>
<Group>Users</Group>
<Password>
<Value>password</Value>
<PlainText>true</PlainText>
</Password>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<AutoLogon/>
<OOBE>
<ProtectYourPC>3</ProtectYourPC>
<HideEULAPage>true</HideEULAPage>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
</OOBE>
</component>
</settings>
</unattend>