sync: auto-sync from HOWARD-HOME at 2026-07-03 20:52:38
Author: Howard Enos Machine: HOWARD-HOME Timestamp: 2026-07-03 20:52:38
This commit is contained in:
@@ -1,210 +1,146 @@
|
|||||||
# GPS clients - Syncro-managed machines NOT in GuruRMM
|
# GPS clients - Syncro-managed machines NOT in GuruRMM (ACTIVE only)
|
||||||
|
|
||||||
Install ScreenConnect / push agent. Syncro assets (authoritative) vs live GuruRMM, 2026-07-03.
|
Machines missing from GuruRMM that checked into Syncro within the last 31 days. Excluded: 50 offline >31d, 0 with no check-in data. Snapshot 2026-07-03.
|
||||||
`folder N` = Syncro policy_folder_id (the ScreenConnect-install policy is tied to a folder - devices in the wrong folder don't get SC).
|
`folder N` = Syncro policy_folder_id.
|
||||||
|
|
||||||
## Folder distribution across the gap machines (spot the SC-install folder vs outliers)
|
## Folder distribution (active gap machines)
|
||||||
- folder 4095109: 16 machines
|
- folder 3577293: 12
|
||||||
- folder 3577293: 15 machines
|
- folder 651577: 5
|
||||||
- folder 651577: 13 machines
|
- folder 4095109: 4
|
||||||
- folder 3996026: 5 machines
|
- folder 2948816: 4
|
||||||
- folder 4086884: 4 machines
|
- folder 677399: 3
|
||||||
- folder 677399: 4 machines
|
- folder 667252: 3
|
||||||
- folder 3638391: 4 machines
|
- folder 3426849: 3
|
||||||
- folder 2948816: 4 machines
|
- folder 4086884: 2
|
||||||
- folder 3937024: 4 machines
|
- folder 677304: 2
|
||||||
- folder 3242716: 4 machines
|
- folder 3638391: 2
|
||||||
- folder 4086890: 3 machines
|
- folder 3937024: 2
|
||||||
- folder 4086846: 3 machines
|
- folder 4106776: 2
|
||||||
- folder 667252: 3 machines
|
- folder 3204798: 2
|
||||||
- folder 3426849: 3 machines
|
- folder 4100925: 2
|
||||||
- folder 677304: 2 machines
|
- folder 651365: 1
|
||||||
- folder 4896982: 2 machines
|
- folder 4086890: 1
|
||||||
- folder 4106776: 2 machines
|
- folder 3842122: 1
|
||||||
- folder 4086906: 2 machines
|
- folder 3996026: 1
|
||||||
- folder 615472: 2 machines
|
- folder 613008: 1
|
||||||
- folder 3204798: 2 machines
|
- folder 4088509: 1
|
||||||
- folder 4100925: 2 machines
|
- folder 4086846: 1
|
||||||
- folder 651365: 1 machines
|
- folder 3872949: 1
|
||||||
- folder 656150: 1 machines
|
- folder 607593: 1
|
||||||
- folder 3842122: 1 machines
|
- folder 4896982: 1
|
||||||
- folder 625040: 1 machines
|
- folder 696512: 1
|
||||||
- folder 625152: 1 machines
|
- folder 4086906: 1
|
||||||
- folder 613008: 1 machines
|
- folder 4095118: 1
|
||||||
- folder 4088509: 1 machines
|
- folder 3121109: 1
|
||||||
- folder 4114466: 1 machines
|
- folder 4088528: 1
|
||||||
- folder 3872949: 1 machines
|
- folder 594524: 1
|
||||||
- folder 607593: 1 machines
|
|
||||||
- folder 696512: 1 machines
|
|
||||||
- folder 4095118: 1 machines
|
|
||||||
- folder 3121109: 1 machines
|
|
||||||
- folder 4088528: 1 machines
|
|
||||||
- folder 594524: 1 machines
|
|
||||||
|
|
||||||
## TOTAL needing install: 114
|
## TOTAL active needing install: 64
|
||||||
|
|
||||||
**Instrumental Music Center** - 26 managed / 12 in RMM / 14 need install
|
**Instrumental Music Center** - 6 need install (of 14 not-in-RMM; rest offline >31d)
|
||||||
- DESKTOP-JQ0D38J (folder 651577)
|
- DESKTOP-KRHQ5TS (folder 651365, seen 2026-06-16, 17d ago)
|
||||||
- DESKTOP-KRHQ5TS (folder 651365)
|
- IMC-LUIS (folder 651577, seen 2026-07-03, 0d ago)
|
||||||
- DESKTOP-URV3UGR (folder 651577)
|
- IMC-M-EDSERVICE (folder 651577, seen 2026-07-01, 2d ago)
|
||||||
- IMC-EVENTS (folder 651577)
|
- LAPTOP-PNVA9G51 (folder 651577, seen 2026-06-30, 3d ago)
|
||||||
- IMC-L1-GRAPHICS (folder 651577)
|
- LAPTOP-UBTI0IE3 (folder 651577, seen 2026-07-03, 0d ago)
|
||||||
- IMC-LUIS (folder 651577)
|
- REPAIRADMIN (folder 651577, seen 2026-07-02, 1d ago)
|
||||||
- IMC-M-EDSERVICE (folder 651577)
|
|
||||||
- IMC-PRINTSERVER (folder 651577)
|
|
||||||
- LAPTOP-PNVA9G51 (folder 651577)
|
|
||||||
- LAPTOP-UBTI0IE3 (folder 651577)
|
|
||||||
- PHIL (folder 651577)
|
|
||||||
- PHIL2021LAPTOP (folder 651577)
|
|
||||||
- PURCHASINGCOMP (folder 651577)
|
|
||||||
- REPAIRADMIN (folder 651577)
|
|
||||||
|
|
||||||
**Safesite** - 26 managed / 36 in RMM / 15 need install
|
**Safesite** - 12 need install (of 15 not-in-RMM; rest offline >31d)
|
||||||
- 1225-LENOVO-E14 (folder 3577293)
|
- 1225-LENOVO-E14 (folder 3577293, seen 2026-07-01, 2d ago)
|
||||||
- 1225-LENOVO-E14 (folder 3577293)
|
- 1225-LENOVO-E14 (folder 3577293, seen 2026-07-01, 2d ago)
|
||||||
- 1225-LENOVO-E16 (folder 3577293)
|
- DESKTOP-2KKLG2B (folder 3577293, seen 2026-07-03, 0d ago)
|
||||||
- DESKTOP-2KKLG2B (folder 3577293)
|
- DESKTOP-8KQIDKH (folder 3577293, seen 2026-07-03, 0d ago)
|
||||||
- DESKTOP-8KQIDKH (folder 3577293)
|
- DESKTOP-ARNPE1U (folder 3577293, seen 2026-07-02, 1d ago)
|
||||||
- DESKTOP-ARNPE1U (folder 3577293)
|
- DESKTOP-B3ELJF5 (folder 3577293, seen 2026-07-02, 1d ago)
|
||||||
- DESKTOP-B3ELJF5 (folder 3577293)
|
- DESKTOP-BA45FRS (folder 3577293, seen 2026-07-03, 0d ago)
|
||||||
- DESKTOP-BA45FRS (folder 3577293)
|
- DESKTOP-EJM109L (folder 3577293, seen 2026-07-03, 0d ago)
|
||||||
- DESKTOP-EJM109L (folder 3577293)
|
- DESKTOP-FUB3PAV (folder 3577293, seen 2026-07-01, 2d ago)
|
||||||
- DESKTOP-FMDIK0Q (folder 3577293)
|
- DESKTOP-V3H99FC (folder 3577293, seen 2026-07-01, 2d ago)
|
||||||
- DESKTOP-FUB3PAV (folder 3577293)
|
- DESKTOP-V9F9L23 (folder 3577293, seen 2026-06-09, 24d ago)
|
||||||
- DESKTOP-QAR6D04 (folder 3577293)
|
- LAPTOP-NFB98THE (folder 3577293, seen 2026-07-01, 2d ago)
|
||||||
- DESKTOP-V3H99FC (folder 3577293)
|
|
||||||
- DESKTOP-V9F9L23 (folder 3577293)
|
|
||||||
- LAPTOP-NFB98THE (folder 3577293)
|
|
||||||
|
|
||||||
**Horseshoe Management** - 7 managed / 4 in RMM / 3 need install
|
**Horseshoe Management** - 1 need install (of 3 not-in-RMM; rest offline >31d)
|
||||||
- HSM-CATHY (folder 4086890)
|
- HSM-CATHY (folder 4086890, seen 2026-07-02, 1d ago)
|
||||||
- HSM-RANDI (folder 4086890)
|
|
||||||
- HSM-SURFACE (folder 4086890)
|
|
||||||
|
|
||||||
**Grabb & Durando Law Office** - 12 managed / 9 in RMM / 4 need install
|
**Grabb & Durando Law Office** - 2 need install (of 4 not-in-RMM; rest offline >31d)
|
||||||
- GND-ASUSWS (folder 4086884)
|
- GND-ASUSWS (folder 4086884, seen 2026-07-02, 0d ago)
|
||||||
- GND-JEANNETTE (folder 4086884)
|
- GND-L-3 (folder 4086884, seen 2026-06-13, 20d ago)
|
||||||
- GND-L-3 (folder 4086884)
|
|
||||||
- HOMEPC (folder 4086884)
|
|
||||||
|
|
||||||
**Quantum Wealth Management** - 5 managed / 4 in RMM / 1 need install
|
**Stamback Septic** - 7 need install (of 10 not-in-RMM; rest offline >31d)
|
||||||
- DESKTOP-A3IVMNF (folder 656150)
|
- DEREK-LAPTOP (folder 677304, seen 2026-07-03, 0d ago)
|
||||||
|
- DESKTOP-1BS5JL4 (folder 677399, seen 2026-07-03, 0d ago)
|
||||||
|
- JEREE (folder 677399, seen 2026-07-02, 1d ago)
|
||||||
|
- SERVER2 (folder 3638391, seen 2026-07-03, 0d ago)
|
||||||
|
- STAMBACK-JBECK (folder 677399, seen 2026-07-03, 0d ago)
|
||||||
|
- STAMBACK-NEW05 (folder 3638391, seen 2026-07-03, 0d ago)
|
||||||
|
- STAMBACK-NEW06 (folder 677304, seen 2026-07-03, 0d ago)
|
||||||
|
|
||||||
**Stamback Septic** - 10 managed / 2 in RMM / 10 need install
|
**Reliant Well Drilling and Pump Corporate** - 4 need install (of 16 not-in-RMM; rest offline >31d)
|
||||||
- DEREK-LAPTOP (folder 677304)
|
- Clark’s iMac (folder 4095109, seen 2026-06-10, 23d ago)
|
||||||
- DESKTOP-1BS5JL4 (folder 677399)
|
- RWD-ALLENDESKTO (folder 4095109, seen 2026-06-16, 17d ago)
|
||||||
- DESKTOP-JVLQQIJ (folder 677399)
|
- RWD-CHRIS (folder 4095109, seen 2026-07-02, 1d ago)
|
||||||
- JEREE (folder 677399)
|
- WILLCOXDOTADMIN (folder 4095109, seen 2026-07-02, 1d ago)
|
||||||
- SERVER2 (folder 3638391)
|
|
||||||
- SSS-SPARE (folder 3638391)
|
|
||||||
- STAMBACK-JBECK (folder 677399)
|
|
||||||
- STAMBACK-NEW05 (folder 3638391)
|
|
||||||
- STAMBACK-NEW06 (folder 677304)
|
|
||||||
- STAMBACK-NEW06 (folder 3638391)
|
|
||||||
|
|
||||||
**Reliant Well Drilling and Pump Corporate** - 17 managed / 1 in RMM / 16 need install
|
**Zeus Nestora** - 5 need install (of 5 not-in-RMM; rest offline >31d)
|
||||||
- Clark’s iMac (folder 4095109)
|
- SERVER-OLD (folder 3842122, seen 2026-07-03, 0d ago)
|
||||||
- DESKTOP-09H7T66 (folder 4095109)
|
- WHITE-PC (folder 2948816, seen 2026-07-03, 0d ago)
|
||||||
- DESKTOP-QIGH458 (folder 4095109)
|
- ZEUS-ACCOUNTING (folder 2948816, seen 2026-07-03, 0d ago)
|
||||||
- DESKTOP-V2247T9 (folder 4095109)
|
- ZEUS-SHERRI (folder 2948816, seen 2026-07-03, 0d ago)
|
||||||
- LAPTOP-8AUEP9N6 (folder 4095109)
|
- ZEUS1 (folder 2948816, seen 2026-07-03, 0d ago)
|
||||||
- LAPTOP-EJL9PFOU (folder 4095109)
|
|
||||||
- LAPTOP-FR4QN9KF (folder 4095109)
|
|
||||||
- LAPTOP-JQMU8N9K (folder 4095109)
|
|
||||||
- RELIANT-L01 (folder 4095109)
|
|
||||||
- RELIANT-L02 (folder 4095109)
|
|
||||||
- RELIANT-L03 (folder 4095109)
|
|
||||||
- RWD-ALANLAPTOP (folder 4095109)
|
|
||||||
- RWD-ALLENDESKTO (folder 4095109)
|
|
||||||
- RWD-CHRIS (folder 4095109)
|
|
||||||
- WILCOXADMIN (folder 4095109)
|
|
||||||
- WILLCOXDOTADMIN (folder 4095109)
|
|
||||||
|
|
||||||
**Zeus Nestora** - 6 managed / 2 in RMM / 5 need install
|
**PUTT LAND SURVEYING, INC.** - 1 need install (of 5 not-in-RMM; rest offline >31d)
|
||||||
- SERVER-OLD (folder 3842122)
|
- PLS-SERVER (folder 3996026, seen 2026-06-26, 7d ago)
|
||||||
- WHITE-PC (folder 2948816)
|
|
||||||
- ZEUS-ACCOUNTING (folder 2948816)
|
|
||||||
- ZEUS-SHERRI (folder 2948816)
|
|
||||||
- ZEUS1 (folder 2948816)
|
|
||||||
|
|
||||||
**Little Hearts Little Hands** - 2 managed / 0 in RMM / 2 need install
|
**Curtis Plumbing** - 2 need install (of 3 not-in-RMM; rest offline >31d)
|
||||||
- LHLH (folder 625040)
|
- CP-QB (folder 613008, seen 2026-07-03, 0d ago)
|
||||||
- WIN-KNVO6MUMMEM (folder 625152)
|
- CURTIS-002-W7 (folder 4088509, seen 2026-07-03, 0d ago)
|
||||||
|
|
||||||
**PUTT LAND SURVEYING, INC.** - 7 managed / 2 in RMM / 5 need install
|
**The Prairie Schooner** - 2 need install (of 4 not-in-RMM; rest offline >31d)
|
||||||
- PLS-FOUR (folder 3996026)
|
- MEL-PC (folder 4086846, seen 2026-07-03, 0d ago)
|
||||||
- PLS-FRONT (folder 3996026)
|
- TPS-SVR (folder 3872949, seen 2026-07-03, 0d ago)
|
||||||
- PLS-LAPTOP (folder 3996026)
|
|
||||||
- PLS-ONE (folder 3996026)
|
|
||||||
- PLS-SERVER (folder 3996026)
|
|
||||||
|
|
||||||
**Curtis Plumbing** - 4 managed / 3 in RMM / 3 need install
|
**Mineralogical Record** - 3 need install (of 5 not-in-RMM; rest offline >31d)
|
||||||
- CP-QB (folder 613008)
|
- CHRISTIPC2024 (folder 607593, seen 2026-07-03, 0d ago)
|
||||||
- CURTIS-002-W7 (folder 4088509)
|
- DESKTOP-ERBA22G (folder 3937024, seen 2026-07-03, 0d ago)
|
||||||
- CURTIS-003 (folder 4114466)
|
- PUGET-CW (folder 3937024, seen 2026-07-03, 0d ago)
|
||||||
|
|
||||||
**The Prairie Schooner** - 6 managed / 2 in RMM / 4 need install
|
**Ridgetop Group** - 3 need install (of 3 not-in-RMM; rest offline >31d)
|
||||||
- DESKTOP-SRUOH4R (folder 4086846)
|
- CNX-LAB-00 (folder 667252, seen 2026-07-03, 0d ago)
|
||||||
- DESKTOP-TS1P9MT (folder 4086846)
|
- RGI-DC (folder 667252, seen 2026-07-03, 0d ago)
|
||||||
- MEL-PC (folder 4086846)
|
- RTG-HOST01 (folder 667252, seen 2026-07-03, 0d ago)
|
||||||
- TPS-SVR (folder 3872949)
|
|
||||||
|
|
||||||
**Mineralogical Record** - 6 managed / 2 in RMM / 5 need install
|
**Multicultural Counseling Center** - 1 need install (of 2 not-in-RMM; rest offline >31d)
|
||||||
- CHRISTIPC2024 (folder 607593)
|
- DESKTOP-CLJKB39 (folder 4896982, seen 2026-06-20, 13d ago)
|
||||||
- DESKTOP-3VPT017 (folder 3937024)
|
|
||||||
- DESKTOP-9QHSCIT (folder 3937024)
|
|
||||||
- DESKTOP-ERBA22G (folder 3937024)
|
|
||||||
- PUGET-CW (folder 3937024)
|
|
||||||
|
|
||||||
**MVAN Enterprises Inc** - 4 managed / 0 in RMM / 4 need install
|
**Brett Interiors** - 3 need install (of 3 not-in-RMM; rest offline >31d)
|
||||||
- CPC-chris-UZR6E (folder 3242716)
|
- BRETTWAREHOUSE (folder 4106776, seen 2026-07-03, 0d ago)
|
||||||
- DESKTOP-I7504C5 (folder 3242716)
|
- DESKTOP-6LL5T6B (folder 4106776, seen 2026-07-03, 0d ago)
|
||||||
- June’s MacBook Pro (folder 3242716)
|
- SERVER (folder 696512, seen 2026-07-03, 0d ago)
|
||||||
- MITCH-LAPTOP (folder 3242716)
|
|
||||||
|
|
||||||
**Ridgetop Group** - 3 managed / 0 in RMM / 3 need install
|
**Heieck, Sheila** - 3 need install (of 3 not-in-RMM; rest offline >31d)
|
||||||
- CNX-LAB-00 (folder 667252)
|
- John Heieck’s iMac (folder 3426849, seen 2026-07-03, 0d ago)
|
||||||
- RGI-DC (folder 667252)
|
- Sheila's iMac (folder 3426849, seen 2026-07-03, 0d ago)
|
||||||
- RTG-HOST01 (folder 667252)
|
- Sheila’s MacBook Pro (folder 3426849, seen 2026-07-03, 0d ago)
|
||||||
|
|
||||||
**Multicultural Counseling Center** - 3 managed / 1 in RMM / 2 need install
|
**The Marc Group** - 1 need install (of 2 not-in-RMM; rest offline >31d)
|
||||||
- DESKTOP-CLJKB39 (folder 4896982)
|
- DESKTOP-6HT5SJ9 (folder 4086906, seen 2026-07-03, 0d ago)
|
||||||
- DESKTOP-S1HPLDF (folder 4896982)
|
|
||||||
|
|
||||||
**Brett Interiors** - 5 managed / 2 in RMM / 3 need install
|
**Business Services of Tucson LLC** - 2 need install (of 2 not-in-RMM; rest offline >31d)
|
||||||
- BRETTWAREHOUSE (folder 4106776)
|
- KAT (folder 3204798, seen 2026-06-03, 30d ago)
|
||||||
- DESKTOP-6LL5T6B (folder 4106776)
|
- KAT1 (folder 3204798, seen 2026-07-03, 0d ago)
|
||||||
- SERVER (folder 696512)
|
|
||||||
|
|
||||||
**Heieck, Sheila** - 3 managed / 0 in RMM / 3 need install
|
**Pro-Tech Services** - 2 need install (of 2 not-in-RMM; rest offline >31d)
|
||||||
- John Heieck’s iMac (folder 3426849)
|
- DESKTOP-EKC9PRV (folder 4100925, seen 2026-07-03, 0d ago)
|
||||||
- Sheila's iMac (folder 3426849)
|
- LAPTOP-73UDDTTK (folder 4100925, seen 2026-07-02, 1d ago)
|
||||||
- Sheila’s MacBook Pro (folder 3426849)
|
|
||||||
|
|
||||||
**The Marc Group** - 2 managed / 0 in RMM / 2 need install
|
**Inside Track Productions** - 1 need install (of 1 not-in-RMM; rest offline >31d)
|
||||||
- DESKTOP-6HT5SJ9 (folder 4086906)
|
- DESKTOP-3ST7GFD (folder 4095118, seen 2026-07-03, 0d ago)
|
||||||
- LAPTOP-JMUNGO (folder 4086906)
|
|
||||||
|
|
||||||
**Bill Tedards** - 2 managed / 0 in RMM / 2 need install
|
**Gary A Hartman LLC** - 1 need install (of 1 not-in-RMM; rest offline >31d)
|
||||||
- DESKTOP-SUFJR0J (folder 615472)
|
- DESKTOP-EVA4H1A (folder 3121109, seen 2026-07-03, 0d ago)
|
||||||
- TEDARDSLAPTOP (folder 615472)
|
|
||||||
|
|
||||||
**Business Services of Tucson LLC** - 2 managed / 0 in RMM / 2 need install
|
**Robyn Pittman** - 1 need install (of 1 not-in-RMM; rest offline >31d)
|
||||||
- KAT (folder 3204798)
|
- DESKTOP-PL2RCGL (folder 4088528, seen 2026-07-03, 0d ago)
|
||||||
- KAT1 (folder 3204798)
|
|
||||||
|
|
||||||
**Pro-Tech Services** - 2 managed / 0 in RMM / 2 need install
|
**Marty Ryan** - 1 need install (of 1 not-in-RMM; rest offline >31d)
|
||||||
- DESKTOP-EKC9PRV (folder 4100925)
|
- DESKTOP-OC2PH4I (folder 594524, seen 2026-07-03, 0d ago)
|
||||||
- LAPTOP-73UDDTTK (folder 4100925)
|
|
||||||
|
|
||||||
**Inside Track Productions** - 1 managed / 0 in RMM / 1 need install
|
|
||||||
- DESKTOP-3ST7GFD (folder 4095118)
|
|
||||||
|
|
||||||
**Gary A Hartman LLC** - 1 managed / 0 in RMM / 1 need install
|
|
||||||
- DESKTOP-EVA4H1A (folder 3121109)
|
|
||||||
|
|
||||||
**Robyn Pittman** - 1 managed / 0 in RMM / 1 need install
|
|
||||||
- DESKTOP-PL2RCGL (folder 4088528)
|
|
||||||
|
|
||||||
**Marty Ryan** - 1 managed / 0 in RMM / 1 need install
|
|
||||||
- DESKTOP-OC2PH4I (folder 594524)
|
|
||||||
|
|||||||
@@ -115,3 +115,11 @@ Policy finding: Syncro public REST API does NOT expose policy management (GET /p
|
|||||||
Also: the Syncro-stored ScreenConnect GUID on assets is stale (send-command HTTP 500 / session lookup null) - that's why by-name SC lookup missed these machines.
|
Also: the Syncro-stored ScreenConnect GUID on assets is stale (send-command HTTP 500 / session lookup null) - that's why by-name SC lookup missed these machines.
|
||||||
|
|
||||||
Friction logged: curl inside while-read loop steals loop stdin (fix: </dev/null); Python open(...,'w') defaults to cp1252 on Windows (fix: encoding='utf-8').
|
Friction logged: curl inside while-read loop steals loop stdin (fix: </dev/null); Python open(...,'w') defaults to cp1252 on Windows (fix: encoding='utf-8').
|
||||||
|
|
||||||
|
## Update: 18:45 PT — active-only needs-install list + SC policy pushed
|
||||||
|
|
||||||
|
Added a recency filter to needs-sc.py using kabuto_information.last_synced_at (updated_at is just the record touch, not the agent check-in). Filtered the missing-machine list to only those seen in Syncro within the last 31 days: 114 -> 64 active (50 excluded as offline >31d). Each entry now shows policy_folder_id + last-seen date + days-ago. Sent the 64-machine active list to Howard in Discord (4 chunks). Regenerate anytime: MAXDAYS=<n> SK=.. RMM=.. TOK=.. py needs-sc.py.
|
||||||
|
|
||||||
|
Howard pushed a Syncro policy that installs ScreenConnect on the machines as they come online; some may install already, remainder tracked daily. NOTE: SC install alone does not install GuruRMM - after SC lands, GuruRMM still must be pushed via SC (our channel), unless the Syncro policy also runs the GuruRMM one-liner.
|
||||||
|
|
||||||
|
Next step (agreed, not yet done): close the loop - upgrade the daily GPS-RMM-Progress job to auto-push GuruRMM to needs-install machines once they have a live SC session (or add the GuruRMM one-liner to the Syncro SC policy). Billing findings to Winter/Mike remain HELD (do not send yet, per Howard).
|
||||||
|
|||||||
@@ -1,17 +1,26 @@
|
|||||||
import json, urllib.request, ssl, os
|
import json, urllib.request, ssl, os, datetime
|
||||||
from collections import Counter
|
from collections import Counter
|
||||||
BASE="https://computerguru.syncromsp.com/api/v1"
|
BASE="https://computerguru.syncromsp.com/api/v1"
|
||||||
SK=os.environ["SK"]; RMM=os.environ["RMM"]; TOK=os.environ["TOK"]
|
SK=os.environ["SK"]; RMM=os.environ["RMM"]; TOK=os.environ["TOK"]
|
||||||
|
MAXDAYS=int(os.environ.get("MAXDAYS","31"))
|
||||||
ctx=ssl.create_default_context()
|
ctx=ssl.create_default_context()
|
||||||
def get(url,hdr=None):
|
def get(url,hdr=None):
|
||||||
return urllib.request.urlopen(urllib.request.Request(url,headers=hdr or {}),context=ctx,timeout=30).read()
|
return urllib.request.urlopen(urllib.request.Request(url,headers=hdr or {}),context=ctx,timeout=30).read()
|
||||||
def clean(b): return bytes(c for c in b if c>=32 or c in (9,10,13))
|
def clean(b): return bytes(c for c in b if c>=32 or c in (9,10,13))
|
||||||
|
now=datetime.datetime.now()
|
||||||
|
def lastseen(a):
|
||||||
|
ki=(a.get("properties") or {}).get("kabuto_information") or {}
|
||||||
|
ts=ki.get("last_synced_at")
|
||||||
|
if not ts: return None,None
|
||||||
|
try: d=datetime.datetime.strptime(ts[:19],"%Y-%m-%dT%H:%M:%S")
|
||||||
|
except Exception: return None,None
|
||||||
|
return d,(now-d).days
|
||||||
agents=json.loads(clean(get(f"{RMM}/api/agents",{"Authorization":f"Bearer {TOK}"})))
|
agents=json.loads(clean(get(f"{RMM}/api/agents",{"Authorization":f"Bearer {TOK}"})))
|
||||||
by_client={}
|
by_client={}
|
||||||
for a in agents:
|
for a in agents:
|
||||||
by_client.setdefault(a.get("client_name") or "",set()).add((a.get("hostname") or "").lower())
|
by_client.setdefault(a.get("client_name") or "",set()).add((a.get("hostname") or "").lower())
|
||||||
tgts=json.load(open("projects/gps-rmm-audit/targets.json"))["clients"]
|
tgts=json.load(open("projects/gps-rmm-audit/targets.json"))["clients"]
|
||||||
folder_ctr=Counter(); body=[]; total=0
|
folder_ctr=Counter(); body=[]; total=0; stale=0; unknown=0
|
||||||
for t in tgts:
|
for t in tgts:
|
||||||
c=t["client"]; cid=t["cid"]
|
c=t["client"]; cid=t["cid"]
|
||||||
try: data=json.loads(clean(get(f"{BASE}/customer_assets?customer_id={cid}&per_page=100&api_key={SK}")))
|
try: data=json.loads(clean(get(f"{BASE}/customer_assets?customer_id={cid}&per_page=100&api_key={SK}")))
|
||||||
@@ -19,21 +28,26 @@ for t in tgts:
|
|||||||
body.append(f"**{c}** - ERROR: {e}\n"); continue
|
body.append(f"**{c}** - ERROR: {e}\n"); continue
|
||||||
dev=[a for a in data.get("assets",[]) if a.get("asset_type")=="Syncro Device" and a.get("name")]
|
dev=[a for a in data.get("assets",[]) if a.get("asset_type")=="Syncro Device" and a.get("name")]
|
||||||
rmm=by_client.get(c,set())
|
rmm=by_client.get(c,set())
|
||||||
gap=sorted([a for a in dev if a["name"].lower() not in rmm], key=lambda a:a["name"].lower())
|
gap=[a for a in dev if a["name"].lower() not in rmm]
|
||||||
if not gap: continue
|
keep=[]
|
||||||
total+=len(gap)
|
|
||||||
body.append(f"**{c}** - {len(dev)} managed / {len(rmm)} in RMM / {len(gap)} need install")
|
|
||||||
for a in gap:
|
for a in gap:
|
||||||
f=a.get("policy_folder_id") or "-"
|
d,days=lastseen(a)
|
||||||
folder_ctr[str(f)]+=1
|
if d is None: unknown+=1; continue # no check-in data -> exclude
|
||||||
body.append(f" - {a['name']} (folder {f})")
|
if days>MAXDAYS: stale+=1; continue # offline > MAXDAYS -> exclude
|
||||||
|
keep.append((a,d,days))
|
||||||
|
if not keep: continue
|
||||||
|
keep.sort(key=lambda x:x[0]["name"].lower())
|
||||||
|
total+=len(keep)
|
||||||
|
body.append(f"**{c}** - {len(keep)} need install (of {len(gap)} not-in-RMM; rest offline >{MAXDAYS}d)")
|
||||||
|
for a,d,days in keep:
|
||||||
|
f=a.get("policy_folder_id") or "-"; folder_ctr[str(f)]+=1
|
||||||
|
body.append(f" - {a['name']} (folder {f}, seen {d.strftime('%Y-%m-%d')}, {days}d ago)")
|
||||||
body.append("")
|
body.append("")
|
||||||
out=["# GPS clients - Syncro-managed machines NOT in GuruRMM","",
|
out=["# GPS clients - Syncro-managed machines NOT in GuruRMM (ACTIVE only)","",
|
||||||
"Install ScreenConnect / push agent. Syncro assets (authoritative) vs live GuruRMM, 2026-07-03.",
|
f"Machines missing from GuruRMM that checked into Syncro within the last {MAXDAYS} days. Excluded: {stale} offline >{MAXDAYS}d, {unknown} with no check-in data. Snapshot 2026-07-03.",
|
||||||
"`folder N` = Syncro policy_folder_id (the ScreenConnect-install policy is tied to a folder - devices in the wrong folder don't get SC).","",
|
"`folder N` = Syncro policy_folder_id.","",
|
||||||
"## Folder distribution across the gap machines (spot the SC-install folder vs outliers)"]
|
"## Folder distribution (active gap machines)"]
|
||||||
for f,n in folder_ctr.most_common():
|
for f,n in folder_ctr.most_common(): out.append(f"- folder {f}: {n}")
|
||||||
out.append(f"- folder {f}: {n} machines")
|
out+=["",f"## TOTAL active needing install: {total}",""]+body
|
||||||
out+=["",f"## TOTAL needing install: {total}",""]+body
|
|
||||||
open("projects/gps-rmm-audit/needs-screenconnect.md","w",encoding="utf-8").write("\n".join(out))
|
open("projects/gps-rmm-audit/needs-screenconnect.md","w",encoding="utf-8").write("\n".join(out))
|
||||||
print(f"total={total}, folders={dict(folder_ctr)}")
|
print(f"active={total} excluded_stale={stale} excluded_unknown={unknown}")
|
||||||
|
|||||||
Reference in New Issue
Block a user