@echo off REM sync_intune.bat - Launches Monitor-IntuneProgress.ps1 in an elevated REM PowerShell window. REM REM This .bat exists only because Windows doesn't give .ps1 files a REM "double-click to run as admin" verb. It finds the monitor script, REM then calls Start-Process -Verb RunAs to open a NEW elevated REM PowerShell console hosting it. The cmd window that ran this .bat REM exits immediately afterwards - all UI (QR code, status table, reboot REM prompt) lives in the separate PS window. REM REM Monitor lookup order: REM 1. %~dp0lib\Monitor-IntuneProgress.ps1 REM - repo layout / canonical on-disk layout (bat in Shopfloor/, .ps1 in Shopfloor/lib/) REM 2. %~dp0Monitor-IntuneProgress.ps1 REM - both files dropped in same dir (quick-test on desktop) REM 3. C:\Users\SupportUser\Desktop\Monitor-IntuneProgress.ps1 REM - dispatcher-dropped, if this .bat is being invoked from elsewhere REM 4. C:\Enrollment\shopfloor-setup\Shopfloor\lib\Monitor-IntuneProgress.ps1 REM - canonical enrollment staging copy REM REM -NoExit on the inner PowerShell keeps the new window open after the REM script finishes so the user can read any final output or error before REM the window closes. REM REM Goto-based dispatch - no nested if blocks, no literal parens in echo REM lines. CMD parses "if (...)" blocks by counting parens and will silently REM eat any "(" or ")" inside an echo, so keeping the flow flat avoids that REM class of syntax bomb entirely. setlocal title Intune Policy Sync Launcher set "MONITOR=%~dp0lib\Monitor-IntuneProgress.ps1" if exist "%MONITOR%" goto :launch set "MONITOR=%~dp0Monitor-IntuneProgress.ps1" if exist "%MONITOR%" goto :launch set "MONITOR=C:\Users\SupportUser\Desktop\Monitor-IntuneProgress.ps1" if exist "%MONITOR%" goto :launch set "MONITOR=C:\Enrollment\shopfloor-setup\Shopfloor\lib\Monitor-IntuneProgress.ps1" if exist "%MONITOR%" goto :launch echo ERROR: Monitor-IntuneProgress.ps1 not found in any of: echo %~dp0lib\Monitor-IntuneProgress.ps1 echo %~dp0Monitor-IntuneProgress.ps1 echo C:\Users\SupportUser\Desktop\Monitor-IntuneProgress.ps1 echo C:\Enrollment\shopfloor-setup\Shopfloor\lib\Monitor-IntuneProgress.ps1 echo. pause exit /b 1 :launch echo Launching: %MONITOR% powershell -NoProfile -Command "Start-Process powershell.exe -Verb RunAs -ArgumentList '-NoProfile','-NoExit','-ExecutionPolicy','Bypass','-File','%MONITOR%'" exit /b