## User
- **User:** Mike Swanson (mike)
- **Machine:** GURU-5070
- **Role:** admin

## Session Summary

Resumed the Peaceful Spirit **PST-SERVER file-deletion investigation** (initially misread as the
DFS rebuild thread; corrected to the deleted-files thread). All work via GuruRMM against PST-SERVER
(192.168.0.2, agent `87293069-33b6-45e8-a68f-6811216cdb96`). Confirmed the prior session's 6/24
10:05 AM pre-incident restore (`C:\PST-Recovery\PreDelete-0624`, 188,399 files / 99 GB) was complete,
then ran the authoritative staged-vs-live diff: **47,749 files deleted** from the `@Clients` tree
since 10:05 AM 6/24, 1,685 added. Spot-checks confirmed the deletions are real (present in staging,
absent from live). Classification showed the loss is overwhelmingly **duplicate cleanup**: 33,711 in
folders literally labeled "duplicate DO NOT USE or delete", plus 10,696 in nested-misfile buckets
(`A\A`, `D\A`, `P\O`, `H\I`) whose canonical client folders were verified still present in live —
leaving only **~3,342 genuinely-deleted client/training files** as the real loss.

Disproved the prior session's premise that the deletion happened in the 6/24 10:05->12:05 window.
Restored the 6/24 12:05 PM post-deletion point (`C:\PST-Recovery\PostDelete-0624`, 188,621 files)
and diffed it against the 10:05 point: **only 2 files were deleted in that window** (Ballard, Kathy
and Rivera, Anthony SOAP PDFs), 32 added — the mass deletion occurred later. Resolved the trigger:
there were two Glennda folders — `EDWARDS, GLENDA` (single-N, 79 files, deleted) and
`EDWARDS, GLENNDA` (double-N, 121->127 files, alive and actively growing). Filename analysis (176
"Glennda" vs 27 "Glenda" occurrences) plus the live/active canonical folder confirm proper spelling
= **Glennda**; the deleted single-N folder was a misspelled duplicate. So the alarm folder was a
duplicate; her real records are intact.

