Our patched standalone PC-DMIS MSI never installs the Amyuni Document Converter 500 (system printer "PC-DMIS 50 Converter"). INSTALLPDFCONVERTER is a Burn-bundle property the main MSI never reads (0 of 153 custom actions reference it; not in the Property table), and the patched-MSI strategy bypasses the bundle that would have chained the Amyuni install. The MSI only lays the installer on disk at <installdir>\PDFDriverInstallFiles\ BatFileInstallPDF50.zip and nothing runs it. Install-PCDMISPDFConverter.ps1 runs it: scans Program Files\Hexagon (and Wai) for the laid-down zip, extracts it, parses the InstallPDF50.exe invocation from the shipped bat (printer name + Wilcox licensee + license code, read not hardcoded), and runs the exe directly from the extract dir so sibling DLLs resolve. The shipped bat ends in `pause` (hangs under /qn) so we never run it. InstallPDF50.exe creates the printer then hangs (same trait as the bundle), so we poll for the printer and kill the stuck exe once it appears. Idempotent: printer already present -> exit 0. Wired as a PS1 manifest entry placed after the PC-DMIS MSIs (files must exist on disk first), no _CmmVersion (one shared printer covers every version), MarkerFile detection for one-shot at imaging. Smoke tested on the win11 VM as SYSTEM: fresh install 7.2s (printer + driver created), idempotent re-run 0.6s, both exit 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
80 lines
5.6 KiB
JSON
80 lines
5.6 KiB
JSON
{
|
|
"Version": "2.0",
|
|
"_comment": "CMM machine-app manifest, imaging-time only. Consumed by 09-Setup-CMM.ps1 reading from C:\\CMM-Install\\. 09-Setup reads C:\\Enrollment\\cmm\\version.txt (written by resolve-cmm-bay-config.ps1) and filters PC-DMIS entries by the _CmmVersion tag before passing to Install-FromManifest. Entries without _CmmVersion are always installed (CLM, goCMM, DODA). Ongoing enforcement is handled separately by GE-Enforce reading cmm/manifest.json from the tsgwp00525 share. Patched-MSI install strategy: we bypass Hexagon's Burn bundle entirely. The main PC-DMIS MSIs have been patched via COM SQL UPDATE to force the Condition column to '0' for licensing custom actions (ProcessLicensingFromBundle, IsLicenseDateValid, IsLicenseExpired, IsLmsLicenseServerConnectionError, IsLmsLicenseError). With CAs disabled, the MSI installs cleanly with no license present; the tech activates a real license via clmadmin.exe after imaging.",
|
|
"Applications": [
|
|
{
|
|
"Name": "PC-DMIS 2016",
|
|
"_CmmVersion": "2016",
|
|
"Installer": "pcdmis2016-main-patched.msi",
|
|
"Type": "MSI",
|
|
"InstallArgs": "/qn /norestart ALLUSERS=1 MSIFASTINSTALL=7 INSTALLFOLDER=\"C:\\Program Files\\Hexagon\\PC-DMIS 2016.0 64-bit\" APPLICATIONFOLDER=\"C:\\Program Files\\Hexagon\\PC-DMIS 2016.0 64-bit\" USINGWPFINSTALLER=1 HEIP=0 INSTALLPDFCONVERTER=0 REBOOT=ReallySuppress LICENSETYPE=LMSEntitlement",
|
|
"DetectionMethod": "Registry",
|
|
"DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{5389B196-81F0-44A9-A073-4C1D72041F09}"
|
|
},
|
|
{
|
|
"Name": "PC-DMIS 2019 R2",
|
|
"_CmmVersion": "2019",
|
|
"Installer": "pcdmis2019-main-patched.msi",
|
|
"Type": "MSI",
|
|
"InstallArgs": "/qn /norestart ALLUSERS=1 MSIFASTINSTALL=7 INSTALLFOLDER=\"C:\\Program Files\\Hexagon\\PC-DMIS 2019 R2 64-bit\" APPLICATIONFOLDER=\"C:\\Program Files\\Hexagon\\PC-DMIS 2019 R2 64-bit\" USINGWPFINSTALLER=1 HEIP=0 INSTALLPDFCONVERTER=0 INSTALLOFFLINEHELP=0 INSTALLUNIVERSALUPDATER=0 REBOOT=ReallySuppress LICENSETYPE=LMSEntitlement",
|
|
"DetectionMethod": "Registry",
|
|
"DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{49DBE7F9-228A-4E66-8BB5-DB5A446DCAE7}"
|
|
},
|
|
{
|
|
"Name": "PC-DMIS 2026.1",
|
|
"_CmmVersion": "2026",
|
|
"Installer": "pcdmis2026-main-patched.msi",
|
|
"Type": "MSI",
|
|
"InstallArgs": "/qn /norestart ALLUSERS=1 MSIFASTINSTALL=7 INSTALLFOLDER=\"C:\\Program Files\\Hexagon\\PC-DMIS 2026.1 64-bit\" APPLICATIONFOLDER=\"C:\\Program Files\\Hexagon\\PC-DMIS 2026.1 64-bit\" USINGWPFINSTALLER=1 HEIP=0 INSTALLPDFCONVERTER=0 INSTALLOFFLINEHELP=0 INSTALLUNIVERSALUPDATER=0 REBOOT=ReallySuppress LICENSETYPE=LMSEntitlement",
|
|
"DetectionMethod": "Registry",
|
|
"DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{81BACE1B-FB08-4DCF-8100-79911AD3EC1E}"
|
|
},
|
|
{
|
|
"_comment": "PC-DMIS PDF converter (Amyuni Document Converter 500; system printer 'PC-DMIS 50 Converter'). NOT installed by the PC-DMIS MSI: INSTALLPDFCONVERTER is a Burn-bundle property the standalone MSI never reads (0 of 153 custom actions reference it), and our patched-MSI strategy bypasses the bundle that would have chained the Amyuni install. The MSI only lays the installer down at <installdir>\\PDFDriverInstallFiles\\BatFileInstallPDF50.zip; this entry runs it (InstallPDF50.exe directly - the shipped .bat ends in `pause` and hangs under /qn). MUST stay AFTER the PC-DMIS entries so the files exist on disk. One shared printer covers every installed version; script is idempotent and scans Program Files\\Hexagon (and Wai). MarkerFile keeps it one-shot at imaging.",
|
|
"Name": "PC-DMIS PDF Converter",
|
|
"Type": "PS1",
|
|
"Script": "Install-PCDMISPDFConverter.ps1",
|
|
"DetectionMethod": "MarkerFile",
|
|
"DetectionPath": "C:\\Logs\\CMM\\pdfconverter.installed"
|
|
},
|
|
{
|
|
"_comment": "Protect Viewer - companion tool. Install for all versions.",
|
|
"Name": "Protect Viewer",
|
|
"Installer": "ProtectViewer.msi",
|
|
"Type": "MSI",
|
|
"InstallArgs": "/qn /norestart ALLUSERS=1 MSIFASTINSTALL=7 REBOOT=ReallySuppress",
|
|
"DetectionMethod": "Registry",
|
|
"DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{7DE6B8AF-F580-4CDE-845F-FBE46C1FCF69}"
|
|
},
|
|
{
|
|
"_comment": "CLM 1.8.73 standalone - provides clmadmin.exe for license activation. Install for all versions.",
|
|
"Name": "CLM 1.8.73",
|
|
"Installer": "CLM_1.8.73.0_x64.exe",
|
|
"Type": "EXE",
|
|
"InstallArgs": "/quiet /norestart /log \"C:\\Logs\\CMM\\CLM.log\"",
|
|
"LogFile": "C:\\Logs\\CMM\\CLM.log",
|
|
"DetectionMethod": "Registry",
|
|
"DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{a55fecde-0776-474e-a5b3-d57ea93d6a9f}"
|
|
},
|
|
{
|
|
"_comment": "goCMM - Hexagon CMM job launcher. Install for all versions.",
|
|
"Name": "goCMM",
|
|
"Installer": "goCMM_1.1.6718.31289.exe",
|
|
"Type": "EXE",
|
|
"InstallArgs": "/quiet /norestart /log \"C:\\Logs\\CMM\\goCMM.log\"",
|
|
"LogFile": "C:\\Logs\\CMM\\goCMM.log",
|
|
"DetectionMethod": "Registry",
|
|
"DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{94f02b85-bbca-422e-9b8b-0c16a769eced}"
|
|
},
|
|
{
|
|
"_comment": "DODA - Dovetail Digital Analysis. Deployed as a flat file extract to C:\\Apps\\DODA\\. Only installed when doda.txt=yes (pc-subtype.txt=doda gates this via PCTypes).",
|
|
"Name": "DODA",
|
|
"PCTypes": ["cmm-doda"],
|
|
"Type": "PS1",
|
|
"Script": "Install-DODA.ps1",
|
|
"DetectionMethod": "File",
|
|
"DetectionPath": "C:\\Apps\\DODA\\DovetailAnalysis.exe"
|
|
}
|
|
]
|
|
}
|