--- /dev/null
+pushd "%~dp0"
+dir /b %SystemRoot%\servicing\Packages\*-Containers-*.mum >ListContainersPackages.mum
+for /f %%i in ('findstr /i . ListContainersPackages.mum 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
+del ListContainersPackages.mum
+Dism /online /enable-feature /featurename:Containers -All /LimitAccess /ALL
+pause
--- /dev/null
+# To run Docker Desktop on Home with the Windows engine,
+# it needs to detect that Windows is a supported edition,
+# so temporarily change EditionID to Professional and
+# restore it back afterwards
+
+# Must run this whole block with elevated privileges
+$keyname = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
+$valuename = 'EditionID'
+
+# Save current value of EditionID to restore later
+$prev = (Get-ItemProperty -Path $keyname -Name $valuename).$valuename
+Set-ItemProperty -Path $keyname -Name $valuename -Value 'Professional'
+try {
+ # Launch Docker Desktop NON-elevated via a throwaway scheduled task
+ $action = New-ScheduledTaskAction -Execute 'C:\Program Files\Docker\Docker\Docker Desktop.exe'
+ $principal = New-ScheduledTaskPrincipal -UserId "$env:USERNAME" -LogonType Interactive -RunLevel Limited
+ $task = New-ScheduledTask -Action $action -Principal $principal
+
+ Register-ScheduledTask -TaskName "TempStartDockerDesktop" -InputObject $task | Out-Null
+ Start-ScheduledTask -TaskName "TempStartDockerDesktop"
+ Write-Output "Starting Docker Desktop! Attempting to set the docker engine to windows"
+ docker desktop engine use windows
+ Unregister-ScheduledTask -TaskName "TempStartDockerDesktop" -Confirm:$false
+}
+finally {
+ # Restore EditionID
+ Set-ItemProperty -Type ExpandString -Path $keyname -Name $valuename -Value $prev
+}
--- /dev/null
+pushd "%~dp0"
+dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >ListHyperVPackages.txt.txt
+for /f %%i in ('findstr /i . ListHyperVPackages.txt.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
+del containers-home.txt
+Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
+pause