From 37357eee43e9c16156292b879f77001a9c27abe9 Mon Sep 17 00:00:00 2001 From: cproudlock Date: Mon, 18 May 2026 16:34:20 -0400 Subject: [PATCH] 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\. 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-\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) --- .gitignore | 10 +- playbook/select-waxtrace-asset.ps1 | 100 ++++++++ .../09-Setup-Keyence.ps1 | 64 +++-- .../vr3000/installers/1033.mst | Bin 0 -> 28672 bytes .../vr3000/manifest.json | 17 ++ .../vr5000/installers/1033.mst | Bin 0 -> 28672 bytes .../vr5000/manifest.json | 17 ++ .../drivers/KEYENCE_VR_SERIES.cat | Bin .../drivers/amd64/WdfCoInstaller01009.dll | Bin .../drivers/amd64/WinUsbCoinstaller2.dll | Bin .../drivers/keyence_vr_series.inf | 0 .../installers/VR-6000 Series Software.msi | Bin .../manifest.json} | 0 .../09-Setup-WaxAndTrace.ps1 | 217 +++++++++++++++- .../captured/arp-entries.json | 98 ++++++++ .../captured/arp-entries.xml | Bin 0 -> 14590 bytes .../captured/capture.log | Bin 0 -> 1762 bytes .../captured/manifest.json | 9 + .../captured/pnputil-drivers.txt | 237 ++++++++++++++++++ .../captured/reg/hklm-wow-mitutoyo.reg.gz | Bin 0 -> 222537 bytes .../captured/sys-files-added.csv | 0 .../waxtrace-manifest.json | 61 +++++ playbook/startnet.cmd | 83 +++++- playbook/sync-keyence.sh | 86 +++++++ playbook/sync-waxtrace.sh | 95 +++++++ 25 files changed, 1061 insertions(+), 33 deletions(-) create mode 100644 playbook/select-waxtrace-asset.ps1 create mode 100644 playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/installers/1033.mst create mode 100644 playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/manifest.json create mode 100644 playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/installers/1033.mst create mode 100644 playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/manifest.json rename playbook/shopfloor-setup/gea-shopfloor-keyence/{ => vr6000}/drivers/KEYENCE_VR_SERIES.cat (100%) rename playbook/shopfloor-setup/gea-shopfloor-keyence/{ => vr6000}/drivers/amd64/WdfCoInstaller01009.dll (100%) rename playbook/shopfloor-setup/gea-shopfloor-keyence/{ => vr6000}/drivers/amd64/WinUsbCoinstaller2.dll (100%) rename playbook/shopfloor-setup/gea-shopfloor-keyence/{ => vr6000}/drivers/keyence_vr_series.inf (100%) rename playbook/shopfloor-setup/gea-shopfloor-keyence/{ => vr6000}/installers/VR-6000 Series Software.msi (100%) rename playbook/shopfloor-setup/gea-shopfloor-keyence/{keyence-manifest.json => vr6000/manifest.json} (100%) create mode 100644 playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/arp-entries.json create mode 100644 playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/arp-entries.xml create mode 100644 playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/capture.log create mode 100644 playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/manifest.json create mode 100644 playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/pnputil-drivers.txt create mode 100644 playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/reg/hklm-wow-mitutoyo.reg.gz create mode 100644 playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/sys-files-added.csv create mode 100644 playbook/shopfloor-setup/gea-shopfloor-waxtrace/waxtrace-manifest.json create mode 100755 playbook/sync-keyence.sh create mode 100755 playbook/sync-waxtrace.sh diff --git a/.gitignore b/.gitignore index eb188d4..468d803 100644 --- a/.gitignore +++ b/.gitignore @@ -101,6 +101,12 @@ playbook/shopfloor-setup/Shopfloor/PrinterInstallerMap.exe # /home/camp/pxe-images/keyence/Logs/Keyence/install.log for the signature). # Canonical source on the GE-Enforce SFLD share: # tsgwp00525\sfld$\v2\shared\dt\shopfloor\gea-shopfloor-keyence\apps\Data1.cab -# Stage to playbook/shopfloor-setup/gea-shopfloor-keyence/installers/Data1.cab # before building the USB image. -playbook/shopfloor-setup/gea-shopfloor-keyence/installers/Data1.cab +playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured-binary/ + +# Keyence per-model installer payloads - too big for git, staged via sync-keyence.sh +playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/installers/Data*.cab +playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/installers/*.msi +playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/installers/Data*.cab +playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/installers/*.msi +playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/installers/Data1.cab diff --git a/playbook/select-waxtrace-asset.ps1 b/playbook/select-waxtrace-asset.ps1 new file mode 100644 index 0000000..47b4b5c --- /dev/null +++ b/playbook/select-waxtrace-asset.ps1 @@ -0,0 +1,100 @@ +# select-waxtrace-asset.ps1 - Arrow-key bay picker for wax/trace imaging. +# +# Reads the calibration INDEX.csv on the PXE share to build the menu of known +# bays. Operator picks with Up/Down arrows + Enter. Always appends an +# "Other (new bay)" option at the end for bays that don't have a cal ISO yet - +# selecting it falls back to a free-text prompt. +# +# Writes the chosen asset tag to $OutFile (one line, no trailing newline). +# startnet.cmd reads that file back into the MACHINENUM batch var. +# +# Runs in WinPE PowerShell. Win10/11 WinPE ships powershell.exe with +# System.Console.ReadKey support. Tested 2026-05-18. +# +# Exit codes: +# 0 = asset tag written to $OutFile +# 1 = user cancelled (Esc) - $OutFile not written +# 2 = INDEX.csv unreadable AND no fallback entered + +param( + [string]$IndexPath = 'Y:\installers-post\waxtrace\calibrations\INDEX.csv', + [Parameter(Mandatory=$true)][string]$OutFile +) + +$ErrorActionPreference = 'Continue' + +function Read-BayList { + param([string]$Path) + if (-not (Test-Path -LiteralPath $Path)) { return @() } + try { + return Import-Csv -LiteralPath $Path | Select-Object -Property asset_tag, unit_serial, probe_part + } catch { + return @() + } +} + +function Show-Menu { + param( + [object[]]$Items, + [int]$Selected, + [string]$Title + ) + Clear-Host + Write-Host "" + Write-Host " ========================================" + Write-Host " $Title" + Write-Host " ========================================" + Write-Host "" + Write-Host " Up / Down arrows = navigate, Enter = select, Esc = cancel" + Write-Host "" + for ($i = 0; $i -lt $Items.Count; $i++) { + $item = $Items[$i] + $line = if ($item -is [string]) { $item } else { "{0,-10} serial={1,-12} probe={2}" -f $item.asset_tag, $item.unit_serial, $item.probe_part } + if ($i -eq $Selected) { + Write-Host (" > " + $line) -ForegroundColor Black -BackgroundColor White + } else { + Write-Host (" " + $line) + } + } + Write-Host "" +} + +$bays = @(Read-BayList -Path $IndexPath) +$menuItems = @() +foreach ($b in $bays) { $menuItems += $b } +$menuItems += '** Other (new bay - enter asset tag manually) **' + +$sel = 0 +while ($true) { + Show-Menu -Items $menuItems -Selected $sel -Title "Wax/Trace Asset Tag" + $key = [System.Console]::ReadKey($true) + switch ($key.Key) { + 'UpArrow' { if ($sel -gt 0) { $sel-- } } + 'DownArrow' { if ($sel -lt ($menuItems.Count - 1)) { $sel++ } } + 'Enter' { + if ($sel -eq ($menuItems.Count - 1)) { + # Manual entry + Write-Host "" + $manual = Read-Host " Enter asset tag (e.g. WJRP9999) or blank to abort" + if ($manual) { + $manual = $manual.Trim().ToUpper() + Set-Content -LiteralPath $OutFile -Value $manual -NoNewline -Encoding ascii + Write-Host "" + Write-Host " Saved asset tag: $manual" + Start-Sleep -Seconds 1 + exit 0 + } else { + exit 1 + } + } else { + $pick = $bays[$sel].asset_tag + Set-Content -LiteralPath $OutFile -Value $pick -NoNewline -Encoding ascii + Write-Host "" + Write-Host " Selected: $pick" + Start-Sleep -Seconds 1 + exit 0 + } + } + 'Escape' { exit 1 } + } +} diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/09-Setup-Keyence.ps1 b/playbook/shopfloor-setup/gea-shopfloor-keyence/09-Setup-Keyence.ps1 index 541c8d5..8bf93c6 100644 --- a/playbook/shopfloor-setup/gea-shopfloor-keyence/09-Setup-Keyence.ps1 +++ b/playbook/shopfloor-setup/gea-shopfloor-keyence/09-Setup-Keyence.ps1 @@ -1,15 +1,18 @@ # 09-Setup-Keyence.ps1 - Keyence type setup (runs during shopfloor-setup phase). # -# Performs the imaging-time install of Keyence VR-6000 Series Software MSI + -# KEYENCE VR Series USB driver from the staged bundle. Ongoing enforcement -# is handled by GE-Enforce (registered separately in Run-ShopfloorSetup.ps1) -# reading keyence/manifest.json from the tsgwp00525 share. +# Performs the imaging-time install of one of three Keyence model variants: +# VR-3000 G2 / VR-5000 / VR-6000 +# based on C:\Enrollment\keyence-model.txt (vr3000 / vr5000 / vr6000), set +# during the WinPE menu. Per-model manifest + installers live at +# /manifest.json + /installers/. Ongoing enforcement is handled +# by GE-Enforce reading keyence/manifest.json from the tsgwp00525 share. # # Layout at $PSScriptRoot (xcopied by startnet.cmd only for PCTYPE=Keyence): -# keyence-manifest.json # 09-Setup-Keyence.ps1 (this file) -# installers\VR-6000 Series Software.msi -# drivers\keyence_vr_series.inf (+ cat + amd64\{Wdf,WinUsb}CoInstaller*.dll) +# vr3000\manifest.json + installers\VR-3000 G2 Series Software.msi + Data*.cab +# vr5000\manifest.json + installers\VR-5000 Series Software.msi + Data1.cab +# vr6000\manifest.json + installers\VR-6000 Series Software.msi + Data1.cab +# + drivers\keyence_vr_series.inf (legacy - only VR-6000) # # Library lookup: the imaging-time install uses the common Install-FromManifest # library at ..\common\lib\Install-FromManifest.ps1 (relative to $PSScriptRoot). @@ -19,8 +22,26 @@ $ErrorActionPreference = 'Continue' -$manifestPath = Join-Path $PSScriptRoot 'keyence-manifest.json' -$libSource = Join-Path $PSScriptRoot '..\common\lib\Install-FromManifest.ps1' +$libSource = Join-Path $PSScriptRoot '..\common\lib\Install-FromManifest.ps1' + +# Resolve which Keyence model variant to install. WinPE writes the choice +# (vr3000 / vr5000 / vr6000) into C:\Enrollment\keyence-model.txt during +# the imaging menu. If the file is missing, default to vr6000 since that +# was the original single-model setup before this refactor. +$modelFile = 'C:\Enrollment\keyence-model.txt' +if (Test-Path -LiteralPath $modelFile) { + $model = (Get-Content -LiteralPath $modelFile -First 1 -ErrorAction SilentlyContinue).Trim().ToLower() +} +if (-not $model) { $model = 'vr6000' } + +# Manifest comes via shopfloor-setup tree xcopy (small file, git-tracked). +# Installer payload (MSI + Data*.cab) comes via installers-post stage at +# C:\KeyenceInstall\\ - placed there by startnet.cmd's keyence-stage +# block. So manifest paths reference installers\... which resolve relative +# to InstallerRoot=C:\KeyenceInstall\. +$modelRoot = Join-Path $PSScriptRoot $model +$manifestPath = Join-Path $modelRoot 'manifest.json' +$stagingRoot = "C:\KeyenceInstall\$model" $logDir = 'C:\Logs\Keyence' $installLog = Join-Path $logDir 'install.log' @@ -80,8 +101,11 @@ foreach ($file in @('pc-type.txt','pc-subtype.txt','machine-number.txt')) { # If either step fails, log + continue - the MSI is still expected to install # successfully; the only fallout is the GUI prompt the operator would have # had to click through anyway. -$driverInf = Join-Path $PSScriptRoot 'drivers\keyence_vr_series.inf' -$driverCat = Join-Path $PSScriptRoot 'drivers\KEYENCE_VR_SERIES.cat' +# Drivers come via the staging dir now. Only VR-6000 ships an external .inf; +# VR-3000 + VR-5000 embed drivers inside the MSI so the pre-stage step is a +# no-op for those models (no file found, log + continue). +$driverInf = Join-Path $stagingRoot 'drivers\keyence_vr_series.inf' +$driverCat = Join-Path $stagingRoot 'drivers\KEYENCE_VR_SERIES.cat' if (Test-Path -LiteralPath $driverInf) { Write-KeyenceLog "Pre-staging USB driver via pnputil (suppresses dpinst GUI inside MSI)" @@ -124,8 +148,8 @@ if (-not (Test-Path $manifestPath)) { } elseif (-not (Test-Path $libSource)) { Write-KeyenceLog "Install-FromManifest.ps1 not found at $libSource" "ERROR" } else { - Write-KeyenceLog "Running Install-FromManifest (InstallerRoot=$PSScriptRoot)" - & $libSource -ManifestPath $manifestPath -InstallerRoot $PSScriptRoot -LogFile $installLog + Write-KeyenceLog "Running Install-FromManifest (InstallerRoot=$stagingRoot)" + & $libSource -ManifestPath $manifestPath -InstallerRoot $stagingRoot -LogFile $installLog $rc = $LASTEXITCODE Write-KeyenceLog "Install-FromManifest returned $rc" } @@ -138,11 +162,15 @@ if (-not (Test-Path $manifestPath)) { # the application is not installed correctly. Install from the following # folder: C:\Program Files\Keyence\VR-6000\Common\DirectX End-User Runtimes\ # DXSETUP.exe". Run it silently here; /silent suppresses all UI + reboot. -$dxSetup = 'C:\Program Files\KEYENCE\VR-6000\Common\DirectX End-User Runtimes\DXSETUP.exe' -$dxSetupAlt = 'C:\Program Files (x86)\KEYENCE\VR-6000\Common\DirectX End-User Runtimes\DXSETUP.exe' -if (Test-Path -LiteralPath $dxSetup) { $dxPath = $dxSetup } -elseif (Test-Path -LiteralPath $dxSetupAlt) { $dxPath = $dxSetupAlt } -else { $dxPath = $null } +# Probe both VR-3000 G2, VR-5000, VR-6000 install paths under both Program Files +# roots. Whichever model's MSI installed will have its DXSETUP at one of these. +$dxCandidates = @() +foreach ($pf in @('C:\Program Files\KEYENCE','C:\Program Files (x86)\KEYENCE')) { + foreach ($prod in @('VR-3000 G2','VR-5000','VR-6000')) { + $dxCandidates += (Join-Path $pf "$prod\Common\DirectX End-User Runtimes\DXSETUP.exe") + } +} +$dxPath = $dxCandidates | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1 if ($dxPath) { Write-KeyenceLog "Running DirectX End-User Runtimes: $dxPath /silent" diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/installers/1033.mst b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/installers/1033.mst new file mode 100644 index 0000000000000000000000000000000000000000..c75d1e1c67c12c6571e901859119d8b194742e96 GIT binary patch literal 28672 zcmeI5-*4Mg6vy4{_tuTB`vGEznQEd#G>zjVEoE6&$9C3eX;LK_W19BhC2kYs#F6dL z4m5Q_@WLB!ybYc~h#&s|4?G}VhO{T%hBWODm;@3JteoQ?N!n&49v-6T-0J!`*T?tV zeD1gQ^|jspeD~=6&%b%`S7u8}F}s<^8>7r#w|oSwm+hi420Way#~T|Pt{VfZly(pS zuiwZL0U|&IhyW2F0z`la5CI}U1c<=@o4}uNt%}$0yWnf0_3{q7gr%ku0U|&IhyW2F z0z`la5CI}U1c(3;AOZsj6d4_UEQV!drU}+yZu*+=ILYkk-1Emdgb&6>?ft)ZYRNdp zS$_TSw-4{WdT(S8e7ud$kmeVz%8#U)JbTgk>~}fJghucy;}gsT2R)1NqF;#qae0u<^02kr(Xnpq>)bW*YFL*xJj23YS5V zhFxMYby#mYu6>th;hSSzFZFfWQiy$TVIu-cUTm}hRq3l5ir*#R3tT|X-RRW+0U`BO z4e{?1@C7a)=WcY;e?UlmRYUx{1bl%D$hjMx^dAsXU)2!*E&*TQ0&?y~C;bP6)K@kC zgnzbaT8gHXYIRksmeodU$-O|*Q z*fuS_!3q_0XS2;^-DoJdo{TsSuxq5|>;tPe^y*F68`fH^qSaTL=O-#^(^8FzRMNBz zy}6P~F6&K;T~;dU`3b?OE7}BW*56al$Nw%C?vqMJyec9sH%PZuwb7^Ml-usS(omDI zQ!;{X-D=!wv9@F@)sO4Yk;*q)LxkWHv)B%Y(4fXks#!7WEr<4?#;-$SanUz*f=1jP zf=+WfJX=~a)OVqeBz?8HVklLWv=oSzwqYH*--nY@bgt8>pbhUgqkq$VE2*!DHWzlH z_mLDFp9D?2Y^sJyYUp(p~{}DBRm`xm$La%8MK!xh(bAA$di%+P*Q)g0c$A{?R0IhXS&I2 zJx8bOY!QaB4Rx|tQ$5>p)!nq&1Ef`y1!+-c*V!xeW>sG`VW4b}+f`$;>z3*UY1Tc3 z!kB*<#`^g(Nj4zKZUehh6zl0LUuNSdt`qe{&v9G;3d3svI(`kfJo9xe0P5Ndb*Cr`2mMcRm@3uu)kU+O(^u%=6u`l$ z2WP;-;rW@)$tKuwns-iPVYu0DiF%`@sg_!5S1PJ$u5T)o4MR7k>;sowp2f*WqusL9 zs(Wr^uX!iYt%J1dwukG6Cs!CAI%Qr1pse4{-CevPVjnk{dhPM+klJ=y#tFH4lP+|V z0f^mW8L-ly)%A!gGqzMQbWKxkXlhwqvwBqHI6PT9zV1tqGZ7#HM1Tko0V43>Y5g-CYfCvzQ zokQROybOH;{<8lu$Zv*5m~pTI*u!9xV6i*_7Jcr3Jq|YCW5?X>2f;ps@_p`Sm?ju1 zh2Z_|U66Ofo8TdsdDsWb{V?kgf?0<{upEV!gqS1DbFds^j>2*r+7yCzoN(*M8H}e- zkKv8&y(8OS2FF_Oe{|>3ABEc37oY5BUZ4E#7Y@oKa6JMRx359QJ#RzCzbWt;WPG>$ z2go>&av!q&{}aF&=T6Rm9S6&SJqET07Ux-7U~#VHQ?NMS@+DY|5r@j*-z-2sIB~GA zUWU&nA-lI0?KdS@NwJh0im5_5Za)S2tztNa4_I8};hv^ZS53C0FI%gM0Z!<19P%ak zs+<>PRxA{k3Pt;wMSI)xu&s0Ja%!=Zo$3Y{rv7=@pK1Jb`sC!j5%iyi?AGVJXYv)x zbI}+ZX7RxdxWj6{D8kBB`;`&c2L8wsFxc%m4R&oNevX@pa`7lEV)i07#d8TB%Xr5R z*`Xge#9-ClcOC5ebD}sWa5H?E7v^H&xD-o=1z8lrnORPpnTrbXnGAo6pH573=Y095 zQyZi|4@V*najS>+c0z`la5CI}U P1c(3;AOb|--zM-EYIa&T literal 0 HcmV?d00001 diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/manifest.json b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/manifest.json new file mode 100644 index 0000000..3bb278b --- /dev/null +++ b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/manifest.json @@ -0,0 +1,17 @@ +{ + "Version": "1.0", + "_comment": "Keyence VR-3000 G2 imaging-time manifest. Consumed by 09-Setup-Keyence.ps1 when keyence-model.txt = vr3000. USB drivers are embedded in the MSI (newer InstallShield deploys them via custom action) - no separate .inf needed. The MSI references Data1.cab (2.0 GB) + Data11.cab (388 MB) in the same Installer\\ dir; those cabs are gitignored (see .gitignore). Stage them from /home/camp/pxe-images/iso/keyence/Keyence-VR-3000-G2-v2.5.0.iso (Installer/Data*.cab) into installers/ before sync-keyence.sh. Verified silent install via msiexec on Win11 2026-05-18 with /qn /norestart ALLUSERS=1 REBOOT=ReallySuppress TRANSFORMS=1033.mst (English transform).", + "Applications": [ + { + "_comment": "VR-3000 G2 Series Software. v2.5.0 Sept 2017. ProductCode {9CC9A062-2A93-4D3B-AECA-F70C691A46F2}. The bundled InstallShield setup.exe wrapper is 227 MB and bundles its own VC++/DotNet prereqs; we skip it and call the MSI directly via msiexec since modern Win11 ships compatible runtimes.", + "Name": "VR-3000 G2 Series Software", + "Installer": "installers\\VR-3000 G2 Series Software.msi", + "Type": "MSI", + "InstallArgs": "/qn /norestart ALLUSERS=1 REBOOT=ReallySuppress TRANSFORMS=installers\\1033.mst", + "DetectionMethod": "Registry", + "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{9CC9A062-2A93-4D3B-AECA-F70C691A46F2}", + "DetectionName": "DisplayVersion", + "DetectionValue": "2.5.0" + } + ] +} diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/installers/1033.mst b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/installers/1033.mst new file mode 100644 index 0000000000000000000000000000000000000000..ab5f983c4fb6c03c1fc0294acd6db4c064d9d6c2 GIT binary patch literal 28672 zcmeHQ&2Jk;6yLbtZCcXw0|XUXBBZt=j_tMGB-C|d?`|5aj&0d4rK&1*YfoaMwb$BR zlN3~?LaKx~!5yh^MnaVS13hv;f&&*M4n?Z^2lRl11P$-)hwUUT_LeOo=uI^9)-!M3 zoBhqtv$L~1&W}GFe)#3RSAXR;g(SC=d%8Z#?RN4j5KNkV`SAOr{jLVyq;1PB2_fDj-A2!a1M0)N82D&D{EfYU_j#%**9OHCyN2mwNX z5Fi8y0YZQfAOr{jLVyq;1PFlv2oyOD{!EVNWUdKP=Wcph@Ho!x>OAwuHH44GMy>h} zY%BA&u+!_w#>W@#{4}x)KHf%U2y+WpSLH& z7(YKc|C=mGpQNTmU3x8jIvr2nOPyM<%Lk<=9RGMu!}2_cGAtu>P_ByO==e_&@tde)IYKclv)=|Jc^hE0%j;Pl;=D4fs#)xJEt^Q z0xBg!sMa;(m_=)eRn_Z z-uqAr#;263UNV?&5S#jUiT9DIgQ(9$da+~DM$*71K9$X0D#^u?J6a7Ol5?SxS4~~1 zm_#SP=(Gvf?MW(^L&&mc^9YBdVj+_&m4SQNyqGFy@;PFX4@~Nhtj}DEM><{W@0IT4 z)t=Gm8efEIY=fQblkJ4tgGCR`+j z`M|Kgz-~8&3E^)i- zRp;8sUv)2{nwDa5sKwiJf-74-Bv5y)oz4qvJklJ!t#s#^0lWueq zK9JqT(r2c>sQVFzW_+olYpSZ;P+6I+nmw$s6`su zKY)nqD8E3&wUj>~;@Zgxs5B1p6v!hWuY<&OmKsQ0Yxx``uD5&x5`D~oarie2+#E>s zgMIZn$m0;5M~l`@30_i6<%VJ~$j5TrTK`Tl7{?bZN=&aagD+`I=8B>-tNbXGUzD%N zIZ@`te6f%(TJI}bWiLZn=dtDFVktA(H9pAp9Mt6wJpTSu_>BkDor37tviFyK%?sg3 zoDcH&!UjB9wKjf2V+t?5}b{Qc$A9I3et=$2*R!CRCFqG z){|}|oEG81^fVZf!@-y!%m=~TY%q0ZR*b|&Att6%x9s!!4%*?KAGVDGAwUQa0)zk| TKnM^5ga9Ex2oM7QCIWu};eA`j literal 0 HcmV?d00001 diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/manifest.json b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/manifest.json new file mode 100644 index 0000000..109d7bb --- /dev/null +++ b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/manifest.json @@ -0,0 +1,17 @@ +{ + "Version": "1.0", + "_comment": "Keyence VR-5000 imaging-time manifest. Consumed by 09-Setup-Keyence.ps1 when keyence-model.txt = vr5000. USB drivers embedded in MSI (newer InstallShield). MSI references Data1.cab (702 MB) in installers/ - gitignored, stage from /home/camp/pxe-images/iso/keyence/Keyence-VR-5000-v3.3.1.iso. Verified silent install via msiexec on Win11 2026-05-18.", + "Applications": [ + { + "_comment": "VR-5000 Series Software v3.3.1 Nov 2018. ProductCode {AF7E8B93-DBEB-4DB1-91CB-4DA592D8E222}. Same bypass-bootstrapper pattern: call MSI directly skipping the InstallShield setup.exe (203 MB - prereq bundle we don't need).", + "Name": "VR-5000 Series Software", + "Installer": "installers\\VR-5000 Series Software.msi", + "Type": "MSI", + "InstallArgs": "/qn /norestart ALLUSERS=1 REBOOT=ReallySuppress TRANSFORMS=installers\\1033.mst", + "DetectionMethod": "Registry", + "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{AF7E8B93-DBEB-4DB1-91CB-4DA592D8E222}", + "DetectionName": "DisplayVersion", + "DetectionValue": "3.3.1" + } + ] +} diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/drivers/KEYENCE_VR_SERIES.cat b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/KEYENCE_VR_SERIES.cat similarity index 100% rename from playbook/shopfloor-setup/gea-shopfloor-keyence/drivers/KEYENCE_VR_SERIES.cat rename to playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/KEYENCE_VR_SERIES.cat diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/drivers/amd64/WdfCoInstaller01009.dll b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/amd64/WdfCoInstaller01009.dll similarity index 100% rename from playbook/shopfloor-setup/gea-shopfloor-keyence/drivers/amd64/WdfCoInstaller01009.dll rename to playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/amd64/WdfCoInstaller01009.dll diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/drivers/amd64/WinUsbCoinstaller2.dll b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/amd64/WinUsbCoinstaller2.dll similarity index 100% rename from playbook/shopfloor-setup/gea-shopfloor-keyence/drivers/amd64/WinUsbCoinstaller2.dll rename to playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/amd64/WinUsbCoinstaller2.dll diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/drivers/keyence_vr_series.inf b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/keyence_vr_series.inf similarity index 100% rename from playbook/shopfloor-setup/gea-shopfloor-keyence/drivers/keyence_vr_series.inf rename to playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/drivers/keyence_vr_series.inf diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/installers/VR-6000 Series Software.msi b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/installers/VR-6000 Series Software.msi similarity index 100% rename from playbook/shopfloor-setup/gea-shopfloor-keyence/installers/VR-6000 Series Software.msi rename to playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/installers/VR-6000 Series Software.msi diff --git a/playbook/shopfloor-setup/gea-shopfloor-keyence/keyence-manifest.json b/playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/manifest.json similarity index 100% rename from playbook/shopfloor-setup/gea-shopfloor-keyence/keyence-manifest.json rename to playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/manifest.json diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/09-Setup-WaxAndTrace.ps1 b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/09-Setup-WaxAndTrace.ps1 index 85daa86..8509cee 100644 --- a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/09-Setup-WaxAndTrace.ps1 +++ b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/09-Setup-WaxAndTrace.ps1 @@ -1,22 +1,217 @@ -# 09-Setup-WaxAndTrace.ps1 - Wax and Trace pc-type setup +# 09-Setup-WaxAndTrace.ps1 - Wax and Trace pc-type setup (Mitutoyo FormTracePak v6.0) # -# Currently OpenText-only (same as common). Wax-and-Trace-specific software -# will be added here when the application catalog is finalized. +# Imaging-time install. Mitutoyo's CD-ROM-bound VB6 wrapper (Setup.exe + +# appSetup.exe) is unreliable on Win11 and requires interactive clicks +# through model + cal + HASP dialogs. We bypass it entirely: prereqs install +# via manifest, FormTracePak itself is xcopy + reg-import from a master capture. +# +# Master capture was taken 2026-05-18 on a Win11 VM with both CV-3000/4000 +# series + SV-C3000/4000 series installed via Mount-DiskImage approach (see +# project-waxtrace-image.md). Covers all WJ wax/trace bays since both series +# end up sharing the same Program Files dir + reg. +# +# Layout at C:\WaxTrace-Install\ (xcopied by startnet.cmd): +# waxtrace-manifest.json +# 09-Setup-WaxAndTrace.ps1 (this file) +# prereqs\vcredist_x86.exe (VC++ 2008 x86) +# prereqs\vcredist_x64.exe (VC++ 2008 x64) +# prereqs\vc_redist.x86.exe (VC++ 2017 x86) +# prereqs\vc_redist.x64.exe (VC++ 2017 x64) +# prereqs\HASPUserSetup.exe (Sentinel Runtime / HASP dongle driver) +# captured\pf-x86-MitutoyoApp.zip (~108 MB compressed -> 675 MB) +# captured\c-MitutoyoApp.zip (data dir skeleton, mostly empty) +# captured\reg\hklm-wow-mitutoyo.reg.gz (gzipped, ~218 KB -> 5.4 MB) +# captured\arp-entries.json (informational - what to expect) +# calibrations\CAL-WJRP_serial-_probe-.iso (per-machine) +# +# Per-machine calibration is applied separately (mount cal ISO + run its +# Setup.exe), keyed by C:\Enrollment\machine-number.txt. +# +# Log: C:\Logs\WaxTrace\09-Setup-WaxAndTrace.log +# C:\Logs\WaxTrace\install.log (written by Install-FromManifest) -$lib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Set-OpenTextAutoStart.ps1' +$ErrorActionPreference = 'Continue' -Write-Host '=== Wax and Trace Setup ===' +# Mirror the CMM pattern (09-Setup-CMM.ps1): the script itself lives in the +# shopfloor-setup tree (xcopied during WinPE), but the bulky bootstrap bundle +# (prereqs + captured master + cal ISOs) lives at C:\WaxTrace-Install\, put +# there by startnet.cmd from Y:\installers-post\waxtrace\ at imaging time. +$stagingRoot = 'C:\WaxTrace-Install' +$manifestPath = Join-Path $stagingRoot 'waxtrace-manifest.json' +$libSource = Join-Path $PSScriptRoot '..\common\lib\Install-FromManifest.ps1' + +$logDir = 'C:\Logs\WaxTrace' +$installLog = Join-Path $logDir 'install.log' +$transcriptLog = Join-Path $logDir '09-Setup-WaxAndTrace.log' + +if (-not (Test-Path $logDir)) { + New-Item -Path $logDir -ItemType Directory -Force | Out-Null +} + +try { Start-Transcript -Path $transcriptLog -Append -Force | Out-Null } catch {} + +function Write-WTLog { + param([string]$Message, [string]$Level = 'INFO') + $stamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss" + Write-Host "[$stamp] [$Level] $Message" +} + +Write-WTLog "================================================================" +Write-WTLog "=== WaxTrace Setup (imaging-time) session start (PID $PID) ===" +Write-WTLog "Running as: $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)" +Write-WTLog "Script root: $PSScriptRoot" +Write-WTLog "================================================================" + +# Status push - best-effort. $pxeStatusLib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Send-PxeStatus.ps1' if (Test-Path $pxeStatusLib) { try { . $pxeStatusLib; Send-PxeStatus -Stage '09-Setup-WaxAndTrace: starting' -StageIndex 3 -StageTotal 8 } catch { } } -if (Test-Path -LiteralPath $lib) { - & $lib + +foreach ($file in @('pc-type.txt','machine-number.txt')) { + $path = "C:\Enrollment\$file" + if (Test-Path -LiteralPath $path) { + $content = (Get-Content -LiteralPath $path -First 1 -ErrorAction SilentlyContinue).Trim() + Write-WTLog " $file = $content" + } else { + Write-WTLog " $file = (not present)" + } +} + +# ============================================================================ +# Step 1: Prereqs via manifest (VC++ 2008 + 2017, HASP/Sentinel) +# ============================================================================ +if (-not (Test-Path $manifestPath)) { + Write-WTLog "waxtrace-manifest.json not found at $manifestPath" 'ERROR' +} elseif (-not (Test-Path $libSource)) { + Write-WTLog "Install-FromManifest.ps1 not found at $libSource" 'ERROR' } else { - Write-Warning "Set-OpenTextAutoStart.ps1 not found at $lib - OpenText auto-start NOT configured" + Write-WTLog "Running Install-FromManifest (InstallerRoot=$PSScriptRoot)" + & $libSource -ManifestPath $manifestPath -InstallerRoot $stagingRoot -LogFile $installLog + $rc = $LASTEXITCODE + Write-WTLog "Install-FromManifest returned $rc" } -# TODO: Wax and Trace-specific apps go here. + +# ============================================================================ +# Step 2: Replay FormTracePak install from master capture +# ============================================================================ +# Detection: skip if Formtracepak already present (re-run safe). +$ftpakExe = 'C:\Program Files (x86)\MitutoyoApp\Formtracepak\Formtracepak.exe' +if (Test-Path -LiteralPath $ftpakExe) { + Write-WTLog "Formtracepak.exe already present - skipping replay" +} else { + $pfZip = Join-Path $stagingRoot 'captured\pf-x86-MitutoyoApp.zip' + $maZip = Join-Path $stagingRoot 'captured\c-MitutoyoApp.zip' + $regGz = Join-Path $stagingRoot 'captured\reg\hklm-wow-mitutoyo.reg.gz' + + if (-not (Test-Path $pfZip)) { + Write-WTLog "Master capture pf-x86-MitutoyoApp.zip not found at $pfZip" 'ERROR' + } else { + $pfDest = 'C:\Program Files (x86)\MitutoyoApp' + Write-WTLog "Extracting $pfZip -> $pfDest" + try { + if (-not (Test-Path $pfDest)) { New-Item -Path $pfDest -ItemType Directory -Force | Out-Null } + Expand-Archive -Path $pfZip -DestinationPath $pfDest -Force + $count = (Get-ChildItem $pfDest -Recurse -File -ErrorAction SilentlyContinue).Count + Write-WTLog " extracted $count files" + } catch { + Write-WTLog " Expand-Archive failed: $_" 'ERROR' + } + } + + if (Test-Path $maZip) { + $maDest = 'C:\MitutoyoApp' + Write-WTLog "Extracting $maZip -> $maDest" + try { + if (-not (Test-Path $maDest)) { New-Item -Path $maDest -ItemType Directory -Force | Out-Null } + Expand-Archive -Path $maZip -DestinationPath $maDest -Force + } catch { + Write-WTLog " Expand-Archive failed: $_" 'WARN' + } + } + + if (Test-Path $regGz) { + $regOut = Join-Path $env:TEMP 'hklm-wow-mitutoyo.reg' + Write-WTLog "Decompressing $regGz -> $regOut" + try { + $inGz = [IO.File]::OpenRead($regGz) + $gz = New-Object IO.Compression.GZipStream($inGz, [IO.Compression.CompressionMode]::Decompress) + $out = [IO.File]::Create($regOut) + $gz.CopyTo($out) + $out.Close(); $gz.Close(); $inGz.Close() + Write-WTLog "Importing reg file via reg.exe /s" + & reg.exe import $regOut 2>&1 | ForEach-Object { Write-WTLog " reg: $_" } + Write-WTLog " reg import exit $LASTEXITCODE" + Remove-Item $regOut -Force -ErrorAction SilentlyContinue + } catch { + Write-WTLog " reg import failed: $_" 'ERROR' + } + } +} + +# ============================================================================ +# Step 3: Per-machine calibration ISO (mount + apply via cal Setup.exe) +# ============================================================================ +# Cal ISOs are keyed by asset_tag. Read machine-number.txt to pick the right +# ISO. Each cal ISO is ~1.7MB and contains a tiny Mitutoyo wrapper Setup.exe +# plus data/*.txt compensation tables for the bay's specific probe + serial. +$mnPath = 'C:\Enrollment\machine-number.txt' +$asset = $null +if (Test-Path -LiteralPath $mnPath) { + $asset = (Get-Content -LiteralPath $mnPath -First 1 -ErrorAction SilentlyContinue).Trim() +} +if (-not $asset) { + Write-WTLog "machine-number.txt missing or empty - skipping calibration apply" 'WARN' +} else { + $calDir = Join-Path $stagingRoot 'calibrations' + $candidate = Get-ChildItem $calDir -Filter "CAL-${asset}_*.iso" -ErrorAction SilentlyContinue | Select-Object -First 1 + if (-not $candidate) { + Write-WTLog "No cal ISO matched CAL-${asset}_*.iso in $calDir - skipping" 'WARN' + } else { + Write-WTLog "Mounting cal ISO: $($candidate.FullName)" + try { + $img = Mount-DiskImage -ImagePath $candidate.FullName -PassThru -ErrorAction Stop + Start-Sleep -Seconds 2 + $calDrive = ($img | Get-Volume).DriveLetter + Write-WTLog " mounted at ${calDrive}:" + $calSetup = "${calDrive}:\Setup.exe" + if (Test-Path -LiteralPath $calSetup) { + Write-WTLog " running cal Setup.exe (may prompt - VB6 wrapper, same vintage as main installer)" + # Cal ISO Setup.exe is tiny (135KB) - if it prompts, user has to click through. + # Acceptable today; future: dark-deploy the data/*.txt files directly into + # the FormTracePak data dir + skip Setup.exe. + $p = Start-Process -FilePath $calSetup -WorkingDirectory "${calDrive}:\" -Wait -PassThru + Write-WTLog " cal Setup.exe exit $($p.ExitCode)" + } else { + Write-WTLog " cal Setup.exe not found on ISO at $calSetup" 'WARN' + } + Dismount-DiskImage -ImagePath $candidate.FullName -ErrorAction SilentlyContinue | Out-Null + Write-WTLog " cal ISO dismounted" + } catch { + Write-WTLog " Mount-DiskImage failed: $_" 'ERROR' + } + } +} + +# ============================================================================ +# Step 4: OpenText auto-start at login (HostExplorer "WJ Shopfloor" session) +# ============================================================================ +$autoStartLib = Join-Path $PSScriptRoot '..\Shopfloor\lib\Set-OpenTextAutoStart.ps1' +if (Test-Path -LiteralPath $autoStartLib) { + Write-WTLog "Calling $autoStartLib" + & $autoStartLib +} else { + Write-WTLog "Set-OpenTextAutoStart.ps1 not found at $autoStartLib - OpenText auto-start NOT configured" 'WARN' +} + if (Get-Command Send-PxeStatus -ErrorAction SilentlyContinue) { - Send-PxeStatus -Stage '09-Setup-WaxAndTrace: complete' -StageIndex 4 -StageTotal 8 + $finalStatus = if ($rc -eq 0) { 'in_progress' } else { 'failed' } + $finalErr = if ($rc -ne 0) { "Install-FromManifest exit $rc" } else { '' } + Send-PxeStatus -Stage '09-Setup-WaxAndTrace: complete' -StageIndex 4 -StageTotal 8 -Status $finalStatus -Error_ $finalErr } -Write-Host '=== Wax and Trace Setup Complete ===' + +Write-WTLog "================================================================" +Write-WTLog "=== WaxTrace Setup session end ===" +Write-WTLog "================================================================" + +try { Stop-Transcript | Out-Null } catch {} diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/arp-entries.json b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/arp-entries.json new file mode 100644 index 0000000..af00f09 --- /dev/null +++ b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/arp-entries.json @@ -0,0 +1,98 @@ +[ + { + "DisplayName": "Formtracepak", + "DisplayVersion": null, + "Publisher": "Mitutoyo Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Formtracepak" + }, + { + "DisplayName": "Microsoft Visual C++ 2017 x86 Additional Runtime - 14.15.26706", + "DisplayVersion": "14.15.26706", + "Publisher": "Microsoft Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{2757496A-3E74-320A-B007-36120A9F126D}" + }, + { + "DisplayName": "Microsoft Visual C++ 2017 x86 Minimum Runtime - 14.15.26706", + "DisplayVersion": "14.15.26706", + "Publisher": "Microsoft Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{39E15475-23F2-345D-8977-B5DC47A94E26}" + }, + { + "DisplayName": "Microsoft Visual C++ 2017 Redistributable (x86) - 14.15.26706", + "DisplayVersion": "14.15.26706.0", + "Publisher": "Microsoft Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{7e9fae12-5bbf-47fb-b944-09c49e75c061}" + }, + { + "DisplayName": "Microsoft Visual C++ 2017 Redistributable (x64) - 14.15.26706", + "DisplayVersion": "14.15.26706.0", + "Publisher": "Microsoft Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{95ac1cfa-f4fb-4d1b-8912-7f9d5fbb140d}" + }, + { + "DisplayName": "Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.17", + "DisplayVersion": "9.0.30729", + "Publisher": "Microsoft Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{9A25302D-30C0-39D9-BD6F-21E6EC160475}" + }, + { + "DisplayName": "Sentinel Runtime", + "DisplayVersion": "7.92.28470.60000", + "Publisher": "Gemalto", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{C8903CCB-67B6-4801-AA7B-B4E54E2B8406}" + }, + { + "DisplayName": "Windows Driver Package - Mitutoyo Corporation (WinUSB) USB (01/26/2014 1.0.0.0)", + "DisplayVersion": "01/26/2014 1.0.0.0", + "Publisher": "Mitutoyo Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\0C2BF85342810B30769EBCA6B95E4E4BE156E077" + }, + { + "DisplayName": "Windows Driver Package - Mitutoyo Corporation (WinUSB) USB (03/26/2012 6.1.7600.16385)", + "DisplayVersion": "03/26/2012 6.1.7600.16385", + "Publisher": "Mitutoyo Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\0D65E8F8146B3CCE8C4649A829EDCAFD02F3E6CF" + }, + { + "DisplayName": "Windows Driver Package - Mitutoyo Corporation (WinUSB) USB (01/01/2016 1.0.0.0)", + "DisplayVersion": "01/01/2016 1.0.0.0", + "Publisher": "Mitutoyo Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\17940B80DB5791E80624748EB1CFB7CF28FA0BAE" + }, + { + "DisplayName": "Windows Driver Package - Mitutoyo Corporation (WinUSB) USB (01/26/2014 1.0.0.0)", + "DisplayVersion": "01/26/2014 1.0.0.0", + "Publisher": "Mitutoyo Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\2B01E4170B345A54C5865F65CEA1BAFA50BB9C2C" + }, + { + "DisplayName": "Windows Driver Package - Mitutoyo Corporation (WinUSB) USB (01/26/2014 1.0.0.0)", + "DisplayVersion": "01/26/2014 1.0.0.0", + "Publisher": "Mitutoyo Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\CB4E6EDB5EA0AB4F2E28F4C0CA4E0B09C7AE1F54" + }, + { + "DisplayName": "Windows Driver Package - Mitutoyo Corporation (WinUSB) USB (01/26/2014 1.0.0.0)", + "DisplayVersion": "01/26/2014 1.0.0.0", + "Publisher": "Mitutoyo Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\F3159CAB242459F45CAF22F84A47213A0101C6CE" + }, + { + "DisplayName": "Microsoft Visual C++ 2008 Redistributable - x64 9.0.21022", + "DisplayVersion": "9.0.21022", + "Publisher": "Microsoft Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{350AA351-21FA-3270-8B7A-835434E766AD}" + }, + { + "DisplayName": "Microsoft Visual C++ 2017 x64 Minimum Runtime - 14.15.26706", + "DisplayVersion": "14.15.26706", + "Publisher": "Microsoft Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{C77195A4-CEB8-38EE-BDD6-C46CB459EF6E}" + }, + { + "DisplayName": "Microsoft Visual C++ 2017 x64 Additional Runtime - 14.15.26706", + "DisplayVersion": "14.15.26706", + "Publisher": "Microsoft Corporation", + "PSPath": "Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{F106B700-BFF8-3065-B305-14D36AD40539}" + } +] diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/arp-entries.xml b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/arp-entries.xml new file mode 100644 index 0000000000000000000000000000000000000000..a5c7c95cf95d66214497710e805ad059434d5b9b GIT binary patch literal 14590 zcmeI3TTdHD7(nN_QvZX+Q>qHEjjvG}$u_u+notyyMwO5%E+(OcP#I`~Q2%<{b7r84 zjU79{)(}>!_0G=D?#|9PXTHmf|M~k-_$h3K-@;KSgr7q%^hxc7!|*nI7v@4KEX2JS zk8_lH9}dDkSC8WLH{qD=kMJ-ovK@u(@P=m`giX>59QVlS^Ry%OT}m!+en|cz_Z)_I z=kN2LeYV9=4n?*KDSzj}{mw~sP4!#-KnuyFp)Uf76z`E{(L?Q{xn z55o`P$FLH93BQJ?^s)~9@hRzN96MZlLMyLu=Q`KA^txB%KaV-D$axiN@U;YQtGs!K z@800fVOlpRw?}W^iM2bTj6J*0mKYdp?Tzq~vX-~+Z}J8E-0?Z`wKWI(k~yhYP96zL zV@85B4vZQPF87Y>_2tVg=$LBHI*ILJFZ!0P5XZSvsFQjh8pxu6bavS6b!jBA{jBpz z9BuX@FNH8qUJ1!LDp&a}b8nrovi1pHKJ>&v3J0acIqcdb( zN9J{;-$dRm`oa=Cdu~e2XC|ZK1awM!m{xYcsrRtHocFgI-(k*f;+%0!mP`7j^ zsZ$@T>9i919JioOdqFF#2YnCDb>cUqXQA&F7(b`8>&97*xz0OA$6eocJcFnn4DHf8 zdQpGPL)RADE&iyB&SKL&9R0Rsx?}|!mP1(NYyBp?9?nYUTx;g8L2h;s=sE;csN2bO)s9r zMjg(Yw5!pTMr=(fv}Mya%{xYu@;!AnTD;E}98SgYefPdP(X%Sj^E+&9`n&P2How|` z4J1+`)nYSOF7&tb)%3dBQGQy0SE3X=;{2DR(Kq3fsf#453tMWb3TF*uR3tB1Dm6yW70#TIsBzSaT!}4+K^Vfj+$=CWc|Yf%at zky}S=$xK?+T;r8`{aT+5h?d~xNN|^9k(@52wKF@UM#=7a%r@^evud~tJ?GK+!0dGC zr{6S6w!^dexh}n#_@>^xkxO-_w(K%TXZVb#NTrr*nd{E+HOOg`FMn-vJgRxS5bOOd zu8)%4^|(~8f4mB37E#XJ%1!q4DCy>8W}`8+a2+SLTctEvx6byp*elRig*|m@H~w}g z*`lNzN@O+Oq3x@++{uK@*{^rW$;`-`(nO2(a4W_QA+hz zTd}+ZJ3H8cW_4wW5|TV>RK2dwoc(H;oXnie|C>xbMAym4m^5m+x|<`7)tE1#dXq-h zCDWO$5_ih5)}|J&US>Ad>|I+i^EtDI`tJqWI>lgZRsHtz$PsSXZk!Z_z1ma9`-xxf z3Yl!Qp6k%GDV^ys<*bJi*49j`KebU^ho*06UL%%sjkns;$e(LQvswLVJZaWm;^lUq zX6yUpuAFU$ERW;M>xIL=0t7(ey#TuY`7GA<)uMqgG)Iqz;P)vHEK zlQpV_TY*Jw(kx~g)v9-yul&Call~ud+vfSRqRf9G7}ZouITIyO-DnL;nOCYY&$KBu Z%Q9Dz?lMy9oMZFKlw4+XhM-df{3b8ON$^S63R<%TtpmOu_=Wg-}akXfS3_&epLi$QRNKF|(8scOqDb35BDK_0u2R>UYJ`5EOsV?1 z)C75mreL+lYWZOGK`ZX7N}N+X2DwH)3asv^ zVhbq&>!xZ{(qw&uvq*S<2Df#`|3G_M#{Xg*-yWX<=q&d77O2D^5>tNzTnr6ErO9{Q zM+4cgTo#*s&NGJt#?ippullC%`046cKVer}9k_F(eKZ|39Y2$GqW-{ch}BcB%~*D! zE7+BS%ME*PnA15{)`&cEcCUH`#)yRKVruEbTg$3|&&!;*G3uo%=FceNCiRIj;+~bS ziqz6C$1CH8l+V1@O%Gwf%5FLfqfx-PKT@E_bq8e?I-ag4OPL5XyYLI`b^Q9Gl#GuH|OAPVkvCU*OOF0tNDKau_aEclAF` Q_y^@)k=>oy-^x(_52ZE*7ytkO literal 0 HcmV?d00001 diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/manifest.json b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/manifest.json new file mode 100644 index 0000000..c163d81 --- /dev/null +++ b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/manifest.json @@ -0,0 +1,9 @@ +{ + "Label": "combined", + "CapturedAt": "2026-05-18T05:20:48", + "PfX86Mb": 107.9, + "DataMb": 0, + "ArpCount": 16, + "SysFilesAdded": 0, + "HklmWowMitutoyoExists": true +} diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/pnputil-drivers.txt b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/pnputil-drivers.txt new file mode 100644 index 0000000..75f3119 --- /dev/null +++ b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/pnputil-drivers.txt @@ -0,0 +1,237 @@ +Microsoft PnP Utility + +Published Name: oem2.inf +Original Name: balloon.inf +Provider Name: Red Hat, Inc. +Class Name: System +Class GUID: {4d36e97d-e325-11ce-bfc1-08002be10318} +Driver Version: 07/09/2025 100.101.104.28500 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Universal + Attested +WHCP Version: Unknown + +Published Name: oem3.inf +Original Name: fwcfg.inf +Provider Name: Red Hat, Inc. +Class Name: System +Class GUID: {4d36e97d-e325-11ce-bfc1-08002be10318} +Driver Version: 07/09/2025 100.101.104.28500 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Universal + Attested +WHCP Version: Unknown + +Published Name: oem5.inf +Original Name: pvpanic.inf +Provider Name: Red Hat, Inc. +Class Name: System +Class GUID: {4d36e97d-e325-11ce-bfc1-08002be10318} +Driver Version: 07/09/2025 100.101.104.28500 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Universal + Attested +WHCP Version: Unknown + +Published Name: oem7.inf +Original Name: viofs.inf +Provider Name: Red Hat, Inc. +Class Name: System +Class GUID: {4d36e97d-e325-11ce-bfc1-08002be10318} +Driver Version: 07/09/2025 100.101.104.28500 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Universal + Attested +WHCP Version: Unknown + +Published Name: oem9.inf +Original Name: vioinput.inf +Provider Name: Red Hat, Inc. +Class Name: HIDClass +Class GUID: {745a17a0-74d3-11d0-b6fe-00a0c90f57da} +Driver Version: 07/09/2025 100.101.104.28500 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Universal + Attested +WHCP Version: Unknown + +Published Name: oem11.inf +Original Name: viorng.inf +Provider Name: Red Hat, Inc. +Class Name: System +Class GUID: {4d36e97d-e325-11ce-bfc1-08002be10318} +Driver Version: 07/09/2025 100.101.104.28500 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Universal + Attested +WHCP Version: Unknown + +Published Name: oem12.inf +Original Name: vioscsi.inf +Provider Name: Red Hat, Inc. +Class Name: SCSIAdapter +Class GUID: {4d36e97b-e325-11ce-bfc1-08002be10318} +Driver Version: 07/09/2025 100.101.104.28500 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Universal + Attested +WHCP Version: Unknown + +Published Name: oem13.inf +Original Name: vioser.inf +Provider Name: Red Hat, Inc. +Class Name: System +Class GUID: {4d36e97d-e325-11ce-bfc1-08002be10318} +Driver Version: 07/09/2025 100.101.104.28500 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Universal + Attested +WHCP Version: Unknown + +Published Name: oem14.inf +Original Name: viostor.inf +Provider Name: Red Hat, Inc. +Class Name: SCSIAdapter +Class GUID: {4d36e97b-e325-11ce-bfc1-08002be10318} +Driver Version: 07/09/2025 100.101.104.28500 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Universal + Attested +WHCP Version: Unknown + +Published Name: oem8.inf +Original Name: cnc_comm.inf +Provider Name: Mitutoyo Corporation +Class Name: USB +Class GUID: {1c01d8a8-e874-42e2-8da3-25f5f61527d1} +Driver Version: 01/26/2014 1.0.0.0 +Signer Name: MITUTOYO CORPORATION +Attributes: Legacy +WHCP Version: Unknown + +Published Name: oem17.inf +Original Name: cps-476.inf +Provider Name: Mitutoyo Corporation +Class Name: USB +Class GUID: {a2e18d78-b77a-45af-bca9-2d7d3f27cf74} +Driver Version: 03/26/2012 6.1.7600.16385 +Signer Name: Mitutoyo Corporation +Attributes: Legacy +WHCP Version: Unknown + +Published Name: oem18.inf +Original Name: cs3200_comm.inf +Provider Name: Mitutoyo Corporation +Class Name: USB +Class GUID: {1c01d8a8-e874-42e2-8da3-25f5f61527d1} +Driver Version: 01/01/2016 1.0.0.0 +Signer Name: MITUTOYO CORPORATION +Attributes: Legacy +WHCP Version: Unknown + +Published Name: oem19.inf +Original Name: cv_1000_or_cv_2000.inf +Provider Name: Mitutoyo Corporation +Class Name: USB +Class GUID: {1c01d8a8-e874-42e2-8da3-25f5f61527d1} +Driver Version: 01/26/2014 1.0.0.0 +Signer Name: MITUTOYO CORPORATION +Attributes: Legacy +WHCP Version: Unknown + +Published Name: oem20.inf +Original Name: cv_2100.inf +Provider Name: Mitutoyo Corporation +Class Name: USB +Class GUID: {1c01d8a8-e874-42e2-8da3-25f5f61527d1} +Driver Version: 01/26/2014 1.0.0.0 +Signer Name: MITUTOYO CORPORATION +Attributes: Legacy +WHCP Version: Unknown + +Published Name: oem16.inf +Original Name: keyence_vr_series.inf +Provider Name: KEYENCE +Class Name: KeyenceUSB +Class GUID: {ee304f37-f588-45fc-91fe-b76873981ad1} +Driver Version: 03/26/2020 1.0.0.0 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Declarative + Attested +WHCP Version: Unknown + +Published Name: oem4.inf +Original Name: netkvm.inf +Provider Name: Red Hat, Inc. +Class Name: Net +Class GUID: {4d36e972-e325-11ce-bfc1-08002be10318} +Driver Version: 07/09/2025 100.101.104.28500 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Universal + Attested +WHCP Version: Unknown + +Published Name: oem0.inf +Original Name: prnms009.inf +Provider Name: Microsoft +Class Name: Printer +Class GUID: {4d36e979-e325-11ce-bfc1-08002be10318} +Class Version: 4.0 +Driver Version: 06/21/2006 10.0.26100.4484 +Signer Name: Microsoft Windows +Attributes: Legacy +WHCP Version: Unknown + +Published Name: oem6.inf +Original Name: qemupciserial.inf +Provider Name: QEMU +Class Name: MultiFunction +Class GUID: {4d36e971-e325-11ce-bfc1-08002be10318} +Driver Version: 05/21/2022 100.90.104.22100 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Declarative + Attested +WHCP Version: Unknown + +Published Name: oem15.inf +Original Name: qxldod.inf +Provider Name: Red Hat, Inc. +Class Name: Display +Class GUID: {4d36e968-e325-11ce-bfc1-08002be10318} +Driver Version: 11/20/2020 10.0.0.21000 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Universal +WHCP Version: Unknown + +Published Name: oem21.inf +Original Name: sj_comm.inf +Provider Name: Mitutoyo Corporation +Class Name: USB +Class GUID: {1c01d8a8-e874-42e2-8da3-25f5f61527d1} +Driver Version: 01/26/2014 1.0.0.0 +Signer Name: MITUTOYO CORPORATION +Attributes: Legacy +WHCP Version: Unknown + +Published Name: oem10.inf +Original Name: viomem.inf +Provider Name: Red Hat, Inc. +Class Name: MTD +Class GUID: {4d36e970-e325-11ce-bfc1-08002be10318} +Driver Version: 07/09/2025 100.101.104.28500 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Universal + Attested +WHCP Version: Unknown + +Published Name: oem1.inf +Original Name: voiceclarityep_audio_component.inf +Provider Name: Microsoft Corporation +Class Name: AudioProcessingObject +Class GUID: {5989fce8-9cd0-467d-8a6a-5419e31529d4} +Driver Version: 03/31/2026 10.0.26100.6710 +Signer Name: Microsoft Windows Hardware Compatibility Publisher +Attributes: Universal +WHCP Version: Unknown + + diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/reg/hklm-wow-mitutoyo.reg.gz b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/reg/hklm-wow-mitutoyo.reg.gz new file mode 100644 index 0000000000000000000000000000000000000000..76e76f4ba73ffa85f022222a18dee25799370293 GIT binary patch literal 222537 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%0D6w_4z|IS+YQ;)G@r>xOaJvJSCoe840i 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%0A_aWe5(_d-~dQl%HMJ7 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 literal 0 HcmV?d00001 diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/sys-files-added.csv b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured/sys-files-added.csv new file mode 100644 index 0000000..e69de29 diff --git a/playbook/shopfloor-setup/gea-shopfloor-waxtrace/waxtrace-manifest.json b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/waxtrace-manifest.json new file mode 100644 index 0000000..81794fa --- /dev/null +++ b/playbook/shopfloor-setup/gea-shopfloor-waxtrace/waxtrace-manifest.json @@ -0,0 +1,61 @@ +{ + "Version": "2.0", + "_comment": "Wax/Trace (Mitutoyo FormTracePak v6.0) imaging-time prereq manifest. Consumed by 09-Setup-WaxAndTrace.ps1 reading from C:\\WaxTrace-Install\\. Covers BOTH CV-3000/4000 and SV-C3000/4000 series bays since the master install merges them. Does NOT run Mitutoyo's appSetup.exe / Setup.exe wrappers - those are CD-ROM-bound + dongle-gated + unreliable on Win11. The actual FormTracePak install replay (Program Files xcopy + HKLM reg import) is handled by 09-Setup-WaxAndTrace.ps1 directly, after this manifest installs the prereqs.", + "Applications": [ + { + "_comment": "Visual C++ 2008 x86 redist. Mitutoyo's vcredist_x86.exe (2008 SP1 vintage) at Lang\\English\\ on the FormTracePak ISO. /q is the 2005-era silent flag still supported by 2008 redist EXEs.", + "Name": "Microsoft Visual C++ 2008 Redistributable - x86", + "Installer": "prereqs\\vcredist_x86.exe", + "Type": "EXE", + "InstallArgs": "/q", + "DetectionMethod": "Registry", + "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{9BE518E6-ECC6-35A9-88E4-87755C07200F}", + "DetectionName": "DisplayVersion", + "DetectionValue": "9.0.30729" + }, + { + "_comment": "Visual C++ 2008 x64 redist.", + "Name": "Microsoft Visual C++ 2008 Redistributable - x64", + "Installer": "prereqs\\vcredist_x64.exe", + "Type": "EXE", + "InstallArgs": "/q", + "DetectionMethod": "Registry", + "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{8220EEFE-38CD-377E-8595-13398D740ACE}", + "DetectionName": "DisplayVersion", + "DetectionValue": "9.0.21022" + }, + { + "_comment": "Visual C++ 2017 x86 redist (14.15.26706 = VS2017 Update 7 era). Mitutoyo's vc_redist.x86.exe at Lang\\English\\ on the FormTracePak ISO. Uses VS2015+ universal redist installer flag set.", + "Name": "Microsoft Visual C++ 2017 Redistributable (x86)", + "Installer": "prereqs\\vc_redist.x86.exe", + "Type": "EXE", + "InstallArgs": "/quiet /norestart", + "DetectionMethod": "Registry", + "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\VisualStudio\\14.0\\VC\\Runtimes\\x86", + "DetectionName": "Version", + "DetectionValue": "v14.15.26706" + }, + { + "_comment": "Visual C++ 2017 x64 redist.", + "Name": "Microsoft Visual C++ 2017 Redistributable (x64)", + "Installer": "prereqs\\vc_redist.x64.exe", + "Type": "EXE", + "InstallArgs": "/quiet /norestart", + "DetectionMethod": "Registry", + "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\VisualStudio\\14.0\\VC\\Runtimes\\x64", + "DetectionName": "Version", + "DetectionValue": "v14.15.26706" + }, + { + "_comment": "Sentinel Runtime / HASP USB dongle driver from Gemalto (now Thales). Vintage 2019 InstallShield wrapper, classic InstallShield silent install via /s + nested /v args. FormTracePak licensing is dongle-bound; the runtime + drivers must be present before Formtracepak.exe will run. Tech inserts physical HASP USB dongle on the bay post-imaging to license.", + "Name": "Sentinel Runtime (HASP)", + "Installer": "prereqs\\HASPUserSetup.exe", + "Type": "EXE", + "InstallArgs": "/s /v/qn /v/norestart", + "DetectionMethod": "Registry", + "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{C8903CCB-67B6-4801-AA7B-B4E54E2B8406}", + "DetectionName": "DisplayVersion", + "DetectionValue": "7.92.28470.60000" + } + ] +} diff --git a/playbook/startnet.cmd b/playbook/startnet.cmd index fe93267..88f46d4 100644 --- a/playbook/startnet.cmd +++ b/playbook/startnet.cmd @@ -66,7 +66,7 @@ echo. echo 1. Machine with Collections (eDNC + UDC + Plant Apps) echo 2. Machine without Collections (eDNC + Plant Apps, no UDC) echo 3. Common (Timeclock, Lab; WJ Shopfloor only) -echo 4. Keyence (VR-6000 microscope/profilometer) +echo 4. Keyence (VR-3000 / VR-5000 / VR-6000 microscope) echo 5. CMM (Hexagon PC-DMIS + Protect Viewer) echo 6. Genspect echo 7. Heattreat (placeholder) @@ -86,6 +86,27 @@ if "%ges_choice%"=="8" set PCTYPE=gea-shopfloor-waxtrace if "%ges_choice%"=="9" set PCTYPE=gea-shopfloor-display if "%PCTYPE%"=="" goto gea_shopfloor_submenu if "%PCTYPE%"=="gea-shopfloor-display" goto display_submenu +if "%PCTYPE%"=="gea-shopfloor-keyence" goto keyence_submenu +goto enroll_menu + +:keyence_submenu +cls +echo. +echo ======================================== +echo Keyence Model +echo ======================================== +echo. +echo 1. VR-3000 G2 (older microscope/profilometer line) +echo 2. VR-5000 (mid-range) +echo 3. VR-6000 (current line) +echo. +set KEYENCEMODEL= +set /p kmod_choice=Enter your choice (1-3): +if "%kmod_choice%"=="1" set KEYENCEMODEL=vr3000 +if "%kmod_choice%"=="2" set KEYENCEMODEL=vr5000 +if "%kmod_choice%"=="3" set KEYENCEMODEL=vr6000 +if "%KEYENCEMODEL%"=="" goto keyence_submenu +echo Keyence model: %KEYENCEMODEL% goto enroll_menu :display_submenu @@ -150,16 +171,32 @@ REM vs Dashboard to choose installer + Get-PCProfile builds Display-{type} REM profile key. set PCSUBTYPE= -REM --- Machine number (collections + nocollections only; other variants don't use one) --- +REM --- Machine number / asset tag (only PC types that key per-machine config) --- +REM collections + nocollections = 4-digit machine number for shopfloor identification. +REM waxtrace = asset tag like WJRP2335 used to match per-machine cal ISO during +REM 09-Setup-WaxAndTrace.ps1. Cal ISO files are named +REM CAL-{asset_tag}_serial-*_probe-*.iso. set MACHINENUM=9999 if /i "%PCTYPE%"=="gea-shopfloor-collections" goto prompt_machinenum if /i "%PCTYPE%"=="gea-shopfloor-nocollections" goto prompt_machinenum +if /i "%PCTYPE%"=="gea-shopfloor-waxtrace" goto prompt_waxtrace_asset goto skip_machinenum :prompt_machinenum echo. set /p MACHINENUM=Enter machine number (digits, or Enter for 9999): if "%MACHINENUM%"=="" set MACHINENUM=9999 echo Machine number: %MACHINENUM% +goto skip_machinenum +:prompt_waxtrace_asset +echo. +echo Wax/Trace bays use the asset tag (e.g. WJRP2335) to pick the right +echo calibration ISO during shopfloor setup. +set /p MACHINENUM=Enter asset tag (e.g. WJRP2335): +if "%MACHINENUM%"=="" ( + echo WARNING: no asset tag entered - calibration apply will be skipped. + set MACHINENUM= +) +echo Asset tag: %MACHINENUM% :skip_machinenum REM --- Map enrollment share early (kept open for copy after imaging) --- @@ -311,6 +348,13 @@ REM Install-KioskApp.cmd reads it to pick Lobby vs Dashboard installer REM and Get-PCProfile.ps1 reads it to build the Display-{type} profile key. if not "%DISPLAYTYPE%"=="" echo %DISPLAYTYPE%> W:\Enrollment\display-type.txt if not "%MACHINENUM%"=="" echo %MACHINENUM%> W:\Enrollment\machine-number.txt +REM Keyence model goes to BOTH keyence-model.txt (read by 09-Setup-Keyence) AND +REM pc-subtype.txt (read by GE-Enforce for per-model dispatch via existing +REM PCSubType wiring: looks for gea-shopfloor-keyence-\manifest.json on share). +if not "%KEYENCEMODEL%"=="" ( + echo %KEYENCEMODEL%> W:\Enrollment\keyence-model.txt + echo %KEYENCEMODEL%> W:\Enrollment\pc-subtype.txt +) copy /Y "Y:\shopfloor-setup\Run-ShopfloorSetup.ps1" "W:\Enrollment\Run-ShopfloorSetup.ps1" REM --- Always copy Shopfloor baseline scripts --- mkdir W:\Enrollment\shopfloor-setup 2>NUL @@ -377,6 +421,41 @@ if exist "Y:\installers-post\cmm\cmm-manifest.json" ( echo WARNING: Y:\cmm-installers not found - CMM PC cannot install Hexagon apps at imaging time. ) :skip_cmm_stage + +REM --- Stage Keyence per-model bootstrap bundle (Keyence PCs only) --- +REM Copies only the selected model's MSI + Data cabs from the PXE enrollment +REM share to the target disk. installers-post/keyence// contains: +REM manifest.json +REM installers/{MSI, Data1.cab, [Data11.cab for vr3000], 1033.mst} +REM drivers/ (vr6000 only - older external .inf; vr3000/vr5000 drivers +REM are embedded in their MSIs) +REM 09-Setup-Keyence.ps1 reads C:\Enrollment\keyence-model.txt to know which. +if /i not "%PCTYPE%"=="gea-shopfloor-keyence" goto skip_keyence_stage +if "%KEYENCEMODEL%"=="" goto skip_keyence_stage +if exist "Y:\installers-post\keyence\%KEYENCEMODEL%\manifest.json" ( + mkdir W:\KeyenceInstall 2>NUL + mkdir W:\KeyenceInstall\%KEYENCEMODEL% 2>NUL + xcopy /E /Y /I "Y:\installers-post\keyence\%KEYENCEMODEL%" "W:\KeyenceInstall\%KEYENCEMODEL%\" + echo Staged Keyence %KEYENCEMODEL% bootstrap to W:\KeyenceInstall\%KEYENCEMODEL%\. +) else ( + echo WARNING: Y:\installers-post\keyence\%KEYENCEMODEL% not found - Keyence %KEYENCEMODEL% cannot install at imaging time. +) +:skip_keyence_stage + +REM --- Stage WaxTrace bootstrap bundle (wax/trace gea-shopfloor-waxtrace only) --- +REM Copies the FormTracePak master capture (~110 MB compressed) + HASP + +REM VC++ redists + per-machine cal ISOs from the enrollment share onto the +REM target disk so 09-Setup-WaxAndTrace.ps1 can install FormTracePak via +REM xcopy + reg-import (bypassing Mitutoyo's CD-ROM-bound VB6 wrapper). +if /i not "%PCTYPE%"=="gea-shopfloor-waxtrace" goto skip_waxtrace_stage +if exist "Y:\installers-post\waxtrace\waxtrace-manifest.json" ( + mkdir W:\WaxTrace-Install 2>NUL + xcopy /E /Y /I "Y:\installers-post\waxtrace" "W:\WaxTrace-Install\" + echo Staged WaxTrace bootstrap to W:\WaxTrace-Install. +) else ( + echo WARNING: Y:\installers-post\waxtrace not found - WaxTrace PC cannot install FormTracePak at imaging time. +) +:skip_waxtrace_stage :pctype_done REM --- BIOS update sub-stage push (fires AFTER W: copies complete) --- diff --git a/playbook/sync-keyence.sh b/playbook/sync-keyence.sh new file mode 100755 index 0000000..3dda97d --- /dev/null +++ b/playbook/sync-keyence.sh @@ -0,0 +1,86 @@ +#!/bin/bash +# sync-keyence.sh - Push Keyence per-model bootstrap bundles to the PXE share. +# +# Mirrors sync-waxtrace.sh / sync-cmm.sh pattern. For each Keyence model +# (vr3000, vr5000, vr6000) ships the manifest + installer payload (MSI + cabs +# + drivers) from the local workstation to +# /srv/samba/enrollment/installers-post/keyence// on the PXE server. +# +# This becomes visible as \\172.16.9.1\enrollment\installers-post\keyence\ +# so startnet.cmd can selectively xcopy the chosen model bundle onto the +# target disk during WinPE phase (W:\KeyenceInstall, becomes C:\KeyenceInstall +# post-reboot). +# +# Run on the workstation any time: +# - A per-model manifest changes +# - Big installer payloads (Data1.cab, etc) change +# +# Big payloads (Data1.cab, Data11.cab, MSIs) live in the repo under +# playbook/shopfloor-setup/gea-shopfloor-keyence//installers/ but +# are gitignored. Stage them locally from the ripped ISOs in +# /home/camp/pxe-images/iso/keyence/ before running this script. +# +# Requires: sshpass, scp, ssh + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" + +PXE_HOST="${PXE_HOST:-172.16.9.1}" +PXE_USER="${PXE_USER:-pxe}" +PXE_PASS="${PXE_PASS:-pxe}" + +KEYENCE_DIR="$PROJECT_ROOT/playbook/shopfloor-setup/gea-shopfloor-keyence" +REMOTE_DIR="/srv/samba/enrollment/installers-post/keyence" +REMOTE_TEMP="/tmp/keyence-stage-$$" + +ssh_run() { + sshpass -p "$PXE_PASS" ssh -o StrictHostKeyChecking=no -o LogLevel=ERROR "$PXE_USER@$PXE_HOST" "$@" +} + +scp_to() { + sshpass -p "$PXE_PASS" scp -o StrictHostKeyChecking=no -o LogLevel=ERROR "$@" +} + +# Sanity +for f in 09-Setup-Keyence.ps1 vr3000/manifest.json vr5000/manifest.json vr6000/manifest.json; do + test -f "$KEYENCE_DIR/$f" || { echo "Missing $KEYENCE_DIR/$f"; exit 1; } +done + +echo "==> Staging tree locally" +STAGE="$(mktemp -d -p /tmp keyence-stage.XXXXXX)" +trap "rm -rf $STAGE" EXIT + +for model in vr3000 vr5000 vr6000; do + mkdir -p "$STAGE/$model/installers" + cp "$KEYENCE_DIR/$model/manifest.json" "$STAGE/$model/" + if [ -d "$KEYENCE_DIR/$model/installers" ]; then + cp -a "$KEYENCE_DIR/$model/installers/." "$STAGE/$model/installers/" 2>/dev/null || true + fi + if [ -d "$KEYENCE_DIR/$model/drivers" ]; then + mkdir -p "$STAGE/$model/drivers" + cp -a "$KEYENCE_DIR/$model/drivers/." "$STAGE/$model/drivers/" + fi + sz=$(du -sh "$STAGE/$model" | cut -f1) + echo " $model: $sz" +done + +echo "==> Local stage size: $(du -sh $STAGE | cut -f1)" + +echo "==> Pushing to $PXE_USER@$PXE_HOST:$REMOTE_TEMP" +ssh_run "rm -rf '$REMOTE_TEMP' && mkdir -p '$REMOTE_TEMP'" +scp_to -r "$STAGE/." "$PXE_USER@$PXE_HOST:$REMOTE_TEMP/" + +echo "==> Atomic move into $REMOTE_DIR" +ssh_run "echo $PXE_PASS | sudo -S bash -c ' + mkdir -p $(dirname $REMOTE_DIR) + if [ -d $REMOTE_DIR ]; then + mv $REMOTE_DIR ${REMOTE_DIR}.pre-\$(date +%Y%m%d-%H%M%S) + fi + mv $REMOTE_TEMP $REMOTE_DIR + chown -R pxe:pxe $REMOTE_DIR + ls -la $REMOTE_DIR +'" + +echo "==> Done. Next imaged Keyence PC picks up the new bundles." diff --git a/playbook/sync-waxtrace.sh b/playbook/sync-waxtrace.sh new file mode 100755 index 0000000..f8426eb --- /dev/null +++ b/playbook/sync-waxtrace.sh @@ -0,0 +1,95 @@ +#!/bin/bash +# sync-waxtrace.sh - Push Wax/Trace (Mitutoyo FormTracePak) bootstrap bundle +# to the PXE server enrollment share. +# +# Copies waxtrace-manifest.json + 09-Setup-WaxAndTrace.ps1 (from the +# gea-shopfloor-waxtrace/ tree) plus the big binary payload (captured master +# zip + reg + HASP + VC++ redists + per-machine cal ISOs) from the local +# workstation to /srv/samba/enrollment/installers-post/waxtrace on the PXE +# server. That directory becomes visible as +# \\172.16.9.1\enrollment\installers-post\waxtrace so startnet.cmd can xcopy +# it onto the target disk during WinPE phase (W:\WaxTrace-Install, becomes +# C:\WaxTrace-Install post-reboot). +# +# Run this on the workstation any time: +# - waxtrace-manifest.json changes +# - The captured master is rebuilt (captured-binary/ + captured/) +# - A new cal ISO is added under /home/camp/pxe-images/iso/mitutoyo-cal/ +# - Prereqs are updated +# +# Usage: +# ./playbook/sync-waxtrace.sh +# +# Requires: sshpass, scp, ssh, gzip (already in captured/reg/). + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" + +PXE_HOST="${PXE_HOST:-172.16.9.1}" +PXE_USER="${PXE_USER:-pxe}" +PXE_PASS="${PXE_PASS:-pxe}" + +WAXTRACE_DIR="$PROJECT_ROOT/playbook/shopfloor-setup/gea-shopfloor-waxtrace" +CAL_ISO_DIR="${MITUTOYO_CAL_DIR:-/home/camp/pxe-images/iso/mitutoyo-cal}" + +REMOTE_DIR="/srv/samba/enrollment/installers-post/waxtrace" +REMOTE_TEMP="/tmp/waxtrace-stage-$$" + +ssh_run() { + sshpass -p "$PXE_PASS" ssh -o StrictHostKeyChecking=no -o LogLevel=ERROR "$PXE_USER@$PXE_HOST" "$@" +} + +scp_to() { + sshpass -p "$PXE_PASS" scp -o StrictHostKeyChecking=no -o LogLevel=ERROR "$@" +} + +# Sanity check +test -f "$WAXTRACE_DIR/waxtrace-manifest.json" || { echo "Missing $WAXTRACE_DIR/waxtrace-manifest.json"; exit 1; } +test -f "$WAXTRACE_DIR/09-Setup-WaxAndTrace.ps1" || { echo "Missing 09-Setup-WaxAndTrace.ps1"; exit 1; } +test -d "$WAXTRACE_DIR/captured-binary" || { echo "Missing $WAXTRACE_DIR/captured-binary (run capture-ftpak.ps1 first)"; exit 1; } +test -f "$WAXTRACE_DIR/captured-binary/pf-x86-MitutoyoApp.zip" || { echo "Missing master capture zip"; exit 1; } +test -d "$WAXTRACE_DIR/captured-binary/prereqs" || { echo "Missing prereqs dir"; exit 1; } + +echo "==> Staging tree locally" +STAGE="$(mktemp -d -p /tmp waxtrace-stage.XXXXXX)" +trap "rm -rf $STAGE" EXIT + +mkdir -p "$STAGE/captured/reg" "$STAGE/prereqs" "$STAGE/calibrations" +cp "$WAXTRACE_DIR/waxtrace-manifest.json" "$STAGE/" +cp "$WAXTRACE_DIR/09-Setup-WaxAndTrace.ps1" "$STAGE/" +cp -r "$WAXTRACE_DIR/captured/." "$STAGE/captured/" +cp "$WAXTRACE_DIR/captured-binary/pf-x86-MitutoyoApp.zip" "$STAGE/captured/" +cp "$WAXTRACE_DIR/captured-binary/hklm-wow-mitutoyo.reg" "$STAGE/captured/reg/" 2>/dev/null || true +cp "$WAXTRACE_DIR/captured-binary/c-MitutoyoApp.zip" "$STAGE/captured/" 2>/dev/null || true +cp "$WAXTRACE_DIR/captured-binary/prereqs/"*.exe "$STAGE/prereqs/" + +# Cal ISOs - one per wax/trace bay +if [ -d "$CAL_ISO_DIR" ]; then + cp "$CAL_ISO_DIR"/CAL-*.iso "$STAGE/calibrations/" 2>/dev/null || true + cp "$CAL_ISO_DIR/INDEX.csv" "$STAGE/calibrations/" 2>/dev/null || true +fi + +echo "==> Local stage size: $(du -sh $STAGE | cut -f1)" +ls "$STAGE/" +ls "$STAGE/captured/" +ls "$STAGE/prereqs/" +ls "$STAGE/calibrations/" 2>/dev/null || echo "(no cal ISOs)" + +echo "==> Pushing to $PXE_USER@$PXE_HOST:$REMOTE_TEMP" +ssh_run "rm -rf '$REMOTE_TEMP' && mkdir -p '$REMOTE_TEMP'" +scp_to -r "$STAGE/." "$PXE_USER@$PXE_HOST:$REMOTE_TEMP/" + +echo "==> Atomic move into $REMOTE_DIR" +ssh_run "echo $PXE_PASS | sudo -S bash -c ' + mkdir -p $(dirname $REMOTE_DIR) + if [ -d $REMOTE_DIR ]; then + mv $REMOTE_DIR ${REMOTE_DIR}.pre-\$(date +%Y%m%d-%H%M%S) + fi + mv $REMOTE_TEMP $REMOTE_DIR + chown -R pxe:pxe $REMOTE_DIR + ls -la $REMOTE_DIR +'" + +echo "==> Done. Next imaged Wax/Trace PC picks up the new bundle."