- config-editor.hta: lightweight WYSIWYG HTA editor for config.json - Step on/off toggles with info tooltips - Editable software list (winget packages) - Settings: timezone, admin account, desktopInfo, PDF default - Run.cmd: USB launcher with UAC auto-elevation and deployment menu - flash/: minimal USB-ready subset (Deploy, scripts, config, GUI, launcher) - config.json: add steps section for per-step enable/disable - Deploy-Windows.ps1: read steps from config, CLI switches override - 03-system-registry.ps1: add SearchOnTaskbarMode HKLM policy (Win11 search fix) - 04-default-profile.ps1: fix systray - clear TrayNotify cache + proper Explorer restart - 06-scheduled-tasks.ps1: fix Register-Task trigger array, ShowAllTrayIcons Win11 fix, PDF-DefaultApp runs as SYSTEM via HKCR (bypasses UserChoice Hash validation) - 02-software.ps1: remove unreliable UserChoice ProgId write without Hash Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
125 lines
3.6 KiB
Batchfile
125 lines
3.6 KiB
Batchfile
@echo off
|
|
chcp 65001 >nul
|
|
setlocal EnableDelayedExpansion
|
|
|
|
:: -----------------------------------------------------------------------
|
|
:: Auto-elevate to Administrator if not already elevated
|
|
:: -----------------------------------------------------------------------
|
|
net session >nul 2>&1
|
|
if %errorlevel% neq 0 (
|
|
echo Requesting administrator privileges...
|
|
powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs"
|
|
exit /b
|
|
)
|
|
|
|
:: -----------------------------------------------------------------------
|
|
:: Paths
|
|
:: -----------------------------------------------------------------------
|
|
set "SCRIPT_DIR=%~dp0"
|
|
set "DEPLOY_PS1=%SCRIPT_DIR%Deploy-Windows.ps1"
|
|
set "CONFIG_JSON=%SCRIPT_DIR%config\config.json"
|
|
set "CONFIG_EDITOR=%SCRIPT_DIR%config-editor.hta"
|
|
set "LOG_FILE=C:\Windows\Setup\Scripts\Deploy.log"
|
|
|
|
:MENU
|
|
cls
|
|
echo.
|
|
echo ================================================
|
|
echo X9 - Windows Deployment
|
|
echo ================================================
|
|
echo.
|
|
echo Config : %CONFIG_JSON%
|
|
echo Log : %LOG_FILE%
|
|
echo.
|
|
echo [1] Full deployment (uses config.json)
|
|
echo [2] Dry run (no changes, log only)
|
|
echo [3] Skip bloatware removal
|
|
echo [4] Skip software install
|
|
echo [5] Open config editor (config-editor.hta)
|
|
echo [0] Exit
|
|
echo.
|
|
set /p CHOICE=" Select [0-5]: "
|
|
|
|
if "%CHOICE%"=="0" goto EXIT
|
|
if "%CHOICE%"=="1" goto FULL
|
|
if "%CHOICE%"=="2" goto DRYRUN
|
|
if "%CHOICE%"=="3" goto SKIP_BLOATWARE
|
|
if "%CHOICE%"=="4" goto SKIP_SOFTWARE
|
|
if "%CHOICE%"=="5" goto OPEN_EDITOR
|
|
|
|
echo Invalid choice. Try again.
|
|
timeout /t 2 >nul
|
|
goto MENU
|
|
|
|
:: -----------------------------------------------------------------------
|
|
:: [1] Full deployment
|
|
:: -----------------------------------------------------------------------
|
|
:FULL
|
|
cls
|
|
echo.
|
|
echo Starting full deployment...
|
|
echo.
|
|
powershell -NoProfile -ExecutionPolicy Bypass -File "%DEPLOY_PS1%"
|
|
goto DONE
|
|
|
|
:: -----------------------------------------------------------------------
|
|
:: [2] Dry run
|
|
:: -----------------------------------------------------------------------
|
|
:DRYRUN
|
|
cls
|
|
echo.
|
|
echo Starting dry run (no changes will be made)...
|
|
echo.
|
|
powershell -NoProfile -ExecutionPolicy Bypass -File "%DEPLOY_PS1%" -DryRun
|
|
goto DONE
|
|
|
|
:: -----------------------------------------------------------------------
|
|
:: [3] Skip bloatware
|
|
:: -----------------------------------------------------------------------
|
|
:SKIP_BLOATWARE
|
|
cls
|
|
echo.
|
|
echo Starting deployment (bloatware removal skipped)...
|
|
echo.
|
|
powershell -NoProfile -ExecutionPolicy Bypass -File "%DEPLOY_PS1%" -SkipBloatware
|
|
goto DONE
|
|
|
|
:: -----------------------------------------------------------------------
|
|
:: [4] Skip software
|
|
:: -----------------------------------------------------------------------
|
|
:SKIP_SOFTWARE
|
|
cls
|
|
echo.
|
|
echo Starting deployment (software install skipped)...
|
|
echo.
|
|
powershell -NoProfile -ExecutionPolicy Bypass -File "%DEPLOY_PS1%" -SkipSoftware
|
|
goto DONE
|
|
|
|
:: -----------------------------------------------------------------------
|
|
:: [5] Config editor
|
|
:: -----------------------------------------------------------------------
|
|
:OPEN_EDITOR
|
|
if not exist "%CONFIG_EDITOR%" (
|
|
echo ERROR: config-editor.hta not found: %CONFIG_EDITOR%
|
|
pause
|
|
goto MENU
|
|
)
|
|
start "" mshta.exe "%CONFIG_EDITOR%"
|
|
goto MENU
|
|
|
|
:: -----------------------------------------------------------------------
|
|
:: Done
|
|
:: -----------------------------------------------------------------------
|
|
:DONE
|
|
echo.
|
|
echo ================================================
|
|
echo Deployment finished.
|
|
echo Log: %LOG_FILE%
|
|
echo ================================================
|
|
echo.
|
|
pause
|
|
goto MENU
|
|
|
|
:EXIT
|
|
endlocal
|
|
exit /b 0
|