From: Max Vilimpoc Date: Wed, 26 Aug 2026 12:40:08 +0000 (+0200) Subject: dotfiles: a Windows 7 test-target setup script X-Git-Url: https://vilimpoc.org/repos/dotfiles/commitdiff_plain/541058e34fa7259b14e8842245e854686037c4af?ds=sidebyside;hp=541058e34fa7259b14e8842245e854686037c4af dotfiles: a Windows 7 test-target setup script Provisioning a Windows 7 VM so it can be driven from the host by VBoxManage guestcontrol takes a handful of settings that are easy to forget and easy to get wrong, and every one of them here was learned by hitting it: - Windows Error Reporting's dialog blocks a guestcontrol call until the host's timeout. A harness that scores a timeout as a failure then invents bugs that do not exist, so DontShowUI is not a nicety. - The host watches the guest with controlvm screenshotpng, so a screen saver or a blanked monitor makes every screenshot useless. - Bulk transfer over the VirtualBox shared folder is far faster than a copyto per file, but the mapping is per-user and does not survive into a new interactive session. The readiness report is the other half of the point. A test run against a box with no printer, or no audio capture device, reads as "the software under test refused" when the truth is "this VM never had one". It reports DWM composition for the same reason: with composition off, SetWindowDisplayAffinity fails with error 8 for every value, so anything testing screen-capture protection is testing nothing -- and Windows 7 forces the Basic theme while the install is not activated, which is exactly the state a throwaway test VM is usually in. Two shapes in the DWM check are load-bearing and are commented as such. Under guestcontrol, redirecting PowerShell's stdout to a file (or capturing it with for /f) hangs the run until the host times out, so PowerShell prints the verdict and the batch does not capture it. And the if/else must stay on ONE line: split across two, PowerShell treats the file as an incomplete command and waits on stdin forever. Two plausible cheaper checks are also wrong here, measured, and are called out so nobody re-introduces them: dwm.exe keeps running with composition off, and HKCU\...\DWM\Composition is the stored preference rather than the live state. Both report ENABLED while the API returns false. The elevated half is skipped with a notice rather than attempted, because a guestcontrol-launched process gets a UAC-filtered token even for an account in Administrators and cannot elevate itself. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01LLgzr9B13msJhCLpnmjNJS ---