instrumental-music-center.md — AIMsi POS on SQL Server 2019 (Standard under misleading SQLEXPRESS instance name); phantom DC ServerIMC causing slow logons; GuruRMM enrolled (IMC1 fa99e913); OpenVPN subnet-overlap hazard; $175/hr prepaid, 12.5 hrs remaining; SQL max server memory fix approved but unverified applied. valleywide.md — Valley Wide Plastering; HP DL360 Gen10 VM host + XenServer; VB6/Access 97 app modernization (130 tables, 791 Crystal Reports, certified payroll); RDWeb brute-force incident (contained); 11 Yealink phones pending; iLO requires paramiko (legacy ssh-rsa); $175/hr prepaid, 10 hrs remaining. wiki/index.md — both clients added to Clients table and Cross-Reference. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
22 KiB
type, name, display_name, last_compiled, compiled_by, sources, backlinks
| type | name | display_name | last_compiled | compiled_by | sources | backlinks | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| client | instrumental-music-center | Instrumental Music Center | 2026-05-24 | DESKTOP-0O8A1RL/claude-main |
|
|
Instrumental Music Center
Music retail and instrument repair shop running AIMsi point-of-sale software on-prem. Single-site as far as documented. Located at 7063 E Speedway Blvd, Tucson AZ 85710. ACG provides managed break-fix / prepaid-block support; primary focus is on the AIMsi SQL server (IMC1) and workstation fleet.
Profile
- Contract type: Prepaid hour block
- Billing rate: $175/hr all labor
- Hours remaining: 12.5 hrs as of 2026-04-28 (after debiting 1.5 hrs for Syncro #32218). Always live-check before billing.
- Syncro customer ID: 7088508
- Key contacts:
- Leslie Stirm — primary contact; leslie@imc-az.com; Syncro contact_id 731730
- Manda — General Manager (new, replaced Michael Santander as of ~2026-04-28). Full name unconfirmed in AD. [unverified]
- Michael Santander — former GM; domain account already deactivated.
- Primary domain: imc.local (on-prem AD)
- Location: Speedway (7063 E Speedway Blvd, Tucson AZ 85710) — additional locations TBD; only Speedway is documented.
- Critical software: AIMsi by Tri-Tech (https://www.tritechretail.com/topic/aim) — retail POS and inventory management.
Infrastructure
Servers & Services
| Host | IP | Role | OS | Notes |
|---|---|---|---|---|
| IMC1 | 192.168.0.2 | DC (imc.local), DNS, File Server, AIMsi SQL host, RDS host | Windows Server 2016 Standard (build 14393.7426) | Dell R720, 4 physical cores, 32 GB RAM. GuruRMM agent: fa99e913-1027-4e33-a928-7695e31068e7 |
| ServerIMC | 192.168.0.63 | Phantom / broken DC | Windows Server 2016 Essentials [unverified] | [WARNING] Registered as DC in AD DNS (A + SRV records for _ldap._tcp.dc._msdcs.imc.local and _kerberos._tcp.imc.local). Responds to ICMP but TCP/389 (LDAP) and TCP/88 (Kerberos) refuse connections. DC locator round-robins — clients that pick ServerIMC time out. Root cause of intermittent slow logons, GPO failures, and 2026-04-22 remote domain-join failure. Needs ntdsutil metadata cleanup (if demoted ghost) or AD service repair. |
| IMC2 | — | Unknown (stale) | Windows Server 2016 Essentials | Last logon 2023 — likely decommissioned. Clean up AD computer object. |
| IMC-VM | — | Unknown (dead) | Windows Server 2016 Standard | Last logon 2021 — dead. Clean up AD computer object. |
| Station 1 | 192.168.0.50 | POS workstation | Windows [unverified] | Hostname IMC-STATION1. Primary workstation for AIM "connection broken" incidents. |
IMC1 SQL Instances (CRITICAL — read carefully)
[WARNING] The production AIM database is on IMC1\SQLEXPRESS, NOT IMC1\AIMSQL. The instance name is actively misleading — someone installed SQL Server 2019 Standard under the default SQLEXPRESS instance name and never renamed it. This burned a full day of triage. Always verify SQL roles by active connections (sys.dm_exec_sessions) — never by instance name.
| Instance | Port | Edition (actual) | Role | Production DB | Notes |
|---|---|---|---|---|---|
IMC1\SQLEXPRESS |
TCP 61151 | SQL Server 2019 Standard (misleading name!) | PRODUCTION | IMCAIM (created 2023-08-21) |
Service account IMC\AIM. ~9 store workstations + 22 server-local AIM sessions. Do not stop, do not uninstall. ERRORLOG at E:\SQL\MSSQL14.SQLEXPRESS\MSSQL\Log\. No max server memory cap (default unlimited). |
IMC1\AIMSQL |
TCP 63116 (dynamic) | SQL Server 2019 Express GDR 15.0.2165.1 | Orphan (consolidation candidate) | None active | Service account IMC\IMC1$. Zero established TCP connections. Holds only 2023-era conversion-test DBs (AIM, IMC, TestConv61223). No active backup chain landing here. Shutdown + uninstall approved by Mike pending .mdf backup confirmation. |
IMC1\MICROSOFT##WID |
— | Windows Internal Database | WSUS / AD RMS | — | WSUS confirmed NOT in use at IMC. AD RMS status unverified. If AD RMS also unused, instance can be stopped to free ~300 MB. Canary for memory pressure — Event 17890 paging events fire here first when the host is memory-squeezed. |
Workstations connected to production IMC1\SQLEXPRESS (verified 2026-05-06):
| Hostname | IP |
|---|---|
| IMC-MINI | 192.168.0.72 |
| IMC-SVCSTR | 192.168.0.55 |
| IMC-LESSONS | 192.168.0.62 |
| IMC-STATION2 | 192.168.0.66 |
| IMC-L1-STATION9 | 192.168.0.41 |
| DESKTOP-44L80C0 | 192.168.0.46 |
| DESKTOP-MR3ALTK | 192.168.0.59 |
| REPAIRADMIN | 192.168.0.48 |
| C2B | 192.168.0.4 |
| IMC-STATION1 | 192.168.0.50 |
All sessions authenticate as AIMUser1 via .Net SqlClient Data Provider.
IMC1 Disk Layout
| Drive | Purpose | Notes |
|---|---|---|
| C: | OS, IIS, system DBs | 419 GB volume; ~278 GB used after 2026-04-12 cleanup (~66%); was 77% full before. Monitor. |
| E: | SQL backups + installers + Server 2016 media | E:\W2016\sources\install.wim is RTM 14393.0. SQL backups at E:\SQL\MSSQL14.SQLEXPRESS\MSSQL\Backup\ |
| F: | Windows Image Backups | — |
| S: | Dedicated SSD (Samsung 850 PRO 256 GB) — AIMsi SQL user DBs | User DBs at S:\SQL\Data\. AIM client share \\IMC1\AIM → S:\AIM. System DBs remain on C:. |
Email & Identity
- Mail: IMC uses a mixed Google / Microsoft identity model — different users are on different platforms. Manda is on the M365 side. [full tenant details unverified]
- M365 tenant details: Not fully documented. Manda's Outlook was configured against an existing M365 mailbox.
- On-prem AD domain:
imc.local - MFA status: [unverified]
- DNS: IMC1 (192.168.0.2) is the authoritative DNS server for imc.local. ServerIMC (192.168.0.63) has ghost A + SRV records as a DC — these are the direct cause of client authentication failures and need cleanup.
Network
- LAN subnet: 192.168.0.0/24
- VPN: OpenVPN (.ovpn profile). [WARNING] 192.168.0.0/24 subnet overlap hazard: if technician's home/office LAN is also 192.168.0.0/24 (Howard's home is), OpenVPN routes win for reaching IMC1 but Windows multi-homed DNS races between the two interfaces. DNS negative caching causes domain join / locator failures. If remote LAN overlaps IMC's subnet, go onsite for domain joins. Also: disconnect Tailscale before connecting to IMC OpenVPN — Tailscale's
pfsense-2subnet router advertises 192.168.0.0/24 with lower metric than the VPN, making IMC1 unreachable. - Firewall: [unverified — not documented]
- ISP: [unverified]
- SMB: SMB1 still enabled on IMC1 — disable as security hygiene when opportunity permits.
- SMB signing:
RequireSecuritySignature = Trueon server — adds auth overhead.
GuruRMM Enrollment
| Field | Value |
|---|---|
| GuruRMM client | Instrumental Music Center |
| GuruRMM client ID | 213b62a8-30f4-41dd-9bb3-549341104416 |
| GuruRMM client code | IMC |
| Site | IMCMain |
| Site ID | 2c5b65ad-2d5e-47b3-b12b-632e35e08ff6 |
| Site code | INNER-BRIDGE-8354 |
| Site enrollment key | vault: clients/imc/gururmm-site-main.sops.yaml |
| First enrolled agent | IMC1 (fa99e913-1027-4e33-a928-7695e31068e7) |
IMC was enrolled in GuruRMM on 2026-05-05 (Howard, prompted by AIM connection-broken investigation). IMC1 agent was installed by Mike via ScreenConnect. Only IMC1 is enrolled as of last session — workstations not yet enrolled.
Note: When SSH from Howard-Home is blocked by the 192.168.0.0/24 route collision, GuruRMM remote commands are the fallback for running diagnostics on IMC1.
Access
- SSH:
ssh IMC\guru@192.168.0.2— ed25519 key auth; PowerShell is the default shell. Authorized keys:C:\ProgramData\ssh\administrators_authorized_keys(inheritance off, Administrators + SYSTEM full control). - VPN: OpenVPN (.ovpn profile). Disconnect Tailscale first. If home/office LAN is 192.168.0.0/24, remote domain operations will fail — go onsite instead.
- Domain admin:
IMC\guru— also SQL sysadmin on both SQLEXPRESS and AIMSQL (added via single-user recovery 2026-04-12). - GuruRMM: IMC1 agent
fa99e913-1027-4e33-a928-7695e31068e7— use for remote commands when SSH is blocked. - Vault paths:
- IMC1 credentials (domain admin, SSH):
clients/imc/imc1.sops.yaml - GuruRMM site enrollment key:
clients/imc/gururmm-site-main.sops.yaml
- IMC1 credentials (domain admin, SSH):
[WARNING] sa account on AIMSQL: exists and enabled; password unknown. One candidate was tried and failed on 2026-04-12 — no lockout triggered (no lockout policy). If needed for AIMSQL consolidation, use single-user recovery mode (same process used 2026-04-12).
AIMsi / Tri-Tech Critical Notes
Per-machine workstation number (USER#) is mandatory. AIMsi requires a user environment variable USER# (older Tri-Tech convention, still in use at IMC) set on each machine. This is the per-machine workstation identifier for POS polling and licensing.
- NEVER wipe or reimage a machine without recording its
USER#first. - When deploying a new machine, assign its
USER#per Leslie — she tracks the allocation. - Tri-Tech docs: https://www.tritechretail.com/topic/aim
Known USER# assignments:
| Machine | Hostname | USER# | Notes |
|---|---|---|---|
| Manda (GM) laptop | DESKTOP-KRHQ5TS | 4 | Assigned per Leslie, 2026-04-28 |
| Other workstations | Various | TBD | Not yet fully documented |
Backups
- Local SQL backups: Nightly at 22:00 to
E:\SQL\MSSQL14.SQLEXPRESS\MSSQL\Backup\IMCAIM_*.bak - Retention script:
C:\Scripts\Clean-AimsiBackups.ps1— GFS policy: 14 dailies + 1st-of-month; 3-newest safety override; logs toC:\Scripts\Logs\aimsi-retention-YYYYMM.log - Retention task:
IMC AIMsi Backup Retention— daily 23:30, SYSTEM, 1-hour limit - Off-site: Cloudberry / MSP360 at
C:\ProgramData\Online Backup\. Cloudberry chain confirmed intact before 2026-04-12 deletion run.- SQLEXPRESS backup also confirmed landing at
C:\ProgramData\Online Backup\MSSQL\IMC1_SQLEXPRESS\
- SQLEXPRESS backup also confirmed landing at
- Windows Image Backup: on F:
- AIMSQL orphan: no backup chain. Locate and back up
AIM.mdf,IMC.mdf,TestConv61223.mdfand their.ldfsiblings before any consolidation — files were not found in expected path underMSSQL15.AIMSQL\MSSQL\DATAorS:\*AIMSQL*during 2026-05-06 search.
Patterns & Known Issues
[WARNING] Phantom DC ServerIMC — Active Authentication Degrader
ServerIMC (192.168.0.63) is registered in DNS as a domain controller (A record + SRV records for _ldap._tcp.dc._msdcs.imc.local and _kerberos._tcp.imc.local) alongside IMC1. It responds to ICMP ping but TCP/389 and TCP/88 refuse connections. The DC locator round-robins between IMC1 and ServerIMC, timing out ~50% of the time.
Effect: Intermittent slow logons, GPO failures, and broken remote domain joins for every domain client at IMC. Was the confirmed root cause of the 2026-04-22 failed remote join of DESKTOP-KRHQ5TS.
Action needed: Open a ticket. Either:
- Repair AD services if
ServerIMCis a real machine with broken services, or - Run
ntdsutilmetadata cleanup if it is a ghost from a previously demoted DC.
This was first flagged as "unclear" on 2026-04-13, promoted to confirmed issue 2026-04-28. No ticket has been opened as of 2026-05-06.
AIM "Connection Broken" — Memory Pressure on IMC1
Symptom: Telerik.OpenAccess.RT.sql.SQLException: Connection has been closed / The connection is broken and recovery is not possible — user-facing AIM crash. First seen 2026-05-05 on Station 1 (IMC-STATION1, 192.168.0.50), recurred 2026-05-06 ~12:14 PM.
Root cause: IMC1 is hosting DC services + 6 concurrent RDP users + AIMsi Webservice/Runtime + three SQL instances + QuickBooks Enterprise on 32 GB. Under memory pressure, Windows trims SQL working sets (visible as WID Event 17890 paging events — the canary). The trim reaps idle Telerik OpenAccess TCP pool slots. Telerik has no transient-fault retry, so the next query against a dead pool handle throws the raw stack trace.
SQLEXPRESS has no max server memory cap (default 2,147,483,647 MB). Working set observed at 6.86 GB.
Approved fix (Mike, 2026-05-07): Cap max server memory on each instance:
SQLEXPRESS: 12,288 MB (12 GB)MSSQL$MICROSOFT##WID: 512 MBMSSQL$AIMSQL: 256 MB (or consolidate it)
Status as of 2026-05-06: Howard is awaiting go-ahead for implementation. Mike approved on 2026-05-07. Confirm whether Howard has applied the caps — this is the immediate recurrence prevention. [unverified post-2026-05-07]
[WARNING] SQL Instance Name Trap
IMC1\SQLEXPRESS is SQL Server 2019 Standard Edition — someone installed Standard under the default SQLEXPRESS instance name and never renamed it. SERVERPROPERTY('Edition') is the only way to confirm this. The instance name actively misleads.
Never assume an instance is idle, orphan, or Express based on name. Always verify by:
SERVERPROPERTY('Edition')for editionsys.dm_exec_sessionsfor active user sessionsGet-NetTCPConnection -OwningProcessfor established TCP connections
This trap caused a wrong-instance restart task to be deployed (2026-05-05) that had zero effect on the user-facing problem and was unregistered the next day (2026-05-06). See .claude/memory/feedback_sql_instance_role_by_connection.md.
Component Store Corruption on IMC1 (RDS Removal Blocked)
COMPONENTS registry hive is ~168 MB (normal 30-50 MB), causing 0x80073701 ERROR_SXS_ASSEMBLY_MISSING on any role removal or CU apply-on-boot. ETW manifest for provider GUID {9c2a37f3-e5fd-5cae-bcd1-43dafeee1ff0} is malformed — causes CBS_E_INSTALLERS_FAILED → full rollback even when CU staging succeeds.
Effect: Blocks RDS role removal, which was the original reason for the 2026-04-12 engagement. Also means CU KB5075999 cannot be applied cleanly.
Server is otherwise healthy — AIMsi production is running. This is a structural impediment to the Server 2019 migration. Three paths considered (see History Highlights).
Remote Domain Join Over OpenVPN — Don't Do It
If the technician's local LAN subnet overlaps IMC's 192.168.0.0/24, remote domain joins over OpenVPN will fail reliably:
- OpenVPN pushed routes win for TCP, but Windows multi-homed DNS races between LAN DNS and VPN DNS (both respond to
imc.localqueries; LAN returns NXDOMAIN faster; Windows caches the negative answer). - Even with NRPT rules, hosts file entries,
-Server <IP>on Add-Computer, andnltest /dsgetdc /force— the combination of subnet overlap + phantom DC (ServerIMC) beat all client-side workarounds.
Rule: For IMC domain operations where local subnet overlap exists, go onsite.
Mixed Email Identity (Google + M365)
IMC users are split between Google Workspace and Microsoft 365 — different users on different platforms. When configuring a new user, confirm with Leslie which platform their mailbox lives on before setting up Outlook vs. Gmail.
Stale AD Objects
| Object | Last Logon | Status | Action |
|---|---|---|---|
| IMC2 (computer) | 2023 | Likely decommissioned | Clean up AD object |
| IMC-VM (computer) | 2021 | Dead | Clean up AD object |
| ServerIMC (DC) | Active (ICMP) | Phantom/broken DC | ntdsutil metadata cleanup or repair |
GPO Noise
- DistributedCOM 10016 fires every 5 minutes — RuntimeBroker permission noise. Cosmetic.
- Group Policy event 103 fires every 5 minutes — "removal of the assignment of application Syncro from policy Management SW failed". Stale GPO object. Cleanup separately.
Server 2016 EOL
Extended support ends 2027-01-12. Migration window is finite. The memory pressure / AIM reliability incident is additional evidence to push the migration timeline. Mike wants to scope cost/timeline at next ACG strategy call.
Active Work
As of 2026-05-07 (last decision recorded):
-
[IMMEDIATE] Apply
max server memorycaps on IMC1 SQL instances — Mike approved 2026-05-07. Howard to implement: SQLEXPRESS 12 GB, WID 512 MB, AIMSQL 256 MB. Reversible (1-second config change, no service restart). Until applied, AIM connection-broken errors will continue recurring. [unverified — confirm applied] -
[HIGH] Open ticket for ServerIMC phantom DC investigation — SRV/A records in DNS claim it's a DC; LDAP/Kerberos refuse connections. Degrades authentication for all domain users. No ticket opened as of 2026-05-06.
-
[MEDIUM] AIMSQL orphan consolidation — Mike approved (2026-05-07). Pending:
- Locate
AIM.mdf,IMC.mdf,TestConv61223.mdfand.ldfsiblings (not in expected path) - Back up 2023-era DBs before shutdown
- Verify no applications reference
IMC1\AIMSQL(TCP 63116) - Stop and uninstall
MSSQL$AIMSQL
- Locate
-
[MEDIUM] WID instance decision — Verify AD RMS usage. WSUS confirmed unused. If AD RMS also unused, stop WID to free ~300 MB headroom. Mike awaiting Howard's verification before authorizing stop.
-
[LOWER] Server 2019 migration scoping — Three paths (component store repair + in-place; in-place without repair; clean build). Clean build is Mike's recommendation. Scope cost/timeline at next ACG strategy call before 2027-01-12 EOL.
-
[LOWER] Documentation cleanup:
- Update workstation table in
docs/overview.mdwithDESKTOP-KRHQ5TS/ Manda / AIM USER#=4 - Confirm Manda's full name in AD
- Disable SMB1 on IMC1 (
Set-SmbServerConfiguration -EnableSMB1Protocol $false) - Drop
TestConv61223DB on AIMSQL (leftover 2023 migration test) — safe per enumeration, but back up.mdffirst - Clean up stale AD computer objects
IMC2,IMC-VM
- Update workstation table in
History Highlights
| Date | By | Event |
|---|---|---|
| ~2026-Q1 | Mike/Howard | Early engagement: 3 new workstations provisioned at Speedway (hostnames, AIM USER#s TBD in billing log) |
| 2026-04-11/12/13 | Mike | IMC1 maintenance: RDS removal blocked (component store corruption 0x80073701), SSH installed, 716 GB freed on E: (backup cleanup), GFS retention automated, AIMsi DBs moved C:→S: SSD |
| 2026-04-22 | Howard | Attempted remote domain-join of DESKTOP-KRHQ5TS over VPN — abandoned after subnet overlap + phantom DC defeated all workarounds |
| 2026-04-28 | Howard | Onsite: DESKTOP-KRHQ5TS joined to imc.local, Manda (new GM) AD account created, Outlook/M365 configured, Office activated, AIMsi USER#=4 set. Ticket #32218, 1.5 hrs, prepay 14.0→12.5 hrs. ServerIMC confirmed as active authentication degrader. |
| 2026-05-04 | Howard | Onsite (0.5 hrs): Station 2 receipt printer reconnected (re-added from \imc1); VPN installed on Manda's machine. Ticket #32247. |
| 2026-05-05 | Howard | AIM "connection broken" investigation. GuruRMM IMC client/site provisioned, IMC1 enrolled. Diagnosed memory pressure; scheduled AIMSQL restart for 02:30 (wrong instance — superseded next day). |
| 2026-05-06 | Howard | Station 1 recurrence 12:14 PM. Full instance enumeration revealed SQLEXPRESS = production Standard (not AIMSQL). Wrong-instance restart task unregistered. Corrected diagnosis in session logs and PROJECT_STATE. Feedback memory created. |
| 2026-05-07 | Mike | Decision: approved memory caps (SQLEXPRESS 12 GB, WID 512 MB, AIMSQL 256 MB), AIMSQL consolidation pending backup, Server 2016 migration timeline acknowledged, WSUS confirmed unused. |
Compilation Notes
Source material: 5 session logs (2026-04-12 through 2026-05-06) + 1 decision file (2026-05-07) + README + PROJECT_STATE + 10 docs files (most docs/* are blank templates with no client-specific data filled in — network/firewall/vlans/VLAN/DHCP/DNS/RMM/AV/backup/issues docs are all empty templates).
Many structured docs (docs/network/, docs/security/, docs/cloud/) are empty templates. The authoritative information sources are README.md, PROJECT_STATE.md, and the session logs.
Unverified items flagged:
- Whether Howard applied
max server memorycaps after Mike's 2026-05-07 approval - ServerIMC ticket status — ticket was recommended but not confirmed opened
- Manda's full name in AD
- M365 tenant details (tenant domain, license type, MFA policy)
- WID instance AD RMS usage
- AIMSQL
.mdffile locations - Full workstation fleet AIM USER# assignments
- ISP, firewall hardware, VLAN/network topology
Backlinks
- projects/gururmm — IMC1 enrolled as agent
fa99e913-1027-4e33-a928-7695e31068e7; site IMCMain