SCOM: PowerShell tip: Set Resource Pool Automatic members


Today I ran into a situation where I had to test an advanced notification setup to send alerts to another helpdesk system.

The notification channel activated a PowerShell script with parameters out of the alert to send data to the other system. After creating the notification channel there was no way to check whether the server I already configured was functioning correctly. My 2 management servers were automatically part of the Notifications resource pool thus making it not possible to force my testing through my configured management server.

These are the steps to troubleshoot the notifications on 1 management server and rectifying the situation again after testing and configuring both management servers:

These are my resource pool:


Notice the difference in Icon for an automatic and manually populated resource pool.

Right click the notifications Resource Pool and select manual membership.


An automatic properties dialog will pop up to give you the possibility to change the membership of this resource pool. Even if you press cancel at this point the resource pool will be converted to manual membership:


The active members are shown here. I’ve removed my SCOMMS2 server to continue my test on SCOMMS1 for the PowerShell notification channel.




So after my tests were successful and I configured the SCOMMS2 I wanted to reset the resource pool back to automatic. The catch however is the fact that this is not possible via the GUI.

The following PowerShell oneliner will do the trick however:

get-scomresourcepool –displayname “notifications resource pool” | set-scomresourcepool –enableautomaticmembership $true


After hitting F5 the notifications Resource Pool is back to automatic and the 2 management servers are back in the Resource pool




  • If you are executing a PowerShell script on the management server make sure to have the same version of the script on both management servers in the same location
  • Always make sure that the notifications resource pool is set back to automatic to actively divide the load between all the management servers. Otherwise you will loose the great benefit of Resource pools.

Microsoft System Center Advisor Limited Preview is live!

There are days that products become hot on the spot. It’s all about cloud lately and sometimes it’s amazing how fast things are evolving for us ITPRO’s.

One of these cool products which leverages the possibilities of the cloud, uses the full potential of the virtually endless storage space to store data and use the computing power of the cloud is System Center Advisor.


When System Center advisor first emerged it was a small service in the cloud where you had to seperately make a small proxy agent to send data into the cloud and configure it to get usefull data. You had to set up or designate a server as a gateway to send data to the online service. The data was only updated once per day and was only available through a webconsole. It was a nice product but it was way ahead of it’s time for the time being. One of the problems it had was the fact that not a lot of people understood the need for advisor as it was branded as just a system center advisor software…

The potential of the product was already there but it had to be easier to use…

Since SCOM 2012 SP1 Advisor got a revamp and is fully integrated in the SCOM console. It received more rules and better performance and people started embracing the fact that they gained access to the vast dbase of microsoft filled with best practices to automatically evaluate their systems. No need for those complex mbsa scans (ouch remember those…)

More and more people started using the service but still for a lot of customers I visited System Center Advisor was not that well known. It was rather a big unknown. As soon as I explained the possibilities they started using and appreciating the service and installed it in their environment.

[jwplayer mediaid=”1421″]


Now with the new Limited Preview Microsoft is showing the future of this cool product. All the different and familiar functions are still there but there’s more…

Intelligence Packs

If you are familiar with SCOM you’ll definately will know Management packs but Intelligence Packs? Intelligence packs are the new way of adding functionality to your Advisor environment taylored for your business. It is the key to customizing your Advisor to your environment to show the data you specifically want to show in Advisor.

These management packs are stored in the Advisor Gallery and will be installed online. In a later stadium it will be possible to configure and create your own intelligence packs to gather specific data for your environment to further customize your environment. Similar to what you are doing with your management packs in your SCOM environment.

Currently there are Intelligence Packs for:


All are available from the Intelligence Pack Gallery and install with just a couple of clicks. Not much configuration is needed afterwards.

The store can be reached through the Intelligence Pack button on the portal:


Let’s for example take the Log Management Intelligence pack (this will take some time to get used to). It enables a cool new feature to gather eventlogs of your servers in one central place and search and query them to get a one place to get insight in your environment.

