Shopfloor images: add Wax/Trace + Keyence per-model variants
Wax/Trace (gea-shopfloor-waxtrace): - captured/ holds master FormTracePak v6.0 state (Program Files reg dump gzipped, ARP entries) taken from a win11 VM where the CD-ROM-bound VB6 wrapper was driven to completion. xcopy + reg-import replays the install on real bays without running the wrapper itself. - 09-Setup-WaxAndTrace.ps1 rewrites the stub: installs prereqs via manifest (VC++ 2008/2017 x86+x64, Sentinel HASP), expands the captured zips into C:\Program Files (x86)\MitutoyoApp + C:\MitutoyoApp, imports the reg hive, then mounts the bay's per-machine cal ISO (matched by asset tag in machine-number.txt) and runs its Setup.exe. - waxtrace-manifest.json lists the 5 prereqs with InstallShield-style silent flags verified on the win11 VM. - sync-waxtrace.sh ships captured-binary/ + prereqs + cal ISOs from /home/camp/pxe-images/iso/mitutoyo-cal/ to /srv/samba/enrollment/installers-post/waxtrace/ on the PXE box. - select-waxtrace-asset.ps1 arrow-key bay picker for WinPE (parses INDEX.csv from the cal share, offers "Other (new bay)" fallback). - startnet.cmd: prompt_waxtrace_asset prompt, skip_waxtrace_stage xcopy block (mirrors :skip_cmm_stage), machine-number.txt write covers bay asset tag (WJRP*). Keyence (gea-shopfloor-keyence) - now multi-model: - vr3000/manifest.json + vr5000/manifest.json + vr6000/manifest.json (current single-model VR-6000 moved into vr6000/ subdir). Each ships the model's MSI silent-install + DetectionPath via ProductCode. Big payloads (Data1.cab, Data11.cab) gitignored, staged via sync-keyence.sh from /home/camp/pxe-images/iso/keyence/. - 09-Setup-Keyence.ps1 dispatches by C:\Enrollment\keyence-model.txt (written by startnet.cmd in :keyence_submenu) and points InstallerRoot at C:\KeyenceInstall\<model>. DXSETUP probe widened to all three Program Files paths (VR-3000 G2, VR-5000, VR-6000). - startnet.cmd: :keyence_submenu picks vr3000/vr5000/vr6000, :skip_keyence_stage xcopy block selectively stages chosen model bundle, pc-subtype.txt also written = drops directly into existing GE-Enforce PCSubType wiring (looks for gea-shopfloor-keyence-<model>\manifest.json on the tsgwp00525 share for ongoing enforcement, no dispatcher change needed). - sync-keyence.sh mirrors sync-waxtrace.sh pattern. Verified silent MSI install for VR-3000 G2 v2.5.0 and VR-5000 v3.3.1 on the win11 VM 2026-05-18 with /qn /norestart ALLUSERS=1 REBOOT=ReallySuppress TRANSFORMS=1033.mst. boot.wim on 172.16.9.1 wimupdate'd with the new startnet.cmd. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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"
|
||||
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"Version": "1.0",
|
||||
"_comment": "Keyence machine-app manifest, imaging-time only. Consumed by 09-Setup-Keyence.ps1, reading from the in-repo shopfloor-setup/Keyence/ dir xcopied by startnet.cmd. Ongoing enforcement is handled separately by GE-Enforce reading keyence/manifest.json from the tsgwp00525 share. Each entry has an InstallerRoot-relative 'Installer' path plus standard detection. The 'Type' field is MSI, EXE, or INF: INF invokes pnputil /add-driver /install. When releasing a new VR-6000 version, update the Installer path + DetectionValue here AND on the share manifest.",
|
||||
"Applications": [
|
||||
{
|
||||
"_comment": "VR-6000 Series Software - main Keyence microscope/profilometer control app. Extracted from Keyence6000.exe (Inno Setup wrapper around an InstallShield 2019 MSI). Silent install works fine with /qn + REBOOT=ReallySuppress as long as you bypass the Inno wrapper - the wrapper's [Run] entry calls the bundled InstallShield Setup.exe without silent flags which hangs in session 0. The MSI references Data1.cab (560 MB compressed payload) in the same directory; that cab is gitignored. Stage from tsgwp00525\\sfld$\\v2\\shared\\dt\\shopfloor\\gea-shopfloor-keyence\\apps\\Data1.cab into installers/ before building the USB. Missing cab = msiexec exit 1603 with 'SECREPAIR: Failed to open ... Data1.cab' in the verbose MSI log.",
|
||||
"Name": "VR-6000 Series Software",
|
||||
"Installer": "installers\\VR-6000 Series Software.msi",
|
||||
"Type": "MSI",
|
||||
"InstallArgs": "/qn /norestart ALLUSERS=1 REBOOT=ReallySuppress",
|
||||
"DetectionMethod": "Registry",
|
||||
"DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{058E7194-BDF8-4FA2-9D69-978BB0F25214}",
|
||||
"DetectionName": "DisplayVersion",
|
||||
"DetectionValue": "4.3.7"
|
||||
},
|
||||
{
|
||||
"_comment": "KEYENCE VR Series USB driver (WinUSB-based). Pulled from DriverStore after a full interactive install because dpinst.exe in the Inno wrapper needs GUI confirmation. pnputil /add-driver /install stages the INF + cat + co-installer DLLs to the Windows DriverStore; if a physical VR device is plugged in, Windows binds it immediately. Detection checks 'pnputil /enum-drivers' output for the INF filename - this matches regardless of driver version so updates (new INF with same basename) won't false-skip.",
|
||||
"Name": "KEYENCE VR Series USB Driver",
|
||||
"Installer": "drivers\\keyence_vr_series.inf",
|
||||
"Type": "INF",
|
||||
"DetectionMethod": "pnputil",
|
||||
"DetectionPattern": "keyence_vr_series\\.inf"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user