<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Kevin Holman's OpsMgr Blog : management pack</title><link>http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx</link><description>Tags: management pack</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Tuning tip – turning off some over-collection of events</title><link>http://blogs.technet.com/kevinholman/archive/2009/11/25/tuning-tip-turning-off-some-over-collection-of-events.aspx</link><pubDate>Wed, 25 Nov 2009 22:34:47 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3296381</guid><dc:creator>kevinhol</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3296381.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3296381</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3296381</wfw:comment><description>&lt;p&gt;We often think of tuning OpsMgr by way of tuning “Alert Noise”…. by disabling rules that generate alerts that we don't care about, or modifying thresholds on monitors to make the alert more actionable for our specific environment.&lt;/p&gt;  &lt;p&gt;However – one area of OpsMgr that often goes overlooked, is event overcollection.&amp;#160; This has a cost… because these events are collected and create LAN/WAN traffic, agent overhead, OpsDB size bloat, and especially, DataWarehouse size bloat.&amp;#160; I have worked with customers who had a data warehouse that was over one third event data….. and they had ZERO requirement for this nor did they want it.&amp;#160; They were paying for disk storage, and backup expense, plus added time and resources on the framework, all for data they cared nothing about.&lt;/p&gt;  &lt;p&gt;MOST of these events, are enabled out of the box, and are default OpsMgr collect rules from the “System Center Core Monitoring” MP.&amp;#160; These events are items like &amp;quot;config requested”, “config delivered”, “new config active”.&amp;#160; They might be interesting, but there is no advanced analysis included to use these to detect a problem.&amp;#160; In small environments, they are not usually a big deal.&amp;#160; But in large agent count environments, these events can account for a &lt;strong&gt;&lt;em&gt;LOT&lt;/em&gt;&lt;/strong&gt; of data, and provide little value unless you are doing something advanced in analyzing them.&amp;#160; I have yet to see a customer who did that.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;At a high level – here is how I like to review these events:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Review the Most Common Events query that your OpsDB has.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Create a “My Workspace” view for each event that has a HIGH event count.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Examine the event details for value to YOU.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;View the rule that collected the event.&lt;/strong&gt;       &lt;ol&gt;       &lt;li&gt;&lt;strong&gt;Does the rule also alert or do anything special, or does it simply collect the event?&lt;/strong&gt; &lt;/li&gt;        &lt;li&gt;&lt;strong&gt;Do you think the event is required for any special reporting you do?&lt;/strong&gt; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Create an Override, in an Override MP for the rule source management pack, to disable the rule.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Continue to the next event in the query output, and evaluate it.&lt;/strong&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So, what I like to do – is to run the “Most Common Events” query against the OpsDB, and examine the top events, and consider disabling these event collection rules:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Most common events by event number and event publishername: &lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;SELECT top 20 Number as EventID, COUNT(*) AS TotalEvents, Publishername as EventSource      &lt;br /&gt;FROM EventAllView eav with (nolock)       &lt;br /&gt;GROUP BY Number, Publishername       &lt;br /&gt;ORDER BY TotalEvents DESC&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The trick is – to run this query periodically – and to examine the most common events for YOUR environment.&amp;#160; The easiest way to view these events – to determine their value – is to create a new Events view in My Workspace, for each event – and then look at the event data, and the rule that collected it:&amp;#160; (I will use a common event 21024 as an 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/Tuningtipturningoffsomeovercollectionofe_D307/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/Tuningtipturningoffsomeovercollectionofe_D307/image_thumb.png" width="461" height="518" /&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/Tuningtipturningoffsomeovercollectionofe_D307/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/Tuningtipturningoffsomeovercollectionofe_D307/image_thumb_1.png" width="635" height="253" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What we can see – is that this is a very typical event, and there is likely no real value for collecting and storing this event in the OpsDB or Warehouse.&lt;/p&gt;  &lt;p&gt;Next – I will examine the rule.&amp;#160; I will look at the Data Source section, and the Response section.&amp;#160; The purpose here is to get a good idea of where this collection rule is looking, what events it is collecting, and if there is also an alert in the response section.&amp;#160; If there is an alert in the response section – I assume this is important, and will generally leave these rules enabled.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;If the &lt;em&gt;rule&lt;/em&gt; simply collected the event (no alerting), is not used in any reports that I know about (rare condition) and I have determined the event provides little to no value to me, I disable it.&amp;#160; You will find you can disable most of the top consumers in the database.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here is why I consider it totally cool to disable these uninteresting event collection rules:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If they are really important – there will be different alert generating rule to fire an alert&lt;/li&gt;    &lt;li&gt;They fill the databases, agent queues, agent load, and network traffic with unimportant information.&lt;/li&gt;    &lt;li&gt;While troubleshooting a real issue – we would examine the agent event log – we wouldn’t search through the database for collected events.&lt;/li&gt;    &lt;li&gt;Reporting on events is really slow – because we cannot aggregate them, so any views are reports dont work well with events.&lt;/li&gt;    &lt;li&gt;If we find we do need one later – simply remove the override.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here is an example of this one:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Tuningtipturningoffsomeovercollectionofe_D307/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/Tuningtipturningoffsomeovercollectionofe_D307/image_thumb_2.png" width="442" height="450" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So – I create an override in my “Overrides – System Center Core” MP, and disable this rule “for all objects of class”.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Here are some very common event ID’s that I will generally end up disabling their corresponding event collection rules:&lt;/strong&gt;&lt;/p&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;h5&gt;1206&lt;/h5&gt;    &lt;h5&gt;1210&lt;/h5&gt;    &lt;h5&gt;1215&lt;/h5&gt;    &lt;h5&gt;1216&lt;/h5&gt;    &lt;h5&gt;10102&lt;/h5&gt;    &lt;h5&gt;10401&lt;/h5&gt;    &lt;h5&gt;10403&lt;/h5&gt;    &lt;h5&gt;10409&lt;/h5&gt;    &lt;h5&gt;10457&lt;/h5&gt;    &lt;h5&gt;10720&lt;/h5&gt;    &lt;h5&gt;11771&lt;/h5&gt;    &lt;h5&gt;21024&lt;/h5&gt;    &lt;h5&gt;21025&lt;/h5&gt;    &lt;h5&gt;21402&lt;/h5&gt;    &lt;h5&gt;21403&lt;/h5&gt;    &lt;h5&gt;21404&lt;/h5&gt;    &lt;h5&gt;21405&lt;/h5&gt;    &lt;h5&gt;29102&lt;/h5&gt;    &lt;h5&gt;29103&lt;/h5&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I don't recommend everyone disable all of these rules… I recommend you periodically view your top 10 or 20 events… and then review them for value.&amp;#160; Just knocking out the top 10 events will often free up 90% of the space they were consuming.&lt;/p&gt;  &lt;p&gt;The above events are the ones I run into in most of my customers… and I generally turn these off, as we get no value from them.&amp;#160; You might find you have some other events as your top consumers.&amp;#160; I recommend you review them in the same manner as above – methodically.&amp;#160; Then revisit this every month or two to see if anything changed.&lt;/p&gt;  &lt;p&gt;I’d also love to hear if you have other events that you see as your top consumer that isn't my list above… SOME events are created from script (conversion MP’s) and unfortunately you cannot do much about those, because you would have to disable the script to fix them.&amp;#160; I’d be happy to give feedback on those, or add any new ones to my list.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3296381" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/grooming/default.aspx">grooming</category></item><item><title>Native Exchange 2007 MP 6.0.6741.0 ships for OpsMgr 2007 SP1 users</title><link>http://blogs.technet.com/kevinholman/archive/2009/11/09/native-exchange-2007-mp-6-0-6741-0-ships-for-opsmgr-2007-sp1-users.aspx</link><pubDate>Mon, 09 Nov 2009 13:34:43 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3292439</guid><dc:creator>kevinhol</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3292439.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3292439</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3292439</wfw:comment><description>&lt;p&gt;If for some reason you cannot or will not upgrade to OpsMgr 2007 R2, then this update is for you!&lt;/p&gt;  &lt;p&gt;This Native MP replaces the old “&lt;strong&gt;&lt;em&gt;converted&lt;/em&gt;&lt;/strong&gt;” Exchange 2007 MP.&amp;#160; If you are running the old conversion MP then I STRONGLY suggest making the effort to transition to this MP.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;This MP version 6.0.6741.0 is for SP1 users ONLY!&amp;#160; If you are running OpsMgr 2007 R2 – there is an R2-Only version of this MP for you on the catalog.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Some notes:&lt;/p&gt;  &lt;p&gt;This MP is essentially designed after the R2-only version – with the R2-only enhancement features removed.&amp;#160; &lt;/p&gt;  &lt;p&gt;This MP is NOT UPGRADE COMPATIBLE with ANY previously public released Exchange 2007 MP.&amp;#160; This means you need to remove your existing Exchange MP before you import this one…. and start a new overrides MP for this one, for tuning.&amp;#160; Believe me – it will be worth it.&amp;#160; Technically – you can run both MP’s side by side…. here is a blurb from the guide:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;This new Exchange Server 2007 Management Pack for Operations Manager 2007 SP1 does not support an upgrade from the previously released, converted Exchange Server 2007 Management Pack for Operations Manager 2007. We recommend that you do not run both management packs in parallel. However, running both management packs in parallel is a supported scenario. If you decide to run both management packs in parallel, before importing this management pack, disable any synthetic transaction in the converted management pack. For more information about migrating custom settings from the previously released, converted management pack to the new, native management pack, see &lt;a href="#zee25b49b5b8243b985029fe4631cf334"&gt;Appendix: Migrating from the Previously-Released Converted Exchange Server 2007 Management Pack&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Here is what's new from the guide:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Reports. This management pack provides a set of reports specific to Exchange 2007. For the list of reports and for more information about the reports, see &lt;a href="#zcc00a7e2f8ea4cc2986a5459920821e8"&gt;Appendix: Reports&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;· Improved disk monitoring. The management pack improves Exchange disk monitoring by providing support for mount points and by discovering three types of disks. This improvement enables you to establish a disk monitoring standard across all Exchange 2007 servers using fewer overrides. The types of disks discovered are Database (on the Mailbox server role), Log (on the Mailbox server role), and Queue (on the Hub and Edge server roles). For information about how to configure Exchange 2007 Disk Monitoring, see &lt;a href="#z59751e3690cb41d890e40e5cd41b33a5"&gt;Configure Disk Monitoring&lt;/a&gt;. For information about classes in this management pack, see &lt;a href="#z2975ce434d6a40289a6470b4691bffe9"&gt;Classes&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;· A significant number of rules and monitors that are not actionable or may be noisy are disabled. Note that many of these rules are still in the management pack so that you can enable them if necessary. For a list of rules and monitors that are disabled by default in this management pack, see &lt;a href="#z8fd2171cfd0840b492add1254361fefc"&gt;Appendix: Monitors and Rules Disabled by Default&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;· A number of performance collection rules are disabled. For a list of disabled performance collection rules, see &lt;a href="#z0a0c09f94aa244108d97c50c9006969f"&gt;Performance Collection Rules Disabled by Default&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;· Support for monitoring any number of Exchange organizations using a single Operations Manager 2007 management group. There are no specific requirements imposed by this management pack for monitoring multiple Exchange organizations.&lt;/p&gt;  &lt;p&gt;· Full support for clustered configurations using Windows Clustering technology. For more details, see &lt;a href="#ze8d5d7acf4f04bf7af331000445b8669"&gt;Monitoring Clustered Mailbox Servers and Log Shipping&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;· An extensive class model, showing the relevant Exchange 2007 server roles and components, as well as service-centric components, allowing you to measure availability or performance at a granular level. The class model fully supports the Distributed Application Designer, allowing you to create custom distributed applications using the appropriate Exchange 2007 components. The appropriate classes and monitors are declared public, enabling you to extend the monitoring if needed. For hierarchical diagrams of the Exchange 2007 management pack classes, see &lt;a href="#z2975ce434d6a40289a6470b4691bffe9"&gt;Classes&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;· Improved low-privilege support. This management pack supports installing the agent with the minimum rights required by the Operations Manager agent. &lt;/p&gt;  &lt;p&gt;· Improved tasks. The management pack includes a number of tasks that simplify troubleshooting and reduce the amount of time to resolve the alert.&lt;/p&gt;  &lt;p&gt;· Improved topology discovery. This management pack introduces a number of improvements to topology discovery.&lt;/p&gt;  &lt;p&gt;· There is no central discovery script. Each agent is responsible for discovering its piece of the topology. This ensures that potential permissions and trust issues are minimized. There are no requirements on trusts in order to generate the topology.&lt;/p&gt;  &lt;p&gt;· The topology will show only agent-managed Exchange 2007 servers, ensuring that the topology consists only of servers that the Exchange administrator has chosen to monitor.&lt;/p&gt;  &lt;p&gt;· Improved synthetic transactions. This management pack improves the support for the Exchange 2007 synthetic transactions in several ways:&lt;/p&gt;  &lt;p&gt;· The management pack supports local mail flow transactions. For more information, see the &lt;a href="#z879438673a014a7495da878fc72e66ee"&gt;Configuring Mail Flow Synthetic Transactions&lt;/a&gt; section.&lt;/p&gt;  &lt;p&gt;· The management pack supports running the following Exchange 2007 synthetic transactions:&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://go.microsoft.com/fwlink/?LinkID=137740"&gt;Test-Mailflow&lt;/a&gt; (http://go.microsoft.com/fwlink/?LinkID=137740) (local mail flows only)&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://go.microsoft.com/fwlink/?LinkID=137732"&gt;Test-OwaConnectivity&lt;/a&gt; (http://go.microsoft.com/fwlink/?LinkID=137732) (internal only)&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://go.microsoft.com/fwlink/?LinkID=137739"&gt;Test-MapiConnectivity&lt;/a&gt; (http://go.microsoft.com/fwlink/?LinkID=137739)&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://go.microsoft.com/fwlink/?LinkID=148797"&gt;Test-ReplicationHealth&lt;/a&gt; (http://go.microsoft.com/fwlink/?LinkID=148797)&lt;/p&gt;  &lt;p&gt;· The discovery of Exchange 2007 server roles is disabled by default and minimal Exchange 2007 monitoring is applied. This allows you to discover and monitor your servers gradually, as well as tune the management pack as you bring more agent-managed Exchange 2007 servers into the Operations Manager environment. For more information, see &lt;a href="#zbb2c16b4f3d344c38db6efd1a450302e"&gt;Enable Exchange 2007 Server Role Discovery&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3292439" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category></item><item><title>Making groups of logical disks – an example from simple to advanced</title><link>http://blogs.technet.com/kevinholman/archive/2009/11/05/making-groups-of-logical-disks-and-example-from-simple-to-advanced.aspx</link><pubDate>Thu, 05 Nov 2009 06:00:37 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3291597</guid><dc:creator>kevinhol</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3291597.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3291597</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3291597</wfw:comment><description>&lt;p&gt;I have been seeing this question come up a lot lately – as customers try and create groups of their disks – in order to create overrides for “certain” disks.&amp;#160; So – I am creating this post to give some real world examples.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Well – I will start this simply.&amp;#160; Say we want to create a group of all logical disks, with the drive letters of C: and D:?&lt;/p&gt;  &lt;p&gt;I would start with creating a new group – and adding the “Windows Server 2003 Logical Disk” class.&amp;#160; Now – I could just use the parent class of “Logical Disk” instead of the OS specific class if I wanted.&amp;#160; The only issue with that is that most monitors targeting a disk – are OS specific – and duplicated three times.&amp;#160; So it is best to create specific groups for these – but totally not required.&lt;/p&gt;  &lt;p&gt;Ok – so in the Dynamic Members query builder – I click add, and pick a property.&amp;#160; Since I know “Device Name” contains the drive letter – this will do nicely.&amp;#160; I select device name “Equals” “C:”.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Makinggroupsoflogicaldiskstheeasyway_6CA1/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/Makinggroupsoflogicaldiskstheeasyway_6CA1/image_thumb.png" width="486" height="85" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now – I want to also include D:.&amp;#160; There are many way to do – this – and I will go through them.&amp;#160; First – I could simply Insert a new line for Windows Server 2003 Logical Disk – and replicate the line I have – adding one for D:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Makinggroupsoflogicaldiskstheeasyway_6CA1/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/Makinggroupsoflogicaldiskstheeasyway_6CA1/image_thumb_2.png" width="484" height="107" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Only one problem – this is an “AND” grouping – I really need this to be an “OR” grouping to include both C: and D: drives.&amp;#160; You can switch this grouping the in UI, just right click the word “AND” and change it to an OR grouping:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Makinggroupsoflogicaldiskstheeasyway_6CA1/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/Makinggroupsoflogicaldiskstheeasyway_6CA1/image_thumb_3.png" width="313" height="140" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Voila!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Makinggroupsoflogicaldiskstheeasyway_6CA1/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/Makinggroupsoflogicaldiskstheeasyway_6CA1/image_thumb_4.png" width="471" height="114" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This formula now looks like:&amp;#160; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;( Object is Windows Server 2003 Logical Disk AND ( Device Name Equals C: ) OR ( Device Name Equals D: ) )&lt;/strong&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Save your group – then right click it – and choose “View Group Members”.&amp;#160; This will ensure we are cooking with gas.&amp;#160; It should contain all your Windows 2003 based C: and D: volumes.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Makinggroupsoflogicaldiskstheeasyway_6CA1/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/Makinggroupsoflogicaldiskstheeasyway_6CA1/image_thumb_5.png" width="447" height="145" /&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;So far – so good.&lt;/p&gt;  &lt;p&gt;Now – what if I &lt;strong&gt;&lt;em&gt;ONLY&lt;/em&gt;&lt;/strong&gt; want C: and D: disks, that are &lt;strong&gt;&lt;em&gt;HOSTED&lt;/em&gt;&lt;/strong&gt; by specific Windows Computers?&amp;#160; I can do that too!&amp;#160; Lets say I want a group – of all the C: and D: logical disks, on servers that begin with the name “SR______”&lt;/p&gt;  &lt;p&gt;If you look at the bottom of the list of properties for Logical Disks – you will see (Host=Windows Computer).&amp;#160; From here – we can pick any attribute of the Windows Computer class as well to add to our expression – to limit our logical disks in our group to very specific Computers.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Makinggroupsoflogicaldiskstheeasyway_6CA1/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/Makinggroupsoflogicaldiskstheeasyway_6CA1/image_thumb_6.png" width="684" height="406" /&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;Go back to the properties of your group, edit the Dynamic Members, and you can construct something like this:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Makinggroupsoflogicaldiskstheeasyway_6CA1/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/Makinggroupsoflogicaldiskstheeasyway_6CA1/image_thumb_1.png" width="479" height="141" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Which translates to the following formula:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;( Object is Windows Server 2003 Logical Disk AND ( Windows Computer.NetBIOS Computer Name Matches wildcard sr* ) AND ( ( Device Name Equals C: ) OR ( Device Name Equals D: ) ) )&lt;/strong&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now – I will be honest – getting all the “ands” and “ors” in the right place using the UI is a big pain.&amp;#160; It is very easy to screw it up.&amp;#160; I like to simplify this to the fewest lines possible – using Regex.&lt;/p&gt;  &lt;p&gt;Using Regular Expressions – we can use modifiers to create very advanced expressions.&amp;#160; my favorites are ^ which means the beginning of a new line or word, and | which is the “pipe” symbol – which means “or”.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So a simple way to accomplish the same example above – without all the complexity – is this:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Makinggroupsoflogicaldiskstheeasyway_6CA1/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/Makinggroupsoflogicaldiskstheeasyway_6CA1/image_thumb_7.png" width="481" height="94" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;WAY simpler!&lt;/p&gt;  &lt;p&gt;However – you might notice – this doesn't work right.&amp;#160; This is because Regex is case sensitive.&amp;#160; If the Server NetBIOS name is detected in all CAPS, this expression wont match.&amp;#160; I talk a little about this issue in this post:&amp;#160; &lt;a title="http://blogs.technet.com/kevinholman/archive/2009/04/21/quick-tip-using-regular-expressions-in-a-dynamic-group.aspx" href="http://blogs.technet.com/kevinholman/archive/2009/04/21/quick-tip-using-regular-expressions-in-a-dynamic-group.aspx"&gt;http://blogs.technet.com/kevinholman/archive/2009/04/21/quick-tip-using-regular-expressions-in-a-dynamic-group.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So – based on that posts example – there is a simple way to make a RegEx case insensitive:&amp;#160; (?i:blah)&lt;/p&gt;  &lt;p&gt;Using that as an example – we can now make very advanced groupings, quite easily:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Makinggroupsoflogicaldiskstheeasyway_6CA1/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/Makinggroupsoflogicaldiskstheeasyway_6CA1/image_thumb_8.png" width="482" height="100" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;(?i: to make it case insensitive.&amp;#160; ^ to signify the beginning of the word/line match.&amp;#160;&amp;#160; Here is the formula now:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;( Object is Windows Server 2003 Logical Disk AND ( Device Name Matches regular expression (?i:^C|^D) ) AND ( Windows Computer.NetBIOS Computer Name Matches regular expression (?i:^sr) ) )&lt;/strong&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Check it out:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Makinggroupsoflogicaldiskstheeasyway_6CA1/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/Makinggroupsoflogicaldiskstheeasyway_6CA1/image_thumb_9.png" width="468" height="138" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Victory!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What if I wanted all logical disks that we NOT hosted by a Virtual Machine?&amp;#160; Easy!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Makinggroupsoflogicaldiskstheeasyway_6CA1/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/Makinggroupsoflogicaldiskstheeasyway_6CA1/image_thumb_10.png" width="470" height="87" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;( Object is Logical Disk AND ( Windows Computer.Virtual Machine Equals False ) AND True )&lt;/strong&gt; &lt;/p&gt; &lt;/blockquote&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;This reveals a group of ALL logical disks hosted by a Windows Computer with the attribute of Virtual Machine = False:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/Makinggroupsoflogicaldiskstheeasyway_6CA1/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/Makinggroupsoflogicaldiskstheeasyway_6CA1/image_thumb_11.png" width="453" height="408" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;As you can see – using the Hosting relationship of the disk – to the Windows Computer object, there is much more you can do with groups.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3291597" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/Authoring/default.aspx">Authoring</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/UI+Console/default.aspx">UI Console</category></item><item><title>Updated Active Directory ADMP Management Pack released – Version 6.0.7065.0</title><link>http://blogs.technet.com/kevinholman/archive/2009/11/04/updated-active-directory-admp-management-pack-released-version-6-0-7065-0.aspx</link><pubDate>Wed, 04 Nov 2009 19:53:34 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3291515</guid><dc:creator>kevinhol</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3291515.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3291515</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3291515</wfw:comment><description>&lt;p&gt;This is now available on the catalog.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx" href="http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx"&gt;http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Changes in this update:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Support for monitoring Windows Server® 2008 R2 server operating systems as well as Windows® 7 client operating systems&lt;/li&gt;    &lt;li&gt;Support for monitoring the Active Directory Web Service (ADWS) in Windows Server 2008 R2 as well as the Active Directory Management Gateway Service in Windows Server 2008 and Windows Server 2003&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There were a few other minor fixes as well, such as the AD LSASS CPU overload monitor.&amp;#160; This release also replaces a recently released ADMP version 6.0.7050.0 that was pulled to fix the aforementioned monitor.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3291515" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category></item><item><title>Why do my group memberships for Windows Computers have machines that don't belong there?</title><link>http://blogs.technet.com/kevinholman/archive/2009/11/03/why-do-my-group-memberships-for-windows-computers-have-machines-that-don-t-belong-there.aspx</link><pubDate>Tue, 03 Nov 2009 05:35:50 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3290973</guid><dc:creator>kevinhol</dc:creator><slash:comments>12</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3290973.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3290973</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3290973</wfw:comment><description>&lt;p&gt;Here is a little tip if you find that your Windows Computer Groups (and state views scoped by groups) contain computers that should not be there.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Have you noticed that you have state views or Windows Computer Groups that contain servers that you don't expect?&amp;#160; Like Exchange Servers in your SQL Computers Group?&amp;#160; Or SQL Servers in your Exchange 2007 computer group?&amp;#160; Or maybe Hyper-V host servers in a LOT of your groups?&amp;#160; If so – you are probably running Hyper-V, and using the Hyper-V MP version 6.0.6633.0.&lt;/p&gt;  &lt;p&gt;Have a look at the below example:&amp;#160; My SQL Management Pack “Computers” view – contains domain controllers, exchange servers… even XP clients… plus it also includes the Hyper-V host (VS3).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/WhydomygroupmembershipsforWindowsCompute_14BCF/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/WhydomygroupmembershipsforWindowsCompute_14BCF/image_thumb.png" width="502" height="381" /&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;&lt;em&gt;This can wreak havoc on your management group&lt;/em&gt;&lt;/strong&gt;…. because we use groups of Windows Computers for Overrides, and for scoping console views.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The good news is – there is a very simple workaround:&amp;#160; There is a relationship in this MP that we need to disable.&amp;#160; This relationship attempts to associate the Windows Computer objects of a guest to its host – however it doesn't work properly, and isn't necessary.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Open Authoring in the console.&amp;#160; Select “Object Discoveries”.&amp;#160; Scope to “Hyper-V Virtual Machine”.&amp;#160; Find the discovery named: “Hyper-V 2008 Guest Computer Relationship Discovery”&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/WhydomygroupmembershipsforWindowsCompute_14BCF/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/WhydomygroupmembershipsforWindowsCompute_14BCF/image_thumb_1.png" width="901" height="188" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Create an override for this – “for all objects of class:&amp;#160; Root Management Server”.&amp;#160; Set this discovery to disabled.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now that that is disabled – we need to run a little cleanup on aisle 7.&amp;#160; We have a nifty little cmdlet in the OpsMgr command shell – named &lt;strong&gt;remove-disabledmonitoringobject&lt;/strong&gt;.&amp;#160; This cmdlet will basically remove any discovered objects – for any situation where they are explicitly disabled with an override on a discovery.&amp;#160; Since that is what we just did (disabled a discovery) this will quickly delete any discovered relationships which previously existed.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/WhydomygroupmembershipsforWindowsCompute_14BCF/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/WhydomygroupmembershipsforWindowsCompute_14BCF/image_thumb_2.png" width="642" height="248" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now – when I look at my state views scoped to SQL Computers group – I only see SQL servers, AND – the Hyper-V host.&amp;#160; We don't want the Hyper-V host tho…..&amp;#160; apparently the cmdlet cleanup doesn't take care of those.&amp;#160; To resolve that membership – I generally bounce the HealthService on the Hyper-V hosts, and then the HealthService on the RMS, and in a few minutes they will be gone.&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;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/WhydomygroupmembershipsforWindowsCompute_14BCF/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/WhydomygroupmembershipsforWindowsCompute_14BCF/image_thumb_3.png" width="522" height="232" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Voila!&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3290973" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category></item><item><title>Holy Management Packs Batman – we are surrounded!</title><link>http://blogs.technet.com/kevinholman/archive/2009/10/14/holy-management-packs-batman-we-are-surrounded.aspx</link><pubDate>Wed, 14 Oct 2009 00:00:19 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3286652</guid><dc:creator>kevinhol</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3286652.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3286652</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3286652</wfw:comment><description>&lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/HolyManagementPacksBatmanwearesurrounded_10B42/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/HolyManagementPacksBatmanwearesurrounded_10B42/image_thumb.png" width="401" height="322" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Wow – what a plethora of new MP’s to look at.&lt;/p&gt;  &lt;p&gt;Just in the past week – we have gotten a bunch of updated MP.&amp;#160; I wont take any time to go into details on the changes in this post – but be aware!&amp;#160; You probably need to get these in your evaluation and test cycles… looks like lots of good stuff in these updates.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;From the MP catalog at:&amp;#160; &lt;a title="http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx" href="http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx"&gt;http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Exchange Server 2003&lt;/strong&gt;     &lt;br /&gt;10/12/2009     &lt;br /&gt;(6.0.6702.0)     &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9FF454F4-6D34-4FB9-9E0B-F5B68C6EDC4F&amp;amp;amp;displaylang=en"&gt;Exchange Server 2003 Management Pack for System Center Operations Manager 2007&lt;/a&gt;     &lt;br /&gt;The Exchange Server 2003 Management Pack monitors the performance and availability of Exchange Server 2003 systems. It can also issue alerts for possible configuration problems Availability and performance monitoring is done using synthetic transactions. In addition, the Management Pack collects Event Log alerts and provides associated knowledge articles with additional user details, possible causes, and suggested resolutions. The Management Pack discovers and monitors the individual server components and functional areas on an Exchange Server 2003 server.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Exchange Server 2007&lt;/strong&gt;     &lt;br /&gt;10/12/2009     &lt;br /&gt;(6.0.6702.0)     &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e9f3cd3f-9bc0-45cd-b10f-120e937ee4c4&amp;amp;amp;displaylang=en"&gt;Microsoft Exchange Server 2007 Management Pack for System Center Operations Manager 2007 R2&lt;/a&gt;     &lt;br /&gt;The Exchange Server 2007 Management Pack is designed to monitor Exchange 2007 key health indicators, collect Exchange component-specific performance counters in one central location, and raise alerts for operator intervention as necessary. By detecting, sending alerts, and automatically responding to critical events, this Management Pack helps indicate, correct, and prevent possible service outages or configuration problems, allowing you to proactively manage Exchange servers and identify issues before they become critical. The Management Pack monitors and provides alerts for automatic notification of events indicating service outages, performance degradation, health monitoring, and centralized management.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Operations Manager 2007 R2 Management Pack      &lt;br /&gt;&lt;/strong&gt;10/8/2009     &lt;br /&gt;(6.1.7533.0)     &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=61365290-3c38-4004-b717-e90bb0f6c148&amp;amp;amp;displaylang=en"&gt;Operations Manager 2007 R2 Management Pack&lt;/a&gt;     &lt;br /&gt;The Operations Manager 2007 R2 Management Pack alerts you to problems with components such as agents, management servers, the Operations Manager database, agents, modules used by workflows and services so that you can continue to monitor the servers and clients that your business depends on. The management pack includes tasks that you can automate to get easy access to common diagnostic tools, such as restarting a health service or reloading an agent configuration.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Server Operating System&lt;/strong&gt;     &lt;br /&gt;9/18/2009     &lt;br /&gt;(6.0.6667.0)     &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=3529D233-5E3E-4B51-8F66-5D6F27005EC3&amp;amp;amp;displaylang=en"&gt;Windows Server Operating System Management Pack for Operations Manager 2007&lt;/a&gt;     &lt;br /&gt;The Microsoft Windows Server management packs monitor the performance, health, and availability of Windows Server 2008 R2, 2008, 2003 R2, 2003, and Windows 2000 Server. By detecting, alerting on, and automatically responding to critical events and performance indicators, management packs reduce resolution times for issues and increase the overall availability and performance of your Windows Server operating systems, thereby helping to reduce the total cost of ownership.     &lt;br /&gt;(Chinese (Taiwan), German, French, Italian, Japanese, Korean, Portuguese (Brazil), Russian, Chinese (PRC), Spanish) &lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3286652" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category></item><item><title>What is config churn?</title><link>http://blogs.technet.com/kevinholman/archive/2009/10/05/what-is-config-churn.aspx</link><pubDate>Mon, 05 Oct 2009 08:29:49 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3284780</guid><dc:creator>kevinhol</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3284780.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3284780</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3284780</wfw:comment><description>&lt;p&gt;There have been a couple good articles briefly covering this topic…. you might have read them.&amp;#160; I will reference some below.&amp;#160; Config churn is basically, when your RMS is in an almost never-ending loop of generating config.&amp;#160; This can be caused by “less than optimized” management packs, pushing agents all the time, or injecting major changes into a management group, such as overrides or custom rules and monitors, or importing updated management packs.&amp;#160; By examining this topic in depth – we will re-state some already known best practices with maintaining a healthy management group, and get some deeper knowledge as to why they are best practices in the first place.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Any time you push agents, or create rules and monitors, or overrides for widespread classes….. you can create a config update on the RMS that must be sent down to ALL agents in the management group.&amp;#160; For small management groups (under 500 agents) this is generally not a big deal and processes rather quickly.&amp;#160; For large management groups over 1000 agents, this can cause high resource utilization of the RMS and SQL Database, in terms of CPU, Memory, and Disk I/O.&amp;#160; This can impact data insertion, and console performance during these times.&amp;#160; For these reasons, we like to keep those activities down to a minimum during working hours, and schedule these major changes in an off-hours maintenance window.&lt;/p&gt;  &lt;p&gt;What about “less than optimized” management packs?&amp;#160; What does that mean?&amp;#160; Well, this means management packs that you might be using, that have poorly written discoveries.&lt;/p&gt;  &lt;p&gt;We have long known that a worst practice in Management Pack development, is to have a discovery that discovers instances of a class, that has properties for those instances that are likely to change frequently.&amp;#160; Here is a write-up from OpsManJam on the topic:&amp;#160; &lt;a href="http://www.opsmanjam.com/Lists/General%20Discussion/DispForm.aspx?ID=2&amp;amp;RootFolder=/Lists/General%20Discussion/WORST%20PRACTICE%20Class%20properties%20that%20get%20updated%20frequently"&gt;LINK&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Ok… wait… &lt;em&gt;Whaaaaat&lt;/em&gt;?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Let me put that in English:&lt;/p&gt;  &lt;p&gt;Say we have a discovery for a Logical Disk.&amp;#160; This will discover any logical disk, like C:, D:, E:, Q:, etc….&amp;#160; When we write the discovery for a logical disk, we can add &lt;strong&gt;&lt;em&gt;properties&lt;/em&gt;&lt;/strong&gt; to that discovery.&amp;#160; These are attributes of the discovered instances.&amp;#160; So – in this case – lets say we decided to add “Size” of the disk as a property, and “Free Space” as a property.&amp;#160; And for the discovery frequency – we will run this discovery every hour, looking for new disks.&lt;/p&gt;  &lt;p&gt;“Size” is an excellent property for the Logical Disk class.&amp;#160; We like to know the size of the disks…. we can use this property group them if needed.&amp;#160; “Size” of a logical disk is not something that we would expect to change very often.&lt;/p&gt;  &lt;p&gt;“Free Space” is a horrible property for the Logical Disk class.&amp;#160; Free space is something that will likely change, just a small amount even, between each run of the discovery.&amp;#160; Free space is a property that is likely to change frequently, therefore – it should NOT be used in a discovery.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Make sense?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ok – so… what's the big deal?&lt;/p&gt;  &lt;p&gt;Well, the agent will run almost all discoveries that it knows about when the health service starts up (like when you bounce the service, or after a reboot).&amp;#160; It will always send this discovery data to the management server.&amp;#160; (this is another reason why &lt;a href="http://blogs.technet.com/kevinholman/archive/2009/03/26/are-your-agents-restarting-every-10-minutes-are-you-sure.aspx"&gt;agents restarting all the time&lt;/a&gt; is very bad)&amp;#160; Then, it will run then based on the “Interval” frequency specified on the discovery.&amp;#160; Sometimes this is as frequent as once per hour, sometimes as long as once per day.&amp;#160; When the discovery runs, the agent will inspect the discovery data that it gets, and compare it to the last discovery data it sent to the management server.&amp;#160; If nothing changed – the agent drops the discovery data and does nothing.&amp;#160; IF anything changed in the values of the discovery data – it will re-submit the new data to the management server, which will submit this data to the database.&amp;#160; The RMS will detect the change, and will have to recalculate (regenerate) configuration.&amp;#160; You will see this on the RMS as a 21025 event:&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; OpsMgr Connector         &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 9/27/2009 11:51:49 PM         &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 21025         &lt;br /&gt;Task Category: None         &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;OpsMgr has received new configuration for management group PROD1 from the Configuration Service.&amp;#160; The new state cookie is &amp;quot;D7 9B A4 BE 00 90 CF 13 35 B5 9B 5F 3B 14 FF 78 D6 13 9A 2D &amp;quot;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The 21025 event isn’t really “bad”… it simply means the config service did its job.&amp;#160; It re-generated its configuration file from the database data, and wrote it to:&amp;#160; \Program Files\System Center Operations Manager 2007\Health Service State\Connector Configuration Cache\&amp;lt;MGNAME&amp;gt;\OpsMgrConnector.Config.xml&amp;#160; The problem is – when this config file gets large (like in large agent count environments) and when the “Config Instance Space” is large (number of discovered objects in total).&amp;#160; Recalculating this config can have a significant impact on the disk where the file exists on the RMS, use lots of memory and CPU on the RMS for the config service, and use significant disk I/O on the SQL database.&lt;/p&gt;  &lt;p&gt;If the RMS is in a perpetual cycle of recalculating config, and sending these config updates to all agents…. the performance of the management group is impacted.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://nocentdocent.wordpress.com/bloggers/daniele-grandini/"&gt;Daniele Grandini&lt;/a&gt; of &lt;a href="http://nocentdocent.wordpress.com/"&gt;Quaue Nocent Docent&lt;/a&gt; is pretty much the “godfather” of good information researching the 21025 event.&amp;#160; Read his 3 part series on config churn here:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://nocentdocent.wordpress.com/2009/07/09/troubleshooting-21025-events-wrap-up/" href="http://nocentdocent.wordpress.com/2009/07/09/troubleshooting-21025-events-wrap-up/"&gt;http://nocentdocent.wordpress.com/2009/07/09/troubleshooting-21025-events-wrap-up/&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;&lt;em&gt;So – what can I do if I think I have too much config churn?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The biggest problem causing the most frequent config updates is &lt;strong&gt;&lt;em&gt;management packs with noisy discoveries&lt;/em&gt;&lt;/strong&gt;.&amp;#160; However, lets wrap up all the issues that can cause it, and what you can do:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;New agents.&amp;#160; Discover/install/approve new agents in bulk and off-hours. &lt;/li&gt;    &lt;li&gt;Overrides.&amp;#160; Set overrides during off-hours, or create override MP’s in a lab, then synch to production management groups during schedule off-hours times. &lt;/li&gt;    &lt;li&gt;Custom rules and monitors.&amp;#160; Create these during off-hours, or create using the authoring console, test in a lab, then import to production during off-hours. &lt;/li&gt;    &lt;li&gt;Newly discovered instances.&amp;#160; For instance – someone adds a new disk, or SQL database, or DNS zone, to an existing agent.&amp;#160; Not much we can do about this, except the expectation that this would be done during off hours. &lt;/li&gt;    &lt;li&gt;Management packs with noisy discovery properties.&amp;#160; See below. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ok – the remainder of this article will touch on #5.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;How can I tell which discoveries are noisy?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Danilele Grandini has put together a good query on this, from his link:&amp;#160; &lt;a title="http://nocentdocent.wordpress.com/2009/05/23/how-to-get-noisy-discovery-rules/" href="http://nocentdocent.wordpress.com/2009/05/23/how-to-get-noisy-discovery-rules/"&gt;http://nocentdocent.wordpress.com/2009/05/23/how-to-get-noisy-discovery-rules/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I will repost these (slightly modified) below:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;/* Top Noisy Rules in the last 24 hours */ &lt;/p&gt;    &lt;p&gt;select ManagedEntityTypeSystemName, DiscoverySystemName, count(*) As 'Changes'      &lt;br /&gt;from       &lt;br /&gt;(select distinct       &lt;br /&gt;MP.ManagementPackSystemName,       &lt;br /&gt;MET.ManagedEntityTypeSystemName,       &lt;br /&gt;PropertySystemName,       &lt;br /&gt;D.DiscoverySystemName, D.DiscoveryDefaultName,       &lt;br /&gt;MET1.ManagedEntityTypeSystemName As 'TargetTypeSystemName', MET1.ManagedEntityTypeDefaultName 'TargetTypeDefaultName',       &lt;br /&gt;ME.Path, ME.Name,       &lt;br /&gt;C.OldValue, C.NewValue, C.ChangeDateTime       &lt;br /&gt;from dbo.vManagedEntityPropertyChange C       &lt;br /&gt;inner join dbo.vManagedEntity ME on ME.ManagedEntityRowId=C.ManagedEntityRowId       &lt;br /&gt;inner join dbo.vManagedEntityTypeProperty METP on METP.PropertyGuid=C.PropertyGuid       &lt;br /&gt;inner join dbo.vManagedEntityType MET on MET.ManagedEntityTypeRowId=ME.ManagedEntityTypeRowId       &lt;br /&gt;inner join dbo.vManagementPack MP on MP.ManagementPackRowId=MET.ManagementPackRowId       &lt;br /&gt;inner join dbo.vManagementPackVersion MPV on MPV.ManagementPackRowId=MP.ManagementPackRowId       &lt;br /&gt;left join dbo.vDiscoveryManagementPackVersion DMP on DMP.ManagementPackVersionRowId=MPV.ManagementPackVersionRowId       &lt;br /&gt;AND CAST(DefinitionXml.query('data(/Discovery/DiscoveryTypes/DiscoveryClass/@TypeID)') AS nvarchar(max)) like '%'+MET.ManagedEntityTypeSystemName+'%'       &lt;br /&gt;left join dbo.vManagedEntityType MET1 on MET1.ManagedEntityTypeRowId=DMP.TargetManagedEntityTypeRowId       &lt;br /&gt;left join dbo.vDiscovery D on D.DiscoveryRowId=DMP.DiscoveryRowId       &lt;br /&gt;where ChangeDateTime &amp;gt; dateadd(hh,-24,getutcdate())       &lt;br /&gt;) As #T       &lt;br /&gt;group by ManagedEntityTypeSystemName, DiscoverySystemName       &lt;br /&gt;order by count(*) DESC&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;and&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;/* Modified properties in the last 24 hours */&lt;/p&gt;    &lt;p&gt;select distinct      &lt;br /&gt;MP.ManagementPackSystemName,       &lt;br /&gt;MET.ManagedEntityTypeSystemName,       &lt;br /&gt;PropertySystemName,       &lt;br /&gt;D.DiscoverySystemName, D.DiscoveryDefaultName,       &lt;br /&gt;MET1.ManagedEntityTypeSystemName As 'TargetTypeSystemName', MET1.ManagedEntityTypeDefaultName 'TargetTypeDefaultName',       &lt;br /&gt;ME.Path, ME.Name,       &lt;br /&gt;C.OldValue, C.NewValue, C.ChangeDateTime       &lt;br /&gt;from dbo.vManagedEntityPropertyChange C       &lt;br /&gt;inner join dbo.vManagedEntity ME on ME.ManagedEntityRowId=C.ManagedEntityRowId       &lt;br /&gt;inner join dbo.vManagedEntityTypeProperty METP on METP.PropertyGuid=C.PropertyGuid       &lt;br /&gt;inner join dbo.vManagedEntityType MET on MET.ManagedEntityTypeRowId=ME.ManagedEntityTypeRowId       &lt;br /&gt;inner join dbo.vManagementPack MP on MP.ManagementPackRowId=MET.ManagementPackRowId       &lt;br /&gt;inner join dbo.vManagementPackVersion MPV on MPV.ManagementPackRowId=MP.ManagementPackRowId       &lt;br /&gt;left join dbo.vDiscoveryManagementPackVersion DMP on DMP.ManagementPackVersionRowId=MPV.ManagementPackVersionRowId       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; AND CAST(DefinitionXml.query('data(/Discovery/DiscoveryTypes/DiscoveryClass/@TypeID)') AS nvarchar(max)) like '%'+MET.ManagedEntityTypeSystemName+'%'       &lt;br /&gt;left join dbo.vManagedEntityType MET1 on MET1.ManagedEntityTypeRowId=DMP.TargetManagedEntityTypeRowId       &lt;br /&gt;left join dbo.vDiscovery D on D.DiscoveryRowId=DMP.DiscoveryRowId       &lt;br /&gt;where ChangeDateTime &amp;gt; dateadd(hh,-24,getutcdate())       &lt;br /&gt;ORDER BY MP.ManagementPackSystemName, MET.ManagedEntityTypeSystemName&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Wow – that returned a LOT of discoveries running all the time!&amp;#160; What can I do?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Don't import too many MP’s!&amp;#160; The FIRST line of defense – is NOT to import ANY management packs into a management group that you don't absolutely need RIGHT THEN.&amp;#160; Management packs are constantly updated, and by the time you have an actual SLA in a technology area – there will likely be a newer, better MP available for it.&amp;#160; The biggest mistake many customers make is to import any available MP for a technology that they have internally.&amp;#160; They end up with a FLOOD of alerts, big fat databases, slow consoles, and lots of weird errors.&amp;#160; MP’s should be transitioned slowly, one at a time – tuning and resolving as you go. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Disable the noisy discoveries.&amp;#160; Probably not a great solution, unless they discover objects that you really don't care about – but there are other objects in the MP that you DO want to monitor. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Increase the interval of the discovery frequency.&amp;#160; This means… essentially – change any “bad” discoveries to run only once per day.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Add a “synch time” override to the discovery – if possible.&amp;#160; This option is not available unless the MP author of the discovery exposed it.&amp;#160; What this will do – it cause all the agents to ONLY run the discovery at a distinct and specified time every day (say…. 1AM).&amp;#160; This might cause too much discovery data to flood in at one time… but since it will all come in at the same time – it wont cause constant config churn all throughout the day.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Re-write the discovery.&amp;#160; If this is a custom MP – rewrite the discovery/MP, and remove that property which changes too often.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Make sure your hardware and software is optimized for scalability.&amp;#160; On your RMS – it is good to place your config file on fast disks, especially in large environments.&amp;#160; I have worked with very large customers who were experiencing config churn, but had zero ill effects, because their RMS disk I/O was on a 4 spindle RAID10 with 15K spindles, CPU and memory were really good, and their SQL database disk I/O for the OpsDB was excellent with plenty of breathing room.&amp;#160; I have also worked with smaller agent counts, where config churn has a serious impact…. mostly due to the RMS config file being places on the same RAID spindle set as that OS and pagefile, using only 2 older 10,000 RPM disks.&amp;#160; The SQL disk I/O was also just borderline for their agent count.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Re-run the queries periodically – especially after importing/upgrading to a new management pack in your management group.&amp;#160; This “instance space change” report should be part of your testing and evaluation of a new MP when brought into your lab…. if you have a large agent count environment.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Some very common discoveries I have seen – that have properties that change very frequently – are listed below.&amp;#160; I often recommend these be overridden to run once per day (86,400 seconds)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="2" cellspacing="0" cellpadding="0" width="864"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="248"&gt;&lt;strong&gt;Discovery Display Name&lt;/strong&gt;&lt;/td&gt;        &lt;td width="166"&gt;&lt;strong&gt;Discovery Target Class&lt;/strong&gt;&lt;/td&gt;        &lt;td width="173"&gt;&lt;strong&gt;Discovered Type&lt;/strong&gt;&lt;/td&gt;        &lt;td width="135"&gt;&lt;strong&gt;Default frequency&lt;/strong&gt;&lt;/td&gt;        &lt;td width="138"&gt;&lt;strong&gt;Modified frequency&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="248"&gt;Discover File Groups and Files&lt;/td&gt;        &lt;td width="166"&gt;SQL 2005 DB Engine&lt;/td&gt;        &lt;td width="173"&gt;SQL 2005 DB File&lt;/td&gt;        &lt;td width="135"&gt;7260&lt;/td&gt;        &lt;td width="138"&gt;86400&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="248"&gt;Discover File Groups and Files&lt;/td&gt;        &lt;td width="166"&gt;SQL 2005 DB Engine&lt;/td&gt;        &lt;td width="173"&gt;SQL 2005 DB File Group&lt;/td&gt;        &lt;td width="135"&gt;7260&lt;/td&gt;        &lt;td width="138"&gt;86400&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="248"&gt;Discover SQL 2000 Databases&lt;/td&gt;        &lt;td width="166"&gt;SQL 2000 DB Engine&lt;/td&gt;        &lt;td width="173"&gt;SQL 2000 DB&lt;/td&gt;        &lt;td width="135"&gt;1800&lt;/td&gt;        &lt;td width="138"&gt;86400&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="248"&gt;Discover Databases for a Database Engine&lt;/td&gt;        &lt;td width="166"&gt;SQL 2005 DB Engine&lt;/td&gt;        &lt;td width="173"&gt;SQL 2005 DB&lt;/td&gt;        &lt;td width="135"&gt;7200&lt;/td&gt;        &lt;td width="138"&gt;86400&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="248"&gt;DNS 2003 Component Discovery&lt;/td&gt;        &lt;td width="166"&gt;DNS 2003 Server&lt;/td&gt;        &lt;td width="173"&gt;DNS 2003 Zone&lt;/td&gt;        &lt;td width="135"&gt;21600&lt;/td&gt;        &lt;td width="138"&gt;86400&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="248"&gt;DNS 2008 Component Discovery&lt;/td&gt;        &lt;td width="166"&gt;DNS 2008 Server&lt;/td&gt;        &lt;td width="173"&gt;DNS 2008 Zone&lt;/td&gt;        &lt;td width="135"&gt;21600&lt;/td&gt;        &lt;td width="138"&gt;86400&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="248"&gt;Windows Internet Information Services Base Classes Discovery Rule&lt;/td&gt;        &lt;td width="166"&gt;IIS 2003 Server Role&lt;/td&gt;        &lt;td width="173"&gt;IIS FTP Site&lt;/td&gt;        &lt;td width="135"&gt;3600&lt;/td&gt;        &lt;td width="138"&gt;86400&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="248"&gt;Windows Internet Information Services Base Classes Discovery Rule&lt;/td&gt;        &lt;td width="166"&gt;IIS 2000 Server Role&lt;/td&gt;        &lt;td width="173"&gt;IIS NNTP Virtual Server&lt;/td&gt;        &lt;td width="135"&gt;3600&lt;/td&gt;        &lt;td width="138"&gt;86400&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The above is just a sample – you should examine the query output of the query above and see what is impacting your management group the most.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3284780" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/agents/default.aspx">agents</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/Authoring/default.aspx">Authoring</category></item><item><title>Keep your management pack names SHORT in SP1!</title><link>http://blogs.technet.com/kevinholman/archive/2009/10/02/keep-your-management-pack-names-short-in-sp1.aspx</link><pubDate>Fri, 02 Oct 2009 23:31:08 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3284634</guid><dc:creator>kevinhol</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3284634.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3284634</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3284634</wfw:comment><description>&lt;p&gt;I have seen this twice now… so I will blog about it.&amp;#160; It seems to be rare in the wild, but it will completely cripple a management group when this occurs.&amp;#160; So beware SP1 users!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;This article does not apply to R2.&amp;#160; This is only an issue in OpsMgr 2007 SP1.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;When you create your custom management packs – and especially your override management packs – keep the names as simple and short as possible.&amp;#160; There is an issue in OpsMgr SP1 – when an agent tries to download management packs – where it will fail if the MP ID (derived from the MP Name) is too long.&amp;#160; The worst part about this problem is there there WONT be an error logged.&amp;#160; What will happen – is that the agent will keep trying to re-download the MP in question, and it will block ALL other MP’s from being downloaded from that point forward.&lt;/p&gt;  &lt;p&gt;There is no simple way to know this condition is impacting you.&amp;#160; What will happen – is that an agent will continue to work just fine… but will not get any NEW management packs.&amp;#160; So… you might think all is well, but not so.&amp;#160; The symptoms thatmight lead you to notice that something is wrong:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Performance data not collected for newer MP’s.&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Objects not being discovered for newer MP’s&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Alerts not generating as expected from newer MP’s.&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The root problem is an age old Windows issue…. file paths over 255 characters not supported well.&amp;#160; This has been resolved in R2 in how the agent copies the files over.&lt;/p&gt;  &lt;p&gt;In both cases I have seen – someone was creating an override MP for the “IBM Hardware Management Pack for IBM System x and BladeCenter x86 Blade Systems” management pack.&amp;#160; So – when they created their override MP – they named it something like:&amp;#160; “Overrides - IBM Hardware Management Pack for IBM System x and BladeCenter x86 Blade Systems”&lt;/p&gt;  &lt;p&gt;This equated to a Management Pack ID of:&amp;#160; Override.IBM.Hardware.Management.Pack.for.IBM.System.x.and.BladeCenter.x.Blade.Systems&lt;/p&gt;  &lt;p&gt;That MP ID is 86 characters!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What happens…. is when this management pack is created, and an override is placed in it…. (or custom rule)… the agents that require it will:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Get contacted by the RMS to update their config, and then issue a config change request (&lt;em&gt;21024 in the event log&lt;/em&gt;)&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Receive new config from the RMS (&lt;em&gt;event 21025&lt;/em&gt;)&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Process new config – and realize they need a new MP, and request that MP (&lt;em&gt;event 1200&lt;/em&gt;)&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Where this process breaks…. is the next step in the chain should be that the agent RECEIVES the MP (event 1201) and then issues a statement that the new config has become active (event 1210).&amp;#160; The never happen.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Behind the scenes…. from looking at a ETL tracelog, we can see this is failing, when we try to move the file from the “downloaded files” folder to the “management packs” folder:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Error CMPFileManager::MoveManagementPackFile(MPFileManager_cpp383)&lt;font color="#0000ff"&gt;MoveFile from '\\?\C:\Program Files\System Center Operations Manager 2007\Health Service State\Downloaded Files\MGNAME\1\Override.IBM.Hardware.Management.Pack.for.IBM.System.x.and.BladeCenter.x.Blade.Systems.{26504FED-2FF4-4AC4-A63D-59BF8C09F51F}.{7136257C-1791-7BAB-7072-2FA24284C102}.xml' to 'C:\Program Files\System Center Operations Manager 2007\Health Service State\Management Packs\Override.IBM.Hardware.Management.Pack.for.IBM.System.x.and.BladeCenter.x.Blade.Systems.{26504FED-2FF4-4AC4-A63D-59BF8C09F51F}.{7136257C-1791-7BAB-7072-2FA24284C102}.xml'&lt;/font&gt; &lt;font color="#ff0000"&gt;failed with code 3(ERROR_PATH_NOT_FOUND).&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In the example above – the bad path is:&lt;/p&gt;  &lt;p&gt;C:\Program Files\System Center Operations Manager 2007\Health Service State\Management Packs\Override.IBM.Hardware.Management.Pack.for.IBM.System.x.and.BladeCenter.x.Blade.Systems.{26504FED-2FF4-4AC4-A63D-59BF8C09F51F}.{7136257C-1791-7BAB-7072-2FA24284C102}.xml&lt;/p&gt;  &lt;p&gt;Which is 261 characters.&amp;#160; The limit is 255.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Therefore – I recommend you keep your Management Pack *ID* to less than 60 characters.&amp;#160;&amp;#160; You can examine your long management packs by looking in the console – generally your longest display names will be the longest ID’s:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/KeepyourmanagementpacknamesSHORTinSP1_D9FD/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/KeepyourmanagementpacknamesSHORTinSP1_D9FD/image_thumb.png" width="311" height="193" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Even some Microsoft MP’s are dangerously close to the limit…. such as: Microsoft.SystemCenter.VirtualMachineManager.Pro.2008.VMWare.HostPerformance with 76 characters.&amp;#160; In most environments you can squeak by at 79 characters…. more or less depending on where you installed your agent path.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here is a SQL query you can run against the OpsDB to also detect this condition…. and quick check all your potentially long MP’s:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;select MPName from managementpack       &lt;br /&gt;WHERE len(MPName) &amp;gt; 60&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Just change 60 to whatever character count you want.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;DONT freak out if you have some more than 60.&amp;#160; Just be aware.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/KeepyourmanagementpacknamesSHORTinSP1_D9FD/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/KeepyourmanagementpacknamesSHORTinSP1_D9FD/image_thumb_1.png" width="96" height="101" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt; DO freak out if you have some more than 80! &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If someone had the time and was really handy – you could write a monitor – that runs against the RMS – that would in turn query the OpsDB, and run this query, and change the RMS to unhealthy when over a threshold.&amp;#160; THAT would be cool…. and alert you when some author makes a really long MP that has the potential to break all your agents.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Another idea I had… was to create a correlated missing event monitor…. and when you get a 1200, but do NOT get a 1201 within, say, 15 minutes….. that might be a problem.&amp;#160; Of course if you wrote this and were already impacted…. the bad agents would never get your new MP to tell you.&amp;#160; :-)&amp;#160; &lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3284634" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/agents/default.aspx">agents</category></item><item><title>New Base OS MP 6.0.6667.0 adds file fragmentation monitor to all Logical Disks</title><link>http://blogs.technet.com/kevinholman/archive/2009/09/28/new-base-os-mp-6-0-6667-0-adds-file-fragmentation-monitor-to-all-logical-disks.aspx</link><pubDate>Mon, 28 Sep 2009 19:09:03 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3283580</guid><dc:creator>kevinhol</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3283580.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3283580</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3283580</wfw:comment><description>&lt;p&gt;I recently blogged about the new Base OS MP that was recently released:&amp;#160; &lt;a href="http://blogs.technet.com/kevinholman/archive/2009/09/22/new-base-os-mp-released-9-18-2009-version-6-0-6667-0-to-add-support-for-windows-server-2008r2-and-other-fixes.aspx"&gt;HERE&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;One of the things you will notice RIGHT off the bat… is that a huge percentage of your logical disks will go into a warning state, if you don't already have some sort of scheduled defragmentation set up.&amp;#160; This will be true for virtual machines and physical machines…. anything over 10 percent file fragmentation (or the OS recommended setting) will get hit:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/New.0addsfilefragmentationmonitortoallLo_9CC7/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/New.0addsfilefragmentationmonitortoallLo_9CC7/image_thumb.png" width="327" height="364" /&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/New.0addsfilefragmentationmonitortoallLo_9CC7/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/New.0addsfilefragmentationmonitortoallLo_9CC7/image_thumb_1.png" width="716" height="424" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You will also get many warning alerts on this monitor…. the first time the condition is detected and the state changes for this monitor.&amp;#160; This monitor checks status every Saturday, at 3:00AM by default, for all logical disks discovered.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/New.0addsfilefragmentationmonitortoallLo_9CC7/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/New.0addsfilefragmentationmonitortoallLo_9CC7/image_thumb_10.png" width="656" height="143" /&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;If you don't care about this monitoring in SCOM – disable this monitor using overrides.&lt;/p&gt;  &lt;p&gt;If you do care about seeing the state change – but don't want the alerts – turn the “Generates Alert” property to False, using overrides.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You can adjust the threshold from 10% to some other number…. but make sure you take note – this monitor will ignore the “File Percent Fragmentation” property by default, and always use the OS recommended setting.&amp;#160; If you want to control this – you also need to set “Use OS Recommendation” to FALSE.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here is an example of hard coding the frag percentage to 20% from the OS default:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/New.0addsfilefragmentationmonitortoallLo_9CC7/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/New.0addsfilefragmentationmonitortoallLo_9CC7/image_thumb_4.png" width="745" height="377" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;“Use OS Recommendation” property description:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/New.0addsfilefragmentationmonitortoallLo_9CC7/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/New.0addsfilefragmentationmonitortoallLo_9CC7/image_thumb_3.png" width="321" height="83" /&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;Lastly – one thing of interest….&amp;#160; If you want SCOM to “fix” the fragmentation issue…. it can.&amp;#160; There is a recovery on this very monitor that can run a VBScript that will run a defrag job against your logical disks.&amp;#160; It is disabled by default.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/New.0addsfilefragmentationmonitortoallLo_9CC7/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/New.0addsfilefragmentationmonitortoallLo_9CC7/image_thumb_5.png" width="546" height="167" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Keep in mind – if you turn on this defrag…. on your physical boxes – it wont be a big deal… it will simply fix the fragmentation issue.&amp;#160; However – this will also run on ALL yours VM’s.&amp;#160; If this was triggered all at the same time – Saturday at 3:00AM by default – this can kill the disk I/O on the disk subsystem hosting your VM/VHD files.&amp;#160; Keep this in mind if you decide to enable this….&amp;#160;&amp;#160; This recovery will only run when the state change is detected… as a recovery to the condition, so any disks that are already in a warning state will not run this recovery should you enable it.&amp;#160; This defrag has a timeout of 1 hour…. so it should kill the defrag if it cannot complete within an hour.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Another cool thing to do – is to use the recovery action as a single run-time task. You can do this right from health explorer, to fix the disks on your own schedule:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/New.0addsfilefragmentationmonitortoallLo_9CC7/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/New.0addsfilefragmentationmonitortoallLo_9CC7/image_thumb_6.png" width="698" height="357" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Just click the link, and run the task:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/New.0addsfilefragmentationmonitortoallLo_9CC7/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/New.0addsfilefragmentationmonitortoallLo_9CC7/image_thumb_7.png" width="519" height="294" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Minimize this…. and just let it run – you can come back in 1 hour – and see if it completed, or timed out.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You can also monitor for task status in the Task Status list in the console:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/New.0addsfilefragmentationmonitortoallLo_9CC7/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/New.0addsfilefragmentationmonitortoallLo_9CC7/image_thumb_9.png" width="780" height="462" /&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;On the agent – you will see the following events logged in the OpsMgr 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 Script        &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 9/28/2009 10:50:04 AM        &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 4002        &lt;br /&gt;Task Category: None        &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; OMDW.opsmgr.net        &lt;br /&gt;Description:        &lt;br /&gt;Microsoft.Windows.Server.LogicalDisk.Defrag.vbs : Perform Defragmentation (disk: C:; computer: OMDW.opsmgr.net).&lt;/strong&gt;      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;And when completed:&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 Script        &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 9/28/2009 11:03:44 AM        &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 4002        &lt;br /&gt;Task Category: None        &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; OMDW.opsmgr.net        &lt;br /&gt;Description:        &lt;br /&gt;Microsoft.Windows.Server.LogicalDisk.Defrag.vbs : Defragmentation completed (disk: C:; computer: OMDW.opsmgr.net): FilePercentFragmentation = 0.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3283580" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category></item><item><title>New KMS MP released version 6.0.7234.0 and some things you should know</title><link>http://blogs.technet.com/kevinholman/archive/2009/09/23/new-kms-mp-released-version-6-0-7234-0-and-some-things-you-should-know.aspx</link><pubDate>Wed, 23 Sep 2009 22:37:33 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3282813</guid><dc:creator>kevinhol</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3282813.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3282813</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3282813</wfw:comment><description>&lt;p&gt;A new KMS (Key Management Services) MP is released.&amp;#160; I don't expect this is a widely used MP out there…. but there are some things you should know if you ever imported the previous versions.&lt;/p&gt;  &lt;p&gt;First – the new MP is available on the catalog:&amp;#160; &lt;a title="http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx" href="http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx"&gt;http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;DO NOT&lt;/strong&gt; download this MP directly via the R2 direct download mechanism.&amp;#160; You need to get this one from the web catalog.&amp;#160; As in all MP’s – you need to read the guide FIRST… because the “Before you import” section is critical.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The new MP is &lt;strong&gt;not backward compatible&lt;/strong&gt; with the previous MP.&amp;#160; You MUST delete any previous version of the KMS MP you have installed. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If you used the previous version of the KMS MP – you might have noticed some issues.&amp;#160; For instance, the old KMS MP added a unique dataset type to the warehouse, with a grooming procedure just for the KMS dataset.&amp;#160; These didn't work.&amp;#160; When you download the new MP, it comes with instructions and a cleanup script to fix this.&amp;#160; If you ever imported the old MP – you are affected.&amp;#160; You will see the following events on your RMS every 10-11 minutes: &lt;/li&gt; &lt;/ul&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; 9/23/2009 4:20:53 PM         &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 31552         &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;&lt;font color="#ff0000"&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;/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.StandardDataSetMaintenance        &lt;br /&gt;Instance name: KMS Activation Event Data Set         &lt;br /&gt;Instance ID: {35CE8740-3FCF-FA7F-D733-1ECD0FBE0D7F}         &lt;br /&gt;Management group: PROD1&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So – here are the necessary steps to get this new MP working (from reading the MP guide):&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;font color="#0000ff"&gt;Delete the old MP (typically going to be version 6.0.6278.9)&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font color="#0000ff"&gt;Run the cleanup SQL script against the OperationsManagerDW (Warehouse) database.&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font color="#0000ff"&gt;Import the new MP.&lt;/font&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you had previously imported the old KMS MP – and are getting this event on your RMS, and you no longer wish to use the KMS MP anymore….. you can clean this up using the script that is included with the new MP.&amp;#160; So for a cleanup ONLY – where you do not wish to use the KMS MP:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;font color="#0000ff"&gt;Make sure the old KMS MP is deleted.&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font color="#0000ff"&gt;Run the cleanup SQL script against the OperationsManagerDW (Warehouse) database.&lt;/font&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The script output simply displays this when complete:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/kevinholman/WindowsLiveWriter/NewKMSMPrele.0andsomethingsyoushouldknow_F7B8/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/NewKMSMPrele.0andsomethingsyoushouldknow_F7B8/image_thumb_1.png" width="453" height="86" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A cleaned up environment will no longer have any KMS datasets, or stored procedures for grooming this dataset.&amp;#160; You can inspect for these with the following queries against the warehouse:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;select * from standarddataset WHERE SchemaName = 'KMSEvent'&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;select * from sysobjects where name like ('%kms%')&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Once the cleanup script has been run – these should return no results.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;***Note&lt;/strong&gt; – the new MP does not contain any reports.&amp;#160; The old MP had reports the leveraged the KMS Dataset, but the new MP does not.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3282813" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category></item><item><title>New Base OS MP released 9-18-2009 version 6.0.6667.0 to add support for Windows Server 2008R2 and other fixes</title><link>http://blogs.technet.com/kevinholman/archive/2009/09/22/new-base-os-mp-released-9-18-2009-version-6-0-6667-0-to-add-support-for-windows-server-2008r2-and-other-fixes.aspx</link><pubDate>Tue, 22 Sep 2009 15:40:59 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3282461</guid><dc:creator>kevinhol</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3282461.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3282461</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3282461</wfw:comment><description>&lt;p&gt;As you can see from the “Changes in this update section” of the guide – this isn't just about supporting Server 2008 R2 – there are many fixes and updates, so this would be a good one to get through your testing cycles and plan for production.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Available on the catalog:&amp;#160; &lt;a title="http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx" href="http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx"&gt;http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Toc239234930"&gt;&lt;strong&gt;Changes in This Update&lt;/strong&gt;&lt;/a&gt;&lt;a name="zba4eeaaa998840f0a7d03278bb7f872e"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The September 2009 release (version 6.0.6667.0) of the Windows Server Operating System Management Pack includes the following changes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Support for Windows Server 2008 R2, including new classes to represent Windows Server 2008 R2 systems specifically. &lt;/li&gt;    &lt;li&gt;The intervals for some discoveries have been changed to reduce CPU usage. For details, see &lt;a href="#z87792d9bf5d848daad1d529a7c864455"&gt;Objects the Windows Server Operating System Management Pack Discovers&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Added Logical Disk Fragmentation Level monitors for Windows Server 2003 and Windows Server 2008. &lt;/li&gt;    &lt;li&gt;Disabled the following rules and monitors for Windows Server 2008 because the events needed are in Windows Server 2003 only.      &lt;ul&gt;       &lt;li&gt;Duplicate computer name was detected &lt;/li&gt;        &lt;li&gt;Windows Activation State &lt;/li&gt;        &lt;li&gt;Disk Group Failed &lt;/li&gt;        &lt;li&gt;Disk Group Auto Import Failed &lt;/li&gt;        &lt;li&gt;Volume Not Started &lt;/li&gt;        &lt;li&gt;Run WMIAdap &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Fixed the summary details for the Performance History (Percent Processor Time) report to indicate that the object type is Windows Server 2003 operating system rather than Windows Server 2003 processor. &lt;/li&gt;    &lt;li&gt;Fixed the Performance History (Percent Interrupt Time) report to use a rule that targets the operating system rather than the processor. &lt;/li&gt;    &lt;li&gt;Changed the data source for discoveries from System.Scheduler to System.Discovery.Scheduler to avoid performance issues. &lt;/li&gt;    &lt;li&gt;Changed the Logical Disk Availability monitor to use a Run As profile with administrative privileges to enable it to run in a low-privilege environment. &lt;/li&gt;    &lt;li&gt;Modified logical disk discovery to exclude mount points, because numerous rules use performance counters that are not applicable to mount points. &lt;/li&gt;    &lt;li&gt;Fixed an issue in which an alert could be generated for Windows Activation too early. &lt;/li&gt;    &lt;li&gt;Addressed an issue that was causing some discoveries to not show up correctly in the authoring section of the console. &lt;/li&gt;    &lt;li&gt;Improved the product knowledge for the alert generated by the “A Service is Mis-configured” rule. &lt;/li&gt;    &lt;li&gt;Fixed issue in which logical disk health check could have performance problems when run against clustered servers. &lt;/li&gt;    &lt;li&gt;Fixed links to views in product knowledge articles. &lt;/li&gt;    &lt;li&gt;Added Active Alerts views for Windows Server 2003 and Windows Server 2008. &lt;/li&gt;    &lt;li&gt;Added retry logic to the &amp;quot;Probe Module: Is Feature Installed&amp;quot; module to avoid failures due to periodic time-outs. &lt;/li&gt;    &lt;li&gt;Added a new integer property named &amp;quot;Size (MBytes) (Numeric)&amp;quot; to the Logical Disk class and updated the existing property &amp;quot;Size (Bytes) (String)&amp;quot; to clarify that it is a string. The new property can now be used in formulas and views as expected. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Make sure you also check out the new supported config statement and known issues regarding Server 2008 R2 and Windows 7 support:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://support.microsoft.com/kb/974722" href="http://support.microsoft.com/kb/974722"&gt;&lt;strong&gt;http://support.microsoft.com/kb/974722&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3282461" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/2008/default.aspx">2008</category></item><item><title>Community Cisco Network Hardware Management pack available</title><link>http://blogs.technet.com/kevinholman/archive/2009/09/15/community-cisco-network-hardware-management-pack-available.aspx</link><pubDate>Wed, 16 Sep 2009 01:08:43 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3281279</guid><dc:creator>kevinhol</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3281279.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3281279</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3281279</wfw:comment><description>&lt;p&gt;This guy has some serious talent.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://operatingquadrant.com/2009/09/14/scom-advanced-snmp-monitoring-part-iii-the-completed-cisco-management-pack/" href="http://operatingquadrant.com/2009/09/14/scom-advanced-snmp-monitoring-part-iii-the-completed-cisco-management-pack/"&gt;http://operatingquadrant.com/2009/09/14/scom-advanced-snmp-monitoring-part-iii-the-completed-cisco-management-pack/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Make sure you check out all of Kris’s blog posts – amazingly good stuff there on using SNMP to accomplish monitoring that is otherwise very difficult, among other good posts.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3281279" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category></item><item><title>New SQL MP released – version 6.0.6648.0 and why you NEED it.</title><link>http://blogs.technet.com/kevinholman/archive/2009/07/24/new-sql-mp-released-version-6-0-6648-0-and-why-you-need-it.aspx</link><pubDate>Sat, 25 Jul 2009 00:53:11 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3267931</guid><dc:creator>kevinhol</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3267931.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3267931</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3267931</wfw:comment><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Get it from the MP catalog:&amp;#160; &lt;a title="http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx" href="http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx"&gt;http://technet.microsoft.com/en-us/opsmgr/cc539535.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This is considered a “minor” update.&amp;#160; However, there are some &lt;strong&gt;&lt;em&gt;SIGNIFICANT&lt;/em&gt;&lt;/strong&gt; changes you should consider.&amp;#160; Not all of the changes are documented in the guide.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I did a XML diff of the files to see what is new:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Some of the changes:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;In previous versions of the SQL MP, event based alerts generated from Windows 2003 based clusters did not work.&amp;#160; This has been fixed in this version of the MP.&amp;#160; &lt;/li&gt;    &lt;li&gt;SQL 2005 “Database Status” Monitor inspects DB status (online, offline) every hour, from every 2 minutes UnitMonitor ID=&amp;quot;Microsoft.SQLServer.2005.Database.DBStatusMonitor&amp;quot; &lt;/li&gt;    &lt;li&gt;SQL 2005 “Disk Free Space” DB File freespace monitor now runs every hour, from every 2 minutes.&amp;#160; UnitMonitor ID=&amp;quot;Microsoft.SQLServer.2005.DBFile.DiskFreeSpace&amp;quot; &lt;/li&gt;    &lt;li&gt;SQL 2008 “Database Status” Monitor inspects DB status (online, offline) every hour, from every 2 minutes UnitMonitor ID=&amp;quot;Microsoft.SQLServer.2008.Database.DBStatusMonitor&amp;quot;&lt;/li&gt;    &lt;li&gt;SQL 2008 “Disk Free Space” DB File freespace monitor now runs every hour, from every 2 minutes.&amp;#160; UnitMonitor ID=&amp;quot;Microsoft.SQLServer.2008.DBFile.DiskFreeSpace&amp;quot;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;For these reasons alone, anyone running clustered SQL servers should consider &lt;strong&gt;&lt;em&gt;rapidly&lt;/em&gt;&lt;/strong&gt; moving to this MP.&lt;/p&gt;  &lt;p&gt;I say that – with some caveats: In order to use this MP effectively – your agents must be &lt;strong&gt;&lt;em&gt;EITHER&lt;/em&gt;&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;OpsMgr 2007 R2&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;OR&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;OpsMgr 2007 SP1&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;with&lt;/em&gt;&lt;/strong&gt; &lt;a title="http://support.microsoft.com/kb/959865" href="http://support.microsoft.com/kb/959865"&gt;http://support.microsoft.com/kb/959865&lt;/a&gt; applied.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The guide is a bit misleading – it states:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;In order for this fix to work fully on Windows Server 2003 and Windows Server 2008 operating systems, all agents on clustered nodes need to be running Operations Manager 2007 SP1 or Operations Manager 2007 R2 with the update installed from Knowledge Base article 959865&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This is technically misleading – in that it leads you to think you need to apply 959865 to your R2 environment to support this MP.&amp;#160; You don't.&amp;#160; 959865 is an OpsMgr 2007 SP1 &lt;strong&gt;&lt;em&gt;ONLY&lt;/em&gt; &lt;/strong&gt;hotfix , and does &lt;strong&gt;&lt;em&gt;NOT&lt;/em&gt;&lt;/strong&gt; apply to R2.&lt;/p&gt;  &lt;p&gt;Now – what if you don't want to apply this hotfix to SP1 – can you still run this MP?&amp;#160; Technically – Yes, however it will not work on Server 2008 failover clusters hosting a SQL instance.&amp;#160; There is a change in the way Server 2008 failover clusters log events… and a module was changed in R2, and in SP1-hotfix-959865, to address this.&amp;#160; That said – I strongly recommend you move to R2.&amp;#160; If you cannot move to R2, and will remain on SP1 for some time, I strongly recommend you apply 959865 to your management group.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3267931" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category></item><item><title>Getting lots of Script Failed To Run alerts? WMI Probe Failed Execution? Backward Compatibility Script Error?</title><link>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</link><pubDate>Mon, 29 Jun 2009 17:24:31 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3259635</guid><dc:creator>kevinhol</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3259635.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3259635</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3259635</wfw:comment><description>&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;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/agents/default.aspx">agents</category></item><item><title>Creating custom dynamic computer groups based on registry keys on agents</title><link>http://blogs.technet.com/kevinholman/archive/2009/06/10/creating-custom-dynamic-computer-groups-based-on-registry-keys-on-agents.aspx</link><pubDate>Wed, 10 Jun 2009 07:09:48 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3252822</guid><dc:creator>kevinhol</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.technet.com/kevinholman/comments/3252822.aspx</comments><wfw:commentRss>http://blogs.technet.com/kevinholman/commentrss.aspx?PostID=3252822</wfw:commentRss><wfw:comment>http://blogs.technet.com/kevinholman/rsscomments.aspx?PostID=3252822</wfw:comment><description>&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;</description><category domain="http://blogs.technet.com/kevinholman/archive/tags/management+pack/default.aspx">management pack</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/Notification/default.aspx">Notification</category><category domain="http://blogs.technet.com/kevinholman/archive/tags/Authoring/default.aspx">Authoring</category></item></channel></rss>