Build Windows 2012 SQL 2012 multi-subnet five node AG labs with one command using Hyper-V and DSC
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

OftenOn PowerShell Module by Cody Konior

OftenOn logo

Build status



OftenOn is my latest project to spin up a 5-node multi-subnet Availability Group on SQL Server 2012 and Windows Server 2012 with one command. How? Through Hyper-V, Desired State Configuration, the Lability PowerShell module, and an immense amount of work.


  • Install-Module OftenOn

Major functions

  • New-OftenOnLab
  • Stop-OftenOnLab
  • Start-OftenOnLab
  • Remove-OftenOnLab


Building the OftenOn Lab

It takes time on the first run to download about 10GB of Evaluation ISOs from Microsoft. After this though each time the lab is destroyed and competely recreated takes 45-60 minutes. You'll know it's done when all the VMs go to the login screen.

Show the OftenOn VMs

Then remote in yourself! Remote Desktop from your machine should work to the short computer names (e.g. CHDC01) via IPv6 but it may not work on some configurations.

Username LAB\LocalAdministrator Password Local2018!

The VMs built are as follows:

  • CHDC01 the domain controller in the Chicago subnet that also does routing for other subnets.
  • CHWK01 a workstation in Chicago with .NET 4.7.2 and SSMS 17.9.
  • SEC1N1 SEC1N2 SEC1N3 are three nodes of the C1 cluster in the Seattle subnet.
  • DAC1N1 DAC1N2 are two nodes of the C1 cluster in the Dallas subnet.

The C1 cluster has an Availability Group (AG1), a listener (AG1L), and a database (DummyAG1). It's all sync'd to Dallas and ready to failover for your testing!

All VMs have WMF 5.1 installed. There's a couple resources (like SQL patches and the .NET 4.7.2 updater) on \CHDC01\Resources. Those aren't installed everywhere because that's part of the fun of the lab - exploring various issues with and without them. It's also loaded with all my other PowerShell modules.

Show the OftenOn AG