From 3cfc7c92b49994607768c045d93b921b8de5cf4a Mon Sep 17 00:00:00 2001 From: CodingWonders <101426328+CodingWonders@users.noreply.github.com> Date: Mon, 2 Dec 2024 21:46:38 +0100 Subject: [PATCH] Improve copy operation to Ventoy drives This change may fix the issues where there's a conflict between both Ventoy's and MicroWin's unattended answer files, causing target images to stop working as expected during OOBE --- functions/microwin/Microwin-CopyToUSB.ps1 | 48 +++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/functions/microwin/Microwin-CopyToUSB.ps1 b/functions/microwin/Microwin-CopyToUSB.ps1 index 06f4219d24..f1b37c955d 100644 --- a/functions/microwin/Microwin-CopyToUSB.ps1 +++ b/functions/microwin/Microwin-CopyToUSB.ps1 @@ -16,6 +16,54 @@ function Microwin-CopyToUSB([string]$fileToCopy) { } Write-Host "File copied to Ventoy drive $($volume.DriveLetter)" + + # Detect if config files are present, move them if they are, and configure the Ventoy drive to not bypass the requirements + $customVentoyConfig = @' +{ + "control":[ + { "VTOY_WIN11_BYPASS_CHECK": "0" }, + { "VTOY_WIN11_BYPASS_NRO": "0" } + ], + "control_legacy":[ + { "VTOY_WIN11_BYPASS_CHECK": "0" }, + { "VTOY_WIN11_BYPASS_NRO": "0" } + ], + "control_uefi":[ + { "VTOY_WIN11_BYPASS_CHECK": "0" }, + { "VTOY_WIN11_BYPASS_NRO": "0" } + ], + "control_ia32":[ + { "VTOY_WIN11_BYPASS_CHECK": "0" }, + { "VTOY_WIN11_BYPASS_NRO": "0" } + ], + "control_aa64":[ + { "VTOY_WIN11_BYPASS_CHECK": "0" }, + { "VTOY_WIN11_BYPASS_NRO": "0" } + ], + "control_mips":[ + { "VTOY_WIN11_BYPASS_CHECK": "0" }, + { "VTOY_WIN11_BYPASS_NRO": "0" } + ] +} +'@ + + try { + Write-Host "Writing custom Ventoy configuration. Please wait..." + if (Test-Path -Path "$($volume.DriveLetter):\ventoy\ventoy.json" -PathType Leaf) { + Write-Host "A Ventoy configuration file exists. Moving it..." + Move-Item -Path "$($volume.DriveLetter):\ventoy\ventoy.json" -Destination "$($volume.DriveLetter):\ventoy\ventoy.json.old" -Force + Write-Host "Existing Ventoy configuration has been moved to `"ventoy.json.old`". Feel free to put your config back into the `"ventoy.json`" file." + } + if (-not (Test-Path -Path "$($volume.DriveLetter):\ventoy")) { + New-Item -Path "$($volume.DriveLetter):\ventoy" -ItemType Directory -Force | Out-Null + } + $customVentoyConfig | Out-File -FilePath "$($volume.DriveLetter):\ventoy\ventoy.json" -Encoding utf8 -Force + Write-Host "The Ventoy drive has been successfully configured." + } catch { + Write-Host "Could not configure Ventoy drive. Error: $($_.Exception.Message)`n" + Write-Host "Be sure to add the following configuration to the Ventoy drive by either creating a `"ventoy.json`" file in the `"ventoy`" directory (create it if it doesn't exist) or by editing an existing one: `n`n$customVentoyConfig`n" + Write-Host "Failure to do this will cause conflicts with your target ISO file." + } return } }