After we have installed the Intelligence Pack through the console it will appear in our main portal view:


(notice that I already played with the other intelligence packs as well)

So if we click on the tile “Log Management” we’ll jump to the configuration and tell Advisor which logs we would like to gather in our Advisor to get the insights with queries. Again this is a great way of gathering all your data in one place. When you have all the data in one place you can use it to get insight in your environment because let’s face it: It’s you who knows your environment best.


After we have told Advisor to gather the System log on all the machines which are connected to the advisor (both Errors and Warnings) the Intelligence pack will kick in and will gather the info for the first time to give you a view of the collected data.

Search Data explorer

Now that we have data in our Advisor we would love to find out things on our own to get perhaps the root cause why systems are running slow for example. The search can be performed by using the Search Data Explorer. Open the Search Data Explorer on the right to access the search tool:


This will open the Search where you can start your journey through the gathered data:


On the right you’ll have common search queries to get you started. Expect more and more lists for search queries to come online but if you really need to create your own search query you can always check out the Syntax Preference link under documentation to get you going.

In fact there are 3 easy steps to get your data:

1. Enter the searcg term:

In this example I’m using * to get all my data because Advisor hasn’t run that long it doesn’t have a lot of data yet so I would like to see what’s already in there:


Next step is to filter the resulte with the tools in the right column to really only get the data we are after:

The facets are the different objects gathered by type an facets per type. In addition to this it’s also possible to scope what a time frame for the events gathered. This can come in handy when you want to troubleshoot a problem on your environment for example:


For now this data is not exportable through PowerShell and only available online. Futher down the road in the developement of Advisor it will be possible to query this data through PowerShell to use the data in your own applications.


Another feature that has been introduced in the console is the feedback option.

The button is located on the bottom right and will open the feedback page in a separate window:


This will take you straight to the feedback window.


People who already worked with connect and forums will find that it’s a mix between those 2. In here you can give tips or requests to further enhance the product with new possibilities but also file bugs you’ve came accross. Members of the community can answer questions to get you going or vote for another request.

This will give you a nice one stop place to get you up to speed fast with the product but most important will give you the opportunity to give feedback first hand. This list will be used by the product team involved to prioritize the new enhancements.


This Limited preview of the next generation of Advisor will give the possibility to gather even more data about your environment and use this data to gain further insight in your environment. Because the system has been setup with Intelligence Packs it’s very easy to taylor the console to your needs. Add the performance of the cloud storage and computing to the game and we have a new additional powerful tool to gather and analyse data.

Will this completely replace all other monitoring needs? Not yet… Will it be a great enhancement to the tools we already have in place? Certainly!

This tool is free of charge during the preview period. So for now the only thing that is stopping you from using this tool is… yourself.

Keep an eye on the blog as I’ll dig deeper into the different intelligence packs when data comes in

SCOM 2012 R2 UR2: version number agent not increased


Recently the new update rollup version (UR2) for SCOM 2012 R2 was released to the general public. One of the things that came up in the community was the fact that the agent number was not increasing in the SCOM console when it was pushed through the console.


Stanislav Zhelyazkov worked closely with other community members to pinpoint the problem and found a workaround which is both genious and simple: Run repair from the console.

Please read his full blog post here:

SCOM: Agentpostinstall.ps1 PowerShell demo script Webcast 01042014

On april 1st 2014 (a day I will remember for a long time due to various reasons) I held a webcast for Microsoft Technet Belux regarding automation of admin tasks in SCOM.

I went over the basics to get started, the pitfalls and gave some tips and tricks to get you going. This session was recorded and together with the slide deck it’s made available here:

In this demo I created a small PowerShell script that could save you some time when agents are installed in your environment through an image. In this particular scenario the agents are automatically in the “pending approval” list in SCOM.

Running this PowerShell will add them to the environment, make them remotely manageable, point them all to a management server of your choice and put agent proxying on true.

Feel free to adapt the script for your needs.

The script in question:


