VHD

Building a Desired State Configuration (DSC) Lab

Recently I presenting at the Indianapolis PowerShell User Group and talked about Desired State Configuration. The presentation was 100% demonstrations, and I decided it would be a good idea to provide all of the PowerShell commands/instructions I used to build my lab environment for the presentation.

Note: Please note that these instructions were written using multiple Experimental DSC Resources, Microsoft and I myself provide no guarantee that these will work in a production environment. I strongly encourage that you use test environments that do not matter until you feel comfortable with DSC.

Pre-requisites

  • Licensed/Trial Media for Windows Server 2012 R2
  • An installed/updated Sys prepped VM Parent Disk
    • Stored at D:\Templates\Server2012R2.vhdx
  • a Virtual Switch within Hyper-V Configured as a Private, named “Private Network”
  • At least 7GB of free memory
    • You can adjust this all the way down to just 4GB
  • Downloaded copy of the latest DSC Resource Kit – Download Here

Now before we dive into the scripting component of this blog post I want you to know that this is not 100% automated. You will have some manual steps here and there, it is possible to 100% automate – but that will require significantly more effort. Please continue reading for instructions on this demonstration.

Storage Space Virtual Disk Disconnected on Restart

So I recently had to rebuild my Server 2012 virtual server. I had storage spaces setup and after I finished the install the Virtual Disk was not mounted. I realized that I was able to bring it all back online, but every restart it had to remount the VHD.

I had decided there must be a way to fix it and decided to see what the properties were within PowerShell. I ran a Get-VirtualDisk which showed me my single VHD (pictured below)

I was thrilled when I saw the IsManualAttach property, with a simple execution of Set-VirtualDisk Data -IsManualAttach 0, I executed a Get-VirtualDisk and verified it took the settings change. After a restart the VirtualDisk was already mounted and resolved my problem with only two PowerShell commands.