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>
31 lines
1.2 KiB
Batchfile
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
|