<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Automating the Infrastructure</title><subtitle type="html">Focusing on scripts, MOM, SMS, WMI, and any other technologies design to assist operations staff in performing their entire job function from the comfort of their own desk.
</subtitle><id>http://blogs.technet.com/ati/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.technet.com/ati/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2005-11-29T06:45:00Z</updated><entry><title>Moved</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2007/08/22/moved.aspx" /><id>http://blogs.technet.com/ati/archive/2007/08/22/moved.aspx</id><published>2007-08-22T21:33:54Z</published><updated>2007-08-22T21:33:54Z</updated><content type="html">&lt;p&gt;I've decided to move the contents of this blog over to my personal one at &lt;a href="http://blogs.technet.com/brianwren"&gt;http://blogs.technet.com/brianwren&lt;/a&gt;.&amp;nbsp; I've copied the most recent posts there, and that's where I'll be adding content.&amp;nbsp; I'll be leaving this one in place to keep the older posts archived for some time.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=1804087" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author></entry><entry><title>Manually Resetting a Monitor</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2007/08/07/manually-resetting-a-monitor.aspx" /><id>http://blogs.technet.com/ati/archive/2007/08/07/manually-resetting-a-monitor.aspx</id><published>2007-08-07T19:42:16Z</published><updated>2007-08-07T19:42:16Z</updated><content type="html">&lt;p&gt;You may have noticed that all monitors in OpsMgr 2007 have an option called Reset Health.&amp;nbsp; The problem you may have encountered with this option is that it doesn't do anything on most monitors.&amp;nbsp; It will typically only work on monitors that were created with&amp;nbsp;a Manual reset.&amp;nbsp; This option actually does work in all cases, but it's up to the monitor (or more specifically the monitor type) to do something with it.&amp;nbsp; Most of the monitor types that you're probably building monitors from don't implement the required option for Reset Health to have any effect, so it looks like it just doesn't work.&lt;/p&gt; &lt;p&gt;To understand the issue here, we need to drop down into the management pack XML.&amp;nbsp; Every monitor is based on a monitor type that may be defined in the same management pack but is more commonly one of the standard monitor types in Microsoft.Windows.Library.&amp;nbsp; One of the sections of the of the monitor type is RegularDetections that defines what action to take when the different events watched by the monitor type are detected.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Below is an example from the monitor type Microsoft.Windows.2SingleEventLog2StateMonitorType.&amp;nbsp; This is the monitor type typically used when you create a monitor using a Windows event for an error state and a second Windows event for a healthy state.&amp;nbsp; Note the bold section that defines the RegularDetections.&amp;nbsp; The order of actions to take is defined from the innermost XML node out.&amp;nbsp; In the case of FirstEventRaised, FirstDataSource is executed to access the event log and then FirstFilterCondition is executed to filter out the event in question.&lt;/p&gt; &lt;p&gt;&amp;lt;UnitMonitorType ID="Microsoft.Windows.2SingleEventLog2StateMonitorType" Accessibility="Public"&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;MonitorTypeStates&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MonitorTypeState ID="FirstEventRaised" NoDetection="false" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MonitorTypeState ID="SecondEventRaised" NoDetection="false" /&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;/MonitorTypeStates&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;Configuration&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;IncludeSchemaTypes&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;SchemaType&amp;gt;System!System.ExpressionEvaluatorSchema&amp;lt;/SchemaType&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/IncludeSchemaTypes&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="FirstComputerName" type="xsd:string" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="FirstLogName" type="xsd:string" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="FirstExpression" type="ExpressionType" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SecondComputerName" type="xsd:string" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SecondLogName" type="xsd:string" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SecondExpression" type="ExpressionType" /&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;/Configuration&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;MonitorImplementation&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MemberModules&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DataSource ID="FirstDataSource" TypeID="Microsoft.Windows.BaseEventProvider"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ComputerName&amp;gt;$Config/FirstComputerName$&amp;lt;/ComputerName&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LogName&amp;gt;$Config/FirstLogName$&amp;lt;/LogName&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/DataSource&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DataSource ID="SecondDataSource" TypeID="Microsoft.Windows.BaseEventProvider"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ComputerName&amp;gt;$Config/SecondComputerName$&amp;lt;/ComputerName&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LogName&amp;gt;$Config/SecondLogName$&amp;lt;/LogName&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/DataSource&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ConditionDetection ID="FirstFilterCondition" TypeID="System!System.ExpressionFilter"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Expression&amp;gt;$Config/FirstExpression$&amp;lt;/Expression&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ConditionDetection&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ConditionDetection ID="SecondFilterCondition" TypeID="System!System.ExpressionFilter"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Expression&amp;gt;$Config/SecondExpression$&amp;lt;/Expression&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ConditionDetection&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/MemberModules&amp;gt;&lt;br&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RegularDetections&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RegularDetection MonitorTypeStateID="FirstEventRaised"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Node ID="FirstFilterCondition"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Node ID="FirstDataSource" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Node&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/RegularDetection&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RegularDetection MonitorTypeStateID="SecondEventRaised"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Node ID="SecondFilterCondition"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Node ID="SecondDataSource" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Node&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/RegularDetection&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/RegularDetections&amp;gt;&lt;/strong&gt;&lt;br&gt;&amp;nbsp; &amp;lt;/MonitorImplementation&amp;gt;&lt;br&gt;&amp;lt;/UnitMonitorType&amp;gt;  &lt;p&gt;In order to enable the Reset Health option for the monitor, you need to add an OnDemandDetections section to the monitor type to define the action to be taken.&amp;nbsp; In the case of the Microsoft.Windows.2SingleEventLog2StateMonitorType, we need to decide which event will define success since this is the one we want to execute with the OnDemandDetection.&amp;nbsp; I'm going to use the first event for an error, and the second event for success.&amp;nbsp; With that in mind, we can modify the monitor type to the following with the added XML in bold:&lt;/p&gt; &lt;p&gt;&amp;lt;UnitMonitorType ID="Microsoft.Windows.2SingleEventLog2StateMonitorTypeWithReset" Accessibility="Public"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MonitorTypeStates&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MonitorTypeState ID="FirstEventRaised" NoDetection="false"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MonitorTypeState ID="SecondEventRaised" NoDetection="false"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/MonitorTypeStates&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Configuration&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;IncludeSchemaTypes&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;SchemaType&amp;gt;System!System.ExpressionEvaluatorSchema&amp;lt;/SchemaType&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/IncludeSchemaTypes&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="FirstComputerName" type="xsd:string"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="FirstLogName" type="xsd:string"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="FirstExpression" type="ExpressionType"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SecondComputerName" type="xsd:string"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SecondLogName" type="xsd:string"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SecondExpression" type="ExpressionType"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Configuration&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MonitorImplementation&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MemberModules&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DataSource ID="FirstDataSource" TypeID="Windows!Microsoft.Windows.BaseEventProvider"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ComputerName&amp;gt;$Config/FirstComputerName$&amp;lt;/ComputerName&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LogName&amp;gt;$Config/FirstLogName$&amp;lt;/LogName&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/DataSource&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DataSource ID="SecondDataSource" TypeID="Windows!Microsoft.Windows.BaseEventProvider"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ComputerName&amp;gt;$Config/SecondComputerName$&amp;lt;/ComputerName&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LogName&amp;gt;$Config/SecondLogName$&amp;lt;/LogName&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/DataSource&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt; &amp;lt;ProbeAction ID="OnDemandReset" TypeID="System!System.PassThroughProbe"/&amp;gt;&lt;/strong&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ConditionDetection ID="FirstFilterCondition" TypeID="System!System.ExpressionFilter"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Expression&amp;gt;$Config/FirstExpression$&amp;lt;/Expression&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ConditionDetection&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ConditionDetection ID="SecondFilterCondition" TypeID="System!System.ExpressionFilter"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Expression&amp;gt;$Config/SecondExpression$&amp;lt;/Expression&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ConditionDetection&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/MemberModules&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RegularDetections&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RegularDetection MonitorTypeStateID="FirstEventRaised"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Node ID="FirstFilterCondition"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Node ID="FirstDataSource"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Node&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/RegularDetection&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RegularDetection MonitorTypeStateID="SecondEventRaised"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Node ID="SecondFilterCondition"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Node ID="SecondDataSource"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Node&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/RegularDetection&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/RegularDetections&amp;gt;&lt;br&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;OnDemandDetections&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;OnDemandDetection MonitorTypeStateID="SecondEventRaised"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Node ID="OnDemandReset"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/OnDemandDetection&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/OnDemandDetections&amp;gt;&lt;/strong&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/MonitorImplementation&amp;gt;&lt;br&gt;&amp;lt;/UnitMonitorType&amp;gt;  &lt;p&gt;Note that there are two nodes added to the XML.&amp;nbsp; First, we need to add a new System.PassThroughProbe&amp;nbsp;module so the monitor knows to even look for our reset.&amp;nbsp; We next need an OnDemandDetections node that specifies what MonitorTypeStateID to set when the reset is performed.&amp;nbsp; In this case, I'm assuming that the second event indicates a healthy state.&amp;nbsp; The MonitorTypeStateID of SecondEventRaised directly corresponds to the same ID in the MonitorTypeStates node.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=1718127" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author><category term="MOM" scheme="http://blogs.technet.com/ati/archive/tags/MOM/default.aspx" /></entry><entry><title>Exporting Management Packs</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2007/08/06/exporting-management-packs.aspx" /><id>http://blogs.technet.com/ati/archive/2007/08/06/exporting-management-packs.aspx</id><published>2007-08-06T20:43:00Z</published><updated>2007-08-06T20:43:00Z</updated><content type="html">&lt;p&gt;Obviously, a great way to learn how to author a management pack&amp;nbsp;is to look at existing ones.&amp;nbsp; The problem is&amp;nbsp;that most of the interesting ones are sealed so you can't read the file, and the Operations Console won't allow you to export a&amp;nbsp;sealed management pack.&amp;nbsp; &lt;/p&gt; &lt;p&gt;This is actually very easy using Command Shell.&amp;nbsp;&amp;nbsp;You can export a single management pack or export the entire set of installed management packs from a management group.&amp;nbsp; This is my personal favorite as I like to have the entire set of management packs available for my reference.&lt;/p&gt; &lt;p&gt;Command Shell is an optional component of the Operations Manager User Interfaces, so it's probably something you already have installed.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Exporting a single management pack&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;To export a single management pack, use the following command:&lt;/p&gt; &lt;p align="center"&gt;get-managementPack -name &amp;lt;Name of MP&amp;gt; | export-managementPack&amp;nbsp;-path &amp;lt;Directory to store exported file&amp;gt;&lt;/p&gt; &lt;p&gt;For example, to export the SQL Library MP to a directory called c:\mp:&lt;/p&gt; &lt;p align="center"&gt;get-managementPack -name&amp;nbsp;Microsoft.SQLServer.Library | export-managementPack&amp;nbsp;-path c:\mp&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Exporting all management packs&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;It's actually easier to export all management packs since you don't have to specify the -name parameter on the get-managementPack CmdLet.&amp;nbsp; Just use the following, and you will fill c:\mp with the entire set of management packs installed in your management group.&lt;/p&gt; &lt;p align="center"&gt;get-managementPack | export-managementPack&amp;nbsp;-path c:\mp&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=1713115" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author><category term="MOM" scheme="http://blogs.technet.com/ati/archive/tags/MOM/default.aspx" /></entry><entry><title>Targeting Rules and Monitors</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2007/05/14/targeting-rules-and-monitors.aspx" /><id>http://blogs.technet.com/ati/archive/2007/05/14/targeting-rules-and-monitors.aspx</id><published>2007-05-14T17:40:00Z</published><updated>2007-05-14T17:40:00Z</updated><content type="html">&lt;P&gt;The concept of what target to use for a particular rule or monitor in OpsMgr 2007&amp;nbsp;seems to be one that people are struggling with.&amp;nbsp; The confusion is most prevelant among people who have had experience with MOM 2005 since the methods have completely in changed.&amp;nbsp; In MOM 2005, you would apply rule groups to computer groups.&amp;nbsp; If a computer was in the group, it would get the rule - it was that simple. In OpsMgr 2007, we do not use groups to target rules/monitors.&amp;nbsp; What adds to the confusion though is that groups are available in the list of targets when creating a rule/monitor in the console.&amp;nbsp; Let's see if I can explain this.&lt;/P&gt;
&lt;P&gt;The main conceptual difference between MOM 2005 and OpsMgr 2007 in this respect is that in MOM 2005 we thought about which computer we would retrieve a particular piece of information from, and we targeted rules at groups containing those computers.&amp;nbsp; We had to think about the individual agents and view the environment in terms of the physical computers being managed.&amp;nbsp; We had formulas for the groups to identify which computers held different components, but we were ultimately targeting groups of agents.&amp;nbsp; In OpsMgr 2007, we think about what component is generating the information.&amp;nbsp; That’s a distinctly different concept and ultimately more powerful.&amp;nbsp; OpsMgr will figure out which agents hold instances of that component, deliver the rule/monitor to the appropriate agents, and execute the rule/monitor for each instance.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;In 2007, we also work against multiple instances of a class on a particular agent.&amp;nbsp; In MOM 2005, we only had a single rule sent to the agent, and that rule had to do the enumeration.&amp;nbsp; A good example is SQL databases.&amp;nbsp; The SQL scripts in MOM 2005 were enormous because they had to enumerate the whole list of databases and other SQL objects every single time they executed.&amp;nbsp; In 2007, we just apply those rules to the SQL Database class, and OpsMgr executes the rule for each database instance discovered.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How does a rule get to an agent?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;For any particular rule/monitor, OpsMgr will enumerate all instances of the target class and apply the rule to each.&amp;nbsp; If there are no instances of the target class on a particular agent, then the rule will do nothing.&amp;nbsp; It's that simple.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;If I can't target groups, why are they listed when I select a target for a rule?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Groups are classes just like any other.&amp;nbsp; They’re singleton classes where the class and the instance are one and the same, but they are classes nonetheless which is why they show up in the list with all other classes.&amp;nbsp;&amp;nbsp; There are really very few circumstances where you will target a rule at a group though&lt;STRONG&gt;.&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What if I do target a group?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;You can apply a rule/monitor directly to a group, but it will execute against the group object&amp;nbsp;itself.&amp;nbsp; OpsMgr will not enumerate members of the group and apply the rule to each.&amp;nbsp;&amp;nbsp;Any rules targeted at groups will actually operate on the Root Management Server since&amp;nbsp;groups have no host and unhosted objects are&amp;nbsp;managed by the RMS.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How do I target some group of objects then?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;To the specific question of how to get a particular rule/monitor to a subset of components, you have two basic options.&amp;nbsp; Let’s say for example, you have a particular subset of web sites that you need a particular rule to apply.&amp;nbsp; You could target that rule at the IIS 2003 Web Site class for example, but that would apply the rule to all instances of that class.&amp;nbsp; It would probably apply to sites that you didn’t want.&lt;/P&gt;
&lt;P&gt;Option 1 would be to create a new class and target the rule at the class.&amp;nbsp; In the case of an IIS site, this would mean that you would need to go to the Authoring Console or raw XML and create a new class and discovery.&amp;nbsp; That’s a more advanced solution that most customers will do and probably overkill anyway.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Option 2 is the create a rule target at the whole class and disable it.&amp;nbsp; Create a group with the sites you want and create an override for that group to enable your rule.&amp;nbsp; This&amp;nbsp;might sound like a workaround, but&amp;nbsp;it's a completely valid solution.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How do I know&amp;nbsp;if I'm selecting the right target?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The easiest method to validate you are using a target that actually has instances is to use the Discovered Inventory view in the Operations Console prior to creating your rule/monitor.&amp;nbsp;In the Actions pane is an option called "Change target type..." that will bring up the same Select a Target Type dialog box that you see when you select the target for a rule/monitor.&amp;nbsp; This view will list all instances of the target class you select.&amp;nbsp; You can validate which agents have an instance of that class and how many instances&amp;nbsp;each has.&amp;nbsp; If there are no instances listed, then the rule isn't going to do anything.&amp;nbsp; If there are instances, then you not only be confident that the rule/monitor will&amp;nbsp;execute on the agent, but you&amp;nbsp;can also view the properties of the instance that will be accessible to any rules/monitors targeted at it.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=961366" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author><category term="MOM" scheme="http://blogs.technet.com/ati/archive/tags/MOM/default.aspx" /></entry><entry><title>WMI Events in OpsMgr 2007</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2007/04/07/wmi-events-in-opsmgr-2007.aspx" /><id>http://blogs.technet.com/ati/archive/2007/04/07/wmi-events-in-opsmgr-2007.aspx</id><published>2007-04-07T23:12:00Z</published><updated>2007-04-07T23:12:00Z</updated><content type="html">&lt;p&gt;I've already explained how to work with WMI events in MOM 2005 in&amp;nbsp;an article in &lt;a class="" href="http://www.microsoft.com/technet/technetmag/issues/2006/09/WMIEvents" mce_href="http://www.microsoft.com/technet/technetmag/issues/2006/09/WMIEvents"&gt;TechNet Magazine&lt;/a&gt;.&amp;nbsp; Most of the information in that article still applies since it covers the basics of how WMI events work and how to write a query to detect them.&amp;nbsp; What has changed significantly though is how to use them in Operations Manager.&amp;nbsp; I suppose a follow up article would be in order, but a simple blog post should be enough to give you the information you need.&lt;/p&gt; &lt;p&gt;First of all, WMI events in OpsMgr 2007 are used for exactly the same purpose as in MOM 2005.&amp;nbsp; The one big difference is that we no longer have WMI providers for OpsMgr objects to monitor for things like the modification of an alert.&amp;nbsp; We're working on such a different platform though, that those old scenarios don't really apply anymore anyway.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I'm going to speak completely in terms of the Operations Console since that's where most people work with Operations Manager - at least at this early stage of its life.&amp;nbsp; If you're more comfortable working directory with the XML of a management pack, then you'll know exactly what pieces of this information to pull out.&lt;/p&gt; &lt;p&gt;You can create a monitor or rule for a WMI event using the appropriate wizard in the Operations Console.&amp;nbsp; If I have to guide you to those or define the different between an rule and a monitor, then you probably want to start on some more basic monitoring before tackling this topic.&amp;nbsp; The namespace and query are going to be exactly the same as the ones you created in MOM 2005.&amp;nbsp; Again, check my TechNet article if you need some help there.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;WMI Event Filter Expressions&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;As discussed in my article, you can specify criteria in the WMI query itself, or you can write a general query and specify the criteria separately.&amp;nbsp; In MOM 2005, that meant specifying criteria in the rule.&amp;nbsp; In OpsMgr 2007, you need to provide a filter expression.&amp;nbsp; The question is how to build it.&lt;/p&gt; &lt;p&gt;The wizard for creating a WMI Event monitor/rule actually won't let you specify no criteria.&amp;nbsp; The Next button won't be active until you provide some entry.&amp;nbsp; If you have a query that doesn't need any filter (which is entirely reasonable), then just specify some bogus filter.&amp;nbsp; Once the monitor/rule is created, open up its properties and delete the filter.&amp;nbsp; It's entirely valid to have a monitor/rule with no filter - the wizard just doesn't let you do it.&lt;/p&gt; &lt;p&gt;If you are going to provide filter, the parameter name needs to be in following format:&lt;/p&gt; &lt;blockquote&gt; &lt;p mce_keep="true"&gt;Collection[@Name='TargetInstance']/Property[@Name=&amp;lt;property name&amp;gt;]&lt;/p&gt;&lt;/blockquote&gt; &lt;p mce_keep="true"&gt;&lt;strong&gt;Example - No Filter&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p mce_keep="true"&gt;We can show this with a simple example.&amp;nbsp; Let's fire the rule when Notepad starts.&amp;nbsp; One method would be to use the following criteria with no filter:&lt;/p&gt; &lt;blockquote&gt; &lt;p mce_keep="true"&gt;SELECT&amp;nbsp;*&amp;nbsp;FROM __InstanceCreationEvent WITHIN 30 WHERE TargetInstance ISA 'win32_process' AND TargetInstance.Name = 'notepad.exe'&lt;/p&gt;&lt;/blockquote&gt; &lt;p mce_keep="true"&gt;&lt;strong&gt;Example - Filter&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p mce_keep="true"&gt;The second option would be to use the following query:&lt;/p&gt; &lt;blockquote&gt; &lt;p mce_keep="true"&gt;SELECT&amp;nbsp;*&amp;nbsp;FROM __InstanceCreationEvent WITHIN 30 WHERE TargetInstance ISA 'win32_process' &lt;/p&gt;&lt;/blockquote&gt; &lt;p mce_keep="true"&gt;with the following filter:&lt;/p&gt; &lt;blockquote&gt;Parameter Name: Collection[@Name='TargetInstance']/Property[@Name='Name'] equals&lt;br&gt;Operator: Equals&lt;br&gt;Value: notepad.exe&lt;/blockquote&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=733962" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author><category term="MOM" scheme="http://blogs.technet.com/ati/archive/tags/MOM/default.aspx" /><category term="Scripting" scheme="http://blogs.technet.com/ati/archive/tags/Scripting/default.aspx" /><category term="WMI" scheme="http://blogs.technet.com/ati/archive/tags/WMI/default.aspx" /></entry><entry><title>I'm back</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2007/04/04/i-m-back.aspx" /><id>http://blogs.technet.com/ati/archive/2007/04/04/i-m-back.aspx</id><published>2007-04-05T09:46:00Z</published><updated>2007-04-05T09:46:00Z</updated><content type="html">I'ts been almost a year since I last posted something here, and I'm committed to correcting that.&amp;nbsp; Now that Operations Manager 2007 is available and I've spent countless hours with it over the last few months, it's time to start documenting some interesting scenarios.&amp;nbsp; I've been promising this to several people, and I have no excuses left.&amp;nbsp; I'll be getting a variety of custom monitoring examples out here shortly.&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=727706" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author></entry><entry><title>MMS Session Materials</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2006/04/28/426782.aspx" /><id>http://blogs.technet.com/ati/archive/2006/04/28/426782.aspx</id><published>2006-04-29T08:56:00Z</published><updated>2006-04-29T08:56:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Arial size=2&gt;Thanks to everyone who attended my MMS sessions this week.&amp;nbsp; Remember,all of the scripts and documents that I showed are on my public SharePoint site at &lt;A href="http://brianwren.members.winisp.net"&gt;http://brianwren.members.winisp.net&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=426782" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author></entry><entry><title>Blank Description in SQL Server 2005 Block Analysis script</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2006/04/08/424749.aspx" /><id>http://blogs.technet.com/ati/archive/2006/04/08/424749.aspx</id><published>2006-04-09T08:46:00Z</published><updated>2006-04-09T08:46:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Arial size=2&gt;I found that block analysis script&amp;nbsp;for SQL 2005 was generating an appropriate alert, but the description is blank.&amp;nbsp; That description is pretty important because it identifies the process blocking and being blocked.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;After some investigation, I found that there is a problem on the line of the script building the description - specifically where we include the time that the black has been occuring.&amp;nbsp; This is pulled from the waittime field of the sysprocesses table.&amp;nbsp; It turns out that this field was an Int in SQL 2000 but changed to a BigInt in SQL 2005.&amp;nbsp; The script uses a CInt to covert this value to an Integer which results in an overflow.&amp;nbsp; Since we run into an error building the description, it's left blank in the alert.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Fortunately, this is trivial fix - just a matter of swapping out that CInt.&amp;nbsp; I found that to get a correct calculation, I had to convert to a Double prior to performing the division required to convert the value from milliseconds into minutes.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;The offending line is 2240 by my count.&amp;nbsp; Just modify as follows:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face=Arial&gt;Original line&lt;/FONT&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New"&gt;""" has been blocked for " &amp;amp; CStr(CInt(rsBlockedSPIDS("waittime").Value / 1000 / 60)) &amp;amp; _&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;&lt;FONT color=#000000&gt;Changed Line&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New"&gt;""" has been blocked for " &amp;amp; CStr(CInt(CDbl(rsBlockedSPIDS("waittime").Value) / 1000 / 60)) &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=424749" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author><category term="MOM" scheme="http://blogs.technet.com/ati/archive/tags/MOM/default.aspx" /></entry><entry><title>"Generic Failure" problem with MOM WMI provider</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2006/03/28/423380.aspx" /><id>http://blogs.technet.com/ati/archive/2006/03/28/423380.aspx</id><published>2006-03-28T17:54:00Z</published><updated>2006-03-28T17:54:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Arial size=2&gt;Just ran across this one.&amp;nbsp; If you try to update a MOM object through the WMI provider, you may get the not so descriptive error message "Generic failure".&amp;nbsp; For example, the following script should work just fine to automatically resolve all open alerts.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Set objWMI = GetObject("winmgmts://./root/MOM")&lt;BR&gt;strQuery = "select * from MSFT_Alert where ResolutionState &amp;lt;&amp;gt; 255"&lt;BR&gt;Set colAlerts = objWMI.ExecQuery(strQuery)&lt;BR&gt;&amp;nbsp; &lt;BR&gt;For Each objAlert In colAlerts&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;objAlert.ResolutionState = 255&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;objAlert.Put_&lt;BR&gt;Next&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Chances are very good though that you're going to get&amp;nbsp;that "Generic failure"&amp;nbsp;error on the objAlert.Put_ command.&amp;nbsp; That's when you attempt to actually commit your changes to the database.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;It turns&amp;nbsp;out there&amp;nbsp;is a bit of&amp;nbsp;a quirk in the MOM WMI provider -&amp;nbsp;okay, let's call it a bug.&amp;nbsp; In any event, the workaround isn't too bad.&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;The problem is that the provider doesn't properly handle empty fields.&amp;nbsp; It can handle a Null, just not a field with an empty string.&amp;nbsp; A single empty field on an object - even one that has nothing to do with your script - will cause the error.&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;You can correct the problem by setting any empty fields to Null before issuing the Put_.&amp;nbsp; I went through the alert object and identified all fields that might be empty.&amp;nbsp; This results in the following code:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;If Len(Trim(objAlert.AlertHistoryComment)) = 0 Then objAlert.AlertHistoryComment = Null&lt;BR&gt;If Len(Trim(objAlert.CustomField1)) = 0 Then objAlert.CustomField1 = Null&lt;BR&gt;If Len(Trim(objAlert.CustomField2)) = 0 Then objAlert.CustomField2 = Null&lt;BR&gt;If Len(Trim(objAlert.CustomField3)) = 0 Then objAlert.CustomField3 = Null&lt;BR&gt;If Len(Trim(objAlert.CustomField4)) = 0 Then objAlert.CustomField4 = Null&lt;BR&gt;If Len(Trim(objAlert.CustomField5)) = 0 Then objAlert.CustomField5 = Null&lt;BR&gt;If Len(Trim(objAlert.Description)) = 0 Then objAlert.Description = Null&lt;BR&gt;If Len(Trim(objAlert.OwnerName)) = 0 Then objAlert.OwnerName = Null&lt;BR&gt;If Len(Trim(objAlert.ResolvedBy)) = 0 Then objAlert.ResolvedBy = Null&lt;BR&gt;If Len(Trim(objAlert.TimeResolved)) = 0 Then objAlert.TimeResolved = Null&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Put this into the Resolve All Alerts script above, and you get the following:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Set objWMI = GetObject("winmgmts://./root/MOM")&lt;BR&gt;strQuery = "select * from MSFT_Alert where ResolutionState &amp;lt;&amp;gt; 255"&lt;BR&gt;Set colAlerts = objWMI.ExecQuery(strQuery)&lt;BR&gt;&amp;nbsp; &lt;BR&gt;For Each objAlert In colAlerts&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;If Len(Trim(objAlert.AlertHistoryComment)) = 0 Then objAlert.AlertHistoryComment = Null&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;If Len(Trim(objAlert.CustomField1)) = 0 Then objAlert.CustomField1 = Null&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;If Len(Trim(objAlert.CustomField2)) = 0 Then objAlert.CustomField2 = Null&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;If Len(Trim(objAlert.CustomField3)) = 0 Then objAlert.CustomField3 = Null&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;If Len(Trim(objAlert.CustomField4)) = 0 Then objAlert.CustomField4 = Null&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;If Len(Trim(objAlert.CustomField5)) = 0 Then objAlert.CustomField5 = Null&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;If Len(Trim(objAlert.Description)) = 0 Then objAlert.Description = Null&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;If Len(Trim(objAlert.OwnerName)) = 0 Then objAlert.OwnerName = Null&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;If Len(Trim(objAlert.ResolvedBy)) = 0 Then objAlert.ResolvedBy = Null&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;If Len(Trim(objAlert.TimeResolved)) = 0 Then objAlert.TimeResolved = Null&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;objAlert.ResolutionState = 255&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;objAlert.Put_&lt;BR&gt;Next&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Certainly increases the size of the script, but it could be a lot worse.&amp;nbsp; You can just paste that little block of code into any script working with MOM alerts.&amp;nbsp; I'm not going to guarantee that I got all the fields that might be empty, but this worked for my environment.&amp;nbsp; Shouldn't be rocket science to figure out how to add another field.&amp;nbsp; Should also not be too tough to figure out how to set the fields for other MOM objects.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Oh, if you're not sure how to look at your objects through WMI in order to find the empty fields, just use WBEMTEST.&amp;nbsp; If you have no idea what that is, have a look at my paper on &lt;A href="http://brianwren.members.winisp.net/WMI/WMI%20Notifications%20in%20MOM.doc"&gt;WMI Notifications in MOM&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=423380" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author></entry><entry><title>Problem with SQL Server 2005 Long Running Agent Jobs script in MOM 2005</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2006/03/25/423134.aspx" /><id>http://blogs.technet.com/ati/archive/2006/03/25/423134.aspx</id><published>2006-03-25T19:01:00Z</published><updated>2006-03-25T19:01:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Arial size=2&gt;I found a problem in the latest version of&amp;nbsp;the SQL Server Management Pack (version 09.0.1399.0700) that I imagine many others have wrestled with as well.&amp;nbsp; Easy fix though, so I wanted to post it out here for everyone.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;The problem is with the script&amp;nbsp;SQL Server 2005 Long Running Agent Jobs.&amp;nbsp; If this script finds a long running job, you will most likely get an alert with a message similar to the following:&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;The SQL Server management pack script "SQL Server 2005 Long Running Agent Jobs" is unable to successfully connect to the SQL Server instance "MSSQLSERVER". The error message returned is "Invalid column name 'originating_server'."&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;If you're interested in the background, this script is based on the same script for SQL 2000, but one critical modification was missed in the conversion.&amp;nbsp; The script retrieves a list of running jobs from the sysjobs system table in msdb.&amp;nbsp; In SQL 2000, the name of the server is in the originating_server field, but in SQL 2005 this was changed to originating_server_id.&amp;nbsp; We need to join with sys.servers to retrieve the server name.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;The script can be fixed with a change to a single line.&amp;nbsp; According to my count, line 2265 should be the following:&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;strQuery = "select originating_server, name from sysjobs where job_id = " &amp;amp; strGUID&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;Replace this line with the following line that includes a new query.&amp;nbsp; &lt;FONT color=#000000&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;I shouldn't have to state the obvious, but make sure you backup the original script first.&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color=#0000ff&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New" size=2&gt;strQuery = "SELECT&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt; sys.servers.name as originating_server,sysjobs.name FROM sys.servers JOIN sysjobs ON sysjobs.originating_server_id = sys.servers.server_id WHERE sysjobs.job_id =&lt;FONT color=#000000&gt; " &amp;amp; strGUID&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000000&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;That should be the only change you need to make to get this script working properly.&amp;nbsp; I expect that we will see it fixed in the next revision of the management pack, but this quick fix should get you by until then.&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=423134" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author><category term="MOM" scheme="http://blogs.technet.com/ati/archive/tags/MOM/default.aspx" /></entry><entry><title>Reading AD Integrated DNS Records.</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2006/01/02/416753.aspx" /><id>http://blogs.technet.com/ati/archive/2006/01/02/416753.aspx</id><published>2006-01-02T18:35:00Z</published><updated>2006-01-02T18:35:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I recently had a requirement to read and change come permissions on DNS records in an AD Integrated zone.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I know I can use the MicrosoftDNS_AType WMI class to read the records, but this isn’t going to give me any access to permissions.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I figure that since the zone is AD Integrated, I can just use ADSI.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That is correct, but what I didn’t know is how to find the records.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You certainly won’t find them with the Users and Computers container, and ADSIEdit wasn’t showing them to me either.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;After a little investigation, it turns out that DNS records are stored in a partition of the directory that ADSIEdit doesn’t load by default.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Assuming the name of the zone is contoso.com, the path to the partition is as follows:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align=center&gt;&lt;SPAN lang=PT-BR style="mso-ansi-language: PT-BR"&gt;dc=contoso.com,cn=MicrosoftDns,dc=DomainDnsZones,dc=contoso,dc=com&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align=center&gt;&lt;SPAN lang=PT-BR style="mso-ansi-language: PT-BR"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;With that knowledge, you can enumerate the records with the following script (assuming you have a domain called contoso.com).&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;set objDNS = GetObject("LDAP://dc=contoso.com,cn=Microsoftdns,dc=DomainDnsZones,dc=contoso,dc=com")&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;For Each objRecord in objDNS&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;WScript.Echo objRecord.Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;Next&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Getting and settings AD permissions through script is a little tricky.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can get a great discussion of it in &lt;A href="http://www.microsoft.com/technet/scriptcenter/topics/security/exrights.mspx"&gt;this article in ScriptCenter&lt;/A&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;You can format your output however you like, but I always like to prep it for import into Excel or Access so I can do some analysis across the entire dataset.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;My personal favorite delimiter is the vertical bar (|) since it just doesn’t show up all that often in other data.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;To enumerate the DNS records with their trustees and associated rights, in a delimited format ready for import somewhere else, use the following script.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I know I’m just echoing to the screen, but either just direct the output to a file or setup and output file and change my wscript.echo’s to objFile.WriteLine’s.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;Set objDNS = GetObject("LDAP://dc=bwren.com,cn=Microsoftdns,dc=DomainDnsZones,dc=bwren,dc=com")&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;For Each objRecord in objDNS&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Set objSD = objRecord.Get("ntSecurityDescriptor")&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Set objACL = objSD.DiscretionaryACL&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;wscript.echo &lt;SPAN style="mso-tab-count: 1"&gt;&lt;/SPAN&gt;"Record|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;"Trustee|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;"AceFlags|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;"AceType|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;"Flags|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;"ObjectType|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;"InheritedObjectType|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;"AccessMask"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;For Each objACE in objACL&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;wscript.Echo &lt;SPAN style="mso-tab-count: 1"&gt;&lt;/SPAN&gt;objRecord.Get("dc") &amp;amp; "|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 6"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;objACE.Trustee &amp;amp; "|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 6"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;objACE.AceFlags &amp;amp; "|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 6"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;objACE.AceType &amp;amp; "|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 6"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;objACE.Flags &amp;amp; "|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 6"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;objACE.ObjectType &amp;amp; "|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 6"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;objACE.InheritedObjectType &amp;amp; "|" &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 6"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;objACE.AccessMask&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Next&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;Next&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;I'll have a script done shortly that works with the Access Mask in more detail.&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=416753" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author><category term="Scripting" scheme="http://blogs.technet.com/ati/archive/tags/Scripting/default.aspx" /><category term="ADSI" scheme="http://blogs.technet.com/ati/archive/tags/ADSI/default.aspx" /></entry><entry><title>WMI Notifications in MOM</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2005/12/21/416398.aspx" /><id>http://blogs.technet.com/ati/archive/2005/12/21/416398.aspx</id><published>2005-12-21T23:34:00Z</published><updated>2005-12-21T23:34:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Arial size=2&gt;Okay, I'm getting tired of answering this question but I have to admit that there is relatively little technical information out there on it.&amp;nbsp;&amp;nbsp;The most common&amp;nbsp;requests I get for MOM scripts are&amp;nbsp;for things like monitoring if a process is running, if a file gets created, if a registry key gets changed, etc.&amp;nbsp; Essentially, these are to monitor some action on the computer that we can't detect through standard MOM providers.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Most of the time,&amp;nbsp;monitoring these actions does not require a script.&amp;nbsp; They can be handled with a relatively simple WMI provider.&amp;nbsp;&amp;nbsp;This is far more efficient than script - easier to create, less overhead on the agent, and way more responsive.&amp;nbsp; Rather than running a script every few minutes to figure out if a process is running for example, I can have a WMI notification&amp;nbsp;tell me when the process terminates.&amp;nbsp; Rather then regularly checking if some file exists, I can have a WMI notification tell me when it gets created.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;I have a document that I wrote on this that includes an overview of WMI, methods for writing and testing WMI queries, and a bunch of examples.&amp;nbsp; &lt;A href="http://brianwren.members.winisp.net/WMI/Forms/AllItems.aspx"&gt;Have a look&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=416398" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author><category term="MOM" scheme="http://blogs.technet.com/ati/archive/tags/MOM/default.aspx" /><category term="WMI" scheme="http://blogs.technet.com/ati/archive/tags/WMI/default.aspx" /></entry><entry><title>Management Library</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2005/12/14/416067.aspx" /><id>http://blogs.technet.com/ati/archive/2005/12/14/416067.aspx</id><published>2005-12-14T20:22:00Z</published><updated>2005-12-14T20:22:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I got my new library of management stuff online.&amp;nbsp; It's a SharePoint site where I'll post any documents, scripts, management packs, etc that I reference in the blog.&amp;nbsp; Just a couple of items for now, but I'll be adding to it.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Verdana size=2&gt;&lt;A href="http://brianwren.members.winisp.net"&gt;http://brianwren.members.winisp.net&lt;/A&gt;&lt;/FONT&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=416067" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author></entry><entry><title>Mission of the Blog</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/ati/archive/2005/11/29/415253.aspx" /><id>http://blogs.technet.com/ati/archive/2005/11/29/415253.aspx</id><published>2005-11-29T17:45:00Z</published><updated>2005-11-29T17:45:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana&gt;Operation of a Windows environment too often focuses on nothing more than finite feature sets of packaged products. We implement tools like MOM and SMS to assist in the automation of tasks, but we limit them to activities that we can accomplish with nothing more than a point and click.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;This blog will focus on technologies supporting the automation of operations activities in Windows environments. Scripting and WMI are always&amp;nbsp; favorite topics in this arena, but we will also discuss emerging technologies like Monad. We'll discuss MOM and SMS, but we'll focus on extending their core functions. For example, rather than talking about a MOM architecture and agent deployment, we'll focus on scripting in MOM and solving complex monitoring challenges.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;The idea is to approach infrastructure with an app dev mindset.&amp;nbsp; Instead of constantly seeking out utilities and packaged applicators to fill the various requirements that emerge for our daily activities we want to invest our time in more flexible technologies that will allow us to quickly build functionality to fill those gaps. We don't care to become developers, but we do want to leverage some of their strategies.&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=415253" width="1" height="1"&gt;</content><author><name>Brian Wren</name><uri>http://blogs.technet.com/members/Brian+Wren.aspx</uri></author></entry></feed>