scomskills > blog

never mind the theory, feel the data.

Unable to add the domain to the subject

Quick break/fix post here, because I was unable to find the solution to this subject anywhere in the community blogs or in KB articles. I ran into this error while attempting to perform a manual installation of the System Center 2012 SP1 Operations Manager agent on a Linux (Ubuntu 10.04) server. Full context of this […]

WFAnalyzer.exe has stopped working

Just a quick post here, for those management pack developers that have run into the problem of simulating a workflow using the Visual Studio Authoring Extensions. I have been missing the Workflow Analyzer companion to the MP Simulator for QUITE SOME TIME. I’ve tried troubleshooting the problem on several occasions, probably spending more than 10-12 […]

Coupling time offset to monitoring interval

The requirements gathering phase of the management pack development lifecycle is critically important to the success of the project. Something that may come out of this phase is receiving company health check scripts, and this is an excellent opportunity to incorporate familiar company knowledge into a new monitoring solution. These scripts might be used to […]

Passing Data in Composite Workflow

I thought a quick and fun blog subject would be to build a composite workflow, passing data between each module, and writing output to the event log. Workflow sequence: Module1 outputs a ServiceName property bag data item – in this case “dhcp”. Module2 accepts that ServiceName input, queries the service, and outputs Status property bag […]

Logical Disk Free Space Monitor (extended)

The question of how to manage the logical disk free space monitor comes up time and time again. Just about every customer I’ve worked with, and all over the forums, people express their distain for and frustration of managing overrides related to this monitor – and for good reason. It’s one of those monitors that […]

SCOM | BlueStripe | Live Maps Integration

Last year I helped a customer integrate System Center Operations Manager 2012, BlueStripe (FactFinder), and Savision Live Maps. Contact me if your company is planning to integrate these products – there are several things to consider to get the most out of this integration and make it a huge success. I developed an enhanced integration […]

Operations Shell–Using different credentials

Some companies setup their user accounts and then provide an administrator account, and maybe only the administrator account is a member of the Operations Manager Administrator user role. The Operations Console provides a login screen, so it’s not a problem authenticating to the management group. But the Operations Shell does not provide a login option […]

Report Server – The underlying connection was closed

I ran into an issue while helping a customer install reporting services. I haven’t seen this problem before, so thought it might be helpful to share with the community. After installing SQL Reporting Services 2012, and choosing to automatically configure the default instance during the setup process, the main SRS page displayed an error: “The […]

7 years of blogging about Operations Manager – wow!

I was looking at referrer statistics for this blog, and noticed that many people still arrive here by clicking on a link in the very last blog post from my previous Microsoft Technet blog. It’s been a while since I’ve visited the old blog, but I do actually still refer to it from time to […]

Create a class – visual studio authoring extensions (vsae)

In this post, I want to demonstrate how easy it is to create a class using Visual Studio Authoring Extensions. This is in response to some blog posts out there (like this one and this one) that describe this task as “difficult” outside of a 3rd party tool. It’s actually extremely easy! Let’s take a […]

Best Practices – Alert Priority

It’s been a while since I’ve written a best practices article. I thought about an interesting one the other day I wanted to share. Alert priority is one of those configuration elements that seems to stay tucked under the covers in the vast majority of environments that I’ve worked in, but it can be an […]

New monitoring for existing vendor classes

I’ve seen this question come up a few times in the forums, and thought I would write a quick post on correct targeting for monitoring instances of an existing class. For example, let’s say you have the Exchange 2013 management pack installed and you want to collect some additional counters on Exchange Server 2013. You […]

State view showing application server roles

I recently had a customer ask me why it wasn’t possible to create a state view that showed columns representing all the server roles for their custom application. This was the first time I had this request, but I do know there are several management packs that implement a server role view, so I suppose […]

Newest member of the SCOM community

I’m proud to announce the addition of the newest member of the SCOM community. His name is Zachary Almquist, and he follows in his big brother’s footsteps, Joshua Almquist. Joshua (holding Zachary here) will be teaching him the ropes, as I have taught him. Here’s to a healthy and fruitful life!

Health Service Watcher Group based on Domain Name

Just added a fragment file to GitHub that demonstrates how to add a health service watcher group based on domain name. This can be useful for multi-tenant environments that need to implement user role scoping and notifications where the customer wants to see health service heartbeat failure alerts. Just update the ID’s, display names, and […]

Follow me on GitHub

I have decided to use GitHub to publish scripts, SQL queries and procedures, and custom management packs for all public content related to SCOM. I did this because it enables me to manage all my content in a central online repository that can be easily accessible, searched, and subscribed to in a feed reader. If […]

What is required for Visual Studio Authoring Extensions?

This post had been updated on November, 2014 with important licensing considerations.   If you are interested in diving into the authoring extensions, but don’t want to commit by spending money on the full Professional or Ultimate editions of Visual Studio, you have a couple options. Previously, you could have first installed the Isolated Shell, […]