# AUTHOR:    Dieter Wijckmans
# DATE:        01/04/2014
# Name:        agentpostinstall.PS1
# Version:    1.0
# COMMENT:    Approve agents after install, make remotely manageable, assign to 1 management server
#           and enable agent proxying.
# Usage:    .\postinstallagenttasks.ps1 mgserverfrom mgserverto sqlserverinstance dbase
# Parameters: mgserverfrom: the primary server at this point
#             mgserverto: The new primary server
#             sqlserverinstance: the sql server where the opsdb resides + instance
#             dbase: name of the opsdb

param ([string]$mgserverfrom,[string]$mgserverto,[string]$sqlserverinstance,[string]$dbase)
###Prepare environment for run###

# Start Ops Mgr snapin

##Read out the Management server name
$objCompSys = Get-WmiObject win32_computersystem
$inputScomMS = $

#Initializing the Ops Mgr 2012 Powershell provider#
Import-Module -Name "OperationsManager"
New-SCManagementGroupConnection -ComputerName $inputScomMS

#Get all agents which are in pending mode and approve
$pending = Get-SCOMPendingManagement | Group AgentPendingActionType
$Count = $pending.count
echo $count

If ($count -eq $null)
echo "No agents to approve"
Get-SCOMPendingManagement | where {$_.AgentPendingActionType -eq "ManualApproval"} | Sort AgentName | Approve-SCOMPendingManagement

#Let all servers report to 1 primary management server

$serverfrom = Get-SCOMManagementServer | ? {$ -eq "$mgserverfrom"}
$agents = Get-SCOMAgent -ManagementServer $serverfrom
$serverto = Get-SCOMManagementServer | ? {$ -eq "$mgserverto"}
Set-SCOMParentManagementServer -Agent:$agents -FailoverServer:$null
Set-SCOMParentManagementServer -Agent:$agents -PrimaryServer:$serverto
Set-SCOMParentManagementServer -Agent:$agents -FailoverServer:$serverfrom

#Set all servers to remotely manageable in SQL

$ServerName = "$sqlserverinstance"
$DatabaseName = "$dbase"
$Query = "UPDATE MT_HealthService SET IsManuallyInstalled=0 WHERE IsManuallyInstalled=1"

#Timeout parameters
$QueryTimeout = 120
$ConnectionTimeout = 30

#Action of connecting to the Database and executing the query and returning results if there were any.
$conn=New-Object System.Data.SqlClient.SQLConnection
$ConnectionString = "Server={0};Database={1};Integrated Security=True;Connect Timeout={2}" -f $ServerName,$DatabaseName,$ConnectionTimeout
$cmd=New-Object system.Data.SqlClient.SqlCommand($Query,$conn)
$ds=New-Object system.Data.DataSet
$da=New-Object system.Data.SqlClient.SqlDataAdapter($cmd)

#Set all servers to agent proxy enabled

Get-SCOMAgent | where {$_.ProxyingEnabled.Value -eq $False} | Enable-SCOMAgentProxy


It can be downloaded here



  • that you need to give the proper parameters for it to work as stated in the description.
  • that perhaps you will have to check the SQL connection string on-line 68 with your SQL dba and adapt accordingly.

Webcast 01/04: Make SCOM work for you and not the other way around!


Face it… Sometimes keeping SCOM alive can be a real challenge especially when there are a lot of people who have access to the console… Sometimes it feels like monitoring SCOM itself can be a full time job!


I came across a lot of environments and one of the things I’ve learned is in fact if you automate a lot of tasks you already gain a lot of time. Well there’s PowerShell for that!

It gives you the opportunity to go from a SCOM zero to a SCOM hero by freeing up more time to do the cool stuff… Because let’s face it nobody likes scrolling through alerts, approving agents, checking the status of agents,…

In this session I’ll walk you trough some of the scripts I always implement when running a SCOM project to give me control, flexibility and save me some time in the end.

