EXP-001 · PRIVATE · CASE STUDY
LabAssistant
Hyper-V lab automation for my colleagues: from a hand-written PowerShell tool (2022) to a C# lab orchestrator I designed and directed AI to build (2025–2026).
An internal tool I built for my colleagues. This page describes the problem, the design and the decisions in general terms — no code, screenshots or internal details.
The problem
My colleagues wanted to test Directory Services scenarios before recommending them to customers. What got in the way wasn’t Active Directory — it was building the Hyper-V lab: creating disks and VMs, installing Windows, wiring networks. Setting up one machine by hand took 30–60 minutes, and a lab with several machines took hours. That’s incidental work when what you actually want to learn is Kerberos.
v1 (2022): one button, one usable machine
I wrote v1 by hand in PowerShell with a XAML interface, without AI, in June–July 2022, and entered it in a hackathon that September with a small team (teammates prepared base images, a reference lab topology and the demo video).
- How it was fast: a sysprepped parent disk preloaded with troubleshooting tools, and a differencing disk per VM on top of it — no full disk copy per machine. An answer file skipped the setup screens. Result: about a minute per machine to a usable Windows desktop (SSD, prepared image). Machines deployed one at a time, so a three-machine lab took about three minutes instead of hours.
- Adoption: I presented and trained four teams — about 100 engineers. About half adopted it (my estimate, not telemetry).
- Honest limit: if someone modified the parent disk, every VM built on it broke. v1 had no protection against that; we handled it with training.
v2 (2025–2026): from one machine to whole labs
I rebuilt it in C# to deploy complete labs, not single machines. I designed the architecture; from February 2026 AI (OpenAI Codex) wrote most of the code under my direction — about 90% of the final code.
- Provisioning: each VM gets its own pipeline of steps (create disk, attach, create switch if missing, power on), assembled per machine.
- Guest configuration as a dependency graph: a domain join waits until the domain exists and is confirmed working; independent steps run concurrently under a resource-aware throttle.
- Failure handling: the first failure stops the deployment and rolls back what was created, in reverse order, with guards so cleanup never touches the base image.
- Status: tested on real Hyper-V with multiple domain controllers, domain-joined clients and child domains — but never distributed beyond a few testers, and now discontinued.
What I learned
- Directing AI is a skill. The AI wrote tests that checked the shape of the code instead of its behavior, and piled business logic into the main window. I caught both — but late. Review early and often.
- Designing a system isn’t the same as knowing every line of it. With most of the code AI-written, I now keep my own design notes and review the critical paths — like failure handling — myself.
Links
No public code or demo: internal tool.