Over the years, Boris has released a set of phenomenal tools, that saved lives of OpsMgr administrators quite some time in performing common OpsMgr tasks in OpsMgr 2007 and 2007 R2..
The sad news is that Boris has moved to another team within Microsoft. He has made a tremendous contribution over the years to the OpsMgr product, and I am sure he will rock on into his new role and team. At the same time he will be missed.
In order to not let those tools go to waste, since I know many people use them, I have asked him to give me the code of his tools and allow me to update and maintain those tools going forward. And so I did: I updated a couple of his tools to work with OpsMgr 2012:
All the above tools require the Operations Manager Console being installed on the machine where you run them, as well as the .NET framework 4.0.
According to my information, the above four tools were the most used/useful. Feel free to comment if need any other one being updated and/or have bug reports or feature requests – albeit I don’t promise I will be able to fix or update everything
Just like their predecessors, it is necessary to make clear that this posting is provided "AS IS" with no warranties, and confers no rights. Use of included utilities are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm
Changelog / Updates
[Updated on March 8th 2012 with MPViewer 1.9.1 that contains a fix for the Excel export of some MPs]
[Updated on March 15th 2012 with MPViewer 2.0 that now allows you to Unseal/Unpack MPs and MPBundles]
[Updated on March 21st 2012 with OverrideExplorer 3.5 which now allows to export Overrides to Excel]
[Updated on July 19th 2012 with MPViewer 2.1 that now shows the PublicKeyToken for referernces/dependencies]
[Updated on August 29th 2012 with MPViewer 2.1.2 that contains fixes to show Perf Objects, Counters and Frequency for some more modules]
[Updated on September 29th 2012 with MPViewer 2.2 that contains cosmetic as well as reliability/responsiveness fixes]
[Updated on October 3rd 2012 with MPViewer 2.2.1 that contains a fix for a crash when opening Unsealed MPs]
[Updated on November 20th 2012 with OverrideExplorer 3.6 that contains a fix for the “change target” operation that was creating broken overrides when changing target from a group to another group]
[Updated on April 26th 2013 with MPViewer 2.2.2 that contains a fix for some rules in the IIS MP that were incorrectly being reported as not generating alerts, and another fix for the "unseal/unbundle" menu item that sometimes was not being enabled]
[Updated on May 9th 2013 with MPViewer 2.3 that now can also handle MP Bundles that contain multiple ManagementPacks in a single bundle]
[Updated on May 14th 2013 with OverrideCreator 1.5 – first working version for OpsMgr 2012]
[Updated on November 23rd 2013 with OverrideExplorer 3.7 - now includes Unix computers in the computers view]
[Updated on February 17th 2014 with MPViewer 2.3.2 - now shows (most) event ID's and Event Sources for Event Rules]
[Updated on March 21st 2014 with MPViewer 2.3.3 - now allows both HTML and XLS export in bulk thru command line - more info in the comment thread below]
Jon - MPviewer has had some limited command line support for years, but only for HTML export.
All you have to pass is the full path to the MP file as first parameter, and the full path of the HTML file as second one, i.e.
C:\MPViewer.exe "C:\SampleMP.mp" "C:\SampleMPReport.html"
The way this is done in the code is a little bit hacky at the moment, and would require some amount of refactoring to make it more elegant and support both HTML and/or Excel. I have been thinking about it but haven't had time to improve it that way.
Ok, guys - I gave in to all the comments, and also posted OverrideCreator. Enjoy!
Daniele - Boris originally documented a switch
MPViewer.exe c:\Microsoft.Windows.Server.2003.mp c:\win2003.html AlertGeneratingWorkflowsOnly
Do you have a list of all switches that are valid?
@Payne - those are still the only command line switches: source file, destination file, AlertGeneratingWorkflowsOnly as third argument (defaults to false if not passed). Command-line switches support aren't really first class in the codebase and more of a later addition to support a specific scenario: batch exporting.
thanks Daniele! these are great tools!
Does Overrides Explorer 3.6 report on Linux servers? I'm looking at it for the first time. I see all the Windows servers in the Computers based view, but I don't see a single one of our Linux servers that are being monitored.
Cathy - OverrideExplorer currently it only looks at Windows computers in the "computer view". But it's good feedback about wanting to see the Unix computers too - I'll look into what it takes to enable that.
For now you can find those overrides in the 'Type view' as opposed to the 'computer view'.
@Cathy - it turns out it was a minor set of changes to enable Unix computers to show as well. I updated the post with version 3.7 which now does this. I have done very limited testing at this point, since I only have ONE Linux machine in my test environment, but it seems to work.
MPviewer 1.7 and 2.3 unable to read xml mp (saved in scom2007\health service state\management packs)...
version 1.7 keeps refering to JIT... I am running scom 2007 on windows 2k8 std
Any hint on why it is behaving like that ?
@Marie-anne, from what you write, I see you are trying to read MPs from the health service temporary folder? Why? Those 'MPs' in the folder are not really 'human-friendly': those are supposed to be consumed by the AGENT runtime. MPViewer won't open THOSE because they are not meant to be read that way. Those MPs are not 'importable' at the SDK layer, and in those 'MPs' all sort of things are strange: a lot of IDs in those files have been changed and resolved/replaced with GUIDs; the MPs think they are 'sealed' but appear in XML/unsealed format, etc...
MPViewer WILL only open MPs (both sealed and unsealed) that CAN be consumed by the SDK layer --> it will consume MPs that could be IMPORTED in the system. Those in the agent's temporary folder are not importable.
Also note that I don't maintain MPViewer 1.7, just the 2.x version that works with 2012 - mostly to avoid myself the hurdle of having to have multiple environments to compile the tool against the 2007 OR the 2012 assemblies, and because some of the fixes I made later are not backwards-compatible. 2.x requires you to have .NET 4.0 or above and the OpsMgr 2012 Console installed.
Great tools, thanks very much.
For the latest MPViewer, I notice that it provides columns for Event ID. The column populates when looking at any MP that I've created, but if I look, for example, at a Windows MP, the Event ID and Source columns remain blank for all rules whether the MP is sealed or not. I know the Event IDs are there, and I can search the XML to find them, but I'm wondering why they don't show up in MPViewer. Apologies if this is some basic thing I'm missing.
John Austin - the complexity with MPs is that there isn't a SINGLE a definitive place where you can find all the thresholds.... MP elements are like LEGO bricks, and you can re-combine them in infinite ways. It's not rocket science... there's quite a lot of logic in MPViewer to deal specifically with the most common monitor types, but not all of them.
The rules/monitors you are after, are probably using custom monitor/module types defined in the MP itself and the application doesn't know where to look in that XML, because they likely employ a combination of multiple data sources (i.e. events from multiple logs, repeated events, scripts, etc). If you can point me at a couple such examples (=exact MP, version and Rule Name) I can take a look.
Thanks, Daniele. Quick background: We've been provided a long list of event IDs to monitor for in Windows, and want to find out whether or not some of them already exist in the default MP.
For example, the "NTFS - File System Corrupt Properties" rule in the Windows 2008 Monitoring MP is a fairly basic Event ID rule that looks for source "DISK" or "Ntfs" and ID 41 or 55. I'm guessing that maybe the MPViewer can't show that info because it's got the ORs in there and the viewer only allows for a single ID and a single source?
John Austin - I just took a quick look at the code, and you are right: even for EVENT Rules specifically, the current implementation is only meant to support the scenario where the workflow is looking at a single event ID from a particular source. In all other scenarios, the info will not be populated. I'd have to see if I can extend that, but I am not sure when I'll have time to try to do it.
Geez, Daniele, what am I paying you for? ;)
I can use the xml to find what I'm looking for. Thank you!