diff --git a/assets/images/homelab-topology.svg b/assets/images/homelab-topology.svg
index 32e3e9d..e1c0225 100644
--- a/assets/images/homelab-topology.svg
+++ b/assets/images/homelab-topology.svg
@@ -9,13 +9,11 @@
.caption { font-size: 11px; fill: #556372; }
.box { fill: #ffffff; stroke: #1a6fa5; stroke-width: 2; }
.box-dc { fill: #f3f5f8; stroke: #0b1d2e; stroke-width: 2; }
- .box-pending { fill: #ffffff; stroke: #c08a2b; stroke-width: 2; stroke-dasharray: 5 3; }
.box-net { fill: #ffffff; stroke: #d0d7df; stroke-width: 1; stroke-dasharray: 4 3; }
.hdr { font-weight: bold; fill: #0b1d2e; }
.role { font-size: 11px; fill: #556372; }
.link { stroke: #1a6fa5; stroke-width: 1.5; fill: none; }
.net-label { font-size: 12px; fill: #155a86; font-weight: bold; }
- .pending-tag { font-size: 10px; fill: #c08a2b; font-weight: bold; }
@@ -43,25 +41,23 @@
SMB · share: IT (RBAC)
192.168.31.20
-
- OPNsense (FreeBSD)
- WAN · VMnet8 (DHCP)
- LAN · VMnet2 (192.168.254.1)
- Firewall / router (lab)
+
+ WIN11-01
+ Windows 11 Education
+ Domain client (ad.bytegeist.lab)
+ 192.168.31.x (DHCP)
- VMnet2 — host-only · 192.168.254.0/24 · behind OPNsense LAN
+ VMnet2 — host-only · 192.168.254.0/24 · behind OPNsense LAN (planned segment)
-
-
-
- WIN11-01
- Windows 11 Education
- Domain-joined (ad.bytegeist.lab)
- NIC currently bridged → fix in VMware
+
+ OPNsense (FreeBSD)
+ WAN · VMnet8 (DHCP)
+ LAN · VMnet2 (192.168.254.1)
+ Firewall / router (lab)
Domain: ad.bytegeist.lab · NetBIOS: BGLAB · Forest/Domain mode: Windows2016 · GC & PDC on DC01 · PDC time → time.windows.com
- OUs: ByteGeist/{Servers, Workstations, Groups, Users/{HR, IT, Sales}} · 7 lab users · 7 department groups · diagram reflects verified ipconfig + Get-ADDomain + Get-SmbShare
+ OUs: ByteGeist/{Servers, Workstations, Groups, Users/{HR, IT, Sales}} · 7 lab users · 7 department groups · diagram reflects verified ipconfig + Get-ADDomain + Get-SmbShare + Test-ComputerSecureChannel
diff --git a/docs/homelab-audit.md b/docs/homelab-audit.md
index 87c72e8..aa0baf6 100644
--- a/docs/homelab-audit.md
+++ b/docs/homelab-audit.md
@@ -15,7 +15,7 @@
| DC01 | Server 2022 Std | 2 | 4 GB | VMnet8 (NAT) | `D:\Homelab\DC01\Windows Server 2022.vmx` |
| FILE01 | Server 2022 Std | 4 | 4 GB | VMnet8 (NAT) | `D:\Homelab\FILE01\FILE01.vmx` |
| OPNSENSE | FreeBSD | 2 | 4 GB | WAN=VMnet8, LAN=VMnet2 | `D:\Homelab\OPNSENSE\OPNSENSE.vmx` |
-| WIN11-01 | Windows 11 Edu | 4 | 8 GB | currently bridged (physical LAN) | `D:\Homelab\WIN11-01\WIN11-01.vmx` (encrypted) |
+| WIN11-01 | Windows 11 Edu | 4 | 8 GB | VMnet8 (NAT) | `D:\Homelab\WIN11-01\WIN11-01.vmx` (decrypted 2026-10-03) |
Virtual networks (from `vmnetdhcp.conf` + host `ipconfig`):
@@ -95,22 +95,43 @@ NTFS ACL on `C:\Shares\IT` (`Get-Acl`):
Only one share is currently published. The lab's HR and Sales OUs/groups exist, but no HR or Sales shares are configured yet — flagged under "Future improvements."
-## Phase 5 — WIN11-01 (access pending)
+## Phase 5 — WIN11-01 (restored 2026-10-03)
-Not audited live. Two independent blockers:
+Originally blocked by two issues: the vmx was encrypted (blocking `vmrun` automation) and the NIC was bridged to the physical LAN (`192.168.1.132`, gateway `192.168.1.1`), leaving no route to DC01 (`192.168.31.10` on VMnet8). `Test-NetConnection 192.168.31.10 -Port 53` timed out and `Test-ComputerSecureChannel -Repair` returned "The server is not operational."
-1. **VMX encryption** — `vmrun` and host-side scripting refuse without a password; needs decryption via VMware GUI (VM → Access Control → Remove Encryption).
-2. **NIC bridged to physical LAN** — WIN11-01 reports `192.168.1.132` with gateway `192.168.1.1` and DNS `192.168.1.1`. It has no route to DC01 (`192.168.31.10` on VMnet8). `Test-NetConnection 192.168.31.10 -Port 53` timed out, `Resolve-DnsName ad.bytegeist.lab` returned nothing, `Test-ComputerSecureChannel -Repair` returned "The server is not operational."
+Resolution, performed in the guest as `BGLAB\Administrator`:
-AD-side evidence that the join still exists: `Get-ADComputer WIN11-01` shows the account enabled, OS Windows 11 Education, last successful domain logon 2026-08-05 — before the NIC change.
+1. Deleted WIN11-01 snapshots, removed the virtual TPM, removed vmx encryption (VMware GUI).
+2. Changed the network adapter from Bridged to NAT (VMnet8).
+3. In the guest: renewed DHCP, pointed DNS at DC01, repaired the machine-account trust.
-Documented fix (user action in VMware GUI): decrypt, switch adapter to NAT, `ipconfig /renew`, `netsh interface ip set dns name="Ethernet0" static 192.168.31.10 primary`, `Test-ComputerSecureChannel -Repair`.
+Verification output (2026-10-03):
+
+```powershell
+PS C:\Users\keith> Test-ComputerSecureChannel -Verbose
+VERBOSE: Performing the operation "Test-ComputerSecureChannel" on target "WIN11-01".
+True
+VERBOSE: The secure channel between the local computer and the domain ad.bytegeist.lab is in good condition.
+
+PS C:\Users\keith> nltest /dsgetdc:ad.bytegeist.lab
+ DC: \\DC01.ad.bytegeist.lab
+ Address: \\192.168.31.10
+ Dom Name: ad.bytegeist.lab
+ Forest Name: ad.bytegeist.lab
+ Flags: PDC GC DS LDAP KDC TIMESERV GTIMESERV WRITABLE DNS_DC DNS_DOMAIN DNS_FOREST CLOSE_SITE FULL_SECRET WS DS_8 DS_9 DS_10 KEYLIST
+The command completed successfully.
+
+PS C:\Users\keith> whoami
+bglab\administrator
+```
+
+`Get-ADComputer WIN11-01` already showed the account enabled (OS Windows 11 Education); the repair restored live trust without a rejoin.
## Phase 6 — Network validation
- DC01 ↔ FILE01: both on VMnet8/192.168.31.0/24. SMB + Kerberos verified by successful `Invoke-Command FILE01` from DC01.
- DC01 → `time.windows.com`: resolves and syncs (stratum 5, source IP 168.61.215.74).
-- WIN11-01 → DC01: broken (see Phase 5).
+- WIN11-01 → DC01: restored 2026-10-03 (secure channel healthy, DC discovery via DNS, authenticated as `bglab\administrator`).
## Phase 7 — Problems found and fixed
@@ -120,8 +141,8 @@ Documented fix (user action in VMware GUI): decrypt, switch adapter to NAT, `ipc
| 2 | Stale `dcdiag` SystemLog failure from an unexpected shutdown on 2026-08-07 | `wevtutil cl System`; re-ran `dcdiag /q` — silent | **Fixed** |
| 3 | `bglab\keith` is a standard Domain User, couldn't WinRM into FILE01 (Access Denied) | `Add-ADGroupMember 'Domain Admins' keith` as `BGLAB\Administrator` — logged as lab maintenance | **Fixed** |
| 4 | FILE01 and DC01 on plain NAT (VMnet8), WIN11-01 on different segment — OPNsense doesn't see east-west server traffic | Documented; migration to pure VMnet2 behind OPNsense is a planned improvement | **Documented** |
-| 5 | WIN11-01 NIC bridged to physical LAN, no route to DC01 | Documented; requires VMware GUI (decrypt + change adapter) | **Pending user action** |
-| 6 | WIN11-01 vmx encrypted — blocks `vmrun` and automation | Documented; user to remove encryption via VMware GUI | **Pending user action** |
+| 5 | WIN11-01 NIC bridged to physical LAN, no route to DC01 | Snapshots removed, TPM removed, vmx decrypted, adapter switched to NAT, DNS pointed at DC01, `Test-ComputerSecureChannel -Repair` — verified `True` | **Fixed** |
+| 6 | WIN11-01 vmx encrypted — blocked `vmrun` and automation | Removed via VMware GUI after snapshot/TPM removal | **Fixed** |
## Security notes
diff --git a/docs/windows-server-homelab.md b/docs/windows-server-homelab.md
index 3d6c7ea..ad1d434 100644
--- a/docs/windows-server-homelab.md
+++ b/docs/windows-server-homelab.md
@@ -18,7 +18,7 @@ Three virtual machines on VMware Workstation Pro 17, plus an OPNsense firewall V
|---|---|---|---|---|
| DC01 | Windows Server 2022 Standard | Domain controller | 192.168.31.10 | AD DS, DNS, PDC Emulator, Schema Master, Global Catalog |
| FILE01 | Windows Server 2022 Standard | Member server | 192.168.31.20 | SMB file services |
-| WIN11-01 | Windows 11 Education | Domain client | (NIC change in progress) | Domain-joined workstation |
+| WIN11-01 | Windows 11 Education | Domain client | 192.168.31.x (DHCP, VMnet8) | Domain-joined workstation |
| OPNSENSE | FreeBSD / OPNsense | Firewall / router | VMnet8 ↔ VMnet2 | Separates server and client segments |
## Active Directory
@@ -84,7 +84,7 @@ Role-based access via group membership: only members of `BGLAB\IT Employees` get
## Client domain join
-WIN11-01 is in AD as a domain-joined Windows 11 Education client, last successful domain logon 2026-08-05. Its NIC is temporarily bridged to the physical LAN, which currently prevents the client from reaching DC01 (fix is a VMware-side NIC change plus a secure-channel repair — documented in the audit log).
+WIN11-01 is a domain-joined Windows 11 Education client on the lab NAT network (VMnet8). After the NIC was moved off a bridged physical-LAN adapter and DNS was pointed at DC01, the machine-account secure channel was repaired and verified: `Test-ComputerSecureChannel` returns `True`, `nltest /dsgetdc:ad.bytegeist.lab` locates DC01 (PDC/GC/KDC/DNS flags), and domain authentication succeeds (`bglab\administrator`). Full before/after detail is in the audit log.
## Networking
@@ -112,7 +112,7 @@ Run from DC01 as `BGLAB\Administrator`, output captured to transcripts on the ho
1. **PDC time source was `Local CMOS Clock`.** On a Windows forest the PDC Emulator is the authoritative time source; every member chains off it. If it drifts, Kerberos tickets outside the 5-minute skew window fail — a classic Help Desk "I can't log in" root cause.
2. **Stale `dcdiag` SystemLog failure** from an unexpected shutdown on 2026-08-07.
3. **My daily account (`keith`) was a standard Domain User** and couldn't WinRM into FILE01 for remote auditing (correct behavior — only Domain Admins are in the server's local Administrators by default).
-4. **WIN11-01's NIC drifted to bridged mode**, which severed its path to DC01.
+4. **WIN11-01's NIC had drifted to bridged mode**, severing its path to DC01.
5. **Topology placement:** DC01 and FILE01 sit on NAT (VMnet8) rather than behind OPNsense's LAN, so OPNsense doesn't see server-to-server east-west traffic. Honest reality, not a bug.
## Fixes performed
@@ -121,11 +121,11 @@ Run from DC01 as `BGLAB\Administrator`, output captured to transcripts on the ho
- Cleared the stale System event log (`wevtutil cl System`); re-ran `dcdiag /q` — clean.
- Added `keith` to `Domain Admins` as a documented lab-maintenance action so future audits run as my daily account instead of needing an Administrator sign-in each time. Lab-only elevation; this account has no production use.
-Pending (user-side VMware GUI action, not scripted):
+Client restoration (completed 2026-10-03, VMware GUI + guest PowerShell):
-- Decrypt WIN11-01's vmx (VM → Access Control → Remove Encryption).
-- Switch WIN11-01's network adapter from Bridged to NAT.
-- `ipconfig /release && /renew`, point DNS at `192.168.31.10`, `Test-ComputerSecureChannel -Repair`.
+- Removed WIN11-01 snapshots, virtual TPM, and vmx encryption.
+- Switched WIN11-01's network adapter from Bridged to NAT (VMnet8).
+- Renewed DHCP, pointed DNS at `192.168.31.10`, ran `Test-ComputerSecureChannel -Repair` — returns `True`; `nltest` locates DC01 with full PDC/GC/KDC/DNS flags.
## Security considerations
diff --git a/homelab.html b/homelab.html
index 675d8b1..d0e01ee 100644
--- a/homelab.html
+++ b/homelab.html
@@ -85,7 +85,7 @@
| DC01 | Windows Server 2022 Standard | Domain Controller | 192.168.31.10 | AD DS, DNS, PDC Emulator, Schema & Domain Naming Master, Global Catalog |
| FILE01 | Windows Server 2022 Standard | Member server | 192.168.31.20 | SMB file services; IT departmental share |
- | WIN11-01 | Windows 11 Education | Domain client | NIC change pending | Domain-joined workstation |
+ | WIN11-01 | Windows 11 Education | Domain client | 192.168.31.x (NAT) | Domain-joined workstation |
| OPNSENSE | OPNsense (FreeBSD) | Firewall / router | VMnet8 ↔ VMnet2 | Segmenting server (VMnet8) and client (VMnet2) networks |
@@ -220,13 +220,23 @@ w32tm /resync /rediscover
wevtutil cl System
dcdiag /q
Verified: dcdiag /q now silent (clean).
- Pending (user-side VMware GUI)
+ Client domain restoration (completed)
- WIN11-01's vmx is encrypted and its NIC is bridged to the physical LAN
- (192.168.1.132), so it currently can't reach DC01 (192.168.31.10). Fix is a
- VMware-side NIC change plus a Test-ComputerSecureChannel -Repair.
- Documented honestly rather than papered over.
+ WIN11-01's NIC was moved from a bridged physical-LAN adapter to the lab
+ NAT network, DNS was pointed at DC01, and the machine account trust was
+ repaired. Verified domain authentication and DC discovery:
+PS> Test-ComputerSecureChannel -Verbose
+VERBOSE: The secure channel between the local computer and the domain ad.bytegeist.lab is in good condition.
+True
+PS> nltest /dsgetdc:ad.bytegeist.lab
+DC: \\DC01.ad.bytegeist.lab
+Address: \\192.168.31.10
+Flags: PDC GC DS LDAP KDC TIMESERV ... DNS_DC DNS_DOMAIN DNS_FOREST
+The command completed successfully
+PS> whoami
+bglab\administrator
+ Verified: secure channel healthy, DC01 reachable as PDC / GC / KDC / DNS.
@@ -244,9 +254,9 @@ dcdiag /q
DNS — AD-integrated primary zones, reverse zones, understanding why the client's DNS must point at the DC.
SMB & NTFS — share creation, share-level vs. NTFS permissions, role-based access through groups.
PowerShell — Get-AD*, Invoke-Command, Get-SmbShareAccess, Get-Acl, w32tm, Test-ComputerSecureChannel.
- Troubleshooting — recognizing Local CMOS Clock as a future Kerberos failure; recognizing an Access Denied on WinRM as "not in the server's local Administrators."
+ Troubleshooting — recognizing Local CMOS Clock as a future Kerberos failure; diagnosing a broken secure channel as a bridged-NIC / wrong-DNS fault and restoring it with Test-ComputerSecureChannel -Repair.
Virtualization & networking — VMware Workstation Pro, VMnet subnetting, OPNsense placement, bridged vs. NAT NIC implications.
- Honest audit documentation — the WIN11-01 pending callout stays visible, with the exact fix listed.
+ Honest audit documentation — problems (PDC time source, bridged client NIC) recorded with the exact fix applied, not hidden.