12 KiB
User
- User: Mike Swanson (mike)
- Machine: GURU-5070
- Role: admin
Session Summary
Resumed the Peaceful Spirit multi-site AD+DFS work from the 2026-06-11 plan. Read-only recon
(via GuruRMM) revealed the environment was far past the plan baseline AND broken: PST-SERVER2
had already been promoted as a second DC with DFS roles ~200+ days ago, then the site
disconnected for ~7 months. PST-SERVER2 was a past-tombstone-lifetime DC — AD replication
dead both directions (err 8614 "exceeded tombstone lifetime", err 0x8009030C broken secure
channel), SYSVOL DFSR stale 224 days (Event 4012), data DFS-R (PST-DFS/Shares) stale 200
days, and its DFS-R data target drive (a dynamic disk holding D:\Shares) was physically
missing (diskpart showed "Disk M0 Missing"). A past-TSL DC must never resume replication
(lingering-object reanimation risk), so the plan shifted from "fix SYSVOL" to evict + rebuild
SERVER2.
Executed a gated runbook (clients/peaceful-spirit/AD-DC2-REBUILD-RUNBOOK.md): Gate 0 pre-flight
- SYSVOL/GPO backup; Gate 1 force-demote PST-SERVER2; Gate 2 metadata cleanup on PST-SERVER; an authoritative D4 SYSVOL restore on PST-SERVER; Gate 3 re-join + re-promote PST-SERVER2 as a fresh DC, then a D2 non-authoritative SYSVOL sync to fix its stale leftover DFSR database. End state: two healthy DCs, AD replication 0 errors both directions, SYSVOL DFSR State 4 Normal on both (11 GPOs each), both GC, both advertising as logon servers. The 224-day-broken AD is fully repaired and NW now has a local DC surviving a VPN outage.
Then did Gate 5 — G: cleanup on PST-SERVER. Investigation showed G: is the OLD server's
former C: drive (live OS runs from C:; everything OS-related on G: dated 2009-2018, profiles named
*.NEWSERVER). Deleted the entire dead old-OS install (~99 GB: Windows, Users, Program Files*,
ProgramData, $Recycle.Bin, 13 misc folders) using takeown + robocopy-mirror for
TrustedInstaller-protected files, and bounded G: VSS shadow storage from UNBOUNDED to 25 GB
(trimmed 41 GB -> 9.6 GB). G: free went 51 GB -> 182 GB (~131 GB reclaimed). Live data
(G:\Shares, ServerFolders, System Volume Information) untouched.
Gate 4 (data DFS-R rebuild + SERVER2 data-volume decision) and several follow-ups remain.
Key Decisions
- Evict + rebuild SERVER2 (not repair). Past tombstone lifetime -> resuming replication risks lingering-object reanimation. Force-demote -> metadata cleanup -> clean re-promote sidesteps the whole stale-AD/SYSVOL mess. Safe because PST-SERVER holds ALL 5 FSMO + is GC; SERVER2 was only an additional DC.
- D4 authoritative on PST-SERVER, D2 non-authoritative on SERVER2. PST-SERVER's SYSVOL was State 5 (InError) from the old 4012; D4 made it the authoritative source. After re-promotion, SERVER2's SYSVOL hit 4012 again from a leftover DFSR database from its prior DC life -> D2 forced it to discard the stale DB and re-sync fresh.
- Forced-removal method.
Uninstall-ADDSDomainController -ForceRemovalis blocked by a non-skippable test (General.21) while the DC is a DNS server + GC. Fix: clear the GC flag (nTDSDSA options=0) and uninstall the DNS role (reboot), THEN force-remove.-SkipPreChecks/-Force/-Confirm:$falsedo NOT bypass General.21. - AD writes need DA creds via FQDN. Agent SYSTEM context can't do metadata cleanup. Use
-Credential sysadmin -Server PST-SERVER.PEACEFULSPIRIT.local(FQDN, valid SPN).-Server localhostfails with a Kerberos SPN error; WinRM loopback with creds also failed. - G: cleanup confirmed as old-OS drive. Live OS on C:; G: = old server's C: (2009-2018 dates,
*.NEWSERVERprofiles). Deleted whole old OS; kept Shares/ServerFolders/SVI. Bounded VSS rather than clearing (keep recent Previous-Versions history).
Problems Encountered
get-fielddot-notation bug:vault.sh get-field clients/peaceful-spirit/server credentials.passwordreturned the literal string "null" -> every DA attempt sent password "null" -> auth rejected (~6 bad attempts; harmless, domain LockoutThreshold=0). Real passwordr3tr0gradE99!was read from the fullvault.sh get. Use fullget(or verify the field path) for nested creds.- PowerShell-over-RMM quoting traps (recurring): scripts are wrapped in bash single quotes, so
(a) can't use single quotes inside (property names like
$obj."prop"must use double quotes), (b)\"over-escaping breaks-join, (c)$g:parsed as a drive ref -> use${g}. Several commands failed to parse (no-ops) until fixed. Uninstall-ADDSDomainControllerparameter-set / General.21 — see Key Decisions.- AV grabbed mingw curl ("curl: Permission denied") intermittently; Mike disabled AV.
- SERVER2 slow reboots — DNS-role removal + DC promotion finalize add several minutes to boot;
RMM
last_seengave false "online" before the real reboot took hold (verify actual state, not just the timestamp). - dcdiag SysVolCheck/NetLogons failed right after SYSVOL init -> fixed by
Restart-Service Netlogon(re-advertise). - Stubborn OS files survived
rd /s /qeven after takeown -> robocopy-mirror-from-empty +rdcleared them. - Free-space readout bug: WMI filter
DeviceID=''G:''(doubled quotes) returned 0; used(Get-PSDrive G).Free/Get-Volumeinstead.
Configuration Changes
AD / DC (domain PEACEFULSPIRIT.local, via GuruRMM):
- PST-SERVER: SYSVOL backup ->
C:\PST-Backup\SYSVOL-Policies-20260613-1611; GPO backup ->C:\PST-Backup\GPO-20260613-1611(11 GPOs). Strict Replication Consistency already =1. - PST-SERVER: D4 authoritative SYSVOL restore (msDFSR-Enabled FALSE+options=1, then TRUE) -> Event 4602, SYSVOL State 4.
- PST-SERVER: metadata cleanup of PST-SERVER2 (server object + NTDS Settings + computer account removed; DNS A/NS/CNAME/7xSRV removed in both zones).
- PST-SERVER2: cleared GC flag (nTDSDSA options 1->0); uninstalled DNS Server role; force-removed AD DS (became WORKGROUP member); re-joined PEACEFULSPIRIT.local; re-promoted as DC (site NW, InstallDns, GC); D2 non-authoritative SYSVOL sync (Event 4604) -> State 4, 11 GPOs, SYSVOL+ NETLOGON shared; Netlogon restarted (dcdiag green); DNS client set to 192.168.0.2.
- PST-SERVER: G: cleanup — deleted old-OS dirs (Windows, Users, Program Files, Program Files (x86), ProgramData, $Recycle.Bin, MSOCache, v12, v13, RAPID, 8x8, Brother, Intel, inetpub, Support, BackupTemp, Documents and Settings, $WINDOWS.~BT). VSS shadow storage for G: resized to maxsize=25GB. G: free 51 -> 182 GB.
Repo / vault:
- Created
clients/peaceful-spirit/AD-DC2-REBUILD-RUNBOOK.md. - Vault: created
clients/peaceful-spirit/server2.sops.yamlwithlocal_admin_passwordanddsrm_password(see below). Pending publish via sync.
Credentials & Secrets
- PST domain admin:
PEACEFULSPIRIT\sysadmin/r3tr0gradE99!(vaultclients/peaceful-spirit/server, fieldcredentials.password). NOTE the get-field dot bug above. - PST-SERVER2 new local admin + DSRM: generated this session, stored in vault
clients/peaceful-spirit/server2(local_admin_password,dsrm_password). Values are in the vault only (not pasted here per policy); entry is not yet pushed to Gitea. - [WARNING] DA password exposure: the sysadmin password was passed (base64-wrapped) in RMM
command_text for the cleanup/D4/D2/promote/join commands, so it is recoverable from the GuruRMM
command history/DB. RMM is internal; consider rotating
sysadminif RMM DB exposure is a concern.
Infrastructure & Servers
- Domain PEACEFULSPIRIT.local (NetBIOS PEACEFULSPIRIT? -> uses PEACEFULSPIRIT). Win2016 domain/forest functional level. LockoutThreshold=0 (lockout disabled).
- PST-SERVER — 192.168.0.2, site CC, holds all 5 FSMO, GC, DNS, Server 2016 Essentials.
GuruRMM
87293069-33b6-45e8-a68f-6811216cdb96(v0.6.66). G: 465.7 GB (182 GB free post-cleanup); C: 931 GB; D: 931 GB (Recovery-EXT/Recovery2019/"Unknown folder" ~700 GB of old backup junk). - PST-SERVER2 — 192.168.1.127 (DHCP), site NW, GC, DNS, Server 2019 Standard. GuruRMM
5d2d7ba0-3903-4aa3-9e97-6ca4424ffe65(v0.6.66). Single 1 TB NVMe (Crucial P2), C: only (no D:); old dynamic data disk is MISSING. - AD Sites & Services (pre-existing, correct): sites CC + NW; subnets 192.168.0.0/24 -> CC, 192.168.1.0/24 -> NW. S2S VPN between sites is UP (389/445/135/88 reachable SERVER2->SERVER).
- DFS namespace
\\PEACEFULSPIRIT.local\PST-Files-> folderShares(root target only on PST-SERVER). DFS-R groupPST-DFSreplicatedShares(G:\Shares <-> D:\Shares) — currently broken/stale, to be rebuilt at Gate 4. - Business data on PST-SERVER
G:\Shares: Private ~154 GB, Scanned ~105 GB, ITServices ~5 GB (~265 GB). A serviceSshWiaRestartruns fromG:\Shares\ITServices\...(Fujitsu scanner).
Commands & Outputs
- Tombstone evidence:
repadmin /replsummary-> 8614 / 0x8009030C, 100% fails (pre-rebuild). - Force-demote (after clearing GC + DNS role):
Uninstall-ADDSDomainController -ForceRemoval -LocalAdministratorPassword <pw> -NoRebootOnCompletion -Force-> Status=Success. - Metadata cleanup:
Remove-ADObject -Recursive -Server PST-SERVER.PEACEFULSPIRIT.local -Credential $credonCN=PST-SERVER2,CN=Servers,CN=NW,CN=Sites,...+ computer object; DNS viaRemove-DnsServerResourceRecord. - D4/D2:
Set-ADObject <SYSVOL Subscription DN> -Replace @{ "msDFSR-Enabled"=$false/$true; "msDFSR-options"=1 (D4 only) }+net stop/start dfsr+dfsrdiag pollad. Events 4114 -> 4602 (D4) / 4614 -> 4604 (D2). - Re-promote:
Install-ADDSDomainController -DomainName PEACEFULSPIRIT.local -Credential $cred -SafeModeAdministratorPassword $dsrm -SiteName NW -InstallDns -Force -NoRebootOnCompletion. - Final health:
repadmin /replsummary0/5 fails both DCs; dcdiag PST-SERVER2 passed Advertising/SysVolCheck/NetLogons afterRestart-Service Netlogon. - G: cleanup: takeown /f /r /d y; icacls grant; robocopy /MIR; rd /s /q.
vssadmin resize shadowstorage /for=G: /on=G: /maxsize=25GB.
Pending / Incomplete Tasks
- Gate 4 — data DFS-R rebuild: decide PST-SERVER2 data volume (shrink C: / add disk /
folder-on-C:), recreate
Sharesfolder target on SERVER2, re-establish PST-DFS replication, and ADD PST-SERVER2 as a 2nd namespace root target (namespace HA for VPN-outage). Clean the orphaned PST-DFS member left from metadata cleanup. - PST-SERVER2 static IP — currently DHCP 192.168.1.127; DCs should be static (dcpromo warned).
- Stale DNS tidy: extra
192.168.1.5A record for PEACEFULSPIRIT.local;.240RRAS-pool registration on PST-SERVER. Identify what 192.168.1.5 is (a resolver in SERVER2's DNS list). - Vault publish: push
clients/peaceful-spirit/server2.sops.yaml(handled by this save's sync). - Optional: rotate
sysadmin(RMM command_text exposure); clean D: backup junk on PST-SERVER (~700 GB) if not needed; removeC:\PST-Backup\*once rebuild confirmed stable. - Wiki: update
wiki/clients/peaceful-spirit.md(now 2 DCs; SERVER2 rebuilt; G: cleaned).
Reference Information
- Runbook:
clients/peaceful-spirit/AD-DC2-REBUILD-RUNBOOK.md. - Backups on PST-SERVER:
C:\PST-Backup\SYSVOL-Policies-20260613-1611,C:\PST-Backup\GPO-20260613-1611. - Vault:
clients/peaceful-spirit/server(DA),clients/peaceful-spirit/server2(new local admin+DSRM). - GuruRMM agents: PST-SERVER
87293069-33b6-45e8-a68f-6811216cdb96; PST-SERVER25d2d7ba0-3903-4aa3-9e97-6ca4424ffe65. RMM APIhttp://172.16.3.30:3001. - KB 2218556 (authoritative/non-authoritative DFSR SYSVOL D4/D2).