Our Active Directory lead recently complained to me that he didn’t have a good way to compare Group Policy Objects. I had already written the Group Policy Reporter, which exports GPOs to HTML files, and it occurred to me that comparing two HTML files would be pretty easy. But my experiments with Compare-Object led to some pretty ugly results. I frequently compare documents using MS Word, and I decided to use Word to do the comparison of the files.
The new script, GPOCompare.ps1, makes a list of your GPOs and displays that list using Out-GridView. After you select two GPOs, you are asked which is the “original” (earlier) GPO for Word to use as the original document. The HTML reports are created, then a comparison is made using Word. This script requires PowerShell 3, The Group Policy Management Console, and Word installed.
The Word COM object is not fun to work with in PowerShell. In particular, you cannot use $Null for some of the unused parameters, and note that many must be explicit references, example [REF]$True.