Monitor Percent Memory Used

I’ve seen this in the forums quite a bit, so I felt I should write a pack that monitor for Windows % memory used. I basically just took the script from the Windows packs, that claims (in the script comments) to work across all base Windows OS’s, and plugged it into a data source. Then […]

Find base class, hosting class, and all properties using powershell

A few years ago, I wrote a powershell script that returns the entire base and host class path for a given class, including all available properties on each of the classes. This can be useful in a few different scenarios, including management pack development. I haven’t used the script in a while, but the other […]

Automate management packs using powershell

I’ve been asked on a few occasions to automate management packs. Unfortunately, there isn’t much information about how to do to do this using Powershell in the MSDN development kit. I am providing a couple Powershell functions you can add to your automation process that will generate a new management pack. Just update the output […]

Is ComputerName really an option?

I was creating a custom event data source module today, using the Microsoft.Windows.BaseEventProvider, and ran into a problem. After importing the pack into the management group, I saw these events on all targeted agents. Log Name:      Operations Manager Source:        HealthService Date:          5/15/2014 4:38:34 PM Event ID:      4511 Task Category: Health Service Level:         Error Keywords:      Classic […]

Best Practices–Logging Script Events

Scripts are a part of monitoring, and those scripts sometimes may fail for any number of reasons. When a monitoring script fails, it is essential to capture those failures. In this post, I will briefly go over two types of events that every management pack developer should consider for script-based modules.   Exception Event These […]

Grey Agents With Reason (gray agents)

A few years ago I wrote some TSQL to return all grey agents with the reason code. This worked fine in SCOM 2007, but it doesn’t work in 2012 environments for some reason. I basically just modified the WHERE clause, removing a bunch of SELECT statements – I’m not sure why I added those additional […]

Agent Management–List Primary and Failover Configuration

Something I don’t like about using the SDK (powershell) to manage agents, are the get* member cmdlet’s to return information – large scale queries take too long! The SDK is typically pretty slow in this regard, and that’s a shame because I find myself writing TSQL to accomplish tasks that the SDK should be able […]

New MatchCount Configuration in SCOM 2012

I’ve been meaning to write about this for a while, because I was thrilled when I found this new configuration element in the expression filter module when SCOM 2012 hit the press. For reference, here are the differences in the expression filters: SCOM 2007: SCOM 2012: Previously, the System.ExpressionFilter did not include suppression […]

Report Fragment–Visual Studio Authoring Extensions

Developing reports in SCOM is quite a bit different than developing any type of monitoring workflow. You really need to ramp up your skills on a couple different tools and languages to become a good report developer. In this post, I will cover a typical VSAE fragment that provides for deploying the report and stored […]

Best Practices – Display Names

Adding to the best practices category, I will discuss the entity display name. Note: Check back if you find yourself thinking about this stuff later, because I may update these pages at any time!   Entity Display Name   The first time I realized entity display name was so important was when I was authoring […]

Best Practices – Targeting Introduction

UPDATED 03/15/2015 Targets need to be carefully selected for everything from overrides, to creating new monitors and discoveries. In my experience, this is one of the most difficult concepts to grasp. A crash course in object-oriented programming (OOP) concepts is a great primer to understanding the service model framework in SCOM. Understanding classes and how […]

Best Practices – Namespace

UPDATED 03/15/2015 In this article I will discuss namespaces in SCOM and things to consider when developing a pack. One of the first things to consider when creating a new management pack project is namespace. It may seem like a trivial decision, but it’s important to adhere to some guidelines when choosing a namespace. Here […]

Best Practices – Introduction

I have started a best practices category to address various framework, process and decision-making considerations for management pack design and development, architectural design and deployment, and general automation and integration topics. The articles in this category are a culmination of my experiences and lessons learned over the years, with the intent of helping the architect […]

Just pushed a huge update to scomskills > projects

Can you take 30 seconds to check it out and let me know what you think? By the way, I’m trying twitterfeed for the first time, so I apologize in advance if you see an ‘out of order’ update from me. List of updates: user registration and sign in with OpenID and Google, Twitter Bootstrap […]

New site launched: scomskills > projects (search v1 is ready)

Hello there, System Center community! This is an announcement of a new site that was launched today. The three main objectives of this site are to: provide interactive tools and information to the System Center community, serve as a development platform in order to share ideas and learn new things, and highlight some of […]

This is HUGE!

If you have tried to reach the SCOMskills blog over the past day, you would have seen the maintenance and redirect page. That’s because there has been a lot of changes happening on the back-end, but everything should be running fine now. Here’s what has happened over the past couple days: SCOMskills website moved, redesigned, […]

Get Recursive Group Membership

Sometimes it is necessary to not only return a list of objects contained in a group, but also return all or specific objects nested in a group at different levels. For this we can leverage a built-in store procedure that is in your Operations Manager Data Warehouse. This procedure is used under the hood for […]