Apart from these scripts I’ll showcase also the awesome power the vast System Center community can bring you to even more facilitate the troubleshooting, configuration and manageability of your environment. The community is out there… No need to build something which is already out in the open. I’ll give you some pointers to get the community layer in your environment and will encourage you to start sharing in the process…

So if you want to save some time, see some cool pointers + tips and tricks to automate some of those tedious tasks?

Make sure to sign up below for my online webcast!

Hurry up because seats are unlimited!

Register here:

Flukso Energy Meter Monitoring Pack: Part 4: Seeing it all in action

This blog post is part of a series check out the other posts in this series:

So after all this hard work. To get the data into my MySQL dbase and into SCOM. What can I actually do with it?

This is the second part of  a far greater monitoring project I’m building to basically monitor my house but now I have control over the temperature and heating in my house using the Nest Thermostat monitoring pack AND can check on my power consumption and basically control my electrical bill.

I’ve created the views in the flukso monitoring view for electricity:


Nothing much we can do with this view as this is actually giving me a good reading. It’s in fact what we can do with the data which get into SCOM. Because this data is now into SCOM we can use this data to generate alerts when sudden peaks occur.

A cool one I have setup is the peak right around supper. We have an electrical furnace so when someone starts cooking at around 18h (6PM) I now get an alert becaus the total power consumption is above 4000 watt at that time…

So I know now perfectly well when I need to rush home to get in on time for dinner…

Now that I have this data in I can move forward and build a cool demo to show the added value of having this data in.

This is the second part of the puzzle of monitoring my house. In fact this process can also be used when having a solar power installation to see the generated energy on the graph.

In short notice I will be adding Water readings to the graph as well and have another few things I would like to add to the management pack to be able to patrol my house but more on that later.

Flukso Energy meter monitoring pack: Part 3: Get data into SCOM

This blog post is part of a series check out the other posts in this series:

So after we have successfully set up the connection between the flukso and our mysql dbase with basically following the same route as the nest thermostat data is pouring into our own dbase on the same device..

The only thing left to do is get this data in SCOM as well. I’ve created a separate management pack and PowerShell script for this to give people the ability to install it separate from each other but the goal is to create one big management pack in the end.

This blog post will explain how to retrieve the data with PowerShell (of course) and dump it into a property bag which is readable by SCOM. This is the second phase in our schematic example:



We basically need the same requirements as for the NEST thermostat monitoring as we ar using the same route:

What do we need to retrieve the data out of the MySQL dbase.

  • A watchernode which has PowerShell V2.0 installed (can be a server or a desktop laying somewhere)
  • a reg key to identify this watcher node. I’m using “HKLM\SOFTWARE\Flukso\Watchernode” for this
  • The mysql connector installed: (note in this example I’m using version 6.8.3)
  • Scom agent installed on the machine to be able to discover it as a class

There’s no additional install required on the mysql server although you will need the following to connect:

  • Location
  • User which has access to the mysql dbase (I use Root but this is not the safest way)
  • password

I’m using this on a virtual Win2012 machine without any issues.

Retrieve the data from MySQL using a PowerShell script

This is the script I created to get the data out of MySQL.

Note that this script only is retrieving one value. It’s possible to retrieve multiple values all at once but I preferred to use different scripts to get the different parameters out of the dbase.

The script has some prep work for water consumption in there as well but this is not yet fully operational as I need to convert the pulses to l/min so more on that later.

The dbase is filled with data every minute so I run the PowerShell script below every 120 sec to get data in.  The data is measured in watt.

The script used:


It can be downloaded here:

[void][system.reflection.Assembly]::LoadFrom(“C:\Program Files (x86)\MySQL\MySQL Connector Net 6.8.3\Assemblies\v2.0\MySQL.Data.dll”)

#Create a variable to hold the connection:

$myconnection = New-Object MySql.Data.MySqlClient.MySqlConnection

#Set the connection string:

$myconnection.ConnectionString = "database=flukso;server=<fill in ip of server>;user id=<user>;pwd=<password>"

