3.1 KiB
Windows Lab Housekeeping
tools/windows-housekeeping/Invoke-Housekeeping.ps1 is the idempotent lab guest
housekeeping script. It configures targeted policies, disables named scheduled
consumer/background tasks, stops named consumer nag processes, and removes the per-user
Microsoft.MicrosoftOfficeHub package when present. It does not uninstall generic
WebView/system components, change game files, networking, SSH, SMB, firewall, Defender
real-time protection, graphics/audio/runtime packages, or Windows servicing.
Run it as the existing administrative lab account over verified key-based SSH:
powershell -ExecutionPolicy Bypass -File C:\SotsRe\Invoke-Housekeeping.ps1 -Mode Inspect
powershell -ExecutionPolicy Bypass -File C:\SotsRe\Invoke-Housekeeping.ps1 -Mode Apply
powershell -ExecutionPolicy Bypass -File C:\SotsRe\Invoke-Housekeeping.ps1 -Mode Verify
The script writes sanitized JSON to C:\ProgramData\SotsRe\housekeeping-result.json.
The orchestrator copies that result to verify/results/housekeeping/ with the VM identity.
Protected-secret autologon is supported by ConfigureAutologon: stream the existing lab
account password on standard input from the approved private credential source. The script
first validates the credential with LogonUser, writes only the LSA DefaultPassword
secret, and then sets the non-secret Winlogon fields for user re. Do not place the
password on a command line, in a repository file, in logs, or in the plaintext Winlogon
DefaultPassword registry value. A free guest must be rebooted afterward to prove actual
console autologon; config-only verification is not a reboot proof.
Before each guest: verify identity/IP by MAC, inspect task/session/process activity, and
acquire a canonical campaign/runtime/leases/vm<ID>.json lease. Do not touch a guest with
an active game/test process, unknown console activity, or a lease held by another worker.
VM141's verified address in the current lab is 192.168.10.143.
Latest routine completion results (2026-09-09, actor housekeeping-completion, model
openai/gpt-5.5): VM140/141/144/145/146 have compliant policy/task/startup cleanup and
protected autologon configuration in verify/results/housekeeping/vm*-result.json. VM141,
VM144, VM145, and VM146 were reboot-proven with re on the console plus key-based SSH
recovery. VM140 was not rebooted in that quantum because its existing active console was
preserved; its autologon config and SSH were verified, and remaining msedgewebview2
processes were recorded as generic WebView, not removed.
Test preflight
After every reboot, and before capturing a new control/oracle, run Apply then Verify under
the VM lease and retain the sanitized result with the experiment. This is required by observed
behavior: Windows re-enabled the Defender scheduled scan and restarted OneDrive on VM146 after
login. The repeatable profile reapplies those controls; an earlier compliant JSON is not proof
of the current guest state. A failed preflight blocks the test rather than changing its baseline
mid-run. This profile preserves Defender real-time protection and Windows servicing.