<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Kevin Holman's OpsMgr Blog</title><subtitle type="html">Posts in this blog are provided "AS IS" with no warranties, and confers no rights.  Use of included script samples are subject to the terms specified in the &lt;a
href="http://www.microsoft.com/info/cpyright.htm"&gt;Terms of Use&lt;/a&gt;
&lt;/BR&gt;
&lt;/BR&gt;
Are you interested in having a dedicated engineer that will be your Microsoft 'go to' technical resource, work with you on projects, provide training and also help troubleshoot problems that come up? Then Dedicated Support Engineering (DSE) is for you.  Learn more at &lt;a
href="http://www.microsoft.com/services/Microsoftservices/default.mspx"&gt;Microsoft Premier Services&lt;/a&gt; or contact your Technical Account Manager.

</subtitle><id>http://blogs.technet.com/kevinholman/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.technet.com/kevinholman/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2009-04-10T21:55:57Z</updated><entry><title>Error alerts from the DNS MP – script failures, WMI Probe failed?</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/06/29/errors-alerts-from-the-dns-mp-script-failures-wmi-probe.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/06/29/errors-alerts-from-the-dns-mp-script-failures-wmi-probe.aspx</id><published>2009-06-29T19:45:25Z</published><updated>2009-06-29T19:45:25Z</updated><content type="html">&lt;p&gt;I have seen this at several customer sites, and even in my own lab.&lt;/p&gt;  &lt;p&gt;You might find the following alerts (below) stemming from the DNS MP.&lt;/p&gt;  &lt;p&gt;This appears to be a random issue with WMI that causes this when trying to access the WMI based DNS namespace, and query it.&lt;/p&gt;  &lt;p&gt;To resolve – see my previous post:&amp;#160; &lt;a title="Getting lots of Script Failed To Run alerts- WMI Probe Failed Execution- Backward Compatibility" href="http://blogs.technet.com/kevinholman/archive/2009/06/29/getting-lots-of-script-failed-to-run-alerts-wmi-probe-failed-execution-backward-compatibility-script-error.aspx"&gt;Getting lots of Script Failed To Run alerts- WMI Probe Failed Execution- Backward Compatibility&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;WMI Probe Module Failed Execution&lt;/strong&gt;     &lt;br /&gt;Log Name:&amp;#160; Operations Manager     &lt;br /&gt;Source:&amp;#160; Health Service Modules     &lt;br /&gt;Event Number:&amp;#160; 10409     &lt;br /&gt;Description:     &lt;br /&gt;Object enumeration failed     &lt;br /&gt;Query: 'Select EventLogLevel from MicrosoftDNS_Server'     &lt;br /&gt;HRESULT: 0x80041001     &lt;br /&gt;Details: Generic failure     &lt;br /&gt;One or more workflows were affected by this.     &lt;br /&gt;Workflow name: Microsoft.Windows.DNSServer.2003.Monitor.ServerLoggingLevel     &lt;br /&gt;Instance name: dc01.opsmgr.net     &lt;br /&gt;Instance ID: {11056C4C-B933-98ED-3DC5-4B9AAE232B23}     &lt;br /&gt;Management group: PROD1 &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;WMI Probe Module Failed Execution&lt;/strong&gt;     &lt;br /&gt;Log Name:&amp;#160; Operations Manager     &lt;br /&gt;Source:&amp;#160; Health Service Modules     &lt;br /&gt;Event Number:&amp;#160; 10409     &lt;br /&gt;Description:     &lt;br /&gt;Object enumeration failed     &lt;br /&gt;Query: 'Select Name, Shutdown, Paused from MicrosoftDNS_Zone'     &lt;br /&gt;HRESULT: 0x80041001     &lt;br /&gt;Details: Generic failure     &lt;br /&gt;One or more workflows were affected by this.     &lt;br /&gt;Workflow name: Microsoft.Windows.DNSServer.2003.Monitor.ZoneRunning     &lt;br /&gt;Instance name: test.opsmgr.net (dc01.opsmgr.net)     &lt;br /&gt;Instance ID: {E0A3BD98-04B7-0C44-B26D-F8E6175456D1}     &lt;br /&gt;Management group: PROD1&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Script or Executable Failed to run&lt;/strong&gt;     &lt;br /&gt;Log Name: Operations Manager     &lt;br /&gt;Source: Health Service Modules     &lt;br /&gt;Event Number: 21406     &lt;br /&gt;Description:     &lt;br /&gt;The process started at 6:26:59 AM failed to create System.Discovery.Data. Errors found in output:     &lt;br /&gt;C:\Program Files\System Center Operations Manager 2007\Health Service State\Monitoring Host Temporary Files 10\8675\DNS2003ComponentDiscovery.vbs(123, 9) SWbemServicesEx: Generic failure     &lt;br /&gt;Command executed: &amp;quot;C:\WINDOWS\system32\cscript.exe&amp;quot; /nologo &amp;quot;DNS2003ComponentDiscovery.vbs&amp;quot; {C984657D-0255-F11B-2C76-1542793A684D} {11056C4C-B933-98ED-3DC5-4B9AAE232B23} dc01.opsmgr.net true true true &amp;quot;&amp;quot; false 700 1 Working Directory: C:\Program Files\System Center Operations Manager 2007\Health Service State\Monitoring Host Temporary Files 10\8675\     &lt;br /&gt;One or more workflows were affected by this.     &lt;br /&gt;Workflow name: Microsoft.Windows.DNSServer.2003.Discovery.Components     &lt;br /&gt;Instance name: dc01.opsmgr.net     &lt;br /&gt;Instance ID: {11056C4C-B933-98ED-3DC5-4B9AAE232B23}     &lt;br /&gt;Management group: PROD1&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Script or Executable Failed to run      &lt;br /&gt;&lt;/strong&gt;Log Name: Operations Manager     &lt;br /&gt;Source: Health Service Modules     &lt;br /&gt;Event Number: 21405     &lt;br /&gt;Description:     &lt;br /&gt;The process started at 3:58:21 AM failed to create System.Discovery.Data, no errors detected in the output. The process exited with 0     &lt;br /&gt;Command executed: &amp;quot;C:\WINDOWS\system32\cscript.exe&amp;quot; /nologo &amp;quot;DNS2003Discovery.vbs&amp;quot; {C8655A28-E27E-C6ED-B158-8569219A71A6} {89AC2E61-9144-4B94-9028-5A25F547213E} dc01.opsmgr.net false     &lt;br /&gt;Working Directory: C:\Program Files\System Center Operations Manager 2007\Health Service State\Monitoring Host Temporary Files 10\8515\     &lt;br /&gt;One or more workflows were affected by this.     &lt;br /&gt;Workflow name: Microsoft.Windows.DNSServer.2003.ServerDiscovery     &lt;br /&gt;Instance name: dc01.opsmgr.net     &lt;br /&gt;Instance ID: {89AC2E61-9144-4B94-9028-5A25F547213E}     &lt;br /&gt;Management group: PROD1 &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Event Type:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Error    &lt;br /&gt;Event Source:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Health Service Script     &lt;br /&gt;Event Category:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; None     &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1152     &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 5/19/2009     &lt;br /&gt;Time:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 11:18:48 AM     &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A     &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DC01     &lt;br /&gt;Description:     &lt;br /&gt;DNS2003Discovery.vbs : The Query 'select * from MicrosoftDNS_Server' did not return any valid instances.&amp;#160; &lt;br /&gt;Please check to see if this is a valid WMI Query.. Generic failure &lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3259734" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="management pack" scheme="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx" /><category term="agents" scheme="http://blogs.technet.com/kevinholman/archive/tags/agents/default.aspx" /></entry><entry><title>Getting lots of Script Failed To Run alerts? WMI Probe Failed Execution? Backward Compatibility Script Error?</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/06/29/getting-lots-of-script-failed-to-run-alerts-wmi-probe-failed-execution-backward-compatibility-script-error.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/06/29/getting-lots-of-script-failed-to-run-alerts-wmi-probe-failed-execution-backward-compatibility-script-error.aspx</id><published>2009-06-29T14:24:31Z</published><updated>2009-06-29T14:24:31Z</updated><content type="html">&lt;p&gt;In OpsMgr 2007, it is likely that your most common alert is not really a MP based alert from a technology management pack…. it could be a built-in alert that a script failed, or WMI could not be accessed.&amp;#160; This is because when WMI is broken on a machine, almost EVERYTHING fails to execute properly on that agent.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;At a recent health check at a customer site, we found the top 5 alerts in his environment (by cumulative repeat count) were:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;WMI Probe Module Failed Execution&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Service Check Data Source Module Failed Execution &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Backward Compatibility Script Error &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Script or Executable Failed to run &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Service Check Probe Module Failed Execution&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Sometimes – these alerts are normal…. the server is busy, or someone rebooted it without putting it into maintenance mode and allowing the workflows to unload gracefully.&lt;/p&gt;  &lt;p&gt;However, if you have a high repeat count on these, it is typically indicative of something seriously broken on that agent(s).&amp;#160; Most of the time – the failure is in WMI.&amp;#160; Many customers get frustrated with these script errors, because they see them as “false alerts” because they don't know how to resolve the root cause, and we just tell you “this action broke”, we don't tell you why.&amp;#160; It is critical that you examine these alerts, however, because these alerts will indicate something seriously wrong with an agent, such as broken WMI/cscript/OS issue.&amp;#160; If you ignore them, or disable them – you will never know that monitoring is not functioning 100%.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Generally – here is how I attack script/WMI failures&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1.&amp;#160; If the repeat count is 0 or 1, I ignore these as random failures, and close the alerts from time to time.&lt;/p&gt;    &lt;p&gt;2.&amp;#160; If the repeat count is very high, then something is wrong with the agent, and needs remediation on the agent OS.&amp;#160; Investigate the OpsMgr event log on the agent for Warning/Critical events – to see if a lot of workflows are failing due to this issue.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The FIRST thing I do – is to see if WMI is responsive.&amp;#160; I run WBEMTEST, and connect to “root\cimv2”.&amp;#160;&amp;#160; I then hit “query” and execute a “select * from win32_operatingsystem” to see if it returns results, or an error.&amp;#160; Next – I look at the namespace from the alert in SCOM…. perhaps it is “root\MicrosoftDNS”, or “root\CCM”.&amp;#160; Then – I try and run the query that is failing from the alert.&lt;/p&gt;  &lt;p&gt;If EITHER of the above connections/queries fail…. then I know what's wrong.&amp;#160; WMI has a core issue, and I punt this to my platform or application team to fix it.&amp;#160; Sometimes it needs a MOF recompile, sometimes it needs WMI service bounced or the OS bounced.&lt;/p&gt;  &lt;p&gt;If these all appear to work correctly, or, the problem is resolved after a WMI service bounce, then re-appears later – check out the following:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;There are many things you can do to resolve/remediate these issues&lt;/em&gt;&lt;/strong&gt;.&amp;#160; Here is a list of the most common fixes:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;1.&amp;#160; &lt;strong&gt;Apply&lt;/strong&gt; &lt;a title="http://support.microsoft.com/kb/933061" href="http://support.microsoft.com/kb/933061"&gt;http://support.microsoft.com/kb/933061&lt;/a&gt;&amp;#160; This resolves a LOT of issues on the Windows 2003 OS with WMI.&amp;#160; This should be one of your first steps.&amp;#160; This applies to x86 or x64 Windows Server 2003 SP1 or SP2.&lt;/p&gt;  &lt;p&gt;2.&amp;#160; &lt;strong&gt;Registry modification&lt;/strong&gt; for WMI buffer thresholds (see below)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM\Low Threshold On Events (B)&amp;quot; to 35000000 (default is 10000000)      &lt;br /&gt;”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM\High Threshold On Events (B)&amp;quot; to 70000000 (default is 20000000)&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;The registry modification to WMI buffers increases the amount of objects that WMI can hold before injecting sleep delays to the WMI service.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;3.&amp;#160; &lt;strong&gt;Apply&lt;/strong&gt; &lt;a title="http://support.microsoft.com/kb/955360" href="http://support.microsoft.com/kb/955360"&gt;http://support.microsoft.com/kb/955360&lt;/a&gt;&amp;#160; This updates the Windows Scripting Host (cscript) to version 5.7.&amp;#160; This resolves script timeouts, and scripts consuming a LOT of CPU during execution, and problems with multiple scripts running at the same time.&amp;#160; This applies to x86 or x64 Windows Server 2003 SP1 or SP2.&amp;#160; This is a very good hotfix for DNS servers, DHCP servers, and Domain Controllers.&amp;#160; This has been seen to lessen the impact of VBscripts consuming a large amount of CPU during runtime.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Making these three modifications should resolve the majority of systemic issues out there, unless WMI is completely corrupt/unresponsive and needs repair.&amp;#160; Sometimes, rebooting a server, or bouncing WMI will temporarily resolve these issues as well, if you cannot apply the fixes immediately.&lt;/p&gt;  &lt;p&gt;If you have applied all three of these above, and are still experiencing a systemic repeat of a WMI query/script failure…. the next step would be to try running the query directly, accessing the namespace in WBEMtest.&amp;#160; I’d like to hear about any experiences here.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3259635" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="management pack" scheme="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx" /><category term="agents" scheme="http://blogs.technet.com/kevinholman/archive/tags/agents/default.aspx" /></entry><entry><title>Health Service and MonitoringHost thresholds in R2 – how this has changed and what you should know</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/06/22/health-service-and-monitoringhost-thresholds-in-r2-how-this-has-changed-and-what-you-should-know.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/06/22/health-service-and-monitoringhost-thresholds-in-r2-how-this-has-changed-and-what-you-should-know.aspx</id><published>2009-06-22T22:52:29Z</published><updated>2009-06-22T22:52:29Z</updated><content type="html">&lt;p&gt;In &lt;a href="http://blogs.technet.com/kevinholman/archive/2009/03/26/are-your-agents-restarting-every-10-minutes-are-you-sure.aspx"&gt;THIS&lt;/a&gt; post – I described the way the agent HealthService will bounce on a regular basis, and how to alert on that, and change the thresholds.&amp;#160; Please see that post for details on SP1.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now – in R2 – much of this has changed in how it works.&amp;#160; That said – the core challenge in SP1 still exists in R2:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;1.&amp;#160; The default agent threshold is 100MB for the HealthService and MonitoringHost process.&amp;#160; That is too low for many of the typical agents in production environments.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;2.&amp;#160; When we bounce the agent for using more than 100MB, we do this silently, and do not alert.&amp;#160; If your agents are constantly restarting in a loop, you will never know.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Lets take a look at R2:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;First off – lets examine the HealthService class.&amp;#160; There are two Monitors located at&amp;#160; Health Service &amp;gt; Entity Health &amp;gt; Performance &amp;gt; Health Service Performance &amp;gt; Health Service State.&amp;#160; They are for Handle Count threshold, and Private Bytes Threshold.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_thumb.png" width="613" height="233" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Health Service Handle Count Threshold:&lt;/strong&gt;&amp;#160; The default threshold is 2000 handles for an agent.&amp;#160; There are built-in overrides for the Management servers – bumping this number up to 10,000 handles.&amp;#160; Also, the new Native Exchange 2007 MP, bumps the threshold up to 5000, for Exchange 2007 computers.&amp;#160; It is common that you *might* have to bump up this threshold for SOME agents.&amp;#160; It is also common to bump the Management Server threshold up to 20,000 or even 50,000 if yours is constantly using more, but stable.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_thumb_1.png" width="611" height="211" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Health Service Private Bytes Threshold:&lt;/strong&gt;&amp;#160; The default is 100MB for all agents.&amp;#160; There is a threshold override for Management servers to use up to 1.6GB.&amp;#160; The new Native Exchange 2007 MP bumps the threshold to 600MB for Exchange 2007 servers.&amp;#160; This is the monitor that needs the most attention!&amp;#160; The default of 100MB is not enough for many server roles, especially if hosted on Server 2008 OS.&amp;#160; You will likely need to override this monitor, for groups of Windows Computer objects, that are affected.&amp;#160; Your agents will potentially be a in perpetual restart loop until this is done.&amp;#160; Here is an example of mine – with a few overrides in place for SQL computers and DNS servers:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_thumb_2.png" width="608" height="250" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now…. in R2 – the MonitoringHost workflows have changed, from rules, to Monitors.&amp;#160; These are located under the “&lt;strong&gt;Agent&lt;/strong&gt;” class.&amp;#160; You will find them under &lt;strong&gt;&lt;em&gt;Agent &amp;gt; Entity Health &amp;gt; Performance &amp;gt; Health Service Performance &amp;gt; Health Service State&lt;/em&gt;&lt;/strong&gt;.&amp;#160; They are named &lt;strong&gt;&lt;em&gt;Monitoring Host Handle Count Threshold&lt;/em&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;em&gt;Monitoring Host Private Bytes Threshold&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_thumb_3.png" width="600" height="305" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;***Note:&amp;#160; In this view - you will also see the HealthService monitors, but note – these are inherited from the Health Service class.&amp;#160; This is because there is a dependency rollup that rolls up the Health Service State of the HealthService, to the Agent.&amp;#160; I will explain why in a moment.&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Monitoring Host Handle Count Threshold:&lt;/strong&gt;&amp;#160; The default threshold is 2000 handles for an agent.&amp;#160; There are built-in overrides for the Management servers – bumping this number up to 10,000 handles.&amp;#160; Also, the new Native Exchange 2007 MP, bumps the threshold up to 5000, for Exchange 2007 computers.&amp;#160; It is common that you *might* have to bump up this threshold for SOME agents.&amp;#160; It is also common to bump the Management Server threshold up to 20,000 or even 50,000 if yours is constantly using more, but stable.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_thumb_4.png" width="589" height="219" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Monitoring Host Private Bytes Threshold:&lt;/strong&gt;&amp;#160; The default is 100MB for all agents.&amp;#160; There is a threshold override for Management servers to use up to 1.6GB.&amp;#160; The new Native Exchange 2007 MP bumps the threshold to 600MB for Exchange 2007 servers.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_thumb_5.png" width="573" height="212" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now, in R2 – all four of these monitors roll their health state up to the Aggregate Roll-up monitor under the agent class, named “Health Service State”.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_14.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_thumb_6.png" width="666" height="305" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If we look at the properties of that aggregate monitor, we can see the recovery action to restart the HealthService is now on this monitor.&amp;#160; Therefore – if ANY of the 4 monitors below it are in a critical state – they will roll up to this monitor, which will launch a script to bounce the HealthService on the agents.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_16.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HealthServiceandMonitoringHostthresholds_ED5F/image_thumb_7.png" width="617" height="598" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This script, when it executes, will launch an event 6024 in the OpsMgr event log on the agent, that is is restarting the HealthService.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;***NOTE – the text used in the event log is not technically accurate, in that it always states &lt;font color="#0000ff"&gt;“Health Service exceeded Process\Handle Count or Private Bytes threshold.”&lt;/font&gt;&amp;#160; It could be an issue with the Monitoring Host – NOT the HealthService, and this event might mislead you in troubleshooting.&amp;#160; So just know that a 6024 event is a generic restart event – you need to look at the individual monitor state change history in Health Explorer to properly investigate.&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;So – to summarize the changes from SP1 to R2:&lt;/strong&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;The MonitoringHost threshold rules are now standard monitors.&lt;/li&gt;    &lt;li&gt;The Health Service monitors roll up to Agent - Health Service State rollup monitor.&lt;/li&gt;    &lt;li&gt;The Health Service State rollup monitor has a recovery which runs a script to bounce the HealthService when it is in a critical state.&lt;/li&gt;    &lt;li&gt;We still do not alert by default when the script bounces your agent, and you need to create a rule to look for this, or, alert on the state-change of the monitor.&lt;/li&gt;    &lt;li&gt;You still will likely need to adjust the threshold of the Health Service Private Bytes monitor for many of your agents.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Lets talk about #4 above:&lt;/strong&gt;&amp;#160; You need to know when your agents are getting bounced, especially if they are caught in a loop of bouncing.&lt;/p&gt;  &lt;p&gt;You have a few choices here…. but I like to either:&amp;#160; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Create an alert rule, target “Agent”, Event ID 6024, in the OpsMgr event log.&lt;/li&gt;    &lt;li&gt;Override the “Health Service State” rollup monitor, to “Generates Alert = True”.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Either one of those will give you a solution, that will detect the monitor state change, which results in bouncing the agent’s Health Service.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;With regard to #5 above:&lt;/strong&gt;&amp;#160; You will likely need to adjust this default threshold for many agents.&amp;#160; From my previous blog post on this topic – I have been seeing that mostly on the following types of servers:&lt;/p&gt;  &lt;ol&gt;   &lt;ol&gt;     &lt;li&gt;&lt;strong&gt;&lt;em&gt;Large SQL database servers&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;&lt;em&gt;Server 2008 domain controllers&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;&lt;em&gt;DHCP servers with large scope counts&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;&lt;em&gt;DNS servers with large zone counts&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;&lt;em&gt;Exchange 2007 servers&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;&lt;em&gt;Large Exchange 2003 Mailbox servers&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;&lt;em&gt;IIS7 (Server 2008) Servers&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;&lt;em&gt;Proxy agents that perform special agent-less monitoring (Nworks/Vmware, etc…)&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;   &lt;/ol&gt; &lt;/ol&gt;  &lt;p&gt;Create groups for these server types, and override the default threshold for this monitor for those groups.&amp;#160; In general, I have found bumping to 250MB resolves most agent issues, but some special cases could need much more.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3257617" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="agents" scheme="http://blogs.technet.com/kevinholman/archive/tags/agents/default.aspx" /></entry><entry><title>Using a Generic Text Log rule to monitor an ASCII text file – even when the file is a UNC path</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/06/20/using-a-generic-text-log-rule-to-monitor-an-ascii-text-file-even-when-the-file-is-a-unc-path.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/06/20/using-a-generic-text-log-rule-to-monitor-an-ascii-text-file-even-when-the-file-is-a-unc-path.aspx</id><published>2009-06-19T23:23:11Z</published><updated>2009-06-19T23:23:11Z</updated><content type="html">&lt;p&gt;There are several examples in blogs on how to create a generic text log rule to monitor for a local text file (Unicode, ASCII, or UTF8).&lt;/p&gt;  &lt;p&gt;This will be a step-by-step example of doing the same, however, using this to monitor the log file on a remote UNC path instead of a local drive.&amp;#160; This is useful when we want to monitor a file/files on a NAS or an a share that is hosted by a computer without an agent.&lt;/p&gt;  &lt;p&gt;This is a bit unique… instead of applying this rule to ALL systems that might have a specific logfile present in a specific directly – we are going to target this rule to only ONE agent.&amp;#160; This agent will monitor the remote fileshare similar to the concept of a “Watcher Node” for a synthetic transaction.&amp;#160; Therefore we will be creating this rule disabled, and enabling it only for our “Watcher”. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In the Ops console – select the Authoring pane &amp;gt; Rules.&amp;#160; &lt;/p&gt;  &lt;p&gt;Right click Rules, and select Create a new rule.&amp;#160; We will chose the Generic Text Log for this example:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_thumb.png" width="261" height="204" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Choose the appropriate MP to save this new customer rule to, and click Next.&lt;/p&gt;  &lt;p&gt;For this rule name – I will be using “Company Name – Monitor remote logfile rule”&lt;/p&gt;  &lt;p&gt;Set the Rule Category to “Alert”&lt;/p&gt;  &lt;p&gt;For the target – I like to use “Windows Server Operating System” for generic rules and monitors.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;UNCHECK&lt;/em&gt;&lt;/strong&gt; the box for “Rule is enabled”&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_thumb_1.png" width="555" height="461" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Click Next.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The directory will be the UNC path.&amp;#160; Mine is “\\VS2\Software\Temp”&lt;/p&gt;  &lt;p&gt;The pattern will be the logfile(s) you want to monitor.&amp;#160; We can use a specific file, such as “logfile.log” or a wildcard, such as “*.log”.&lt;/p&gt;  &lt;p&gt;You should &lt;strong&gt;&lt;em&gt;not&lt;/em&gt;&lt;/strong&gt; check the “UTF8” box unless you know the logfile to be UTF8 encoded.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_thumb_2.png" width="492" height="412" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Click Next.&lt;/p&gt;  &lt;p&gt;On the event expression, click Insert for a new line.&amp;#160; Essentially – log file monitors look at each new line in a logfile as one object to read, and this is represented by “&lt;strong&gt;Params/Param[1]&lt;/strong&gt;”&amp;#160; This “Parameter 1” is the entire line in the logfile, and is the &lt;strong&gt;&lt;em&gt;only&lt;/em&gt;&lt;/strong&gt; value that is valid for this type of monitor – so just type/paste that in the box for Parameter Name.&lt;/p&gt;  &lt;p&gt;Since we want to search the logfile line for a specific word, the Operator will be “Contains”.&lt;/p&gt;  &lt;p&gt;For the value – this can be the word you are looking for in the line, that you want to alert on.&amp;#160; For my example, I will use the word “failed”.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_thumb_3.png" width="531" height="162" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Click Next.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;On the alert screen – we can customize the alert name if desired, set the severity and priority, and build a better Alert Description.&amp;#160; If you are using SP1 – the default alert description is blank.&amp;#160; If you are using R2 – the default alert description is “Event Description: $Data/EventDescription$”&amp;#160; HOWEVER – this is an invalid event variable for this type of event (logfile)…. so we need to change that right away.&amp;#160; I keep a list of common alert description strings &lt;a href="http://blogs.technet.com/kevinholman/archive/2007/12/12/adding-custom-information-to-alert-descriptions-and-notifications.aspx"&gt;HERE&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;For this – I will recommend the following alert description.&amp;#160; Feel free to customize to make good sense out of your alert:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Logfile Directory : $Data/EventData/DataItem/LogFileDirectory$        &lt;br /&gt;Logfile name: $Data/EventData/DataItem/LogFileName$         &lt;br /&gt;String:&amp;#160; $Data/EventData/DataItem/Params/Param[1]$&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Click “Create” to create the rule.&lt;/p&gt;  &lt;p&gt;Find the rule you just created in the console – right click it and choose “Properties”.&amp;#160; On the Configuration tab, under responses (to the right of “Alert”) click Edit.&lt;/p&gt;  &lt;p&gt;Click the “Alert Suppression” button.&amp;#160; You should consider adding in alert suppression on specific fields of an alert – in order to suppress a single alert for each match in the logfile.&amp;#160; If you don't – should the monitored logfile ever get flooded with lines containing “failed” from the application writing the log – SCOM will generate one alert for each line written to the log.&amp;#160; This has the potential to flood the SCOM database/Console with alerts.&amp;#160; By setting alert suppression here – we will create one alert, and increment the repeat count for each subsequent line/alert.&amp;#160; I am going to suppress on LoggingComputer and Parameter 1 for this example:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_thumb_4.png" width="178" height="295" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Click OK several times to accept and save these changes to the rule.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now – we created this rule as disabled – so we need to enable it via an override.&amp;#160; I will find the rule in the console – and override the rule &lt;strong&gt;&lt;em&gt;“For a specific object of class:&amp;#160; Windows Server Operating System”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_thumb_5.png" width="715" height="253" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now – pick one of these machines to be the “watcher” for the logfile in the remote share.&amp;#160; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;**Note&lt;/strong&gt; – the default agent action account will make the connection to the share and read the file.&amp;#160; In my case – the default agent action account is “Local System” so this will be the domain computer account of the “Watcher” agent which connects to the remote share and reads the file.&amp;#160; This account will need access to the share, folder, and files monitored.&amp;#160; Keep that in mind.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Set the override to “Enabled = True” and click OK.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;At this point, our Watcher machine will download the management pack again with the newly created override, and apply the new config.&amp;#160; Once that is complete – it will begin monitoring this file.&amp;#160; You can create a log file in the share path, and then write a new line with the word “failed” in it.&amp;#160; You need a carriage return after writing the line for SCOM to pick up on the change.&lt;/p&gt;  &lt;p&gt;You should see a new alert pop in the console, based on matching the criteria.&amp;#160; Subsequent log file matches will only increment the repeat count.&amp;#160; Customize the alert suppression as it makes sense for you.&lt;/p&gt;  &lt;p&gt;Then – create additional rules just like this – for different UNC paths.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_14.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/UsingaGenericTextLogruletomonitoranASCII_1028B/image_thumb_6.png" width="564" height="252" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3256945" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="Authoring" scheme="http://blogs.technet.com/kevinholman/archive/tags/Authoring/default.aspx" /></entry><entry><title>Web Application recorder R2 – the recorder bar missing in IE?</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/06/19/web-application-recorder-r2-the-recorder-bar-missing-in-ie.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/06/19/web-application-recorder-r2-the-recorder-bar-missing-in-ie.aspx</id><published>2009-06-19T15:15:34Z</published><updated>2009-06-19T15:15:34Z</updated><content type="html">&lt;p&gt;Sometimes getting the web application recorder to capture a web session can be a little tricky.&amp;#160; I have blogged about some typical issues you might run into &lt;a href="http://blogs.technet.com/kevinholman/archive/2008/11/15/recording-a-web-application-browser-session-driving-you-crazy.aspx"&gt;HERE&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Something I noticed today, with R2:&lt;/p&gt;  &lt;p&gt;When running the R2 console on an x64 machine – the web recorder bar is not coming up.&amp;#160; &lt;/p&gt;  &lt;p&gt;On my x86 machine – it was working just fine, however.&amp;#160; I notice – when I go into IE settings, Tools, Manage Add-ons….. I see this on a working machine:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/WebApplicationrecorderR2therecorderbarmi_9043/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/WebApplicationrecorderR2therecorderbarmi_9043/image_thumb.png" width="801" height="344" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;However – these add-ons are missing on my x64 based consoles.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The problem turned out to be…. that when you install the console on an x64 machine, it registers the x64 version of these add-ons.&amp;#160; However – the IE browser launched by default by hitting “Start Capture”, is the x86 version.&amp;#160; You have to manually launch the x64 IE shortcut – in order to use the web recorder browser.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So here are some steps to make this work:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;1.&amp;#160; Open the web application editor&lt;/p&gt;  &lt;p&gt;2.&amp;#160; Hit “Start Capture”&lt;/p&gt;  &lt;p&gt;3.&amp;#160; This will launch Internet Explorer in 32 bit mode.&amp;#160; Close this browser.&lt;/p&gt;  &lt;p&gt;4.&amp;#160; From the start menu, run Internet Explorer (64-bit)&lt;/p&gt;  &lt;p&gt;5.&amp;#160; The web recorder will appear.&amp;#160; (If not – choose View &amp;gt; Explorer Bars &amp;gt; Web Recorder)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;From there you can record your session, hit stop, and it will populate the web application tool as normal.&amp;#160; Just a minor inconvenience of closing one browser, and opening another.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3256792" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="Authoring" scheme="http://blogs.technet.com/kevinholman/archive/tags/Authoring/default.aspx" /><category term="R2" scheme="http://blogs.technet.com/kevinholman/archive/tags/R2/default.aspx" /></entry><entry><title>Outages and Maintenance Report</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/06/11/outages-and-maintenance-report.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="3131" href="http://blogs.technet.com/kevinholman/attachment/3253340.ashx" /><id>http://blogs.technet.com/kevinholman/archive/2009/06/11/outages-and-maintenance-report.aspx</id><published>2009-06-11T04:48:00Z</published><updated>2009-06-11T04:48:00Z</updated><content type="html">&lt;P&gt;This is a little report I put together on request.&lt;/P&gt;
&lt;P&gt;This report will query the data warehouse, and show all the outages, and maintenance, for objects in specific groups.&lt;/P&gt;
&lt;P&gt;The outages look at all the “Failed to Connect to Computer” alerts, and list the start and end time of the outage, based on the time the alert was created, to the time it was closed (assumes it is auto-closed by the agent coming back online)&lt;/P&gt;
&lt;P&gt;The maintenance looks at the times that the Health Service Watcher objects are placed into maintenance mode.&lt;/P&gt;
&lt;P&gt;There is a start and end time parameters for the report – and the report defaults to the last 30 days.&lt;/P&gt;
&lt;P&gt;There is a group choice parameter – you should pick a group that contains Health Service Watcher objects.&lt;/P&gt;
&lt;P&gt;It looks like this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/OutagesandMaintenanceReport_14EC7/image_2.png" mce_href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/OutagesandMaintenanceReport_14EC7/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/OutagesandMaintenanceReport_14EC7/image_thumb.png" width=644 height=257 mce_src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/OutagesandMaintenanceReport_14EC7/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;It is based on this query, which you can tune to meet your needs:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;declare @startdate datetime &lt;BR&gt;declare @enddate datetime &lt;BR&gt;declare @computergroups varchar(50) &lt;BR&gt;SET @startdate = '2009-06-01 00:00:00.000' &lt;BR&gt;SET @enddate = getutcdate() &lt;BR&gt;set @computergroups = 'Agent Managed Computer Group' &lt;/P&gt;
&lt;P&gt;select &lt;BR&gt;apv.ParameterValue as SystemName, &lt;BR&gt;(DATEADD(hh,DATEDIFF(hh,getutcdate(),getdate()),av.RaisedDateTime)) as DownDateTime, &lt;BR&gt;(DATEADD(hh,DATEDIFF(hh,getutcdate(),getdate()),arsv.StateSetDateTime)) as RestoredDateTime, &lt;BR&gt;adv.CustomField2 as OutageType, &lt;BR&gt;adv.CustomField3 as RootCause, &lt;BR&gt;adv.CustomField4 as Reason, &lt;BR&gt;adv.DBLastModifiedByUserId as UserID &lt;BR&gt;FROM Alert.vAlert av &lt;BR&gt;JOIN Alert.vAlertDetail adv on av.AlertGuid = adv.AlertGuid &lt;BR&gt;JOIN Alert.vAlertResolutionState arsv on av.AlertGuid = arsv.AlertGuid &lt;BR&gt;JOIN Alert.vAlertParameter apv on av.AlertGuid = apv.AlertGuid &lt;BR&gt;WHERE AlertName = 'Failed to Connect to Computer' &lt;BR&gt;AND arsv.ResolutionState = '255' &lt;BR&gt;--AND adv.CustomField2 IS NOT NULL &lt;BR&gt;AND (DATEADD(hh,DATEDIFF(hh,getutcdate(),getdate()),av.RaisedDateTime)) between @startdate and @enddate &lt;BR&gt;and apv.ParameterValue IN ( &lt;BR&gt;SELECT vManagedEntity.DisplayName &lt;BR&gt;FROM&amp;nbsp; vManagedEntity &lt;BR&gt;INNER JOIN vRelationship ON vManagedEntity.ManagedEntityRowId = vRelationship.TargetManagedEntityRowId &lt;BR&gt;INNER JOIN vManagedEntity AS ManagedEntity_1 ON vRelationship.SourceManagedEntityRowId = ManagedEntity_1.ManagedEntityRowId &lt;BR&gt;WHERE (ManagedEntity_1.DisplayName = @computergroups) &lt;BR&gt;) &lt;/P&gt;
&lt;P&gt;UNION ALL &lt;/P&gt;
&lt;P&gt;select &lt;BR&gt;vme.displayname, &lt;BR&gt;(DATEADD(hh,DATEDIFF(hh,getutcdate(),getdate()),vmm.StartDateTime)) as DownDateTime, &lt;BR&gt;(DATEADD(hh,DATEDIFF(hh,getutcdate(),getdate()),vmm.EndDateTime)) as RestoredDateTime, &lt;BR&gt;'OutageType' = &lt;BR&gt;CASE &lt;BR&gt;&amp;nbsp; vmm.PlannedMaintenanceInd &lt;BR&gt;&amp;nbsp; WHEN '1' THEN 'Scheduled' &lt;BR&gt;&amp;nbsp; WHEN '0' THEN 'Unscheduled' &lt;BR&gt;END, &lt;BR&gt;'RootCause' = &lt;BR&gt;CASE &lt;BR&gt;&amp;nbsp; vmmh.ReasonCode &lt;BR&gt;&amp;nbsp; WHEN '0' THEN 'Other (Planned)' &lt;BR&gt;&amp;nbsp; WHEN '1' THEN 'Other (Unplanned)' &lt;BR&gt;&amp;nbsp; WHEN '2' THEN 'Hardware: Maintenance (Planned)' &lt;BR&gt;&amp;nbsp; WHEN '3' THEN 'Hardware: Maintenance (Unplanned)' &lt;BR&gt;&amp;nbsp; WHEN '4' THEN 'Hardware: Installation (Planned)' &lt;BR&gt;&amp;nbsp; WHEN '5' THEN 'Hardware: Installation (Unplanned)' &lt;BR&gt;&amp;nbsp; WHEN '6' THEN 'Operating System: Reconfiguration (Planned)' &lt;BR&gt;&amp;nbsp; WHEN '7' THEN 'Operating System: Reconfiguration (Unplanned)' &lt;BR&gt;&amp;nbsp; WHEN '8' THEN 'Application: Maintenance (Planned)' &lt;BR&gt;&amp;nbsp; WHEN '9' THEN 'Application: Maintenance (Unplanned)' &lt;BR&gt;&amp;nbsp; WHEN '10' THEN 'Application: Installation (Planned)' &lt;BR&gt;&amp;nbsp; WHEN '11' THEN 'Application: Unresponsive' &lt;BR&gt;&amp;nbsp; WHEN '12' THEN 'Application:&amp;nbsp; Unstable' &lt;BR&gt;&amp;nbsp; WHEN '13' THEN 'Security Issue' &lt;BR&gt;&amp;nbsp; WHEN '14' THEN 'Loss of network connectivity (Unplanned)' &lt;BR&gt;END, &lt;BR&gt;vmmh.Comment as Reason, &lt;BR&gt;vmmh.userid as UserID &lt;BR&gt;from vMaintenanceMode vmm &lt;BR&gt;join vManagedEntity vme on vmm.managedentityrowid = vme.managedentityrowid &lt;BR&gt;join vMaintenanceModeHistory vmmh on vmm.maintenancemoderowid = vmmh.maintenancemoderowid &lt;BR&gt;where vme.FullName LIKE '%HealthServiceWatcher%' &lt;BR&gt;and (DATEADD(hh,DATEDIFF(hh,getutcdate(),getdate()),vmm.StartDateTime)) between @startdate and @enddate &lt;BR&gt;and vme.displayname IN ( &lt;BR&gt;SELECT vManagedEntity.DisplayName &lt;BR&gt;FROM&amp;nbsp; vManagedEntity &lt;BR&gt;INNER JOIN vRelationship ON vManagedEntity.ManagedEntityRowId = vRelationship.TargetManagedEntityRowId &lt;BR&gt;INNER JOIN vManagedEntity AS ManagedEntity_1 ON vRelationship.SourceManagedEntityRowId = ManagedEntity_1.ManagedEntityRowId &lt;BR&gt;WHERE (ManagedEntity_1.DisplayName = @computergroups) &lt;BR&gt;) &lt;BR&gt;ORDER BY DownDateTime&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The report is attached below.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3253340" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="query" scheme="http://blogs.technet.com/kevinholman/archive/tags/query/default.aspx" /><category term="reporting" scheme="http://blogs.technet.com/kevinholman/archive/tags/reporting/default.aspx" /><category term="TSQL" scheme="http://blogs.technet.com/kevinholman/archive/tags/TSQL/default.aspx" /></entry><entry><title>Creating custom dynamic computer groups based on registry keys on agents</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/06/10/creating-custom-dynamic-computer-groups-based-on-registry-keys-on-agents.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/06/10/creating-custom-dynamic-computer-groups-based-on-registry-keys-on-agents.aspx</id><published>2009-06-10T04:09:48Z</published><updated>2009-06-10T04:09:48Z</updated><content type="html">&lt;p&gt;I have had a few requests now for this, so I thought I would take the time to write up the process.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_30.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_14.png" width="527" height="389" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Lets say I have three support levels of servers:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Level 1&lt;/strong&gt; – servers critical to business operations (ex: customer facing web applications, SQL back-ends)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Level&lt;/strong&gt; &lt;strong&gt;2&lt;/strong&gt; – important servers (ex: messaging, internal apps)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Level 3&lt;/strong&gt; – non-essential servers (ex: non-critical or highly redundant internal apps)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Lets say we want to create overrides for certain rules…&amp;#160; where we will page on anything in Level 1 group, email notify on Level 2 group, and simply alert for Level 3.&amp;#160; Possibly we want to create views, and only see alerts for Level 1 servers.&amp;#160; Perhaps we wish to scope users so they only see Level 1 and Level 2 servers in the console?&lt;/p&gt;  &lt;p&gt;Well – the first step is to place these servers into groups.&lt;/p&gt;  &lt;p&gt;Sure – we can do this manually, with explicit assignments to the group.&amp;#160; But that is resource intensive over time, and we might miss one down the road.&amp;#160; I’d prefer to dynamically create the groups of Windows Computers based on a name…. but this can be difficult sometimes – where we don't have a solid naming scheme, or other criteria to group by.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I will demonstrate another way to accomplish this… by coming up with a business process to use a registry key on your managed servers, and collect this registry attribute with SCOM.&amp;#160; Then – use this Registry attribute for dynamic group memberships.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Ultimately – there are three simple steps to this process:&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1.&amp;#160; Create registry keys on agents.&lt;/p&gt;    &lt;p&gt;2.&amp;#160; Extended a class with an attribute, to discover the registry keys and values.&lt;/p&gt;    &lt;p&gt;3.&amp;#160; Create dynamic groups based on the attribute values from the registry.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;It is just that simple.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To get started – lets talk about our custom registry key.&amp;#160; For this example, I am going to create a new Key at HKLM\Software\ and call it “CompanyName”&lt;/p&gt;  &lt;p&gt;Next – in that key – I will create a new DWORD Value, named “SupportLevel”&lt;/p&gt;  &lt;p&gt;Lastly – I will assign a numeric value to “SupportLevel” on each server, either 1, 2, or 3.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb.png" width="599" height="408" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In my environment…. my Hyper-V servers are critical.&amp;#160; They host all of my VM’s, including many business critical applications.&amp;#160; Therefore – they will get Level 1.&lt;/p&gt;  &lt;p&gt;My Exchange 2007 servers handle all my mail traffic and notifications, so I will set their registry value to Level 2.&lt;/p&gt;  &lt;p&gt;My Exchange 2003 servers have been retired – for MP testing only… so we will set those to Level 3.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Here is a table that shows what I am planning:&lt;/strong&gt;&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="199"&gt;&lt;strong&gt;ServerName&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="199"&gt;&lt;strong&gt;SupportLevel&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;VS1&lt;/td&gt;        &lt;td valign="top" width="199"&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;VS2&lt;/td&gt;        &lt;td valign="top" width="199"&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;VS3&lt;/td&gt;        &lt;td valign="top" width="199"&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;EX1CLN1&lt;/td&gt;        &lt;td valign="top" width="199"&gt;2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;EX1CLN2&lt;/td&gt;        &lt;td valign="top" width="199"&gt;2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;EXCAS&lt;/td&gt;        &lt;td valign="top" width="199"&gt;2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;EX2CLN1&lt;/td&gt;        &lt;td valign="top" width="199"&gt;3&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;EX2CLN2&lt;/td&gt;        &lt;td valign="top" width="199"&gt;3&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="199"&gt;OWA&lt;/td&gt;        &lt;td valign="top" width="199"&gt;3&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So – I get all my registry values set on all computers.&amp;#160; This is a big job at first, but it is a one time deal, and you can even script it if you are handy.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next… we need to discover these registry entries in SCOM, as attributes of a class.&amp;#160; Then were can use that attribute to group objects.&amp;#160; Since I want Windows Computer objects in my groups (Windows Computer is a good object for most overrides, scoping, notifications…etc..) we would like to have these attributes added to the Windows Computer class.&lt;/p&gt;  &lt;p&gt;However – there is a problem.&amp;#160; The Windows Computer object is in a sealed MP.&amp;#160; We cannot just add information to that class as we would like.&amp;#160; Therefore – OpsMgr allows us to “Extend” an existing class… and add our custom attributes to it.&amp;#160; This “Extended” class is basically a copy of the existing class… it will have all the built in attributes of Windows Computer, and will also have our custom attribute properties.&amp;#160; It’s is easier to see it than to talk about it.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;First – in the Ops console – authoring pane – go to Attributes.&amp;#160; Create a new attribute.&amp;#160; I am going to call this one “SupportLevel”&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_1.png" width="681" height="598" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next – choose “Registry” for the discovery type.&lt;/p&gt;  &lt;p&gt;Next – We need to pick the Target class.&amp;#160; We want Windows Computer.&amp;#160; Note – this will create a new class, named “Windows Computer_Extended” by default.&amp;#160; We can use this name, or you can rename this whatever you want.&amp;#160; It is your class.&amp;#160; I will leave it at the default.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_2.png" width="679" height="311" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Most important!&lt;/strong&gt;&amp;#160; Management Pack location.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;This is CRITICAL&lt;/font&gt;&lt;/strong&gt;.&amp;#160; Spend some time making sure you are creating these attributes in the correct location.&amp;#160; If you leave this MP unsealed XML…. then any groups you create that use these attributes, will have to be placed in this same MP.&amp;#160; Then – if you use these groups for Overrides – those overrides will be force to go in this same MP.&amp;#160; There is a “cardinal rule” in SCOM… objects in one unsealed MP cannot reference another unsealed MP.&amp;#160; So – we cannot have a group in one unsealed MP, and then use that group for an override in another unsealed override MP.&amp;#160; &lt;/p&gt;  &lt;p&gt;So – we have two choices.&amp;#160; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;1.&amp;#160; Keep an unsealed MP… and live with the fact that attribute, group, and override will all have to be placed here.&amp;#160; &lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;2.&amp;#160; Create the attribute and the dynamic group in the MP, then seal it.&amp;#160; Then – you can use this group in ANY of your override MP’s… for Exchange, SQL, etc…&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I &lt;strong&gt;&lt;em&gt;strongly&lt;/em&gt;&lt;/strong&gt; recommend option #2 for this exercise… but you can make this decision for yourself.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_4.png" width="500" height="394" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ok…. I will choose Option #2 (seal the MP), so I will create a new MP just for this extended class, and groups.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;On the next screen – we can put in our registry information:&lt;/p&gt;  &lt;p&gt;In this example – I am looking for a registry Value (1, 2, or 3), and my attribute type is “Int” for integer.&lt;/p&gt;  &lt;p&gt;For the frequency, set this to a reasonable frequency to discover you machines as they come on to you network.&amp;#160; Typically, once per day is sufficient (86400 seconds)&amp;#160; Remember – this will run against ALL your Windows Computers… so never set this more frequent than once per hour… that creates unnecessary overhead.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_5.png" width="682" height="598" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ok – lets examine our work!&lt;/p&gt;  &lt;p&gt;Go to Monitoring, Discovered Inventory, and change target type to our new class “Windows Computer_Extended”&lt;/p&gt;  &lt;p&gt;If you do this quickly – you may find it is empty.&amp;#160; This is what is happening behind the scenes:&amp;#160; All Windows Computers are now downloading our newly created MP.&amp;#160; They are going to run the registry attribute discovery, and submit their discovery data to the management server.&amp;#160; The Management Server will insert this discovery data in the database.&amp;#160; Over time, you will start to see all your Windows Computers pop into this class membership.&amp;#160; You will notice a new attribute now, in addition to all the existing Windows Computer attributes.&amp;#160; This attribute is “SupportLevel” and will be 1, 2, 3, or empty… depending on what each agent find in the registry.&lt;/p&gt;  &lt;p&gt;Now – I set my registry discovery to once per day…. so I will need to wait 24 hours before I can expect all my healthy agents to show up in this list.&amp;#160; To speed things up – I am going to bounce the HealthService on these example agents.&amp;#160; (Agents run all discoveries when a HealthService restarts, and then on their frequency schedule)&lt;/p&gt;  &lt;p&gt;Here is an example a few minutes after bouncing the HealthService on some agents:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_14.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_6.png" width="655" height="300" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next on the list – create the groups.&amp;#160; I will create these in the same MP that the attributes exist in.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I will call my first group “CompanyName – Support Level 1 Servers Group”.&amp;#160; I like to append the word “Group” to all groups I create as a best practice.&amp;#160; This helps us determine this group class is actually a group when we see it in the list of classes in the UI.&amp;#160; I sure wish all MP authors would take this to heart, since every group is actually a singleton class.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_16.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_7.png" width="733" height="630" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;On the dynamic members screen – I will fins my “Windows Computer_Extended” class – and click Add.&amp;#160; What we now see – is that we have a new attribute to use, “Support Level”&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_18.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_8.png" width="562" height="303" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I will set this group to “SupportLevel Equals 1” and click OK.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_20.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_9.png" width="560" height="216" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now – I can right-click my new group – and choose “View Group Members”&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_22.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_10.png" width="322" height="213" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_32.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_15.png" width="509" height="414" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Yee-haw!&amp;#160; It works!&amp;#160; Now – I simply repeat this above step – creating groups for SupportLevel 2, and 3.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_26.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_12.png" width="263" height="208" /&gt;&lt;/a&gt; &lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_28.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_13.png" width="268" height="211" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now – that is done.&amp;#160; This is the area, that I recommend we stop… take a breather…. then seal the MP.&amp;#160; If you seal the MP – we will be able to use the groups for overrides in any other override MP.&amp;#160; If you choose not to seal the MP now… any overrides you use the groups for – will be forced into this same MP.&amp;#160; Please keep that in mind.&lt;/p&gt;  &lt;p&gt;Since I am harping on sealing the MP…. I am going to do a quick example of just that.&amp;#160; Jonathan Almquist has an excellent tutorial on sealing MP’s &lt;a href="http://blogs.technet.com/jonathanalmquist/archive/2008/08/19/seal-a-management-pack.aspx"&gt;HERE&lt;/a&gt; and we will use his example.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;**Note – when running the sn.exe commands to create our key…. we only need to do this one… not every time we want to seal an MP.&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;***Critical note – you need to keep a backup of this key… because it will be required for making updates to this MP in the future, re-sealing, and keeping the ability to upgrade the existing MP in production.&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So, I create the folders, create the key using sn.exe, copy over the referenced MP’s from the RMS,&amp;#160; and now I am ready to seal.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;MPSeal.exe c:\mpseal\input\CompanyName.SupportLevel.MP.xml /I &amp;quot;c:\mpseal\mp&amp;quot; /Keyfile &amp;quot;c:\mpseal\key\PairKey.snk&amp;quot; /Company &amp;quot;CompanyName&amp;quot; /Outdir &amp;quot;c:\mpseal\output&amp;quot;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Works great.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_24.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Creatingcustomdynamiccomputergroupsbased_144ED/image_thumb_11.png" width="457" height="241" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now – I can &lt;strong&gt;&lt;em&gt;delete&lt;/em&gt;&lt;/strong&gt; my unsealed MP from the management group, and import my sealed MP.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Phew.&amp;#160; All the heavy lifting is done.&amp;#160; Now… I have my groups… I can start setting up overrides using these groups, or scoping notifications.&amp;#160; &lt;/p&gt;  &lt;p&gt;On my &lt;strong&gt;Support Level 1 group&lt;/strong&gt; – I will use this to set up my pager Notification subscriptions to only page based on specific classes, and this group.&lt;/p&gt;  &lt;p&gt;On my &lt;strong&gt;Support Level 2 group&lt;/strong&gt; – I will use this to override important alerts to High Priority… because I am using High Priority as a filter for email notifications, per my previous blog post here:&amp;#160; &lt;a title="http://blogs.technet.com/kevinholman/archive/2008/06/26/using-opsmgr-notifications-in-the-real-world-part-1.aspx" href="http://blogs.technet.com/kevinholman/archive/2008/06/26/using-opsmgr-notifications-in-the-real-world-part-1.aspx"&gt;http://blogs.technet.com/kevinholman/archive/2008/06/26/using-opsmgr-notifications-in-the-real-world-part-1.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On my &lt;strong&gt;Support Level 3 group&lt;/strong&gt; – I will use this group for tweaking/disabling rules and monitors for the group… turning off discoveries so they don't discover lab servers, scoping views, etc.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Maybe in my next post…. I will build on this MP… and show a really simple way to add the Health Service Watcher objects to these dynamic groups… for each Windows Computer object that is in the group – so we can use these groups for Heartbeat failure notifications.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3252822" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="management pack" scheme="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx" /><category term="notification" scheme="http://blogs.technet.com/kevinholman/archive/tags/notification/default.aspx" /><category term="Authoring" scheme="http://blogs.technet.com/kevinholman/archive/tags/Authoring/default.aspx" /></entry><entry><title>Maintenance mode – tying the text of the category to the database</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/06/05/maintenance-mode-tying-the-text-of-the-category-to-the-database.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/06/05/maintenance-mode-tying-the-text-of-the-category-to-the-database.aspx</id><published>2009-06-05T05:59:36Z</published><updated>2009-06-05T05:59:36Z</updated><content type="html">&lt;p&gt;I havent seen this discussed before – so I figured I would post this.&lt;/p&gt;  &lt;p&gt;In the OpsDB and DWDB – we keep some tables names MaintenanceMode and MaintenanceModeHistory.&lt;/p&gt;  &lt;p&gt;When you place an object into maintenance mode – we will log a row in the database for this object.&amp;#160; You could potentially write reports against this data in the data warehouse, and report on MM history.&amp;#160; &lt;/p&gt;  &lt;p&gt;From the following query:&amp;#160; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;select * from dbo.vMaintenanceModeHistory&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;There is a column named “ReasonCode”&amp;#160; This has a numeric value.&amp;#160; However – in the UI – this correlates to the “Category” that you must select when you place an object into MM:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Maintenancemodetyingthetextofthecategory_DF6/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Maintenancemodetyingthetextofthecategory_DF6/image_thumb.png" width="472" height="533" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here is a table which sorts out the numeric reason code vs the text in the UI:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="0" width="415"&gt;&lt;tbody&gt;     &lt;tr height="20"&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Other (Planned)&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;0&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Other (Unplanned)&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;1&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Hardware: Maintenance (Planned)&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;2&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Hardware: Maintenance (Unplanned)&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;3&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Hardware: Installation (Planned)&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;4&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Hardware: Installation (Unplanned)&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;5&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Operating System: Reconfiguration (Planned)&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;6&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Operating System: Reconfiguration (Unplanned)&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;7&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Application: Maintenance (Planned)&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;8&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Application: Maintenance (Unplanned)&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;9&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Application: Installation (Planned)&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;10&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Application: Unresponsive&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;11&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Application:&amp;#160; Unstable&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;12&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Security Issue&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;13&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="360"&gt;         &lt;p&gt;&lt;font size="2"&gt;Loss of network connectivity (Unplanned)&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="53"&gt;         &lt;p align="center"&gt;&lt;font size="2"&gt;14&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3250630" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="database" scheme="http://blogs.technet.com/kevinholman/archive/tags/database/default.aspx" /><category term="query" scheme="http://blogs.technet.com/kevinholman/archive/tags/query/default.aspx" /><category term="reporting" scheme="http://blogs.technet.com/kevinholman/archive/tags/reporting/default.aspx" /></entry><entry><title>Some Server 2008 Windows Firewall rules needed to install OpsMgr R2</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/06/02/some-server-2008-windows-firewall-rules-needed-to-install-opsmgr-r2.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/06/02/some-server-2008-windows-firewall-rules-needed-to-install-opsmgr-r2.aspx</id><published>2009-06-01T23:03:03Z</published><updated>2009-06-01T23:03:03Z</updated><content type="html">&lt;p&gt;I recently rebuilt a POC environment all on Server 2008, and SQL 2008.&lt;/p&gt;  &lt;p&gt;Out of the box – the R2 install is a bit rocky – because of the Windows Firewall enabled on Server 2008 by default.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;These required custom firewall rules are documented on the supported configuration guide…. located at &lt;a title="http://technet.microsoft.com/en-us/library/bb309428.aspx" href="http://technet.microsoft.com/en-us/library/bb309428.aspx"&gt;http://technet.microsoft.com/en-us/library/bb309428.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I just want to provide a little &lt;strong&gt;&lt;em&gt;context&lt;/em&gt;&lt;/strong&gt; around them.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;My three servers are OMRMS, OMDB, and OMDW.&lt;/p&gt;  &lt;p&gt;OMRMS – Root Management Server&lt;/p&gt;  &lt;p&gt;OMDB – OperationsManager database role with SQL 2008 Database Services.&lt;/p&gt;  &lt;p&gt;OMDW – OperationsManagerDW database role, Reporting Role, with SQL 2008 Database Services and Reporting Services&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;First off – during the install of the RMS, it will fail to locate the SC database.&amp;#160; This is because it tries to contact the SQL database server on OMDB over port 1433, and this is blocked by the Windows Firewall on OMDB.&amp;#160; To resolve – I need to allow the SQL server program access through the firewall:&lt;/p&gt;  &lt;p&gt;I create a new rule – called “Custom - SQL DB Engine Program” and choose rule type of program – and give it the path to SQLServer.exe – in my case:&amp;#160; E:\Program Files\Microsoft SQL Server\MSSQL10.I01\MSSQL\Binn\sqlservr.exe&amp;#160; &lt;/p&gt;  &lt;p&gt;In addition – I am using a named instance of SQL.&amp;#160; When we use a named instance of SQL, the DB Engine instance will not use port 1433 by default.&amp;#160; It will pick a random port and assign it to the DB engine instance.&amp;#160; When clients connect to this instance – they do not know this random port…. therefore – they can leverage the SQL broker service – which will communicate the random port to the SQL client for communication.&amp;#160; &lt;/p&gt;  &lt;p&gt;Therefore – I need another rule on the firewall of the SQL server:&amp;#160; this time a port based rule – allowing 1434 UDP.&lt;/p&gt;  &lt;p&gt;Here is a screenshot of my two access rules:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/SomeServer2008WindowsFirewallrulesneeded_FD5C/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/SomeServer2008WindowsFirewallrulesneeded_FD5C/image_thumb.png" width="570" height="41" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now – the RMS install is able to locate the SC database – and we continue.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next up – I perform the reporting install on OMDW.&amp;#160; I install the DW and the Reporting server roles here.&amp;#160; The install goes fine.&amp;#160; However – the RMS starts logging the following events:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Log Name:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Operations Manager       &lt;br /&gt;Source:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Health Service Modules        &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 6/1/2009 5:08:19 PM        &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 31551        &lt;br /&gt;Task Category: Data Warehouse        &lt;br /&gt;Level:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Error        &lt;br /&gt;Keywords:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Classic        &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A        &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; OMRMS.opsmgr.net        &lt;br /&gt;Description:        &lt;br /&gt;Failed to store data in the Data Warehouse. The operation will be retried.        &lt;br /&gt;Exception 'SqlException': A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;One or more workflows were affected by this.&amp;#160; &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Workflow name: Microsoft.SystemCenter.DataWarehouse.CollectEventData        &lt;br /&gt;Instance name: OMRMS.opsmgr.net         &lt;br /&gt;Instance ID: {E61C0DD2-AB2A-4CFA-D252-37B84BCF9A83}         &lt;br /&gt;Management group: PROD1&lt;/strong&gt;      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This is because the RMS cannot contact SQL on the data warehouse SQL server.&amp;#160; Therefore – I need to add the same two firewall rules on OMDW that I enabled on OMDB…. to allow remote SQL connections.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now – I have installed the RMS, and I have installed reporting into the management group.&amp;#160; However – when I click on “Reporting” in the SCOM console – I get the following error:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/SomeServer2008WindowsFirewallrulesneeded_FD5C/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/SomeServer2008WindowsFirewallrulesneeded_FD5C/image_thumb_1.png" width="554" height="350" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Date: 6/1/2009 5:16:31 PM     &lt;br /&gt;Application: System Center Operations Manager 2007 R2      &lt;br /&gt;Application Version: 6.1.7221.0      &lt;br /&gt;Severity: Error      &lt;br /&gt;Message: Loading reporting hierarchy failed. &lt;/p&gt;    &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;font color="#0000ff" size="3"&gt;System.Net.WebException: Unable to connect to the remote server ---&amp;gt; System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 10.10.10.7:80&lt;/font&gt;        &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160; at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)      &lt;br /&gt;&amp;#160;&amp;#160; at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)      &lt;br /&gt;&amp;#160;&amp;#160; at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket&amp;amp; socket, IPAddress&amp;amp; address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception&amp;amp; exception)      &lt;br /&gt;&amp;#160;&amp;#160; --- End of inner exception stack trace ---      &lt;br /&gt;&amp;#160;&amp;#160; at System.Net.HttpWebRequest.GetRequestStream()      &lt;br /&gt;&amp;#160;&amp;#160; at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)      &lt;br /&gt;&amp;#160;&amp;#160; at Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.ReportingService.ReportingService2005.ListChildren(String Item, Boolean Recursive)      &lt;br /&gt;&amp;#160;&amp;#160; at Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.ManagementGroupReportFolder.GetSubfolders(Boolean includeHidden)      &lt;br /&gt;&amp;#160;&amp;#160; at Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.ManagementGroupReportFolder.GetSubfolders()      &lt;br /&gt;&amp;#160;&amp;#160; at Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.WunderBar.ReportingPage.LoadReportingSubtree(TreeNode node, ManagementGroupReportFolder folder)      &lt;br /&gt;&amp;#160;&amp;#160; at Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.WunderBar.ReportingPage.LoadReportingTree(ManagementGroupReportFolder folder)      &lt;br /&gt;&amp;#160;&amp;#160; at Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.WunderBar.ReportingPage.LoadReportingTreeJob(Object sender, ConsoleJobEventArgs args)      &lt;br /&gt;System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 10.10.10.7:80      &lt;br /&gt;&amp;#160;&amp;#160; at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)      &lt;br /&gt;&amp;#160;&amp;#160; at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)      &lt;br /&gt;&amp;#160;&amp;#160; at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket&amp;amp; socket, IPAddress&amp;amp; address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception&amp;amp; exception)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;See the bolded blue part above.&amp;#160; The console is not able to establish a connection to the HTTP reporting server address.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Additionally – you will see the following in the RMS event log:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Log Name:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Operations Manager       &lt;br /&gt;Source:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Health Service Modules        &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 6/1/2009 5:40:22 PM        &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 31569        &lt;br /&gt;Task Category: Data Warehouse        &lt;br /&gt;Level:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Error        &lt;br /&gt;Keywords:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Classic        &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A        &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; OMRMS.opsmgr.net        &lt;br /&gt;Description:        &lt;br /&gt;Report deployment process failed to request management pack list from SQL RS Server. The operation will be retried.        &lt;br /&gt;Exception 'WebException': Unable to connect to the remote server &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;One or more workflows were affected by this.&amp;#160; &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Workflow name: Microsoft.SystemCenter.DataWarehouse.Deployment.Report        &lt;br /&gt;Instance name: OMRMS.opsmgr.net         &lt;br /&gt;Instance ID: {E61C0DD2-AB2A-4CFA-D252-37B84BCF9A83}         &lt;br /&gt;Management group: PROD1&lt;/strong&gt;      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This is all due to the fact that the Windows Firewall is blocking port 80 (HTTP) by default.&amp;#160; We need to open another access rule – for TCP port 80 for this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/SomeServer2008WindowsFirewallrulesneeded_FD5C/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/SomeServer2008WindowsFirewallrulesneeded_FD5C/image_thumb_2.png" width="450" height="24" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now – I go ahead and open it for TCP 80, and TCP 443, since I might lock this down using SSL in the future.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Once the HTTP rule is enabled on the Reporting server role – the RMS almost immediately throws the following events:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Log Name:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Operations Manager       &lt;br /&gt;Source:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Health Service Modules        &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 6/1/2009 5:51:42 PM        &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 31570        &lt;br /&gt;Task Category: Data Warehouse        &lt;br /&gt;Level:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Information        &lt;br /&gt;Keywords:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Classic        &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A        &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; OMRMS.opsmgr.net        &lt;br /&gt;Description:        &lt;br /&gt;&lt;font color="#0000ff"&gt;Report deployment process successfully requested management pack list from SQL RS Server&lt;/font&gt; &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;One or more workflows were affected by this.&amp;#160; &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Workflow name: Microsoft.SystemCenter.DataWarehouse.Deployment.Report        &lt;br /&gt;Instance name: OMRMS.opsmgr.net         &lt;br /&gt;Instance ID: {E61C0DD2-AB2A-4CFA-D252-37B84BCF9A83}         &lt;br /&gt;Management group: PROD1        &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Log Name:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Operations Manager       &lt;br /&gt;Source:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Health Service Modules        &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 6/1/2009 5:52:27 PM        &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 31568        &lt;br /&gt;Task Category: Data Warehouse        &lt;br /&gt;Level:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Information        &lt;br /&gt;Keywords:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Classic        &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A        &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; OMRMS.opsmgr.net        &lt;br /&gt;Description:        &lt;br /&gt;&lt;font color="#0000ff"&gt;Reporting components successfully deployed&lt;/font&gt; &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;One or more workflows were affected by this.&amp;#160; &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Workflow name: Microsoft.SystemCenter.DataWarehouse.Deployment.Report        &lt;br /&gt;Instance name: OMRMS.opsmgr.net         &lt;br /&gt;Instance ID: {E61C0DD2-AB2A-4CFA-D252-37B84BCF9A83}         &lt;br /&gt;Management group: PROD1&lt;/strong&gt;      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;A quick check of the Reporting tab of the console now yields:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/SomeServer2008WindowsFirewallrulesneeded_FD5C/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/SomeServer2008WindowsFirewallrulesneeded_FD5C/image_thumb_3.png" width="548" height="420" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And I wait an hour or so – and go back to the RMS – and make sure the RMS OperationsManager event log is clean – before doing anything else to the management group.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3249113" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="firewall" scheme="http://blogs.technet.com/kevinholman/archive/tags/firewall/default.aspx" /></entry><entry><title>My experience upgrading to OpsMgr R2 RTM</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/05/23/my-experience-upgrading-to-opsmgr-r2-rtm.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/05/23/my-experience-upgrading-to-opsmgr-r2-rtm.aspx</id><published>2009-05-23T17:01:23Z</published><updated>2009-05-23T17:01:23Z</updated><content type="html">&lt;p&gt;I upgraded my test lab from SP1 to R2-RTM this weekend.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;My current test lab consists of the following servers:&lt;/p&gt;  &lt;p&gt;OMRMS – Server 2003 - RMS role&lt;/p&gt;  &lt;p&gt;OMMS3 – Server 2008 - MS role, Web Console&lt;/p&gt;  &lt;p&gt;OMMS – Server 2003 - MS role, ACS collector&lt;/p&gt;  &lt;p&gt;OMDB – Server 2003/SQL 2005 - OperationsManager Database&lt;/p&gt;  &lt;p&gt;OMDW – Server 2003/SQL 2005 - OperationsManagerDW database, Reporting, SRS, ACSDB roles&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;There are 18 agents reporting to this management group.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;So – I start – with a little light reading.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;I begin with the release notes.&lt;/strong&gt;&amp;#160; These are available from the R2 CD, and on the web at &lt;a title="Operations Manager 2007 R2 Release Notes" href="http://technet.microsoft.com/en-us/library/dd827187.aspx"&gt;Operations Manager 2007 R2 Release Notes&lt;/a&gt;&amp;#160; I dont see anything in there that is terribly applicable to me…. but these are good to commit to short term memory – in case we hit a snag during/after the upgrade.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Next – I move on to the Upgrade guide.&lt;/strong&gt;&amp;#160; This is available on the Technet Library – at &lt;a title="Operations Manager 2007 Upgrade Guide" href="http://technet.microsoft.com/en-us/library/dd861348.aspx"&gt;Operations Manager 2007 Upgrade Guide&lt;/a&gt;&amp;#160; I need to spend a little time on this one, mapping out the pre-upgrade steps, and then planning the order of my upgrade based on how my management group is deployed.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;So – I start by running down the pre-upgrade checklist&lt;/strong&gt; at: &lt;a title="Preparing to Upgrade Operations Manager 2007" href="http://technet.microsoft.com/en-us/library/dd789074.aspx"&gt;Preparing to Upgrade Operations Manager 2007&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I record my service accounts, make sure my DB’s have plenty of free space, and my t-logs are sized big enough.&amp;#160; I make sure the volume with TempDB has plenty of free disk space in case TempDB needs to auto-grow.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Next – I map out my plan&lt;/strong&gt; – and order of operations, for my management group, and share the plan with my team:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Get most recent backup of Database, Encryption key and Export unsealed MP’s for safekeeping. &lt;/li&gt;    &lt;li&gt;Go to pending actions – and reject/remove anything in there. &lt;/li&gt;    &lt;li&gt;Verify free space on SQL database and validate log size is appropriate. &lt;/li&gt;    &lt;li&gt;I need to uninstall the agent from OMTERM – my terminal server which has a console and an agent only.&amp;#160; I decide to go ahead and uninstall the agent, the console, and the SP1 authoring console as well, since I will be replacing it with the R2 auth console.&amp;#160; I will replace the agent and consoles when the upgrade is complete for the management group. &lt;/li&gt;    &lt;li&gt;I need to disable all my notification subscriptions, and disabled my product connectors.&amp;#160; I am running a custom internal product connector – which runs as a service and updates alert properties – so I will stop and disable that service for the duration of the upgrade. &lt;/li&gt;    &lt;li&gt;I see a section on &lt;a title="Improving Upgrade Performance" href="http://technet.microsoft.com/en-us/library/dd788976.aspx"&gt;Improving Upgrade Performance&lt;/a&gt; so I will add that step here – right before I upgrade the first component. &lt;/li&gt;    &lt;li&gt;I am now ready to establish the upgrade order for my management group – this is available at: &lt;a title="Planning your Operations Manager 2007 Upgrade" href="http://technet.microsoft.com/en-us/library/dd789054.aspx"&gt;Planning your Operations Manager 2007 Upgrade&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;RMS (OMRMS) &lt;/li&gt;    &lt;li&gt;Reporting Server (OMDW) &lt;/li&gt;    &lt;li&gt;Stand Alone Consoles (None – I uninstalled this already in my case) &lt;/li&gt;    &lt;li&gt;Management Servers (OMMS3, OMMS) &lt;/li&gt;    &lt;li&gt;Gateway Servers (None) &lt;/li&gt;    &lt;li&gt;Agents &lt;/li&gt;    &lt;li&gt;Web Console (on OMMS3 and OMMS) &lt;/li&gt;    &lt;li&gt;Post-Upgrade validation steps &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Ok – that's my plan.&amp;#160; Time to get rolling.&lt;/p&gt;  &lt;p&gt;The SP1 to R2 steps are outlined here:&amp;#160; &lt;a title="Upgrading from Operations Manager 2007 SP1 to R2" href="http://technet.microsoft.com/en-us/library/dd362729.aspx"&gt;Upgrading from Operations Manager 2007 SP1 to R2&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;I know from experience with customers – the success of your upgrade HINGES on how well you read AND follow the upgrade steps – VERBATIM.&amp;#160; The majority of issues we see (especially on clustered RMS) are when a customer does not follow the steps exactly as written, in the correct order.&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I complete steps 1-7 in the plan above, and then &lt;strong&gt;start the RMS upgrade&lt;/strong&gt; at step 8.&amp;#160; I run “SetupOM.exe” and kick off the pre-req checker before starting the install, where I hit my first snag.&amp;#160; I need to install WS-Management v1.1, because I do plan on monitoring Unix/Linux machines in the future with this management group.&amp;#160; (This was documented in the release notes, and in the upgrade guide – so I was expecting this… I should have added this to my plan)&amp;#160; So I install WS-man from the link provided in the pre-req, which just takes a few minutes.&amp;#160; Now – it looks much better in the pre-req checker:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/MyexperienceupgradingtoOpsMgrR2_8066/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/MyexperienceupgradingtoOpsMgrR2_8066/image_thumb.png" width="649" height="249" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The install instructions provided on TechNet are very straightforward.&amp;#160; The install took about 20 minutes for my small environment.&amp;#160; It waited the longest on “Loading Management Packs” on the screen in my environment.&amp;#160; It finally ended with an error:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/MyexperienceupgradingtoOpsMgrR2_8066/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/MyexperienceupgradingtoOpsMgrR2_8066/image_thumb_1.png" width="520" height="414" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;The guide has a note on this&lt;/em&gt;&lt;/strong&gt; – about the fact you might get a warning that a service failed to start – and to hit OK.&amp;#160; However – this is a different error – this is a service failing to stop…&amp;#160;&amp;#160; I click OK, and then a few minutes later – setup completes.&amp;#160; I uncheck the box to start the console and to backup the encryption key.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I then ran the RMS upgrade validation steps – checking the registry and the services.&amp;#160; Registry setup version shows me all is good.&amp;#160; &lt;/p&gt;  &lt;p&gt;***Note:&amp;#160; We have changed the service display names for R2.&amp;#160; See below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/MyexperienceupgradingtoOpsMgrR2_8066/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/MyexperienceupgradingtoOpsMgrR2_8066/image_thumb_2.png" width="586" height="60" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;I moved on to Reporting.&lt;/strong&gt;&amp;#160; My SRS, Reporting, and DataWarehouse are all shared on a single server – OMDW.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;As I read the guide at &lt;a title="Upgrading from Operations Manager 2007 SP1 to R2" href="http://technet.microsoft.com/en-us/library/dd362729.aspx"&gt;Upgrading from Operations Manager 2007 SP1 to R2&lt;/a&gt; I notice this little tidbit – which needs to be given STRONG attention before I kick off the upgrade:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Prior to running the upgrade on the Reporting server, you must remove the Operations Manager 2007 agent; the upgrade will fail if this is not done.&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So – I kick off the uninstall of the agent on the Reporting/SRS server (OMDW in my case) from Add/Remove programs – before I start the upgrade.&amp;#160; Missing little steps like this will drive you nuts if you aren't methodical.&lt;/p&gt;  &lt;p&gt;After the agent uninstall – I pick back up on the guide – and kick off “SetupOM.exe”.&amp;#160; Since I am a freak – I go ahead and run a pre-req check just to make sure all is good:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/MyexperienceupgradingtoOpsMgrR2_8066/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/MyexperienceupgradingtoOpsMgrR2_8066/image_thumb_3.png" width="653" height="226" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Moving on…. I start the install according to the guide.&amp;#160; The install goes without a hitch, and took about 10 minutes to complete.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Next up – Management servers&lt;/strong&gt;.&amp;#160; I start with OMMS3.&amp;#160; I hit the pre-req check – and I notice I already have WS-Man installed – so away I go.&amp;#160; The installer immediately failed with a pre-req failure.&amp;#160; I realized – I have the web console installed on this management server, and I forgot to add that when running the pre-req check manually.&amp;#160; When I do – I see:&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/MyexperienceupgradingtoOpsMgrR2_8066/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/MyexperienceupgradingtoOpsMgrR2_8066/image_thumb_4.png" width="645" height="283" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So – I need to grab the ASP.NET Ajax extensions…. this is to support the new cool health explorer in the Web Console.&amp;#160; I click “More” on the pre-req check – which gives me a link to the download.&lt;/p&gt;  &lt;p&gt;After this little hurdle – the management servers upgraded very quickly.&amp;#160; Once again – I got an expected error about a failure to stop a service.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/MyexperienceupgradingtoOpsMgrR2_8066/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/MyexperienceupgradingtoOpsMgrR2_8066/image_thumb_5.png" width="368" height="173" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Click ok and setup completes.&amp;#160; I repeat this upgrade on the other management server (OMMS) and these are done.&amp;#160; A quick check of the registry – and the setup version is indeed 6.1.7221.0&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;I don't have any gateways&lt;/strong&gt; in this lab – so next up is agents.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Lucky me – all 18 agents show up in pending actions for an update.&amp;#160; I will approve them all – and let the management server push the update down and upgrade them.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;***Note&lt;/em&gt;&lt;/strong&gt; – do not upgrade more than 299 agents in this manner at a time.&amp;#160; This is documented in the Upgrade Guide.&lt;/p&gt;  &lt;p&gt;All my agents upgraded successfully except for two.&amp;#160; BOTH that failed happened to be the two servers that I manually removed the SP1 agent from – OMTERM and OMDW.&amp;#160; (I forgot to delete their “agent managed” object from the management group)&amp;#160; Both have a different error.&amp;#160; OMTERM is failing to install with a push failure for MOMAgentInstaller.&amp;#160; I have had trouble with this agent before – possibly because of the TS role - so I just do a manual agent install here.&amp;#160; OMDW is different – the console push said it was a success – however – the System Center Management Service (HealthService) will not start – it gives an error:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#0000ff"&gt;Event Type:&amp;#160;&amp;#160;&amp;#160; Error        &lt;br /&gt;Event Source:&amp;#160;&amp;#160;&amp;#160; Service Control Manager         &lt;br /&gt;Event Category:&amp;#160;&amp;#160;&amp;#160; None         &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160; 7024         &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 5/23/2009         &lt;br /&gt;Time:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1:09:37 AM         &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A         &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160; OMDW         &lt;br /&gt;Description:         &lt;br /&gt;The System Center Management service terminated with service-specific error 2147500037 (0x80004005).&lt;/font&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I ran a repair action from the console – but got the same error here.&amp;#160; So – I manually uninstalled the broken agent – and deleted the agent from the Agent Managed section of the console – and re-pushed the agent.&amp;#160; I had a little trouble getting these two to come into the management group… but eventually after a couple delete/reinstalls they finally appear to be working ok.&amp;#160; I’d recommend uninstalling them from the console next time…. so this will remove both the agent and the computer object from the console.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Next on the list:&amp;#160; Web Console&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;From the upgrade guide I see this note…. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;If your Web console server is on the same computer as a management server, the Web console server is upgraded when the management server is upgraded, rendering this upgrade procedure unnecessary. You can still run the verification procedure to ensure that the Web console server upgrade was successful.&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Good – my web console is not a stand-alone – it was running on a management server (OMMS3) so that is already taken care of.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Aha&lt;/strong&gt; – I found something &lt;strong&gt;we forgot&lt;/strong&gt; on the plan…. the &lt;strong&gt;ACS Collector&lt;/strong&gt;.&amp;#160; This role is missing from the table at &lt;a title="Planning your Operations Manager 2007 Upgrade" href="http://technet.microsoft.com/en-us/library/dd789054.aspx"&gt;Planning your Operations Manager 2007 Upgrade&lt;/a&gt; so I completely missed this as a planning step.&amp;#160; However the process is documented at &lt;a title="Upgrading from Operations Manager 2007 SP1 to R2" href="http://technet.microsoft.com/en-us/library/dd362729.aspx"&gt;Upgrading from Operations Manager 2007 SP1 to R2&lt;/a&gt;.&amp;#160; So – we need to do this – I will assume last since it is last on the upgrade detailed steps.&amp;#160; Following the guide…. I walked through the steps – no issues.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Looks like we are done!&lt;/strong&gt;&amp;#160; I will now start the post-upgrade validation steps to make sure my management group is actually working as it should without any major issues.&lt;/p&gt;  &lt;p&gt;There is a list of post-upgrade checks at &lt;a title="Completing the Post-Upgrade Tasks" href="http://technet.microsoft.com/en-us/library/dd789073.aspx"&gt;Completing the Post-Upgrade Tasks&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I am going to walk through those here:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1.&amp;#160; I open up discovered inventory&lt;/strong&gt; – and change target to “Health Service Watcher” and compare this to the list I had before the upgrade.&amp;#160; These are agents that have a problem from the management server perspective – which causes them to appear “grey” in all other views.&amp;#160; My list is the same as before I started – I have 6 in this list as critical – 5 of them are agents that are VM’s that are currently down – so this is good.&amp;#160; 1 of them is an old management server… for some reason we don't groom these out of the view/database – and these seem to stick around forever in this view.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2.&amp;#160; I review the event logs&lt;/strong&gt; on the RMS and all MS roles.&amp;#160; I am seeing some errors like below:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#0000ff"&gt;Event Type:&amp;#160;&amp;#160;&amp;#160; Warning        &lt;br /&gt;Event Source:&amp;#160;&amp;#160;&amp;#160; HealthService         &lt;br /&gt;Event Category:&amp;#160;&amp;#160;&amp;#160; Health Service         &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160; 2120         &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 5/23/2009         &lt;br /&gt;Time:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 10:02:15 AM         &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A         &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160; OMRMS         &lt;br /&gt;Description:         &lt;br /&gt;The Health Service has deleted one or more items for management group &amp;quot;OPS&amp;quot; which could not be sent in 1440 minutes.&lt;/font&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This is normal – it happens when you have agents that are down in your environment.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#0000ff"&gt;Event Type:&amp;#160;&amp;#160;&amp;#160; Error        &lt;br /&gt;Event Source:&amp;#160;&amp;#160;&amp;#160; Health Service Modules         &lt;br /&gt;Event Category:&amp;#160;&amp;#160;&amp;#160; Data Warehouse         &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160; 31552         &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 5/23/2009         &lt;br /&gt;Time:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 10:03:38 AM         &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A         &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160; OMRMS         &lt;br /&gt;Description:         &lt;br /&gt;Failed to store data in the Data Warehouse.         &lt;br /&gt;Exception 'SqlException': Sql execution failed. Error 777971002, Level 16, State 1, Procedure StandardDatasetGroom, Line 303, Message: Sql execution failed. Error 2812, Level 16, State 62, Procedure StandardDatasetGroom, Line 145, Message: Could not find stored procedure 'KMS_EventGroom'. &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#0000ff"&gt;One or more workflows were affected by this.&amp;#160; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#0000ff"&gt;Workflow name: Microsoft.SystemCenter.DataWarehouse.StandardDataSetMaintenance        &lt;br /&gt;Instance name: KMS Activation Event Data Set         &lt;br /&gt;Instance ID: {800D8126-6F72-CA84-A76B-A94F7E3C93CF}         &lt;br /&gt;Management group: OPS&lt;/font&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This is not normal – this looks like an issue with the KMS MP – and R2’s advanced logging is picking up on an error that's been there all along, I just didn't know it.&lt;/p&gt;  &lt;p&gt;That is all from the RMS – pretty clean.&amp;#160; On the Management servers…. I found a bit more – but they were all due to the problems I was having with a handful of agents.&amp;#160; Once I removed and fixed those agents – the MS logs are clean.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3.&amp;#160; No cluster in this lab&lt;/strong&gt; – so nothing to test there.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4.&amp;#160; Review alerts in the console&lt;/strong&gt;.&amp;#160; I sort by Repeat Count and LastModified (I add these to all my alert views) and look for anything that stands out as repeating a LOT, or something new that looks like a problem.&amp;#160; I dont see anything here – so that is good!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;5.&amp;#160; DB server in perfmon looks good.&lt;/strong&gt;&amp;#160; I examine % Processor Time, and Logical Disk Avg disk sec/read and Avg disk sec/write.&amp;#160; Those are both avg under 15ms (.015) on the DB and log volumes - so that looks good.&amp;#160;&amp;#160; CPU is avg under 25%.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;6.&amp;#160; Check all the console views.&lt;/strong&gt;&amp;#160; Much snappier than in SP1.&amp;#160; Nice.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;7.&amp;#160; I opened up reporting&lt;/strong&gt; – and ran the “Microsoft ODR Report Library &amp;gt; Most Common Alerts” report – to test out reporting.&amp;#160; It ran with no issues.&amp;#160; I test a few of my saved custom and favorite reports – no errors – all good.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;8.&amp;#160; Authoring pane looks good&lt;/strong&gt; – I can see my groups, monitors, rules – and wow – they open a LOT faster than before.&amp;#160; Very nice.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;9.&amp;#160; I check out my MP versions.&lt;/strong&gt;&amp;#160; The install upgraded all my core MP’s to 6.1.7221.0.&amp;#160;&amp;#160; I was already pretty current on my MP’s – so not much to do here now that needs my immediate attention.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;10.&amp;#160; Re-enable notification subscriptions and product connectors.&lt;/strong&gt;&amp;#160; I turn my subscriptions back on – and fire off a test event that I use to generate an alert and email me a notification.&amp;#160; Works great.&amp;#160; Next – I got to my custom product connector – and enable the service and start it back up again.&amp;#160; I run some test alerts – to make sure my product connector is taking all the necessary actions on the alerts – and forwarding them as appropriately.&amp;#160; All good.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;11.&amp;#160; Review My Workspace&lt;/strong&gt;.&amp;#160; Yep – all my old custom views are there.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;12.&amp;#160; Re-deploy agents.&lt;/strong&gt;&amp;#160; I already did this.&amp;#160; Perhaps I should have waited on this step…. because I spent so much time troubleshooting those last few pesky agents that seem to have trouble.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;13.&amp;#160; Oh – the BIG ONE.&lt;/strong&gt;&amp;#160; This step is a bit odd – we tell you to go run this SQL query.&amp;#160; LET ME WARN YOU – this is not a “quick job”.&amp;#160; This is the script that is documented and discussed at my blog post:&amp;#160; &lt;a title="Does your OpsDB keep growing- Is your localizedtext table using all the space-" href="http://blogs.technet.com/kevinholman/archive/2008/10/13/does-your-opsdb-keep-growing-is-your-localizedtext-table-using-all-the-space.aspx"&gt;Does your OpsDB keep growing- Is your localizedtext table using all the space-&lt;/a&gt;&amp;#160; Dont take this step lightly – running this script could take several hours – so plan accordingly.&amp;#160; Read the link above for the details – and consider skipping this step for now…. until you are sure you are ready to execute it.&amp;#160; Take some calculations based on the blog post above – how long it will take – how severely you are impacted (row count of your localizedtext table) and make sure you have a LOT of free space for the tempDB and tempDBlog to grow if needed.&amp;#160; My LT table was already really small – so no issues for me running this – it completed in less than a minute.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Done!&amp;#160; (with the “official” steps)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now – I just have a couple cleanup steps I need to do – like go back and install the Ops Console and the Auth Console back on my terminal server.&amp;#160; Did that without issue.&amp;#160; All looks good.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;And then I realized&lt;/strong&gt; – we are missing another step in our plan – under the post-upgrade tasks – make sure the web console is working!&amp;#160; I saw lots of items in the release notes about how this might break…. and I imagine someone will complain rather quickly if it isnt working – so we better go check that out.&lt;/p&gt;  &lt;p&gt;Sweet! I hit up the web console and it is all good.&amp;#160; I check out several of the new views – and run health explorer from the web console.&amp;#160; I have tasks, maintenance mode, and health explorer.&amp;#160; Very cool.&amp;#160; I event execute some of my favorite reports under “My Workspace” just to make sure those are good – ouch – not working.&amp;#160; I will have to look into that one.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ok – that’s enough for today.&amp;#160; All in all – a successful upgrade.&amp;#160; A good plan written out at the beginning, based on the upgrade guide - makes all the difference.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3244935" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="R2" scheme="http://blogs.technet.com/kevinholman/archive/tags/R2/default.aspx" /></entry><entry><title>New web based forums for OpsMgr – no more NNTP newsgroups</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/05/22/new-web-based-forums-for-opsmgr-no-more-nntp-newsgroups.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/05/22/new-web-based-forums-for-opsmgr-no-more-nntp-newsgroups.aspx</id><published>2009-05-22T22:37:46Z</published><updated>2009-05-22T22:37:46Z</updated><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Getting help from the community for OpsMgr just got easier.&lt;/p&gt;  &lt;p&gt;We released the new interface to OpsMgr forums – on the web.&amp;#160; No more NNTP newsgroups to parse, with a hard to use web interface.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://social.technet.microsoft.com/Forums/en-US/category/systemcenteroperationsmanager" href="http://social.technet.microsoft.com/Forums/en-US/category/systemcenteroperationsmanager"&gt;http://social.technet.microsoft.com/Forums/en-US/category/systemcenteroperationsmanager&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/NewwebbasedforumsforOpsMgrnomoreNNTPnews_F7E7/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/NewwebbasedforumsforOpsMgrnomoreNNTPnews_F7E7/image_thumb.png" width="370" height="370" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Check it out!&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3244761" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="Tools" scheme="http://blogs.technet.com/kevinholman/archive/tags/Tools/default.aspx" /><category term="R2" scheme="http://blogs.technet.com/kevinholman/archive/tags/R2/default.aspx" /></entry><entry><title>SCOM R2 hits RTM!</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/05/22/scom-r2-hits-rtm.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/05/22/scom-r2-hits-rtm.aspx</id><published>2009-05-22T17:08:28Z</published><updated>2009-05-22T17:08:28Z</updated><content type="html">&lt;p&gt;&lt;b&gt;New Functionality - &lt;/b&gt;Operations Manager 2007 R2 introduces key new and enhanced functionality, including:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Enhanced application performance and availability across heterogeneous platforms&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Delivers monitoring across Windows, Linux and UNIX servers–all through a single console.&lt;/li&gt;    &lt;li&gt;Extends end to end monitoring of distributed applications to any workload running on Windows, UNIX and Linux platforms.&lt;/li&gt;    &lt;li&gt;Maximize availability of virtual workloads with integration with System Center Virtual Machine Manager 2008.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Improved management of applications in the data center&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Delivers on the scale requirements of URL monitoring of your business.&lt;/li&gt;    &lt;li&gt;Meet agreed service levels with enhanced reporting showing application performance and availability.&lt;/li&gt;    &lt;li&gt;More efficient problem identification and action to resolve issues.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Increased speed of access to information and functionality to drive management&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Faster load times for views and results.&lt;/li&gt;    &lt;li&gt;Improved and simplified management pack authoring experience&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Where and when can I obtain the bits?&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The RTM release is build 7221.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;At General Availability (July 1)&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Customers can obtain the bits from the MVLS website.&lt;/li&gt;    &lt;li&gt;New customers can obtain the trial bits from the &lt;a href="http://microsoft.com/opsmgr"&gt;Operations Manager 2007 R2 website&lt;/a&gt; or directly @ &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=93ddf25b-1ef0-4851-81b0-5fb9a2f76181#tm"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=93ddf25b-1ef0-4851-81b0-5fb9a2f76181#tm&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Where can I find collateral, training, and more on Operations Manager 2007 R2?&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Newly released collateral&lt;/b&gt; includes the following:&lt;/li&gt;    &lt;li&gt;&lt;a href="http://download.microsoft.com/download/B/1/D/B1D2450B-FF55-46BF-9E54-49FF984C89BD/SC_OpsMgr2007_R2-IntroductionWP.pdf"&gt;Whitepaper: Introduction to Operations Manager 2007 R2&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://download.microsoft.com/download/1/D/D/1DDCDFB3-8DAD-4204-980F-E15F197380F7/SC_OpsMgr2007_R2-WhatsNewOverview.pdf"&gt;Datasheet: What’s New in Operations Manager 2007 R2&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://download.microsoft.com/download/3/B/9/3B9CBD11-CB5C-431A-BB39-F1A9353DC1DA/SC_OpsMgr2007_R2-Overview.pdf"&gt;Datasheet: Reducing the cost of data center management with Operations Manager 2007 R2&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://download.microsoft.com/download/8/8/B/88BBD053-14A7-442E-8066-0EE84231EC0E/SC_OpsMgr2007_R2-CrossPlat.pdf"&gt;Datasheet: Monitoring UNIX/Linux with Operations Manager 2007 R2&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://download.microsoft.com/download/9/B/4/9B4829DC-55A5-46E7-9C9A-91B49EBB6320/SC_OpsMgr2007_R2-ServiceLevelMonitoring.pdf"&gt;Datasheet: Tracking Service Levels with Operations Manager 2007 R2&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://download.microsoft.com/download/1/1/6/116E15C7-42FF-4423-8C59-AD211B1D1F3A/SC_OpsMgr2007_R2-Interop.pdf"&gt;Datasheet: Interoperability Connectors for Operations Manager 2007 R2&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Released on the TechNet: Webcast Series on Operations Manager 2007 R2&lt;/b&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/events/series/detail/webcastdetails.aspx?seriesid=37&amp;amp;webcastid=5557"&gt;Introducing Operations Manager 2007 R2 (Level 300)&lt;/a&gt;&lt;u&gt; &lt;/u&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032410153&amp;amp;EventCategory=4&amp;amp;culture=en-US&amp;amp;CountryCode=US"&gt;Monitoring .NET and Web Applications with System Center Operations Manager 2007 R2&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032409726&amp;amp;EventCategory=4&amp;amp;culture=en-US&amp;amp;CountryCode=US"&gt;Operations Manager 2007 R2 Deployment and Upgrade Best Practices&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032410569&amp;amp;Culture=en-US"&gt;Operations Manager 2007 R2 Agentless Client Monitoring&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/events/series/detail/webcastdetails.aspx?seriesid=37&amp;amp;webcastid=5558"&gt;Successfully Monitor UNIX and Linux Alongside Your Windows Infrastructure with Operations Manager 2007 R2 (Level 300&lt;/a&gt;&lt;u&gt;) &lt;/u&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/events/series/detail/webcastdetails.aspx?seriesid=37&amp;amp;webcastid=5559"&gt;Developing Custom Reports and Operational Dashboards with Operations Manager 2007 R2 (Level 400)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032410153&amp;amp;Culture=en-US"&gt;Monitoring .NET and Web Applications with System Center Operations Manager 2007 R2&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="https://www.livemeeting.com/cc/mseventsbmo/view?id=1032414985&amp;amp;role=attend&amp;amp;pw=A3BAB623"&gt;System Center Operations Manager 2007 R2 Interoperability Connectors&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;How else can I extend Operations Manager 2007 R2?&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Service Level Dashboard v2 &lt;/b&gt;from the &lt;b&gt;Solution Accelerators&lt;/b&gt; team&lt;b&gt; &lt;/b&gt;lets you measure and report application or system performance &amp;amp; availability in near real time across your organization.&amp;#160; Using the Dashboard, you can easily spot trends and head off problems—before they occur.&amp;#160; The Dashboard also lets you create role-specific dashboards to support different departments, like HR, Finance, or Operations.&lt;b&gt; &lt;/b&gt;&lt;a href="https://connect.microsoft.com/programdetails.aspx?ProgramDetailsID=2249"&gt;&lt;b&gt;Download it today from Microsoft Connect&lt;/b&gt;&lt;/a&gt;&lt;b&gt;.&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Operations Manager 2007 R2 Interoperability Connectors &lt;/b&gt;provide the ability to synchronize alerts and status between Operations Manager 2007 R2 and other management systems.&amp;#160; Beta connectors for Tivoli Enterprise Console, HP OpenView Operations, and the new Universal Connector can be obtained from the Operations Manager R2 download on Connect. &lt;b&gt;&lt;/b&gt;&lt;a href="http://technet.microsoft.com/opsmgr/cc539535.aspx"&gt;&lt;b&gt;Download the Interop Connectors from the System Center Catalog&lt;/b&gt;&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Operations Manager 2007 R2 Visio Add-in &lt;/b&gt;delivers the ability to link status and health information gathered by Operations Manager 2007 R2 into normally-static Visio diagrams, adding life and interaction to those diagrams.&lt;b&gt; &lt;/b&gt;&lt;a href="https://connect.microsoft.com/programdetails.aspx?ProgramDetailsID=2249"&gt;&lt;b&gt;Download it today from Microsoft Connect&lt;/b&gt;&lt;/a&gt;&lt;b&gt;.&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;New Exchange Server 2007 Management Pack (MP) Beta&lt;/b&gt;, which provides enhancements over the current Exchange MP such as reducing alert noise and enhanced performance.&lt;b&gt; &lt;/b&gt;&lt;a href="https://connect.microsoft.com/programdetails.aspx?ProgramDetailsID=2249"&gt;&lt;b&gt;Download it today from Microsoft Connect&lt;/b&gt;&lt;/a&gt;&lt;b&gt;.&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;BridgeWays MP Beta Program&lt;/b&gt;, providing beta MPs for &lt;b&gt;MySQL&lt;/b&gt;, &lt;b&gt;Apache&lt;/b&gt;, and &lt;b&gt;Oracle&lt;/b&gt; running on Windows, Linux or Solaris.&amp;#160; For more information, and to register into the BridgeWays MP Beta Program, visit &lt;a href="http://www.bridgeways.ca/bw_management-pack-beta-program-signup_form.php"&gt;http://www.bridgeways.ca/bw_management-pack-beta-program-signup_form.php&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3244641" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="R2" scheme="http://blogs.technet.com/kevinholman/archive/tags/R2/default.aspx" /></entry><entry><title>Quick tip – using regular expressions in a dynamic group</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/04/21/quick-tip-using-regular-expressions-in-a-dynamic-group.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/04/21/quick-tip-using-regular-expressions-in-a-dynamic-group.aspx</id><published>2009-04-21T19:29:12Z</published><updated>2009-04-21T19:29:12Z</updated><content type="html">&lt;p&gt;Here is a quick tip on using a regular expression when creating a group.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;OpsMgr dynamic inclusion rules are case sensitive.&lt;/p&gt;  &lt;p&gt;If I have a group that I want to contain all computers that START with “OM”…. I can use the following expression:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_thumb.png" width="559" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The “^” tells regex to start a new line… without this – it will search the entire computername for “OM” instead of only servers with a name that &lt;strong&gt;&lt;em&gt;starts&lt;/em&gt;&lt;/strong&gt; with “OM”.&amp;#160; This shows the following group membership:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="253" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_thumb_1.png" width="230" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;However – this is not all my “OM” servers.&amp;#160; This is because when some were built, they used a lower case name.&amp;#160; If I change the dynamic inclusion expression to “^om” I will only see the lower case servers (the NetBIOS Computer name is lower case… not the display name as shown):&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_6.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="247" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_thumb_2.png" width="224" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ok – how do I get them ALL in the same group?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;There are a couple ways.&lt;/p&gt;  &lt;p&gt;One way is to “OR” the two regex queries:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_8.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="180" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_thumb_3.png" width="554" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bingo!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_10.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="288" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_thumb_4.png" width="229" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Another way – courtesy of Tim Helton – is to use the regex modifier (?i:) to make it case insensitive:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_12.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="185" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_thumb_5.png" width="557" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Which yields:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_14.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="270" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_thumb_6.png" width="222" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This should make dynamic groups a bit easier.&amp;#160; We can expand this to add the HealthService Watcher objects, which is typical for groups that we will scope notifications to:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_18.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="254" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_thumb_8.png" width="561" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Which yields all my Windows Computers, and their Health Service Watcher components.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_16.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="397" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Quicktipusingregularexpressionsinadynami_CBB2/image_thumb_7.png" width="218" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3228823" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="management pack" scheme="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx" /><category term="Authoring" scheme="http://blogs.technet.com/kevinholman/archive/tags/Authoring/default.aspx" /></entry><entry><title>How to find a specific rule/monitor/discovery in the console – when all you have a more cryptic ID in an alert</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/04/17/how-to-find-a-specific-rule-monitor-discovery-in-the-console-when-all-you-have-a-more-cryptic-id-in-an-alert.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/04/17/how-to-find-a-specific-rule-monitor-discovery-in-the-console-when-all-you-have-a-more-cryptic-id-in-an-alert.aspx</id><published>2009-04-17T18:58:53Z</published><updated>2009-04-17T18:58:53Z</updated><content type="html">&lt;p&gt;Sometimes – we will get a Script Error alert, or WMI failure Alert, or some generic alert, telling us that some OTHER workflow had a problem.&amp;#160; These alerts are NOT the root cause… the root cause is the workflow that gets referenced in the alert.&amp;#160; &lt;/p&gt;  &lt;p&gt;The problem is – the alert often gives us a Rule/Monitor/Discovery name, that is not the same as the Common Display Name of the workflow in the console.&lt;/p&gt;  &lt;p&gt;For instance – in R2 – we have a new rule that will temporarily disable a workflow that is flooding alerts.&amp;#160; Here is an example of that alert:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Alert generation was temporarily suspended due to too many alerts        &lt;br /&gt;A rule has generated 50 alerts in the last 60 seconds.&amp;#160; &lt;br /&gt;Usually, when a rule generates this many alerts, it is because the rule definition is misconfigured.&amp;#160; &lt;br /&gt;Please examine the rule for errors.         &lt;br /&gt;In order to avoid excessive load, this rule will be temporarily suspended until 2009-04-17T10:54:33.2764287+01:00.         &lt;br /&gt;Rule: &lt;font color="#ff0000"&gt;Microsoft.SystemCenter.GenericNTPerfMapperModule.FailedExecution.Alert&lt;/font&gt;         &lt;br /&gt;Instance: rms.opsmgr.net         &lt;br /&gt;Instance ID: {1219134EC-909D-VA37-1E06-679DD505D87C}         &lt;br /&gt;Management Group: OPS&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now – to tune, or investigate – we need to understand the problem workflow.&amp;#160; In this case… the problem workflow is a rule, “Microsoft.SystemCenter.GenericNTPerfMapperModule.FailedExecution.Alert”&lt;/p&gt;  &lt;p&gt;To troubleshoot – we need to find this rule in the console.&amp;#160; However – the console lets us search on the Display Name, not this more cryptic ID.&amp;#160; So here is a query that will help us map that:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="4"&gt;Rules:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;SQL:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;select DisplayName from ruleview      &lt;br /&gt;where name = 'Microsoft.SystemCenter.GenericNTPerfMapperModule.FailedExecution.Alert' &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Command Shell:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;(Get-Rule | Where {$_.name -match 'Microsoft.SystemCenter.GenericNTPerfMapperModule.FailedExecution.Alert'}).DisplayName&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="4"&gt;Discoveries:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;SQL:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;select DisplayName from DiscoveryView      &lt;br /&gt;where name = 'Microsoft.Office.Sharepoint.Server.2007.MOSS.Server.Discovery'&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Command Shell:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;(Get-Discovery| Where {$_.name -match 'Microsoft.Office.Sharepoint.Server.2007.MOSS.Server.Discovery'}).DisplayName&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="4"&gt;Monitors:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;SQL:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;select DisplayName from monitorview      &lt;br /&gt;where Name = 'MAPI_logon_failure.Monitor'&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Command Shell:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;(Get-Monitor| Where {$_.name -match 'MAPI_logon_failure.Monitor'}).DisplayName &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This will output the common display name of the rule/monitor/discovery:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Generic Performance Mapper Module Execution Failure&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;With this – finding the rule is pretty easy.&amp;#160; One of the fastest ways – is to use search:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tools &amp;gt; Search&lt;/strong&gt;, then paste in the workflow common display name we got from the query:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Howtofindaspecificrulemonitordiscoveryin_C49C/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="376" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Howtofindaspecificrulemonitordiscoveryin_C49C/image_thumb.png" width="542" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Then – click “&lt;strong&gt;&lt;em&gt;View Knowledge&lt;/em&gt;&lt;/strong&gt;”&amp;#160; This will bring up the rule properties.&amp;#160; From there – you can view the data source, and get a better idea of what the rule/monitor/discovery does, and how to troubleshoot it.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Howtofindaspecificrulemonitordiscoveryin_C49C/image_4.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="419" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Howtofindaspecificrulemonitordiscoveryin_C49C/image_thumb_1.png" width="652" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3227701" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="management pack" scheme="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx" /><category term="TSQL" scheme="http://blogs.technet.com/kevinholman/archive/tags/TSQL/default.aspx" /></entry><entry><title>R2 – Improved override screens</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/kevinholman/archive/2009/04/10/r2-improved-override-screens.aspx" /><id>http://blogs.technet.com/kevinholman/archive/2009/04/10/r2-improved-override-screens.aspx</id><published>2009-04-10T20:55:57Z</published><updated>2009-04-10T20:55:57Z</updated><content type="html">&lt;p&gt;Here are some changes in R2 that make Overrides a bit more intuitive, and help a LOT in understanding what has been done:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;First up:&amp;#160; We used to have a lot of names for “Class”.&amp;#160; We used “Target”, “Instance Type”, “Object Type” and “Type” before… among others.&amp;#160; In the Override screens previously – we called it “All Objects of Type”.&amp;#160; Now – it is named “For all objects of class”&amp;#160; (see image below)&amp;#160; This make a lot more sense.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/R2Improvedoverridescreens_E006/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="190" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/R2Improvedoverridescreens_E006/image_thumb.png" width="633" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Unfortunately – in other screens – we still refer to the “Class” as a “Target”… so it still isnt 100% consistent.&amp;#160; :-(&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next up – we have a Default Value added!&amp;#160; So now – in any override – we can see the MP default, The override value, and (once applied) the effective value.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/R2Improvedoverridescreens_E006/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="226" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/R2Improvedoverridescreens_E006/image_thumb_1.png" width="712" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And now – in the same console – we immediately see all our overrides, &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/R2Improvedoverridescreens_E006/image_6.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="401" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/R2Improvedoverridescreens_E006/image_thumb_2.png" width="850" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Whats REALLY cool about this?&amp;#160; You can scope this new view – based on just about any criteria you would want:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/R2Improvedoverridescreens_E006/image_10.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="465" alt="image" src="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/R2Improvedoverridescreens_E006/image_thumb_4.png" width="719" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This will really help, and reduce some of the dependency on external tools like Override Explorer.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3225172" width="1" height="1"&gt;</content><author><name>kevinhol</name><uri>http://blogs.technet.com/members/kevinhol.aspx</uri></author><category term="R2" scheme="http://blogs.technet.com/kevinholman/archive/tags/R2/default.aspx" /></entry></feed>