#Call the Connection object’s Open() method:


#uncomment this to print connection properties to the console
#echo $myconnection

$API = New-Object -ComObject "MOM.ScriptAPI"
$PropertyBag = $API.CreatePropertyBag()

#The dataset must be created before it can be used in the script:
$dataSet = New-Object System.Data.DataSet

$command = $myconnection.CreateCommand()
#$command.CommandText = "select date, time, sensor_1 from fluksodata";
$command.CommandText = "SELECT Sensor_1 FROM fluksodata ORDER BY IDTimestamp DESC LIMIT 1";
$reader = $command.ExecuteReader()
#echo $reader
#The data reader will now contain the results from the database query.

#Processing the Contents of a Data Reader
#The contents of a data reader is processes row by row:

while ($reader.Read()) {
#And then field by field:
for ($i= 0; $i -lt $reader.FieldCount; $i++) {
$value = $reader.GetValue($i).ToString()
echo $value

$PropertyBag.AddValue("energysort", $energysort)
$PropertyBag.AddValue("electricity", $value)


This script will basically do the following.

  • Prepare the environment
  • Open the connection to MySQL
  • Get the data in the data reader
  • Read out the last line because we are only interested in the most recent value
  • Fill it in the property bag

Note: I’m also using a variable $energysort to identify the flukso sensor.

Now to get all the different parameters as mentioned above the only things you need to change are:

  • The name of the script itself
  • Command.CommandText = “SELECT Sensor_1 FROM fluksodata ORDER BY IDTimestamp DESC LIMIT 1”;
  • The property bag value: $PropertyBag.AddValue(“electricity”, $value)
If everything goes well you have your data in your MySQL dbase now and can retrieve it remotely via PowerShell to pass it on to SCOM.

Now that we have the PowerShell in place. Check out this blog post to make a management pack for it:

Download the MP here:



Flukso Energy meter monitoring pack: Part 1: Intro on the device used

This blog post is part of a series check out the other posts in this series:

This post is part of an ongoing series on how to monitor my house with SCOM and build scenarios based on the data that comes into SCOM.

More info on the blog series here:

After monitoring the temperature / humidity and heating in my house I now have turned my focus on the aspects that cost basically money. My electrical bill. To get this data in you need an energy meter. I actually have 2 at the moment so I can level them out to see which one is right… Boys and toys right.


They are both of Belgian companies but can be used on any power grid. The above device is called the smappee.


It’s a rather new device with a very spacy exterior and lighting. Indeed it’s connecting quite easy to your environment and it measures everything beautifully. The nice thing about this device is in fact it has a nice shiny app for iPhone and Android so you can get your data while on the road. The coolest thing is in fact that this device is capable of detecting certain patterns on your internal electrical grid to identify certain devices in your household so you can easily pinpoint what the big consumers of power are. This works quite well… The downside of this device however is that there’s up until now no way to get the data from the device towards your own device. This is not open source. Although there’s no additional fee for the website and the apps it’s kind of useless if you want to get the data out and play with it…

More info on the smappee can be found here:


The device just below is completely different. Although it serves the same purpose: monitoring your power consumption. This device is just a small box which holds a custom made device which was built from the ground up with the open source community in mind. The software is running on a linux distro, dd-wrt for the routing and you have the possibility to access it via a terminal to gain root access and play with the device. The data gathered is logged to the flukso server and nicely graphed on a custom dashboard protected by your user name and password. You get a nice overview of your consumption even in real time. Besides the electrical consumption you can also check water and gas consumption so an all-round device for a little bit less than the Smappee. The cool thing in fact is that you can access the data locally by checking the box in the admin dashboard. This opens up the local API which can be addressed by a simple CURL call.

More info on the Flukso can be found here:


The installation for both devices was straight forward. As soon as the device came online you needed to connect it to an account on the website and that was it… Now only to get the data into the device.

To use this you need to have a little background of electrical work. Both website come with a huge disclaimer if you are not confident with installing the metering device ask a professional.

What you need to do is clamp a power metering device over the hot wire of your electrical installation behind the meter and before the first fuse in your fuse box:


After connecting the clamp to the device you are good to go to get things monitored. Both devices use the same tech so if you have both just connect both of the clamps to the wire. No cutting is involved.

So this was a blog about System Center right?

True… But I’m also active in the flukso community and promised to give feedback to them as well how I cracked this box open to get all the data into a MySQL dbase. I’ve used a similar approach as the nest thermostat series which can be found here:

So how did I get data?

Still not much System center content but important for the people who are going to use this or try this at their home because face it… Monitoring is our profession and if we can save some money while we are at it… Check out the other parts to find out how I got data in.

System Center Universe 2014 Houston session video online


Wow I can’t believe it has been already 3 weeks ago that I was able to speak at System Center universe 2014 in Houston. The topic of my session was all about connecting both your on premise SCOM environment with your Azure cloud.


The event was a cool experience and a great chance to catch up with a lot of people and meet new ones while we are at it. Had some great talks about our beloved technology and how we see it developing in the next year.

My Session video is available here:

System Center Universe 2014 Dieter Wijckmans


In addition to the video above I’m including some links to articles with more info on how to connect your on prem with your Azure cloud:

Introduction and install of a Scom Azure Gateway server (Cameron Fuller):[sysctr-scom-azure].aspx

Configure Site to site vpn:

Configure point to site vpn:

Configure the Scom Azure management pack:

SCOM: Troubleshoot SQL version is unsupported while upgrading


Upgrading SCOM in a high security environment can be challenging from time to time. You actually need a lot of rights (some of them just temporarily of course) to get things installed.

Besides the user rights needed by the user which you launch the install with  ( ) you’ll need access to SQL, the machines where you want to perform the upgrade,…

Getting all this access can be challenging and adds an extra layer of complexity to the upgrade.

However I came across a common error message during installation which had a rather uncommon cause…


"The installed version of SQL Server is not supported. Verify that the computer and installed version of SQL Server meet the minimum requirements for installation. Please see the Supported Configurations document for further information"

(Of course I did not take a screenshot in the heat of the moment but this is the actual message on the prereq checker and a good reference for search engines)


This can have many causes but the most common is in fact you do not have a required version installed. Check and double check whether your SQL is up to spec. To find out which versions are supported check here:

If you are 100% sure that your version is correct chances are that SCOM prereq can’t check the version and just throws this message. Make sure you have proper firewall ports open if there’s a firewall in between the SQL and management server. Check this article for pointers:—the-installed-version-of-sql-server-is.aspx

If this is ok check the rights on the SQL server. You need to have enough rights to check the SQL version and be able to create a new dbase. A tip here is to use the SDK account this probably has all the sufficient rights to do so.

Actually I’m running an upgrade from SP1 to R2 so the version should be ok no?

If all this fails (or even sooner) it’s time to look at the log files. As soon as SCOM starts it’s install it creates log files to document it’s progress.

This post easily documents where to find these log files:

For reference when the link above should become broken:

“Logs are located in the %LocalAppData%\SCOM\Logs directory for the account under which installation was run. On a default installation on Windows 2008 R2, that would be c:\users\<UserName>\Appdata\Local\SCOM\Logs where <UserName> is the name of the account you used to run the installation.”

So In my particular case I opened the log file and found the issue below:

printscreen-0000 7-02-2014 

The lines in the above excerpt  “Exception Error code: 0x80070005, Exception.Message: Access to the path is denied.” and “Error: Could not create the directories for the specified DB Path”  caught my attention.

After checking I found out I did not have access to the path where the dbase files are stored neither with the SDK nor with my account. After I got access to the path the installation of the R2 upgrade went without an issue.

As this is not documented (by my knowledge) or not a common issue I’ve encountered during my many SCOM installs / upgrades  I documented it here on my blog hoping it will save you some troubleshooting time.

Enough talk, let’s build
Something together.