Event Description Pattern Matching (with minimal impact)

One thing to think about when authoring rules and monitors is performance, and Windows event monitoring is no exception. If you need to search for a string in an event description, and if said event description is not parameterized, this post is for you. You could add this logic while creating a rule in the […]

Computer and Instance Group Fragments in VSAE

I’m updating my Technet posts about creating groups in the R2 Authoring Console. Here are the same examples using the Visual Studio Authoring Extensions. You can add these as templates to your fragment library for use in future development projects.   How to create a computer group using VSAE   Original post: How to create […]

Dependency Monitor

If you’ve been following the series, you should have two classes and a unit monitor. As discussed earlier in the series, the base class types used are Local Application and Application Component, and these do not automatically rollup health to its hosting class. If you want unit monitors targeting the application component class to rollup […]

Two-State Event Detection

This fragment demonstrates how you can use one of the built-in, two-state Windows event modules to compose a unit monitor. This fragment is the next example in the VSAE Fragment category; the xml fragment below should work as described if you have been following the series. Module Type used in this post: Microsoft.Windows.2SingleEventLog2StateMonitorType Scenario Change […]

Timed Script Discovery (vbscript part 2)

Referring back to the previous VSAE Fragment post regarding the Windows Timed Script Discovery Provider, you can see this module can be implemented directly in a new discovery. In most cases, this works very well. In some cases, you may want to create a custom discovery provider in order to expose configuration elements as separate […]

Logical Disk Free Space monitor doesn’t cookdown

I haven’t looked at the internals of this monitor in a long time. But recently I was working on a modified disk free space monitoring solution for a customer, and to my surprise uncovered the fact that the built-in logical disk space monitor in the Windows management packs do not utilize cookdown. This had changed […]

Health Explorer – Scope is only unhealthy child monitors

This is misleading, as it’s only true sometimes. Let me show you a clear example with pictures.   The examples below can be reproduced with OpsMgr 2012 SP1 by opening Health Explorer for the Windows Computer object. Example 1 Two unhealthy instances; one critical and the other warning. Health Explorer default behavior Instance in warning […]

The Unleashed book is…well, UNLEASHED!

When I was asked to contribute to this book, I didn’t hesitate at the opportunity to be a part of what is considered to be the most comprehensive technical resource for System Center engineers and enthusiasts around the world. This is the first official publication I’ve been involved in, and am proud to have had […]

Namespace prefix ‘maml’ is not defined

If you include knowledge articles in your management pack and fail to reference the maml schema, you’ll see this error during build time.   Error      80           Namespace prefix ‘maml’ is not defined     It’s a very easy fix. Simply add the highlighted below to the management pack fragment and build away. <ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="" […]

Dual-Home Unix/Linux Agent (multi-home)

I ran into this request recently, but couldn’t find any official documentation on this. I’m sure this information is out there somewhere, but figured it’s a 2 minute post so here it is. Turns out it’s actually quite easy, as long as you have your certificates lined up. You’ll need to have all SCX certificates […]

Timed Script Discovery (vbscript)

AKA: Microsoft.Windows.TimedScript.DiscoveryProvider If you are following these VSAE Fragment posts in order, you’ll see they are tied together in the same example management pack. This fragment demonstrates the timed script discovery provider, and discovers the application component class discussed in the previous post. What does it do? This discovery uses a script to read a […]

Microsoft Windows Application Component class type

AKA: Microsoft.Windows.ApplicationComponent Here is another post in the VSAE Fragment category, building on the Microsoft Windows Local Application class in the previous example. This is another common class type to use while authoring a custom management pack, as discuss here. Use this class to discover components hosted on your custom Local Application class. This could […]

Filtered Registry Discovery Provider

AKA: Microsoft.Windows.FilteredRegistryDiscoveryProvider This is the third post in the new VSAE Fragment category. The provider is used to discover a class type and its properties by reading keys and values from the Windows registry. What does it do? This particular fragment can be used to discover the class type discuss here. It demonstrates how to […]

Microsoft Windows Local Application class type

AKA: Microsoft.Windows.LocalApplication This is the second post in the new VSAE Fragment category. The purpose of these types of posts is to provide a practical demonstration of how to create your own fragment library. I find this useful in management pack authoring, because it’s much easier to add and modify an existing fragment than to […]

Visual Studio Authoring Extensions – Fragments, fragments, fragments!

All management pack authoring I do is by using fragments. In my opinion, fragments are the most flexible authoring element in the VSAE, as they offer full visibility into the XML code and the ability to create a library of useful fragments that can later be reused in other management packs. I’m kicking off a […]

Create a Group of Health Service Watcher Objects Using VSAE

Plenty of bloggers have written about creating groups of health service watcher objects. The purpose of these types of groups is primarily for notification subscriptions. The reason why we need to include Health Service Watcher objects in our subscription criteria is so recipients also receive notifications about Health Service Heartbeat Failures and Computer Not Reachable […]

Previous Posts