At the start of 2015 my company was still building a lot of new Windows servers manually (physical and virtual). Each of these servers had a check sheet of what was completed and what wasn’t. Sometimes stuff would be missed for one reason or another, which is why the servers typically went through a process of QA (Quality Assurance).
This QA check was a time consuming manual process that involved someone logging into each server and checking that everything was built and configured as it should be, as well as making sure all the correct tooling was installed (AV, SCOM and SCCM agents, etc). This typically took a good 2 hours per server. Results were filled in to an Excel spreadsheet and filed away somewhere as an audit trail.
Fast forward to today, and those servers are now mostly built via our in-house automation process, however there is still some manual configuration that is required. The QA process has also improved. I have taken the manual spreadsheet and converted it into separate PowerShell scripts that are ‘compiled’ into one large script, that is just shy of 8000 lines.!
This script takes less than a minute to complete over 70 checks and write a HTML report for each viewing
My scripts are currently at version 3 and have been released into the wild so that other people can take advantage of the hard work I put in to create them.
I have spent the best part of 18 months creating and tweaking these scripts. I started with a broken system of about 40 QA checks and got them working. I then expanded and enhanced the number and quality of the scripts as well as the underlying engine.
As of today (2016-09-06) there are 75 checks. Hopefully with some community input and help we can increase that.
All the code is available for anyone to play with on my GitHub repository: https://github.com/My-Random-Thoughts/Server-QA-Checks