Using the Operations Manager 2007 R2 Workflow Analyzer

I’ve only had my hands on the OpsMgr MP Authoring Resource Kit for about 24 hours now, but already the tools are proving to be invaluable.   This post describes a problem that I was able to investigate with the Workflow Analyzer tool to determine the exact cause of the issue.


In a management pack I’m working on, I had a composite workflow designed to calculate SNMP network interface throughput and utilization by collecting the 32bit and 64bit in and out octet counters for an interface.  The SnmpProbe passes the values for all four VarBinds to an Expression Filter, which confirms that either VarBinds 1 and 2 (64bit) or VarBinds 3 and 4 (32bit) have values greater or equal to zero.   The Expression Filter than passes matched data items to a PowerShell property bag probe, which compares the values to a previously collected value set (stored in a temporary file in the file system) in order to calculate delta values and interface utilization and throughput.  

The script was written to use the 64bit counters if data are returned for the 64bit counters and 32bit counters if 64bit counter data are not returned.   I had been having some issues with this workflow when targeted to interfaces of devices that do not support 64bit interface octet counters.  From the lack of errors in the log, and evidence that the PowerShell script probe was not running (no temporary file being generated for these instances), I had concluded that the workflow was stopping with the post-SnmpProbe Expression Filter, but I didn’t know exactly why.   I had thought the Expression Filter was configured in such a way as to continue even if null values were returned for the 64bit counters. 

Using the recently released Operations Manager 2007 R2 Workflow Analyzer, I was able to drill into the actual processing of the workflow and identify the issue.

Workflow Tracing

The steps I used to debug this workflow were:

Launch the Workflow Analyzer and create a new session:

Read more of this post


EventLog Search: A Utility App for Searching Windows Event Logs

On a number of occasions in the past few weeks, I’ve found myself wishing there was an easy way to search a machine’s event log for events that matched a string in the description.   I’ve primarily wanted such a utility while troubleshooting SCOM management packs, where I wanted to be able to filter for events with the management pack name in the description, from the Health Service Modules source, and an event ID between 21000-22000. While the native Windows EventLog provides filtering capabilities, you can’t enter a filter for the event message/description or search on a range of event IDs.   I believe there are third-party tools that let you do this, but it seemed pretty easy to whip up a Windows Forms application to provide this search functionality.   I was able to put something together in pretty short order, and it can be downloaded here.  The only requirement should be for .NET version 2, and it doesn’t have to be installed to run.   I haven’t taken the time to implement much error-handling or any documentation, but it seems to fit the bill pretty well and it should be pretty self-explanatory.

The main search window:

The event details window (double-click a row in the Data Grid View to open):

“Must-Have” Tools – Sun VirtualBox

Over the past few years, I’ve bounced between virtualization products in my home test lab, including MS Virtual PC and Virtual Server, as well as VMWare Server and Desktop.  Given the option, I’d love to have a Windows 2008 Hyper-V server to run my home development environment, but given the hardware requirements, I don’t see that happening soon.   Recently, I have made the switch to Sun’s free VirtualBox product for both desktop and server virtualization at home.   VirtualBox is an end-user oriented product based on Xen server and has an impressive feature set, including 64 bit OS support and a native RDP server that allows RDP connections even when the OS isn’t loaded.   VirtualBox can also read VMDK and VHD virtual disks.   I was able to take some VHD files for VM’s built in Virtual Server, create a new VirtualBox VM (using the VHD files) and boot the OS without performing any radical conversion process.  Presently, I have a VirtualBox instance on my workstation for desktop OS virtualization, as well as a VirtualBox instance running on a CentOS server that I use for server oS virtualization.   Using the VirtualBox command line implementation, services can easily be configured on Linux to enable automatic starting and suspending with server boots.  For more info see:

VirtualBox can be downloaded at:

“Must Have” Tools – Terminals

This utility has so changed the way I work, it’s hard to imagine life before it.  Terminals is a remote desktop utility that implements tabbed windows for RDP, VNC, SSH, ICA (and more) remote connections. 

Get it here: