All notable changes to Dummy.Lab are documented here. Format follows Keep a Changelog. Versioning follows Semantic Versioning.
First public release. Dummy.Lab is a Hyper-V lab automation platform for building, inspecting, and monitoring isolated Windows Server AD lab environments.
Single-line end-to-end composition:
Get-DLabGoldenImage -OSKey WS2025_DC |
New-DLab -LabName Demo |
Add-DLabVM -Role Server |
Add-DLabVM -Role ServerEvery operation is recorded as a DLab.Operation document with per-step durations. Every narrative line is a DLab.Event in a JSONL log. Both are central, survive lab teardown, and are queryable via Get-DLabOperation / Get-DLabEventLog.
Configuration and discovery (6): Get-DLabConfig, Set-DLabConfig, Test-DLabConfig, Get-DLabCatalog, Find-DLabISO, Get-DLabISOCatalog
Inventory (4): Get-DLab, Get-DLabVM, Get-DLabNetwork, Get-DLabGoldenImage
State primitives (5): Get-DLabState, Update-DLabState, New-DLabVMSlot, Complete-DLabVMSlot, Remove-DLabVMSlot
Network primitives (7): Get-DLabNetworkConfig, Get-DLabNAT, Find-DLabFreeSubnet, New-DLabSwitch, Remove-DLabSwitch, Set-DLabNAT, Remove-DLabNAT
Storage primitives (3): New-DLabVHDX, Optimize-DLabVHDX, New-DLabDifferencingDisk
Host preflight (2): Test-DLabHost, Invoke-DLabPreflight
VM primitives (6): New-DLabVM, Start-DLabVM, Stop-DLabVM, Wait-DLabVM, New-DLabCheckpoint, Test-DLabVM
Guest execution (2): Send-DLabGuestFile, Invoke-DLabGuestScript
Golden images (6): New-DLabGoldenImage, Remove-DLabGoldenImage, Protect-DLabGoldenImage, Test-DLabGoldenImage, Import-DLabGoldenImage, Export-DLabGoldenImage
Composition (6): New-DLab, Add-DLabVM, Remove-DLabVM, Remove-DLab, Test-DLab, Set-DLabInternet
Observability (5): Get-DLabOperation, Get-DLabEventLog, Watch-DLabOperation, Get-DLabMetrics, Export-DLabReport
- Live off the land. Every Tier 2/3 primitive wraps a Microsoft cmdlet (
New-VM,New-VMSwitch,New-VHD,Checkpoint-VM,Optimize-VHD, etc.), enriching with lab context, event emission, and typed output. Nothing is reimplemented. - Composition, not duplication. High-level actions (
New-DLab,Add-DLabVM,New-DLabGoldenImage) are scripts that call primitives. One thing per cmdlet. - Data delivery, not live API. Events and operations written to disk as JSONL / JSON. SIEMs, log shippers, dashboards pull on their own schedule.
- Central audit trail. Operations and events stored in
<storage>/Operations/and<storage>/Events/respectively. Survives lab teardown. Failed builds, destroyed labs, and orphaned state all leave a retrievable record. - One module. No peer modules, no NestedModules. Everything inside
DummyLab.
- Module (
Import-Module DummyLab) is the API. 52 public cmdlets, automation-friendly. DLab.ps1is an in-terminal reference / cheat-sheet printer. Shows the actual DLab cmdlets users should run for each workflow; does not execute them. Topics:quickstart(default),build,lab,health,teardown,report,all.
DomainSuffixdefault isinternal(IANA-reserved 2024 private-use TLD).LabNamedefaults toDummy.New-DLab,Add-DLabVM, andTest-DLaball fall back to the configuredLabNamewhen neither the parameter nor a pipeline input is supplied.Remove-DLabandRemove-DLabVMkeep their mandatory-Name/-LabNameby design - destructive operations must always name their target explicitly.- Event log at
<storage>/Events/dlab-events-<yyyy-MM>.jsonl(local-time ISO 8601). - Operations at
<storage>/Operations/*.json(central, one file per run). - Override bundled config via
%APPDATA%\DummyLab\config.psd1or theDUMMYLAB_CONFIGenvironment variable.
- Multi-host / cluster deployment is out of scope.
- Non-Windows guests are out of scope.
- No retention policy on the Operations folder yet. Manually archive old files if the folder grows beyond your audit window.
- Windows Server or Windows with the Hyper-V role and the Hyper-V PowerShell module.
- PowerShell 5.1 or PowerShell 7.
- Administrator elevation.
- Minimum 4 GB RAM on the host (8 GB+ recommended for running multi-VM labs).