Bundles drift left uncommitted from prior sessions and the UDC matrix
verify entry added today.
Drift items (all per session-progress.md, completed in earlier sessions
but never staged):
- playbook/check-bios.cmd (deleted, moved to BIOS/check-bios.cmd)
- playbook/migrate-to-wifi.ps1 (made no-op 2026-04-24 after the dnsmasq
no-gateway fix removed the wired-NIC race that motivated it)
- playbook/preinstall/oracle/Install-Oracle11r2.cmd (post-OUI .ora copy
added 2026-04-24)
- playbook/preinstall/oracle/tnsnames.ora (live tnsnames, 469 KB,
deployed alongside the wrapper 2026-04-24)
- playbook/pxe_server_setup.yml (dnsmasq dhcp-option=3,6 commented,
Oracle .ora deploy task added 2026-04-24)
- playbook/shopfloor-setup/BIOS/{check-bios.cmd, models.txt} (BIOS
detection refinements)
- playbook/shopfloor-setup/Shopfloor/Force-Lockdown.bat
- playbook/shopfloor-setup/Shopfloor/Monitor-IntuneProgress.ps1
- playbook/shopfloor-setup/Shopfloor/SetShopfloorAutoLogon.bat (new)
- playbook/shopfloor-setup/Shopfloor/09-Install-PrinterInstallerMap.ps1
(new, places PrinterInstallerMap.exe + Public Desktop shortcut at
imaging time; manifest entry self-heals on tamper)
- playbook/shopfloor-setup/Shopfloor/lib/Show-IntuneDeviceQR.ps1 (new,
standalone QR rendering for site that wanted just that piece)
- playbook/shopfloor-setup/gea-shopfloor-collections/{Install-eMxInfo.cmd.template,
Restore-UDCData.ps1} (these were uncommitted in pre-rename Standard/;
git mv didn't catch them because they were untracked at the time)
- docs/shopfloor-machine-imaging-guide.md (operator-facing how-to)
Matrix:
- common.test/matrix.json: add UDC verify entry to gea-shopfloor-collections
row. Surfaces UDC silent-install issue (item H pending) instead of
letting it pass silently.
.gitignore:
- PrinterInstallerMap.exe (142 MB) excluded. Track via LFS or stage on
PXE server only - too big for regular git history. Untouched on disk
so existing local copy still works.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
114 lines
4.3 KiB
Batchfile
114 lines
4.3 KiB
Batchfile
@echo off
|
|
REM Install-Oracle11r2.cmd
|
|
REM Expands the GE Oracle Client 11.2 Administrator zip to a temp dir and
|
|
REM runs Oracle Universal Installer silently with the GE-customized
|
|
REM response file.
|
|
REM
|
|
REM Accepted zip locations (first hit wins):
|
|
REM %~dp0Oracle_OracleDatabase_11r2_V03.zip (preinstall flat)
|
|
REM %~dp0..\apps\Oracle_OracleDatabase_11r2_V03.zip (SFLD share, enforcer)
|
|
REM
|
|
REM Called by:
|
|
REM - preinstall runner (Type=EXE, image build time)
|
|
REM - Install-FromManifest.ps1 (Type=CMD, runtime enforcer)
|
|
REM
|
|
REM Oracle 11.2 OUI exit codes worth knowing:
|
|
REM 0 = success
|
|
REM 3 = success but with warnings
|
|
REM 1 = general failure
|
|
REM 6 = silent install requested but missing / bad response file
|
|
|
|
setlocal enabledelayedexpansion
|
|
set "LOG=C:\Logs\OracleClient\install.log"
|
|
if not exist "C:\Logs\OracleClient" mkdir "C:\Logs\OracleClient"
|
|
|
|
REM Emit a datestamp
|
|
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value 2^>nul ^| find "="') do set LDT=%%I
|
|
set "STAMP=!LDT:~0,14!"
|
|
|
|
echo [%STAMP%] Install-Oracle11r2.cmd starting >> "%LOG%"
|
|
|
|
set "SRC_ZIP=%~dp0Oracle_OracleDatabase_11r2_V03.zip"
|
|
if not exist "%SRC_ZIP%" set "SRC_ZIP=%~dp0..\apps\Oracle_OracleDatabase_11r2_V03.zip"
|
|
set "STAGING=%TEMP%\oracle-11r2-install"
|
|
set "CLIENT_DIR=%STAGING%\Oracle_OracleDatabase_11r2_V03\client"
|
|
set "RSP=%CLIENT_DIR%\response\ge_client_install.rsp"
|
|
|
|
if not exist "%SRC_ZIP%" (
|
|
echo [%STAMP%] ERROR: zip not found at %SRC_ZIP% >> "%LOG%"
|
|
echo ERROR: zip not found at %SRC_ZIP%
|
|
exit /b 2
|
|
)
|
|
|
|
echo [%STAMP%] Expanding %SRC_ZIP% to %STAGING% >> "%LOG%"
|
|
if exist "%STAGING%" rmdir /s /q "%STAGING%" >nul 2>&1
|
|
mkdir "%STAGING%"
|
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command ^
|
|
"try { Expand-Archive -Path '%SRC_ZIP%' -DestinationPath '%STAGING%' -Force -ErrorAction Stop; exit 0 } catch { Write-Error $_; exit 1 }" ^
|
|
>> "%LOG%" 2>&1
|
|
|
|
if not exist "%CLIENT_DIR%\setup.exe" (
|
|
echo [%STAMP%] ERROR: expanded setup.exe not found at %CLIENT_DIR%\setup.exe >> "%LOG%"
|
|
exit /b 3
|
|
)
|
|
|
|
if not exist "%RSP%" (
|
|
echo [%STAMP%] ERROR: response file missing at %RSP% >> "%LOG%"
|
|
exit /b 4
|
|
)
|
|
|
|
echo [%STAMP%] Running OUI silent install (this takes 2-8 minutes) >> "%LOG%"
|
|
"%CLIENT_DIR%\setup.exe" -silent -waitforcompletion -nowait ^
|
|
-ignoreSysPrereqs ^
|
|
-responseFile "%RSP%" >> "%LOG%" 2>&1
|
|
set RC=%ERRORLEVEL%
|
|
|
|
echo [%STAMP%] OUI exit code: %RC% >> "%LOG%"
|
|
|
|
REM --- Drop GE-customized tnsnames.ora / sqlnet.ora / ldap.ora into ORACLE_HOME.
|
|
REM The zip ships these in client\ora\ but Oracle's setup.exe does not consume
|
|
REM them - that copy is the GE Wise wrapper's job, which we bypass. Without
|
|
REM these, every Oracle-dependent app (eDNC/UDC/NTLARS/CMM tooling) fails with
|
|
REM ORA-12154 "TNS could not resolve the connect identifier specified".
|
|
REM
|
|
REM Per-file override: if %~dp0<name>.ora exists (deployed alongside this
|
|
REM wrapper on the PXE server / SFLD share), use it instead of the bundled
|
|
REM copy. Lets us push an updated tnsnames.ora without repackaging the zip.
|
|
REM
|
|
REM Only run when OUI succeeded (RC 0 or 3). On failure ORACLE_HOME may not
|
|
REM be fully populated and the copy targets may not exist.
|
|
if %RC%==0 goto :do_ora_copy
|
|
if %RC%==3 goto :do_ora_copy
|
|
goto :skip_ora_copy
|
|
|
|
:do_ora_copy
|
|
set "ORA_DST=C:\Apps\product\11.2.0\client_1\network\admin"
|
|
if not exist "%ORA_DST%" (
|
|
echo [%STAMP%] WARN: %ORA_DST% does not exist after OUI - skipping .ora copy >> "%LOG%"
|
|
goto :skip_ora_copy
|
|
)
|
|
for %%F in (tnsnames.ora sqlnet.ora ldap.ora) do (
|
|
set "ORA_SRC=%~dp0%%F"
|
|
if not exist "!ORA_SRC!" set "ORA_SRC=%CLIENT_DIR%\ora\%%F"
|
|
if exist "!ORA_SRC!" (
|
|
echo [%STAMP%] Copying %%F from !ORA_SRC! to %ORA_DST%\%%F >> "%LOG%"
|
|
copy /Y "!ORA_SRC!" "%ORA_DST%\%%F" >> "%LOG%" 2>&1
|
|
) else (
|
|
echo [%STAMP%] WARN: %%F not found in either %~dp0 or %CLIENT_DIR%\ora >> "%LOG%"
|
|
)
|
|
)
|
|
|
|
:skip_ora_copy
|
|
|
|
REM Cleanup staging dir to reclaim ~1.5 GB - OUI copies everything to ORACLE_HOME
|
|
echo [%STAMP%] Cleaning up staging dir >> "%LOG%"
|
|
rmdir /s /q "%STAGING%" >nul 2>&1
|
|
|
|
REM OUI returns 0 for success, 3 for success-with-warnings. Treat both as OK.
|
|
if %RC%==3 (
|
|
echo [%STAMP%] OUI reported warnings but install succeeded - returning 0 >> "%LOG%"
|
|
exit /b 0
|
|
)
|
|
|
|
exit /b %RC%
|