What does the Best Practice Analyzer in Windows Server check for?

Whenever I install a server, I run the Best Practice Analyzer (BPA) for all installed roles just to check if I haven’t messed up.
But when I did it this morning for a Hyper-V installation, I was actually wondering what the BPA checks for…
Since I wasn’t able to find a list in the GUI, I went to my favorite tool: PowerShell.
First, the BPA has to be run… else we’ll get an error since the list with the things it checks for hasn’t been generated yet and therefor PowerShell can’t get the information.
Then we import the module for the Best Practice Analyzer:

Next, we need to select the proper BPA results:

Now, this gives us a lot of information… most of which we don’t need in this case… we only want to get the names of the checks.
As you can see in the output of the previous command, there seems to be a property named ‘Title’. In my experience, the name given in the output is not always correct. Especially Active Directory is very good in confusing people that way… the name of a column in your output is not always the name of the actual property.
To get the available properties we can filter on, put ‘Get-Member’ behind the command in a pipe:

Here you’ll see that there actually is a property called ‘Title’ which we can use.
So, to get a list of the names of all the checks the BPA performs for a Hyper-V installation:

Note: You can simply replace ‘Hyper-V’ in ‘Microsoft/Windows/Hyper-V’ for whatever role you want to get the checks for…

Leave a Reply

Your email address will not be published. Required fields are marked *