Keyence VR-6000 Series Software + USB driver deployment

- shopfloor-setup/Keyence/09-Setup-Keyence.ps1: populate placeholder with
  MSI install via msiexec and driver install via pnputil. Idempotent on
  ProductCode {058E7194-...} and DriverStore entry. Logs to C:\Logs\Keyence\.
- shopfloor-setup/Keyence/installers/VR-6000 Series Software.msi: main
  product (1.7 MB; pulled from Keyence6000.exe Inno wrapper's Windows
  Installer cache, built with InstallShield 2019).
- shopfloor-setup/Keyence/drivers/: KEYENCE VR Series USB driver
  package (.inf + .cat + Wdf/WinUsb co-installers). 2.7 MB, pulled from
  DriverStore\FileRepository\keyence_vr_series.inf_amd64_b5e5eb0924d7b4ce.
- preinstall.json: add VC++ 2013 x64 Min + Add entries (PCTypes: ["*"])
  as prereqs for VR-6000. GUIDs {A749D8E6-B613-...} and {929FBD26-9020-...}.

Staging footprint for non-Keyence PCs is unchanged (the 4.4 MB Keyence
payload lives under shopfloor-setup/Keyence/ which startnet.cmd only
xcopies for PCTYPE=Keyence). Rollout still requires dropping the two
VC++ 2013 x64 MSIs into \$PXE_IMAGES_DIR/dependencies/vcredist/2013-x64-{min,add}/
on the workstation running sync-preinstall.sh.

Rationale for bundling the MSI + driver locally rather than running
Keyence6000.exe: the Inno wrapper calls an InstallShield child (Setup.exe)
without silent flags, which hangs indefinitely in session 0 during
automated imaging. msiexec + pnputil from the extracted bundle runs
fully non-interactive.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
cproudlock
2026-04-18 10:02:34 -04:00
parent 719a550be8
commit 22c59b889e
7 changed files with 251 additions and 9 deletions

View File

@@ -0,0 +1,94 @@
[Version]
Signature = "$Windows NT$"
DriverPackageDisplayName=%DESC%
Class = KeyenceUSB
ClassGuid={EE304F37-F588-45FC-91FE-B76873981AD1}
Provider = %ProviderName%
CatalogFile=KEYENCE_VR_SERIES.cat
DriverVer=03/26/2020,1.0.0.0
; ================== Class section ==================
[ClassInstall32]
Addreg=KeyenceClassReg
[KeyenceClassReg]
HKR,,,0,%ClassName%
HKR,,Icon,,-5
; ========== Manufacturer/Models sections ===========
[Manufacturer]
%ProviderName% = KEYENCE,NTamd64
[KEYENCE.NTamd64]
%USB\KeyenceDevice.DeviceDesc% =USB_Install,USB\VID_0720&PID_102C
; =================== Installation ===================
;[1]
[USB_Install]
Include=winusb.inf
Needs=WINUSB.NT
;[2]
[USB_Install.Services]
Include=winusb.inf
AddService=WinUSB,0x00000002,WinUSB_ServiceInstall
;[3]
[WinUSB_ServiceInstall]
DisplayName = %WinUSB_SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WinUSB.sys
;[4]
[USB_Install.Wdf]
KmdfService=WINUSB, WinUsb_Install
[WinUSB_Install]
KmdfLibraryVersion=1.9
;[5]
[USB_Install.HW]
AddReg=Dev_AddReg
[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{B708995F-18C9-4D52-8D29-41FF2BFBF215}"
;[6]
[USB_Install.CoInstallers]
AddReg=CoInstallers_AddReg
CopyFiles=CoInstallers_CopyFiles
[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01009.dll,WdfCoInstaller","WinUsbCoinstaller2.dll"
[CoInstallers_CopyFiles]
WdfCoInstaller01009.dll
WinUsbCoinstaller2.dll
[DestinationDirs]
CoInstallers_CopyFiles=11
; ================= Source Media Section =====================
;[7]
[SourceDisksNames]
1 = %DISK_NAME%,,,\amd64
[SourceDisksFiles.amd64]
WinUSBCoInstaller2.dll=1
WdfCoInstaller01009.dll=1
; =================== Strings ===================
[Strings]
ProviderName="KEYENCE"
DESC="VR Series USB-Driver"
WinUSB_SvcDesc="WinUSB.sys : KEYENCE USB Device"
DISK_NAME="KEYENCE USB Driver Installation Disk"
ClassName="KEYENCE USB Device Class"
USB\KeyenceDevice.DeviceDesc="VR Series"