Files
pxe-server/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/gocmm-debug.bat
cproudlock 8e11f0824a CMM: gocmm-debug probes the startup NRE (part-group match), checks real exe
goCMM matches the registry 'Selected Part Group' against the
ApplicationSettings.xml <PartGroup FullName> entries with a case-sensitive
compare. No match -> SelectedPartGroup null -> "Object reference not set to
an instance of an object" at start. This is a different failure from the
registry SecurityException the script already probes.

- PROBE 3: read the reg value (32-bit view) + every FullName in the XML,
  Ordinal-compare, and report exact / case-only / no-match / missing-XML.
  Case-only and no-match name the d441abd canonicalization fix as the remedy.
- Version check now looks for the real goCMM.exe, not the nonexistent
  GEAOperatorFriendlyInterface.exe (was a false MISSING).
- .bat header documents both failure modes it now diagnoses.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 08:08:00 -04:00

31 lines
1.2 KiB
Batchfile

@echo off
REM gocmm-debug.bat - launcher for gocmm-debug.ps1
REM
REM *** RUN THIS AS THE OPERATOR (the locked-down shop-floor user). ***
REM *** DO NOT right-click "Run as administrator" - that hides the bug. ***
REM
REM Diagnoses two goCMM failures:
REM 1. "Requested registry access is not allowed" - dumps the goCMM key ACL
REM to confirm lockdown stripped the BUILTIN\Users write grant.
REM 2. "Object reference not set to an instance of an object" at start -
REM PROBE 3 compares the registry 'Selected Part Group' against the
REM ApplicationSettings.xml part groups (case-sensitive) and names the
REM mismatch (host form / \shared vs \SHARED) that nulls SelectedPartGroup.
REM Output lands in C:\Logs\CMM\.
setlocal
set "HERE=%~dp0"
echo.
echo Running goCMM debug as %USERDOMAIN%\%USERNAME% ...
echo (If you see "Administrator: ..." in this window title, STOP - run as the operator instead.)
echo.
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%HERE%gocmm-debug.ps1"
echo.
echo ---------------------------------------------------------------
echo Done. Collect everything under C:\Logs\CMM\ (the .txt and .reg).
echo ---------------------------------------------------------------
pause