5.8 KiB
5.8 KiB
Session 2026-06-13 — GuruRMM legacy native-SCM MSRV probe + SMB1 client enable
User
- User: Mike Swanson (mike)
- Machine: GURU-5070
- Role: admin
Summary
Two threads:
- GuruRMM legacy 32-bit installer decision (due-today item). Investigated whether the
legacy tier can adopt native SCM (the multi-AI recommendation in
installer/legacy/README.md/ SPEC-029 §12), which was documented as blocked on a Rust-1.77 / i686 MSRV check for thewindows-servicecrate. Result: GREEN, end-to-end. The MSRV wall does not exist, and thelegacyandnative-serviceCargo features are orthogonal (TLS gates onlegacyalone). - SMB1 client enable on this Win11 box to reach
192.168.0.20over the VWP VPN. Staged; reboot pending.
Thread 1 — GuruRMM legacy native-SCM (GREEN)
Findings
- Isolated MSRV probe (throwaway crate,
windows-service = "0.7"+windows = "0.58"with the agent's exact feature set): compiles clean on Rust 1.77 ->i686-pc-windows-msvc. Run on Beast (guru@100.101.122.4). Resolved to 1.77-safe versions (windows-sys 0.52.0, windows-targets 0.52.6). GURU-5070 itself has NO MSVC build tools, so the probe was run on Beast. - README premise was wrong on two counts: (a) the crates DO build on 1.77/i686; (b) the legacy
rustls TLS-1.2 path gates on the
legacyfeature ONLY (agent/src/transport/tls.rsheader says so) — NOT on the absence ofnative-service. So--features legacy,native-servicegives both Win7 rustls TLS 1.2 AND native SCM. Thelegacyfeature is purely additive (rustls/webpki/zeroize); zero overlap withnative-service(agent/Cargo.toml). - End-to-end build (the confirmation Mike approved): real agent crate,
cargo +1.77 build --ignore-rust-version --release --no-default-features --features legacy,native-service --target i686-pc-windows-msvc, built in an isolated git worktree on Beast (C:\Temp\gururmm-nsvc, detached atfad54ed) with a separate target dir (C:\Temp\gururmm-nsvc-target), lock moved aside so 1.77 re-resolves scoped to the feature set (mirrors the pipeline's legacy wave). Full-graph lock resolution SUCCEEDED (the edition-2024 transitive-dep fear did not materialize). Built in 2m39s, exit 0, 17 warnings (incl. the already-tracked unusedTrayLauncher::terminate_all).
Artifact
- Path (GURU-5070):
C:\Users\guru\Downloads\gururmm-agent-legacy-nativeSCM-x86-0.6.66.exe - SHA256:
b0a25e17401c4c16a1334a65c75c6fde7a2ac26d1b60a8cfbca8d13b65e891d3 - Confirmed 32-bit PE (machine
0x014C), 5.29 MB. Unsigned (isolated build — not via pipeline). - Compiled-in endpoints (production):
wss://rmm-api.azcomputerguru.com/ws/https://rmm-api.azcomputerguru.com. Will enroll as a real device.
Enrollment gotcha (traced for the Valleywide test)
- Native
install()(agent/src/service.rs:476) writes the input intoagent.toml'sapi_key; it does NOT set registrySiteId. The runtime resolverresolve_windows_config()(agent/src/main.rs) only ENROLLS whenHKLM\SOFTWARE\GuruRMM\SiteIdis set (enrolls via/api/enrollwith the site UUID; a friendly code 422s). With only a TOMLapi_keyit uses the value verbatim and the server rejects a site code. - Bulletproof test procedure (elevated):
reg add HKLM\SOFTWARE\GuruRMM /v SiteId /t REG_SZ /d <VALLEYWIDE-SITE-UUID> /f(UUID, not code; FIRST)gururmm-agent-...exe install --api-key <UUID> --skip-legacy-checkgururmm-agent-...exe start(service nameGuruRMMAgent, install dirC:\Program Files\GuruRMM)
- Verify:
sc query GuruRMMAgent= RUNNING (real SCM, no NSSM);reg query HKLM\SOFTWARE\GuruRMM /v AgentKeyappears within ~120s (enrolled over rustls TLS 1.2); device online in dashboard. - Teardown:
gururmm-agent-...exe uninstall.
Beast cleanup pending
- Leftover on Beast:
C:\Temp\gururmm-nsvc(git worktree — remove withgit -C C:\gururmm worktree remove --force C:\Temp\gururmm-nsvc) andC:\Temp\gururmm-nsvc-target,C:\Temp\nsvc-build.bat,C:\Temp\nsvc-build.log. Left in place in case signing/rebuild needed.
Next
- Mike validates the binary on a Valleywide machine. On runtime-PASS, correct the SPEC-029 §12 /
installer/legacy/README.md"blocked / ship NSIS+NSSM" note and pursue the unified x86-MSI + native-SCM direction (drops NSIS + NSSM). Optional: sign the test exe viasign-windows.sh.
Thread 2 — SMB1 client enable (GURU-5070, Win11)
- Goal: reach
192.168.0.20over VWP VPN (Tailscale off). Both SMB ports reachable (TCP 445 + 139 open; ICMP blocked, normal). No per-connection SMB1 switch exists — must install the SMB1 client optional feature. - Done:
SMB1Protocol(parent) +SMB1Protocol-ClientENABLED;SMB1Protocol-Serverleft DISABLED (client-only). Payload was present (state wasDisabled, not payload-removed). - Reboot REQUIRED —
mrxsmb10driver registers only on restart. (This /scc ends with a reboot.) - After reboot: reconnect VWP VPN;
net use \\192.168.0.20\<share> ...; verify withGet-SmbConnectionDialect = 1.5. - Caveat:
EnableInsecureGuestLogons= False. If.20is a guest/NAS share, also needSet-SmbClientConfiguration -EnableInsecureGuestLogons $true. - REVERT when done (security): disable
SMB1Protocol-Client+ parent (+ insecure-guest if set), reboot to unload driver. SMB1 = EternalBlue-class exposure; do not leave on.
Pending tasks
- Mike: validate native-SCM legacy agent on a Valleywide machine (artifact + procedure above).
- On PASS: correct SPEC-029 §12 / legacy README; pursue unified x86-MSI + native-SCM.
- Clean up Beast
C:\Temp\gururmm-nsvc*worktree/target/bat/log. - After SMB1 task: revert SMB1 client enable on GURU-5070 + reboot.
- Other due-today item still open: SPEC-030 Phase 1 (failed-install visibility) — not started.