I came across vCheck a while back, and it is a very nice reporting tool, although not it’s original intent I believe, but you can read more about it over at Virtu-Al’s site. A recent update to the tool was the inclusion of plugins. This made it possible for anyone to use the framework to report on more or less anything you need.
A lot of my job deals with Active Directory, and I have built up a fairly decent list of functions that get me through my day. When I grabbed the latest version of vCheck I thought it would be fun to use what I had already to present a nicely formatted HTML report. So this is my first stab at writing something up and making it available.
There are a total of 6 scripts and I’ll document each and what it does here.
This is a very simple script. It connects to my google code site and downloads the latest revision of my ActiveDirectoryManagement Library. This file is downloaded to your computer and dot-sourced in so I can use some of my functions. I had thought about just pulling the specific functions I wanted out, but this seemed a nice clean way of handling it. I had also thought about deleting the file immediately after sourcing it in, but that seemed weird to me.
This script uses two of my functions, Get-ADObjects and Get-StaleComputerAccounts to get information about the number of users objects, number of computer objects, and the number of computer objects that haven’t reset their password in the past 90 days. It also makes a connection to the local domain and returns information about the number of forest domains, domain controllers and the mode of the domain.
This script takes just over 30 seconds to return information from a large domain.
This script uses the Get-FSMORoleOwner function that I pretty much stole from Boe Prox. It’s a wonderful function that returns the owners of the various roles within the Domain. I’ve used this to verify that everything was as it should be after seizing roles and so on.
This uses my Get-ADGroupMembers function to return the user accounts that are direct members of the Domain Admins group in the domain.
This script uses two new functions I created yesterday, Get-GPO and Get-UnlinkedGPO. They return exactly what you think they return. In this situation I simply return the count of each. You will need RSAT or Group Policy Management Console installed in order for the functions to work.
This script takes about 5 minutes to run against a domain with nearly 1,000 GPO’s.
This script connects to the domain and returns the Name, OS and Site for each Domain Controller available.