Investigated the **Shelton missing-SOAP-notes** report (the actual reason the year-ago backup was
pulled). Found only 6 Shelton files (Linda 2015, Nancy x3 2011, Tina 2015, Roger 2015), all loose in
the `S\` root (no Shelton client folder), identical across live / 6/24-pre / 6/24-post — not a 2026
deletion. All 6 share CreationTime 2025-06-02 (a data-recovery/migration event). Attempted a scoped
restore of the `S\` subtree at the 6/29/2025 oldest point to check the year-ago state; it **failed —
the restore point has been purged** by the 365-day retention (today is 367 days past 6/29/2025). The
year-ago backup no longer exists, so any Shelton notes lost before ~2025-06-29 are unrecoverable via
backup.

Pivoted to access hardening. Listed the 62 AD security groups; the only custom ones are **Admin1**
and **Admin2**, both granted Full Control on `G:\Shares\Scanned`. Per Mike's direction, restricted
Admin1 from deleting client files, then fixed the group nesting (Admin2 was nested inside Admin1 —
inverted, since Admin1 is the less-entitled group and Admin2 the data-owner/superuser group), and
finally reduced Admin1 to true least privilege. End state on `G:\Shares\Scanned` (inherited across
the whole store): **Admin1 = allow `RX,W` + Deny `D,DC`** (read/write/edit only; no delete, rename,
permission-change, or ownership); **Admin2 = Full Control** (unchanged).

## Key Decisions

- Used **restore-and-local-diff** as the only trustworthy method; `cbb list` proven unreliable on
  the comma/space folder paths (false zeros and server-side timeouts), so per-restore-point folder
  counting was abandoned.
- Classified the 47,749 deletions as ~93% duplicate/intentional cleanup by (a) folder labels and
  (b) verifying nested-bucket clients still exist at their canonical letter in live — so the real
  loss is ~3,342 files, not a catastrophe.
- Restored the 12:05 PM point to precisely bound the incident window rather than trust the prior
  session's assumption; the 2-file result invalidated that assumption.
- Determined proper spelling from document filenames + which folder is live/active, not from the
  folder name (which was itself the misspelling).
- Denied delete to the **4 direct Admin1 users individually** first (CalistaA, ChristineZ, leslieW,
  SarahM) to avoid the Admin2 nesting cascade, then after decoupling the groups, **consolidated to a
  single Admin1 group Deny** (future-proof) and reduced the Admin1 allow to `RX,W`.
- Fixed nesting by **decoupling** (Remove-ADGroupMember Admin1 -Members Admin2), not by re-nesting
  the other direction — re-nesting Admin1 into Admin2 would have made the base admins transitive
  superusers.
- Kept the explicit Deny `D,DC` as defense-in-depth even though the reduced allow (`RX,W`) already
  excludes delete.

## Problems Encountered

- **Misread the resume target** — assumed "PST-SERVER investigation" = the Peaceful Spirit DFS
  rebuild; Mike corrected to the deleted-files scope. Logged as a correction to errorlog.
- **6/29/2025 oldest restore point purged** — the scoped `S\` restore failed with "Specified restore
  point not found"; 365-day retention aged it out. Year-ago backup unavailable for the Shelton check.
- **Backup-load command timeouts** — the MSP360 "Files Backup 2025" synthetic full was running
  (~294 GB), so several RMM commands lagged past their server timeout and were marked failed even
  though the icacls/AD operations actually applied. Worked around by verifying state after each and
  re-applying idempotent operations. One stale mid-propagation ACL read (root showed
  `RX,W,WDAC,WO` while the child already showed `RX,W`) was resolved by re-applying `/grant:r`.
- **Prior CRITICAL "backup stopped" item RESOLVED** — the 6/29 `cbb plan -s` only stopped that one
  run; the schedule resumed on its own. "Files Backup 2025" is running normally (retention 365 days,
  Deleted:0 on recent runs).

## Configuration Changes

- **AD (PEACEFULSPIRIT.local):** removed group **Admin2** from group **Admin1** (decoupled the
  nesting). Admin1 now = {CalistaA, ChristineZ, leslieW, SarahM}. Admin2 unchanged.
- **NTFS ACL `G:\Shares\Scanned`** (inheritance root; propagates to `@Clients` and all children):
  - Removed the 4 interim per-user Deny ACEs (CalistaA/ChristineZ/leslieW/SarahM).
  - Admin1 final: `(OI)(CI)(DENY)(D,DC)` + allow `(OI)(CI)(RX,W)` (was `(OI)(CI)(F)`).
  - Admin2 unchanged: `(OI)(CI)(F)`.
  - ACL backup saved on server: `C:\PST-Recovery\acl-backup-scanned-20260701-072725.txt`.
- **PST-SERVER restore plans (cbb):** created `ZPostDelete0624` (RP 20260624190522 ->
  `C:\PST-Recovery\PostDelete-0624`, completed, auto-deleted on success); attempted `ZOldestS`
  (RP 20250629170034 -> failed, point purged).
- **Server staging artifacts** under `C:\PST-Recovery\`: `PreDelete-0624\` (99 GB),
  `PostDelete-0624\` (99 GB), `authdiff\` (deleted-files.txt, clean-client-deletions.txt, rollup.txt,
  summaries), `incidentdiff\` (deleted-in-window.txt, incident-summary.txt), `acl-backup-scanned-*.txt`.
- **Repo:** this session log only. Logged one `--correction` to `errorlog.md`.

## Credentials & Secrets

- No new credentials. Domain Admin used for the AD group change: `PEACEFULSPIRIT\sysadmin` /
  `r3tr0gradE99!` (vault `clients/peaceful-spirit/server`, field `credentials.password` — read via
  full `vault.sh get`; `get-field credentials.password` returns literal "null", known bug). Passed
  base64-wrapped in the RMM command_text (recoverable from RMM DB; rotation optional, internal).

## Infrastructure & Servers

- **PST-SERVER** 192.168.0.2, DC/DNS/RRAS/CA, Server 2016 Essentials. RMM agent
  `87293069-33b6-45e8-a68f-6811216cdb96` (v0.6.75). Data on `G:\Shares\Scanned\@Clients\@Clients`
  (doubly-nested). Live @Clients ~142,335 files / ~72 GB. C: 705 GB free.
- **MSP360/cbb:** account ACG-PST `084b5069-d634-434b-84a2-971b1dcb4b43`, bunch
  `6a121575-84a0-4e98-9c0f-4a656d1a5132`, prefix PST-SERVER, exe
  `C:\Program Files\Arizona Computer Guru\Online Backup\cbb.exe`, logs
  `C:\ProgramData\Online Backup\Logs\`. Retention **365 days**.
- **Restore points:** pre-incident `20260624170506` (6/24 10:05 AM), post `20260624190522`
  (6/24 12:05 PM). Oldest `20250629170034` (6/29/2025) **now purged**.
- **AD security groups (62 total).** Custom: Admin1 (Global) = CalistaA, ChristineZ, leslieW, SarahM;
  Admin2 (Global) = BridgetteSH, katieb, Mara, PSTAdmin, pst-admin, SharonS. Both formerly Full
  Control on Scanned. All staff passwords reset ~2026-05-04/05.

## Commands & Outputs

- Authoritative diff (10:05 staging vs live): `stage=188,399 live=142,335 DELETED=47,749 ADDED=1,685`.
  Breakdown: 33,711 "duplicate DO NOT USE"; A\A=5,614 / D\A=2,532 / P\O=1,901 / H\I=649 (all verified
  duplicates, canonicals live); ~3,342 genuine.
- Incident-window diff (10:05 vs 12:05): `DELETED=2 (Ballard/Rivera), ADDED=32`; Glennda folder 121
  files at both points.
- Glennda spelling tally in filenames: `Glennda(double-N)=176, Glenda(single-N)=27`; live canonical
  `EDWARDS, GLENNDA VA REFERRAL` = 127 (growing), single-N deleted.
- Shelton: 6 files, all loose in `S\`, CreationTime 2025-06-02, content dates 2011-2015; identical
  across all three snapshots. Nearby active "Sheldon" family (Bill 2024, Krista 2023).
- AD decouple: `Invoke-Command -ComputerName PST-SERVER.PEACEFULSPIRIT.local -Credential $cred
  -ScriptBlock { Remove-ADGroupMember -Identity Admin1 -Members Admin2 -Confirm:$false }`.
- ACL: `icacls "G:\Shares\Scanned" /deny "PEACEFULSPIRIT\Admin1:(OI)(CI)(DE,DC)"` then
  `icacls "G:\Shares\Scanned" /grant:r "PEACEFULSPIRIT\Admin1:(OI)(CI)(RX,W)"`. Final verified:
  `Admin1:(OI)(CI)(DENY)(D,DC)` + `Admin1:(OI)(CI)(RX,W)`; `Admin2:(OI)(CI)(F)`.
- Reversal: `Add-ADGroupMember Admin1 -Members Admin2`; `icacls "G:\Shares\Scanned" /remove:d
  "PEACEFULSPIRIT\Admin1"`; restore allow via `/grant` or the saved ACL backup.

## Pending / Incomplete Tasks

1. **Deletion recovery (NOT started):** ~3,342 genuinely-deleted client/training files are
   recoverable from `C:\PST-Recovery\PreDelete-0624` staging via no-overwrite copy-back
   (robocopy `/XC /XN /XO`), excluding the duplicate/nested buckets. Awaiting Mike/Mara go — writes
   to live production HIPAA data.
2. **Glennda single-N duplicate:** confirm the deleted single-N folder had zero unique files vs the
   live double-N folder before writing it off entirely (offered, not run).
3. **Shelton:** year-ago backup purged; if recent Shelton notes ever existed and were lost before
   ~2025-06-29, they are unrecoverable via backup. Open question: were they ever scanned, or is
   "Shelton" a mishearing of the active "Sheldon" family? Needs client input.
4. **Admin1 ACL watch:** RX,W + Deny(D,DC) also blocks rename and delete-then-write "save" patterns
   for those 4 users. If any report inability to rename/save, carve an exception.
5. **Cleanup:** ~200 GB of staging on PST-SERVER `C:\PST-Recovery\` (PreDelete + PostDelete) can be
   removed once recovery is decided.
6. **Backup:** confirm the running synthetic-full "Files Backup 2025" completes cleanly.
7. **Wiki:** rebuild `wiki/clients/peaceful-spirit.md` (requested this session).

## Reference Information

- RMM API `http://172.16.3.30:3001`. Agent PST-SERVER `87293069-33b6-45e8-a68f-6811216cdb96`.
- Prior thread log: `session-logs/2026-06/2026-06-29-mike-dataforth-nwtoc-pst-deletion-scope-birthbio-corruption.md`.
- Server artifacts: `C:\PST-Recovery\{PreDelete-0624,PostDelete-0624,authdiff,incidentdiff,acl-backup-scanned-20260701-072725.txt}`.
- Vault: `clients/peaceful-spirit/server` (DA sysadmin).
- Data root: `G:\Shares\Scanned\@Clients\@Clients` (doubly-nested @Clients).
