A few months ago we were searching for an alternative to the sometimes troublesome CleanSlate tool for wiping changes to a Windows system on reboot. I came across Panos Macheras’ Windows 7 SteadyState Solution Simplified! and found it pretty interesting.
A combination of MDT and AutoIT scripting, this tool does one thing very simply: It creates a Differencing Virtual Hard Drive (VHD) on every boot, and on every reboot, that VHD is wiped and replaced with a new on. A much more straightforward (not to mention cost effective) means of undoing potentially harmful user changes.
For whatever reason, I couldn’t get this solution to work for our Laptop Lending program here at the University Library System at Pitt, so I got to work modifying it.
What you need to know:
- This solution requires some understanding of Microsoft’s Deployment Toolkit and was made to work with MDT 2013 specifically.
- Requires M. Niehaus’ CopyOEM MDT Script
- You’ll need a copy of AutoIT if you want to recompile the scripts.
Changes I’ve Implemented Here:
- Replaced command line scheduled task for VHD replacement with XML scheduled task: required to accommodate laptops as command line task scheduling does not allow for configuring the option to run script on battery
- Rewrote ConfigureSteadyState.exe and BootScriptSteadyState.exe to locate the drive which stores the VHD files. Drive letters were hard coded in original blog and this tended to vary on different machines. I believe the hard-coded drives where what started me on this journey.
ToDo:
Create a power scheme and scheduling system that will allow Windows 8 SteadyState pcs to reboot into their permanent drives for updates during maintenance periods.
Etc:
I originally rewrote the AutoIT scripts in Windows Batch because I’m a terrible coder and I may put them up on my Win8SteadyState repository at some point.
Download all scripts and compiled binaries here.
Thanks to Panos, Mike and all the others around the web who sent me in the right direction on this.