$ErrorActionPreference = 'Stop' $principal = New-Object Security.Principal.WindowsPrincipal( [Security.Principal.WindowsIdentity]::GetCurrent() ) if (-not $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { $arguments = @( '-NoProfile', '-ExecutionPolicy', 'Bypass', '-File', ('"{0}"' -f $PSCommandPath) ) Start-Process -FilePath 'powershell.exe' -Verb RunAs -ArgumentList $arguments -Wait exit $LASTEXITCODE } Write-Host 'Enabling Windows Subsystem for Linux...' & dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart if ($LASTEXITCODE -notin 0, 3010) { throw "DISM failed with exit code $LASTEXITCODE" } Write-Host 'Enabling Virtual Machine Platform...' & dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart if ($LASTEXITCODE -notin 0, 3010) { throw "DISM failed with exit code $LASTEXITCODE" } Write-Host '' Write-Host 'Windows features are enabled. Restart Windows, then run:' Write-Host ' .\02-install-and-build.ps1'