I too am vexed by this. I administer an Exchange 2010 environment in an organization that siloes responsibilities, and patching is handled by a different group. To adhere to best practice I need all of my production machines to be patched identically. In the past, I have found discrepancies between what is reported as being installed with our patch management software, and what is actually installed on the machines. Therefore, quarterly, I perform a self-audit of the patches that are installed on the nodes under my visage in order to reconcile my results against the report generated by the patch management team. I spent significant time writing PowerShell scripts that automate this process, consolidate the results, and generate a macro-enabled pivot table detailing which patches are installed on each of my machines. Of the solution I authored, my favorite feature is the ability to simply scroll over the patch in the spreadsheet, which generates a call-out displaying the title of the patch without having to click anywhere. This greatly improves the speed with which I can perform the audit, as I can quickly determine a patches purpose. For instance I can determine that a cluster related patch is correclty installed on all of my clustered nodes, but not on my unified messaging hosts.
A screenshot of a report that I generated last quarter illustrating successful output can be seen by following the link below:
My frustration is with not with powershell per-se, rather with the webteam that decided to alter the method that they use. Now, they dynamically inject the title of the kb article’s page via the browser using jquery which means that I can no longer scrape the title via the following method:
$site = Invoke-WebRequest -uri $IRL;$Site.ParsedHtml.nameProp
I suppose that now I shall have to re-write my scripts to load the interop for the browser, fully render the page, parse the html using a regex and blah, blah, blah… What? re-write my code again next quarter again whey they decide to change the way they deliver the content?