Files
pxe-server/playbook/shopfloor-setup/gea-shopfloor-keyence/installers/VR-6000 Series Software.msi
cproudlock c2f7285090 keyence: patch VR-6000 MSI to disable dpinst CustomAction
VM-test-confirmed root cause for the imaging "Setup wizard prompt"
hang. The bundled MSI has CustomAction caDriverInstall_x64 that
invokes dpinst.exe at install time:

  caDriverInstall_x64  type=3666 (exe, deferred)  Source=dpinst.exe
    Condition: (Not Installed) And VersionNT64 And (VersionNT>=601)
    Sequence:  6505

The bundled dpinst.xml is minimal (<dpInst><legacyMode/></dpInst>) -
no <quietInstall/> directive - so dpinst pops its wizard and waits
for operator click-through. /qn on the parent MSI does NOT propagate
into the dpinst child process. pnputil pre-staging the INF + cert
pre-trust to TrustedPublisher does NOT prevent the CA from firing
(the CA runs unconditionally on first install regardless of
DriverStore presence).

Fix: msibuild patch the MSI's InstallExecuteSequence to set the
action's Condition column from
  "(Not Installed) And VersionNT64 And (VersionNT>=601)"
to
  "0"
which evaluates false on every install attempt - the action never
fires, dpinst never runs, no wizard pops.

The driver itself is now installed exclusively by:
  1. our pnputil pre-stage in 09-Setup-Keyence.ps1 (already there),
  2. the manifest's separate "KEYENCE VR Series USB Driver" INF entry.

End-to-end VM test: 36s, exit 0, VR-6000 DisplayVersion 4.3.7
detected, zero dpinst processes at finish.

MSI size 1751552 -> 1744896 bytes (msibuild table rewrite).
md5: c6edcfc6c6808617598bcb7a15072a30.

Backups of original MSI on live PXE server enrollment share + local
SFLD share mirror as .bak-<TS>-orig.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 12:16:13 -04:00

1.7 MiB