Exchange 2013 Addendum MP – for Exchange 2013 and 2016






The Exchange 2013 MP has been released for some time now. The current version at this writing is 15.0.666.19 which you can get HERE

This MP can be used to discover and monitor Exchange Server 2013 and 2016.





However, one of the things I always disliked about this MP – is that it does not use a seed class discovery. Therefore – it runs a PowerShell script every 4 hours on EVERY machine in your management group, looking for Exchange servers. The problem with this, is that it doesn’t follow best practices. As a general best practice, we should NOT run scripts on all servers unless truly necessary. Another issue – many customers have servers running 2003 and 2008 that DON’T have PowerShell installed! You will see nuisance events like the following:


Event Type: Error
Event Source: Health Service Modules
Event Category: None
Event ID: 21400
Date: 3/2/2016
Time: 3:29:26 AM
User: N/A
Computer: WINS2003X64
Failed to create process due to error '0x80070003 : The system cannot find the path specified.
', this workflow will be unloaded.
Command executed: "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" -PSConsoleFile "bin\exshell.psc1" -Command "& '"C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Monitoring Host Temporary Files 85\26558\MicrosoftExchangeDiscovery.ps1"'" 0 '{3E7D658E-FA5E-924E-334E-97C84E068C4A}' '{B21B34F9-2817-4800-73BD-012E79609F7E}' 'wins2003x64.dmz.corp' 'wins2003x64' 'Default-First-Site-Name' 'dmz.corp' '' '' '0' 'false'
Working Directory: C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Monitoring Host Temporary Files 85\26558\
One or more workflows were affected by this.
Workflow name: Microsoft.Exchange.15.Server.DiscoveryRule
Instance name: wins2003x64.dmz.corp
Instance ID: {B21B34F9-2817-4800-73BD-012E79609F7E}
Management group: OMMG1



So, I have created an addendum MP which should resolve this. My MP creates a class and discovery, looking for “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\Setup\MsiInstallPath” in the registry. If it finds the registry path, SCOM will add it as an instance of my seed class.



Then, I created a group of Windows Computer objects that “contain” an instance of the seed class. 



Next, I added an override to disable the main script discovery the Exchange 2013 MP.

Finally, I added an override to enable this same discovery, for my custom group. This should have the effect that our Exchange discovery script ONLY runs on server that actually have Exchange installed (based on the registry key)




This works for discovering Exchange 2013 and Exchange 2016 with the current Exchange 2013 MP.


You can download this sample MP at the following location: