startnet.cmd: log all WinPE staging operations to winpe-staging.log
Every copy/robocopy during the W: staging phase now appends to W:\Enrollment\winpe-staging.log (persists as C:\Enrollment\ post-boot). robocopy gets /LOG+ to append its file list; echo lines log timestamps for each stage. Helps diagnose missing-file issues post-imaging. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -357,13 +357,23 @@ ping -n 11 127.0.0.1 >NUL
|
|||||||
if not exist W:\Windows\System32\config\system goto wait_enroll
|
if not exist W:\Windows\System32\config\system goto wait_enroll
|
||||||
echo Found Windows at W:
|
echo Found Windows at W:
|
||||||
mkdir W:\Enrollment 2>NUL
|
mkdir W:\Enrollment 2>NUL
|
||||||
|
REM Log all copy operations to a file that persists on the target disk.
|
||||||
|
REM Tech can check C:\Enrollment\winpe-staging.log post-imaging.
|
||||||
|
REM Each echo in the copy block below also appends to this file via
|
||||||
|
REM the >> redirect after the screen echo. robocopy /LOG+ appends its
|
||||||
|
REM own output directly.
|
||||||
|
set STAGELOG=W:\Enrollment\winpe-staging.log
|
||||||
|
echo [%DATE% %TIME%] WinPE staging started >> "%STAGELOG%"
|
||||||
|
echo PCTYPE=%PCTYPE% PPKG=%PPKG% MACHINENUM=%MACHINENUM% CMMID=%CMMID% >> "%STAGELOG%"
|
||||||
|
|
||||||
REM --- Copy site config (drives site-specific values in all setup scripts) ---
|
REM --- Copy site config (drives site-specific values in all setup scripts) ---
|
||||||
if exist "Y:\config\site-config.json" (
|
if exist "Y:\config\site-config.json" (
|
||||||
copy /Y "Y:\config\site-config.json" "W:\Enrollment\site-config.json"
|
copy /Y "Y:\config\site-config.json" "W:\Enrollment\site-config.json"
|
||||||
echo Copied site-config.json.
|
echo Copied site-config.json.
|
||||||
|
echo [%TIME%] Copied site-config.json >> "%STAGELOG%"
|
||||||
) else (
|
) else (
|
||||||
echo WARNING: site-config.json not found on enrollment share.
|
echo WARNING: site-config.json not found on enrollment share.
|
||||||
|
echo [%TIME%] WARNING: site-config.json not found >> "%STAGELOG%"
|
||||||
)
|
)
|
||||||
|
|
||||||
REM --- Copy PPKG if selected (renames from SOURCE to BPRT-tagged filename) ---
|
REM --- Copy PPKG if selected (renames from SOURCE to BPRT-tagged filename) ---
|
||||||
@@ -371,11 +381,14 @@ if "%PPKG%"=="" goto copy_pctype
|
|||||||
copy /Y "Y:\ppkgs\%SOURCE_PPKG%" "W:\Enrollment\%PPKG%"
|
copy /Y "Y:\ppkgs\%SOURCE_PPKG%" "W:\Enrollment\%PPKG%"
|
||||||
if errorlevel 1 (
|
if errorlevel 1 (
|
||||||
echo WARNING: Failed to copy enrollment package.
|
echo WARNING: Failed to copy enrollment package.
|
||||||
|
echo [%TIME%] WARNING: Failed to copy PPKG %SOURCE_PPKG% >> "%STAGELOG%"
|
||||||
goto copy_pctype
|
goto copy_pctype
|
||||||
)
|
)
|
||||||
|
echo [%TIME%] Copied PPKG %SOURCE_PPKG% as %PPKG% >> "%STAGELOG%"
|
||||||
copy /Y "Y:\scripts\run-enrollment.ps1" "W:\Enrollment\run-enrollment.ps1"
|
copy /Y "Y:\scripts\run-enrollment.ps1" "W:\Enrollment\run-enrollment.ps1"
|
||||||
copy /Y "Y:\scripts\wait-for-internet.ps1" "W:\Enrollment\wait-for-internet.ps1"
|
copy /Y "Y:\scripts\wait-for-internet.ps1" "W:\Enrollment\wait-for-internet.ps1"
|
||||||
copy /Y "Y:\scripts\migrate-to-wifi.ps1" "W:\Enrollment\migrate-to-wifi.ps1"
|
copy /Y "Y:\scripts\migrate-to-wifi.ps1" "W:\Enrollment\migrate-to-wifi.ps1"
|
||||||
|
echo [%TIME%] Copied enrollment scripts >> "%STAGELOG%"
|
||||||
|
|
||||||
REM --- Create enroll.cmd at drive root as manual fallback ---
|
REM --- Create enroll.cmd at drive root as manual fallback ---
|
||||||
> W:\enroll.cmd (
|
> W:\enroll.cmd (
|
||||||
@@ -429,33 +442,38 @@ mkdir W:\Enrollment\shopfloor-setup 2>NUL
|
|||||||
copy /Y "Y:\shopfloor-setup\backup_lockdown.bat" "W:\Enrollment\shopfloor-setup\backup_lockdown.bat"
|
copy /Y "Y:\shopfloor-setup\backup_lockdown.bat" "W:\Enrollment\shopfloor-setup\backup_lockdown.bat"
|
||||||
if exist "Y:\shopfloor-setup\Shopfloor" (
|
if exist "Y:\shopfloor-setup\Shopfloor" (
|
||||||
mkdir W:\Enrollment\shopfloor-setup\Shopfloor 2>NUL
|
mkdir W:\Enrollment\shopfloor-setup\Shopfloor 2>NUL
|
||||||
robocopy "Y:\shopfloor-setup\Shopfloor" "W:\Enrollment\shopfloor-setup\Shopfloor" /E /MT:16 /R:1 /W:1 /NFL /NDL
|
robocopy "Y:\shopfloor-setup\Shopfloor" "W:\Enrollment\shopfloor-setup\Shopfloor" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%"
|
||||||
if errorlevel 8 echo WARNING: shopfloor-setup\Shopfloor robocopy exit %ERRORLEVEL%
|
if errorlevel 8 echo WARNING: shopfloor-setup\Shopfloor robocopy exit %ERRORLEVEL%
|
||||||
echo Copied Shopfloor baseline setup files.
|
echo Copied Shopfloor baseline setup files.
|
||||||
|
echo [%TIME%] Copied Shopfloor baseline >> "%STAGELOG%"
|
||||||
)
|
)
|
||||||
REM --- Always copy common/ (cross-PC-type GE-Enforce dispatcher + lib live here post-v2) ---
|
REM --- Always copy common/ (cross-PC-type GE-Enforce dispatcher + lib live here post-v2) ---
|
||||||
if exist "Y:\shopfloor-setup\common" (
|
if exist "Y:\shopfloor-setup\common" (
|
||||||
mkdir W:\Enrollment\shopfloor-setup\common 2>NUL
|
mkdir W:\Enrollment\shopfloor-setup\common 2>NUL
|
||||||
robocopy "Y:\shopfloor-setup\common" "W:\Enrollment\shopfloor-setup\common" /E /MT:16 /R:1 /W:1 /NFL /NDL
|
robocopy "Y:\shopfloor-setup\common" "W:\Enrollment\shopfloor-setup\common" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%"
|
||||||
if errorlevel 8 echo WARNING: shopfloor-setup\common robocopy exit %ERRORLEVEL%
|
if errorlevel 8 echo WARNING: shopfloor-setup\common robocopy exit %ERRORLEVEL%
|
||||||
echo Copied common setup files.
|
echo Copied common setup files.
|
||||||
|
echo [%TIME%] Copied common >> "%STAGELOG%"
|
||||||
)
|
)
|
||||||
REM --- Copy _ntlars-backups (147 per-bay .reg files restored by gea-shopfloor-{collections,nocollections}\03-RestoreEDncConfig.ps1) ---
|
REM --- Copy _ntlars-backups (147 per-bay .reg files restored by gea-shopfloor-{collections,nocollections}\03-RestoreEDncConfig.ps1) ---
|
||||||
REM Same root level as common/, referenced by 03-RestoreEDncConfig.ps1 via Join-Path $PSScriptRoot '..\_ntlars-backups'.
|
REM Same root level as common/, referenced by 03-RestoreEDncConfig.ps1 via Join-Path $PSScriptRoot '..\_ntlars-backups'.
|
||||||
if exist "Y:\shopfloor-setup\_ntlars-backups" (
|
if exist "Y:\shopfloor-setup\_ntlars-backups" (
|
||||||
mkdir W:\Enrollment\shopfloor-setup\_ntlars-backups 2>NUL
|
mkdir W:\Enrollment\shopfloor-setup\_ntlars-backups 2>NUL
|
||||||
robocopy "Y:\shopfloor-setup\_ntlars-backups" "W:\Enrollment\shopfloor-setup\_ntlars-backups" /E /MT:16 /R:1 /W:1 /NFL /NDL
|
robocopy "Y:\shopfloor-setup\_ntlars-backups" "W:\Enrollment\shopfloor-setup\_ntlars-backups" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%"
|
||||||
if errorlevel 8 echo WARNING: _ntlars-backups robocopy exit %ERRORLEVEL%
|
if errorlevel 8 echo WARNING: _ntlars-backups robocopy exit %ERRORLEVEL%
|
||||||
echo Copied _ntlars-backups.
|
echo Copied _ntlars-backups.
|
||||||
|
echo [%TIME%] Copied _ntlars-backups >> "%STAGELOG%"
|
||||||
)
|
)
|
||||||
REM --- Copy type-specific scripts on top of baseline ---
|
REM --- Copy type-specific scripts on top of baseline ---
|
||||||
if exist "Y:\shopfloor-setup\%PCTYPE%" (
|
if exist "Y:\shopfloor-setup\%PCTYPE%" (
|
||||||
mkdir "W:\Enrollment\shopfloor-setup\%PCTYPE%" 2>NUL
|
mkdir "W:\Enrollment\shopfloor-setup\%PCTYPE%" 2>NUL
|
||||||
robocopy "Y:\shopfloor-setup\%PCTYPE%" "W:\Enrollment\shopfloor-setup\%PCTYPE%" /E /MT:16 /R:1 /W:1 /NFL /NDL
|
robocopy "Y:\shopfloor-setup\%PCTYPE%" "W:\Enrollment\shopfloor-setup\%PCTYPE%" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%"
|
||||||
if errorlevel 8 echo WARNING: shopfloor-setup\%PCTYPE% robocopy exit %ERRORLEVEL%
|
if errorlevel 8 echo WARNING: shopfloor-setup\%PCTYPE% robocopy exit %ERRORLEVEL%
|
||||||
echo Copied %PCTYPE% setup files.
|
echo Copied %PCTYPE% setup files.
|
||||||
|
echo [%TIME%] Copied %PCTYPE% type-specific >> "%STAGELOG%"
|
||||||
) else (
|
) else (
|
||||||
echo WARNING: No setup files found for PC type %PCTYPE%.
|
echo WARNING: No setup files found for PC type %PCTYPE%.
|
||||||
|
echo [%TIME%] WARNING: No setup files for %PCTYPE% >> "%STAGELOG%"
|
||||||
)
|
)
|
||||||
|
|
||||||
REM --- Stage preinstall bundle (apps installed locally to save Azure bandwidth) ---
|
REM --- Stage preinstall bundle (apps installed locally to save Azure bandwidth) ---
|
||||||
@@ -464,16 +482,18 @@ if exist "Y:\pre-install\preinstall.json" (
|
|||||||
mkdir W:\PreInstall\installers 2>NUL
|
mkdir W:\PreInstall\installers 2>NUL
|
||||||
copy /Y "Y:\pre-install\preinstall.json" "W:\PreInstall\preinstall.json"
|
copy /Y "Y:\pre-install\preinstall.json" "W:\PreInstall\preinstall.json"
|
||||||
if exist "Y:\pre-install\installers" (
|
if exist "Y:\pre-install\installers" (
|
||||||
robocopy "Y:\pre-install\installers" "W:\PreInstall\installers" /E /MT:16 /R:1 /W:1 /NFL /NDL
|
robocopy "Y:\pre-install\installers" "W:\PreInstall\installers" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%"
|
||||||
if errorlevel 8 echo WARNING: pre-install\installers robocopy exit %ERRORLEVEL%
|
if errorlevel 8 echo WARNING: pre-install\installers robocopy exit %ERRORLEVEL%
|
||||||
echo Staged preinstall bundle to W:\PreInstall.
|
echo Staged preinstall bundle to W:\PreInstall.
|
||||||
|
echo [%TIME%] Staged preinstall bundle >> "%STAGELOG%"
|
||||||
) else (
|
) else (
|
||||||
echo WARNING: Y:\pre-install\installers not found - preinstall.json staged without installers.
|
echo WARNING: Y:\pre-install\installers not found - preinstall.json staged without installers.
|
||||||
)
|
)
|
||||||
if exist "Y:\pre-install\udc-backups" (
|
if exist "Y:\pre-install\udc-backups" (
|
||||||
robocopy "Y:\pre-install\udc-backups" "W:\PreInstall\udc-backups" /E /MT:16 /R:1 /W:1 /NFL /NDL
|
robocopy "Y:\pre-install\udc-backups" "W:\PreInstall\udc-backups" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%"
|
||||||
if errorlevel 8 echo WARNING: pre-install\udc-backups robocopy exit %ERRORLEVEL%
|
if errorlevel 8 echo WARNING: pre-install\udc-backups robocopy exit %ERRORLEVEL%
|
||||||
echo Staged UDC settings backups to W:\PreInstall\udc-backups.
|
echo Staged UDC settings backups to W:\PreInstall\udc-backups.
|
||||||
|
echo [%TIME%] Staged UDC backups >> "%STAGELOG%"
|
||||||
)
|
)
|
||||||
) else (
|
) else (
|
||||||
echo No preinstall bundle on PXE server - skipping.
|
echo No preinstall bundle on PXE server - skipping.
|
||||||
@@ -489,9 +509,10 @@ REM unified GE-Enforce dispatcher takes over from the share for ongoing updates.
|
|||||||
if /i not "%PCTYPE%"=="gea-shopfloor-cmm" goto skip_cmm_stage
|
if /i not "%PCTYPE%"=="gea-shopfloor-cmm" goto skip_cmm_stage
|
||||||
if exist "Y:\installers-post\cmm\cmm-manifest.json" (
|
if exist "Y:\installers-post\cmm\cmm-manifest.json" (
|
||||||
mkdir W:\CMM-Install 2>NUL
|
mkdir W:\CMM-Install 2>NUL
|
||||||
robocopy "Y:\installers-post\cmm" "W:\CMM-Install" /E /MT:16 /R:1 /W:1 /NFL /NDL
|
robocopy "Y:\installers-post\cmm" "W:\CMM-Install" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%"
|
||||||
if errorlevel 8 echo WARNING: cmm robocopy exit %ERRORLEVEL%
|
if errorlevel 8 echo WARNING: cmm robocopy exit %ERRORLEVEL%
|
||||||
echo Staged CMM bootstrap to W:\CMM-Install.
|
echo Staged CMM bootstrap to W:\CMM-Install.
|
||||||
|
echo [%TIME%] Staged CMM bootstrap >> "%STAGELOG%"
|
||||||
) else (
|
) else (
|
||||||
echo WARNING: Y:\cmm-installers not found - CMM PC cannot install Hexagon apps at imaging time.
|
echo WARNING: Y:\cmm-installers not found - CMM PC cannot install Hexagon apps at imaging time.
|
||||||
)
|
)
|
||||||
@@ -510,9 +531,10 @@ if "%KEYENCEMODEL%"=="" goto skip_keyence_stage
|
|||||||
if exist "Y:\installers-post\keyence\%KEYENCEMODEL%\manifest.json" (
|
if exist "Y:\installers-post\keyence\%KEYENCEMODEL%\manifest.json" (
|
||||||
mkdir W:\KeyenceInstall 2>NUL
|
mkdir W:\KeyenceInstall 2>NUL
|
||||||
mkdir W:\KeyenceInstall\%KEYENCEMODEL% 2>NUL
|
mkdir W:\KeyenceInstall\%KEYENCEMODEL% 2>NUL
|
||||||
robocopy "Y:\installers-post\keyence\%KEYENCEMODEL%" "W:\KeyenceInstall\%KEYENCEMODEL%" /E /MT:16 /R:1 /W:1 /NFL /NDL
|
robocopy "Y:\installers-post\keyence\%KEYENCEMODEL%" "W:\KeyenceInstall\%KEYENCEMODEL%" /E /MT:16 /R:1 /W:1 /NFL /NDL /LOG+:"%STAGELOG%"
|
||||||
if errorlevel 8 echo WARNING: keyence\%KEYENCEMODEL% robocopy exit %ERRORLEVEL%
|
if errorlevel 8 echo WARNING: keyence\%KEYENCEMODEL% robocopy exit %ERRORLEVEL%
|
||||||
echo Staged Keyence %KEYENCEMODEL% bootstrap to W:\KeyenceInstall\%KEYENCEMODEL%\.
|
echo Staged Keyence %KEYENCEMODEL% bootstrap to W:\KeyenceInstall\%KEYENCEMODEL%\.
|
||||||
|
echo [%TIME%] Staged Keyence %KEYENCEMODEL% >> "%STAGELOG%"
|
||||||
) else (
|
) else (
|
||||||
echo WARNING: Y:\installers-post\keyence\%KEYENCEMODEL% not found - Keyence %KEYENCEMODEL% cannot install at imaging time.
|
echo WARNING: Y:\installers-post\keyence\%KEYENCEMODEL% not found - Keyence %KEYENCEMODEL% cannot install at imaging time.
|
||||||
)
|
)
|
||||||
@@ -583,6 +605,7 @@ goto skip_waxtrace_stage
|
|||||||
echo WARNING: Y:\installers-post\waxtrace not found - WaxTrace PC cannot install FormTracePak at imaging time.
|
echo WARNING: Y:\installers-post\waxtrace not found - WaxTrace PC cannot install FormTracePak at imaging time.
|
||||||
:skip_waxtrace_stage
|
:skip_waxtrace_stage
|
||||||
:pctype_done
|
:pctype_done
|
||||||
|
if defined STAGELOG echo [%TIME%] WinPE staging complete >> "%STAGELOG%"
|
||||||
|
|
||||||
REM --- BIOS update sub-stage push (fires AFTER W: copies complete) ---
|
REM --- BIOS update sub-stage push (fires AFTER W: copies complete) ---
|
||||||
REM check-bios.cmd drops X:\bios-fired.flag iff it actually flashed or
|
REM check-bios.cmd drops X:\bios-fired.flag iff it actually flashed or
|
||||||
|
|||||||
Reference in New Issue
Block a user