diff --git a/scripts/Common/Scripts/Config.ps1 b/scripts/Common/Scripts/Config.ps1 index ed5eec31..a8534ddd 100644 --- a/scripts/Common/Scripts/Config.ps1 +++ b/scripts/Common/Scripts/Config.ps1 @@ -14,6 +14,7 @@ enum SetupStage { enum UserStage { Create Configure + Cleanup Completed } diff --git a/scripts/Windows/OS/Install.ps1 b/scripts/Windows/OS/Install.ps1 index 92c9616c..fc58b049 100644 --- a/scripts/Windows/OS/Install.ps1 +++ b/scripts/Windows/OS/Install.ps1 @@ -37,7 +37,9 @@ $null = New-Module { Starts the installation loop. #> function Start-InstallationLoop { - $wslLocation = "$env:ProgramData\PortValhalla\Ubuntu"; + $distribution = "PortValhalla"; + $wslLocation = "$env:ProgramData/PortValhalla/Ubuntu"; + $wslDisk = "$wslLocation/ext4.vhdx"; while (-not (Get-IsFinished)) { switch (Get-Stage) { @@ -195,8 +197,8 @@ $null = New-Module { } default { if (-not (& { $null = wsl -l; $? })) { - wsl --import-in-place "PortValhalla" "$wslLocation/ext4.vhdx"; - wsl --set-default "PortValhalla"; + wsl --import-in-place $distribution "$wslDisk"; + wsl --set-default $distribution; } switch ($_) { @@ -610,7 +612,18 @@ $null = New-Module { Add-LocalGroupMember -Member "$name" -Name "$group"; } + Set-UserStage ([UserStage]::Cleanup); + } + ([UserStage]::Cleanup) { + $user = Get-SetupUser; + Enable-LocalUser $user; + Set-AutologinUser $user; + wsl --shutdown; + $tempDisk = Rename-Item $wslDisk "ext4_.vhdx" -PassThru; + wsl --unregister $distribution; + Move-Item $tempDisk $wslDisk; Set-UserStage ([UserStage]::Completed); + Restart-Intermediate; } } }