From 8455c80aa47d638f721577dfb929a070049d5e0d Mon Sep 17 00:00:00 2001 From: cproudlock Date: Mon, 13 Apr 2026 07:51:21 -0400 Subject: [PATCH] Shopfloor preinstall: add Adobe Acrobat Reader DC for all PC types Same version as GEA-Engineering image. Two-step install via wrapper script (MSI + enterprise transform, then DC update patch). Co-Authored-By: Claude Opus 4.6 (1M context) --- .../preinstall/adobe/Install-AcroReader.cmd | 23 +++++++++++++++++++ playbook/preinstall/preinstall.json | 10 ++++++++ 2 files changed, 33 insertions(+) create mode 100644 playbook/preinstall/adobe/Install-AcroReader.cmd diff --git a/playbook/preinstall/adobe/Install-AcroReader.cmd b/playbook/preinstall/adobe/Install-AcroReader.cmd new file mode 100644 index 0000000..29487a2 --- /dev/null +++ b/playbook/preinstall/adobe/Install-AcroReader.cmd @@ -0,0 +1,23 @@ +@echo off +REM Install-AcroReader.cmd - Install Adobe Acrobat Reader DC + DC update patch +REM +REM Two-step install: base MSI with enterprise transform, then DC update patch. +REM Same version as the GEA-Engineering image (specialize pass Orders 22-23). +REM Files staged by startnet.cmd from enrollment share to C:\PreInstall\installers\adobe\. + +echo Installing Adobe Acrobat Reader DC... +msiexec /i "%~dp0AcroRead.msi" TRANSFORMS="%~dp0AcroRead.mst" /quiet /norestart +if %errorlevel% neq 0 if %errorlevel% neq 3010 ( + echo Acrobat Reader MSI failed with exit code %errorlevel% + exit /b %errorlevel% +) + +echo Applying Adobe Reader DC update patch... +msiexec /p "%~dp0AcroRdrDCUpd2500120531.msp" /quiet /norestart +if %errorlevel% neq 0 if %errorlevel% neq 3010 ( + echo Acrobat Reader patch failed with exit code %errorlevel% + exit /b %errorlevel% +) + +echo Adobe Acrobat Reader DC installed successfully. +exit /b 0 diff --git a/playbook/preinstall/preinstall.json b/playbook/preinstall/preinstall.json index bb50870..83f548c 100644 --- a/playbook/preinstall/preinstall.json +++ b/playbook/preinstall/preinstall.json @@ -114,6 +114,16 @@ "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{C18FB403-1E88-43C8-AD8A-CED50F23DE8B}", "PCTypes": ["*"] }, + { + "_comment": "Adobe Acrobat Reader DC - same version as GEA-Engineering image. Two-step install via Install-AcroReader.cmd wrapper: base MSI with enterprise transform (AcroRead.mst) then DC update patch (AcroRdrDCUpd2500120531.msp). Source files on PXE server at /srv/samba/winpeapps/gea-engineer/Deploy/Applications/extra/adobe/ - copy to /srv/samba/enrollment/preinstall/installers/adobe/.", + "Name": "Adobe Acrobat Reader DC", + "Installer": "adobe\\Install-AcroReader.cmd", + "Type": "EXE", + "InstallArgs": "", + "DetectionMethod": "File", + "DetectionPath": "C:\\Program Files (x86)\\Adobe\\Acrobat Reader DC\\Reader\\AcroRd32.exe", + "PCTypes": ["*"] + }, { "_comment": "OpenText HostExplorer 15 SP1 ShopFloor - replaced the WJDT-built OpenText.exe Inno wrapper with our own Setup-OpenText.ps1 that does the same install steps (msiexec base + ShopFloor.mst transform + SP1 .msp patch) PLUS fans the per-user profile/keymap/menu/macro content out to Default User and every existing user profile. The Inno wrapper deployed per-user content to {userappdata} which resolves to whichever user is running the installer (SYSTEM under DSC, single user under PreInstall) so Azure-AD users never saw the profiles. Setup-OpenText.cmd is a tiny launcher that hands off to Setup-OpenText.ps1 because the runner only handles MSI/EXE types. All bundled files live in vcredist-style subtree at dependencies/opentext/ and get xcopied through WinPE staging. NO DetectionMethod here on purpose - Setup-OpenText.ps1 owns its own version check by reading version.txt next to itself and comparing to HKLM:\\SOFTWARE\\GE\\OpenText\\Installed; the runner always invokes the wrapper (cost: ~1s of PowerShell launch when up-to-date) so the version constant lives in exactly one place: dependencies/opentext/version.txt.", "Name": "OpenText HostExplorer ShopFloor",