|
1 | 1 | @echo off |
| 2 | +REM ======================================================== |
| 3 | +REM DeployWorkstation.bat |
| 4 | +REM Launcher for DeployWorkstation.ps1 |
| 5 | +REM Version 5.1 – PNWC Edition (fixed) |
| 6 | +REM ======================================================== |
| 7 | + |
2 | 8 | setlocal EnableExtensions EnableDelayedExpansion |
3 | 9 |
|
4 | 10 | echo. |
5 | | -echo ===== DeployWorkstation Launcher v6.0 ===== |
| 11 | +echo ===== DeployWorkstation Launcher v5.1 ===== |
6 | 12 | echo. |
7 | 13 |
|
8 | | -rem Relaunch elevated if needed |
| 14 | +REM -------------------------------------------------------- |
| 15 | +REM 1) Elevation check |
| 16 | +REM -------------------------------------------------------- |
9 | 17 | net session >nul 2>&1 |
10 | 18 | if errorlevel 1 ( |
11 | 19 | echo Requesting administrative privileges... |
| 20 | + echo Please click "Yes" in the UAC prompt. |
| 21 | + echo. |
12 | 22 | powershell.exe -NoProfile -ExecutionPolicy Bypass -Command ^ |
13 | 23 | "Start-Process -FilePath '%~f0' -Verb RunAs" |
14 | 24 | exit /b |
15 | 25 | ) |
16 | 26 |
|
17 | | -pushd "%~dp0" || ( |
18 | | - echo [ERROR] Could not access script folder. |
19 | | - pause |
20 | | - exit /b 1 |
| 27 | +echo [OK] Running as Administrator. |
| 28 | +echo. |
| 29 | + |
| 30 | +REM -------------------------------------------------------- |
| 31 | +REM 2) Change to the directory containing this .bat |
| 32 | +REM -------------------------------------------------------- |
| 33 | +pushd "%~dp0" |
| 34 | +if errorlevel 1 ( |
| 35 | + echo [ERROR] Failed to access script folder. |
| 36 | + goto :error_exit |
21 | 37 | ) |
22 | 38 |
|
| 39 | +REM -------------------------------------------------------- |
| 40 | +REM 3) Verify the PowerShell script is present |
| 41 | +REM -------------------------------------------------------- |
23 | 42 | if not exist "%~dp0DeployWorkstation.ps1" ( |
24 | 43 | echo [ERROR] DeployWorkstation.ps1 not found. |
25 | | - echo Expected: %~dp0DeployWorkstation.ps1 |
26 | | - set "ps_exit=1" |
27 | | - goto :done |
| 44 | + echo Expected: %~dp0DeployWorkstation.ps1 |
| 45 | + echo. |
| 46 | + goto :error_exit |
| 47 | +) |
| 48 | + |
| 49 | +REM -------------------------------------------------------- |
| 50 | +REM 4) Menu |
| 51 | +REM -------------------------------------------------------- |
| 52 | +:menu |
| 53 | +echo Select deployment mode: |
| 54 | +echo. |
| 55 | +echo 1. Full deployment (remove bloatware + install apps + configure system) |
| 56 | +echo 2. Remove bloatware only |
| 57 | +echo 3. Install apps only |
| 58 | +echo 4. System configuration only |
| 59 | +echo 5. Exit |
| 60 | +echo. |
| 61 | +set "choice=" |
| 62 | +set /p "choice=Enter choice (1-5): " |
| 63 | + |
| 64 | +set "ps_params=" |
| 65 | + |
| 66 | +if "%choice%"=="1" ( |
| 67 | + echo. |
| 68 | + echo [*] Full deployment selected. |
| 69 | +) else if "%choice%"=="2" ( |
| 70 | + echo. |
| 71 | + echo [*] Bloatware removal only. |
| 72 | + set "ps_params=-SkipAppInstall -SkipSystemConfig" |
| 73 | +) else if "%choice%"=="3" ( |
| 74 | + echo. |
| 75 | + echo [*] App installation only. |
| 76 | + set "ps_params=-SkipBloatwareRemoval -SkipSystemConfig" |
| 77 | +) else if "%choice%"=="4" ( |
| 78 | + echo. |
| 79 | + echo [*] System configuration only. |
| 80 | + set "ps_params=-SkipBloatwareRemoval -SkipAppInstall" |
| 81 | +) else if "%choice%"=="5" ( |
| 82 | + set "ps_exit=0" |
| 83 | + goto :normal_exit |
| 84 | +) else ( |
| 85 | + echo [!] Invalid choice - please try again. |
| 86 | + echo. |
| 87 | + goto :menu |
28 | 88 | ) |
29 | 89 |
|
30 | | -powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -File "%~dp0DeployWorkstation.ps1" |
| 90 | +REM -------------------------------------------------------- |
| 91 | +REM 5) Show what will run, then launch |
| 92 | +REM -------------------------------------------------------- |
| 93 | +if defined ps_params ( |
| 94 | + echo Parameters : !ps_params! |
| 95 | +) else ( |
| 96 | + echo Parameters : (none - full run) |
| 97 | +) |
| 98 | +echo. |
| 99 | +echo Starting Windows PowerShell 5.1... |
| 100 | +echo. |
| 101 | + |
| 102 | +powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -File "%~dp0DeployWorkstation.ps1" !ps_params! |
| 103 | + |
| 104 | +REM Capture exit code immediately |
31 | 105 | set "ps_exit=%errorlevel%" |
32 | 106 |
|
| 107 | +REM -------------------------------------------------------- |
| 108 | +REM 6) Result |
| 109 | +REM -------------------------------------------------------- |
33 | 110 | echo. |
34 | 111 | if "%ps_exit%"=="0" ( |
35 | 112 | echo ===== Deployment completed successfully ===== |
36 | 113 | ) else ( |
37 | | - echo ===== Deployment completed with warnings or errors ===== |
38 | | - echo Exit code: %ps_exit% |
39 | | - echo Review DeployWorkstation.log and DeployWorkstation.html in this folder. |
| 114 | + echo ===== Deployment finished with errors ===== |
| 115 | + echo Exit code : %ps_exit% |
| 116 | + echo Check DeployWorkstation.log in this folder for details. |
40 | 117 | ) |
41 | 118 |
|
42 | | -:done |
| 119 | +goto :normal_exit |
| 120 | + |
| 121 | +REM -------------------------------------------------------- |
| 122 | +:error_exit |
| 123 | +echo. |
| 124 | +echo ===== Launch aborted ===== |
| 125 | +set "ps_exit=1" |
| 126 | + |
| 127 | +REM -------------------------------------------------------- |
| 128 | +:normal_exit |
43 | 129 | popd |
44 | 130 | echo. |
45 | 131 | echo Press any key to close... |
|
0 commit comments