@echo off REM Run-Setup.bat — 從 Ventoy USB 雙擊就能手動觸發 Setup.ps1 REM 用途:當 unattend.xml 的 FirstLogonCommands Order 5 沒成功跑起 Setup.ps1 時, REM 把這份 .bat 從 USB 雙擊執行,會自動 UAC 提權、覆蓋 C:\Scripts\Setup.ps1、 REM 跑 Setup.ps1,所有輸出(含 parse error)都會收到 setup-stdout.log。 setlocal REM 先用 fltmc 偵測是否已是 Administrator;不是就用 PowerShell 自我提權重啟 fltmc >nul 2>&1 if %errorLevel% neq 0 ( echo Requesting administrator privileges... powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs" exit /b ) set "USB_DIR=%~dp0" set "DST=C:\Scripts\Setup.ps1" set "OUT=C:\Windows\Temp\setup-stdout.log" echo === Run-Setup.bat (elevated) === echo USB source : %USB_DIR%Setup.ps1 echo Copy to : %DST% echo Stdout log : %OUT% echo Setup log : C:\Windows\Temp\setup.log echo. mkdir C:\Scripts >nul 2>&1 copy /Y "%USB_DIR%Setup.ps1" "%DST%" if errorlevel 1 ( echo [ERROR] Copy failed. Is the USB still plugged in? pause exit /b 1 ) echo Running Setup.ps1 (output streams to this window AND %OUT%) ... echo ----------------------------------------------------------------- powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "& '%DST%' 2>&1 | Tee-Object -FilePath '%OUT%'" set RC=%errorLevel% echo ----------------------------------------------------------------- echo. echo === Done (exit code %RC%) === echo View logs: echo notepad C:\Windows\Temp\setup.log echo notepad %OUT% echo. pause endlocal