<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://wmug.co.uk/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>David Allen - Cloud &amp; Datacenter Management MVP : Authoring</title><link>http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Authoring/default.aspx</link><description>Tags: Authoring</description><dc:language>en-US</dc:language><generator>6.x Production</generator><item><title>VSAE – Go To Definition</title><link>http://wmug.co.uk/wmug/b/aquilaweb/archive/2013/01/23/vsae-go-to-definition.aspx</link><pubDate>Wed, 23 Jan 2013 14:02:28 GMT</pubDate><guid isPermaLink="false">10c3822e-6a55-4a1a-8d52-5181c69a645b:4554</guid><dc:creator>David Allen MVP</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://wmug.co.uk/wmug/b/aquilaweb/rsscomments.aspx?WeblogPostID=4554</wfw:commentRss><comments>http://wmug.co.uk/wmug/b/aquilaweb/archive/2013/01/23/vsae-go-to-definition.aspx#comments</comments><description>&lt;p&gt;For the past couple of months I have been using the Visual Studio Authoring Extensions quite extensively to build management packs for System Center, so I thought I would share some of what I have learnt, and I am starting with “Go To Definition”.&amp;nbsp; Now, for experienced users of Visual Studio this will be nothing new, but if you are starting with VS because of the Authoring Extensions, this is really helpful.&lt;/p&gt;&lt;p&gt;The Go To Definition command is a neat little command to take you straight to the definition of a module that you are using within a management pack.&amp;nbsp; To show the usefulness of this, here is a little example.&lt;/p&gt;&lt;p&gt;You start building a new MP in VS, and you start writing your registry discovery….&lt;/p&gt;&lt;p&gt;&lt;a href="http://wmug.co.uk/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-57-metablogapi/8585.image_5F00_38D749C4.png"&gt;&lt;img style="display:inline;background-image:none;" title="image" border="0" alt="image" src="http://wmug.co.uk/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-57-metablogapi/7802.image_5F00_thumb_5F00_1BEE24EF.png" width="644" height="162" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;You get to the point where you want to call the Microsoft.Windows.FilteredRegistryDiscoveryProvider to use as a discovery data source, but what configuration items need to be passed to this module?&amp;nbsp; &lt;/p&gt;&lt;p&gt;To find out, simply right click the TypeID, in this case “Windows&amp;quot;!Microsoft.Windows.FilteredRegistryDiscoveryProvider” and select Go To Definition.&amp;nbsp; This will open the referenced management pack in a new tab in VS and take you straight to that module, where you can view the configuration items required for the module (highlighted in yellow).&lt;/p&gt;&lt;p&gt;&lt;a href="http://wmug.co.uk/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-57-metablogapi/8585.SNAGHTML10593ea_5F00_3073746D.png"&gt;&lt;img style="display:inline;background-image:none;" title="SNAGHTML10593ea" border="0" alt="SNAGHTML10593ea" src="http://wmug.co.uk/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-57-metablogapi/0574.SNAGHTML10593ea_5F00_thumb_5F00_7A8E7F52.png" width="644" height="413" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I find this extremely useful and a great time saver, as not only does it take you to the correct line in the referenced MP, it also means you don’t have to worry about unsealing the referenced MP!&lt;/p&gt;&lt;p&gt;More (hopefully) helpful tips to come.&lt;/p&gt;&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://wmug.co.uk/aggbug.aspx?PostID=4554&amp;AppID=57&amp;AppType=1&amp;ContentType=0" width="1" height="1"&gt;</description><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Authoring/default.aspx">Authoring</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Authoring+Extensions/default.aspx">Authoring Extensions</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Management+Packs/default.aspx">Management Packs</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/MP+Authoring/default.aspx">MP Authoring</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/VSAE/default.aspx">VSAE</category></item><item><title>Passing Data Items to Recovery Actions</title><link>http://wmug.co.uk/wmug/b/aquilaweb/archive/2012/08/30/passing-data-items-to-recovery-actions.aspx</link><pubDate>Thu, 30 Aug 2012 14:12:00 GMT</pubDate><guid isPermaLink="false">10c3822e-6a55-4a1a-8d52-5181c69a645b:4478</guid><dc:creator>David Allen MVP</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://wmug.co.uk/wmug/b/aquilaweb/rsscomments.aspx?WeblogPostID=4478</wfw:commentRss><comments>http://wmug.co.uk/wmug/b/aquilaweb/archive/2012/08/30/passing-data-items-to-recovery-actions.aspx#comments</comments><description>&lt;p&gt;I was tasked the other day with creating a recovery action on a monitor, which in itself is not complicated, however I needed to use a data item from the monitor workflow in the recovery.&amp;nbsp; On searching, I found very little documentation about how to achieve this, but I did find a helpful example Diagnostic and Recovery MP from Brian Wren (as usual) here, &lt;a title="http://www.opsmanjam.com/default.aspx?RootFolder=%2fOpsManJam%20Library%2fManagement%20Packs&amp;amp;FolderCTID=&amp;amp;View=%7bB441DC0E%2d3F55%2d42C6%2d8C9E%2d0FA229F8DBDD%7d" href="http://www.opsmanjam.com/default.aspx?RootFolder=%2fOpsManJam%20Library%2fManagement%20Packs&amp;amp;FolderCTID=&amp;amp;View=%7bB441DC0E%2d3F55%2d42C6%2d8C9E%2d0FA229F8DBDD%7d"&gt;http://www.opsmanjam.com/default.aspx?RootFolder=%2fOpsManJam%20Library%2fManagement%20Packs&amp;amp;FolderCTID=&amp;amp;View=%7bB441DC0E%2d3F55%2d42C6%2d8C9E%2d0FA229F8DBDD%7d&lt;/a&gt;.&amp;nbsp; This example MP is great for showing how to run a diagnostic and then use the output of the diagnostic in the recovery action.&amp;nbsp; However, the requirement I had was run a recovery action directly, without a diagnostic, based on a data item returned from the workflow.&lt;/p&gt;
&lt;p&gt;After some investigation, I cracked it, and these are a couple of examples of the context parameters that can be used.&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; If the monitor returns a property bag, data from the property bag can be resolved using &amp;ldquo;$Data/StateChange/DataItem/Context/DataItem/Property[@Name=&amp;#39;ITEM&amp;#39;]$&amp;rdquo;.&amp;nbsp; (Replace ITEM with the name of the property bag value)&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp; If the monitor using a module where the data items are already mapped, the data can be resolved using something like this &amp;ldquo;$Data/StateChange/DataItem/Context/DataItem/EventDescription$&amp;rdquo;.&amp;nbsp; In this example, the monitor is using the EventProvider module to monitor to an event log, and the description of the event is being passed.&lt;/p&gt;
&lt;p&gt;So, now we have the correct context parameters, we can resolve the data items we need in a recovery action.&amp;nbsp; Here&amp;rsquo;s an example where I have a script monitor that it monitoring for an existence of a file, if the file doesn&amp;rsquo;t exist this will trigger an unhealthy state and the recovery action, which will output the file name, from the monitor, to the event log.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;UnitMonitor ID=&amp;quot;Recovery.Example.Monitor.ScriptTwoState&amp;quot; Accessibility=&amp;quot;Public&amp;quot; Enabled=&amp;quot;false&amp;quot; Target=&amp;quot;Windows!Microsoft.Windows.Computer&amp;quot; ParentMonitorID=&amp;quot;Health!System.Health.AvailabilityState&amp;quot; Remotable=&amp;quot;true&amp;quot; Priority=&amp;quot;Normal&amp;quot; TypeID=&amp;quot;Windows!Microsoft.Windows.TimedScript.TwoStateMonitorType&amp;quot; ConfirmDelivery=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Category&amp;gt;AvailabilityHealth&amp;lt;/Category&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AlertSettings AlertMessage=&amp;quot;Recovery.Example.Monitor.ScriptTwoState_AlertMessageResourceID&amp;quot;&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;AlertOnState&amp;gt;Error&amp;lt;/AlertOnState&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;AutoResolve&amp;gt;true&amp;lt;/AutoResolve&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;AlertPriority&amp;gt;Normal&amp;lt;/AlertPriority&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;AlertSeverity&amp;gt;Error&amp;lt;/AlertSeverity&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/AlertSettings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;OperationalStates&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;OperationalState ID=&amp;quot;Success&amp;quot; MonitorTypeStateID=&amp;quot;Success&amp;quot; HealthState=&amp;quot;Success&amp;quot; /&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;OperationalState ID=&amp;quot;Error&amp;quot; MonitorTypeStateID=&amp;quot;Error&amp;quot; HealthState=&amp;quot;Error&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/OperationalStates&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;nbsp;&amp;nbsp; &amp;lt;IntervalSeconds&amp;gt;301&amp;lt;/IntervalSeconds&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;SyncTime /&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;ScriptName&amp;gt;Example.vbs&amp;lt;/ScriptName&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;Arguments /&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;ScriptBody&amp;gt;&amp;lt;![CDATA[Option Explicit&lt;/p&gt;
&lt;p&gt;SetLocale(&amp;quot;en-us&amp;quot;)&lt;/p&gt;
&lt;p&gt;Dim oAPI, oBag&lt;br /&gt;Set oAPI = CreateObject(&amp;quot;MOM.ScriptAPI&amp;quot;)&lt;br /&gt;Set oBag = oAPI.CreatePropertyBag()&lt;/p&gt;
&lt;p&gt;Call oAPI.LogScriptEvent(&amp;quot;Example.vbs&amp;quot;,5555,4,&amp;quot;Script Started&amp;quot;)&lt;/p&gt;
&lt;p&gt;DIM oFso, strFile&lt;br /&gt;Set oFso = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)&lt;br /&gt;strFile = &amp;quot;C:\Temp\test.txt&amp;quot;&lt;/p&gt;
&lt;p&gt;If (oFso.FileExists(strFile)) Then&lt;/p&gt;
&lt;p&gt;Call oBag.AddValue(&amp;quot;Status&amp;quot;,&amp;quot;OK&amp;quot;)&lt;br /&gt;Else&lt;br /&gt;Call oBag.AddValue(&amp;quot;Status&amp;quot;,&amp;quot;BAD&amp;quot;)&lt;br /&gt;Call oBag.AddValue(&amp;quot;File&amp;quot;,strFile)&lt;br /&gt;End If&lt;/p&gt;
&lt;p&gt;Call oAPI.LogScriptEvent(&amp;quot;Example.vbs&amp;quot;,5555,4,&amp;quot;Script Finished&amp;quot;)&lt;/p&gt;
&lt;p&gt;Call oAPI.Return(oBag)&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;gt;&amp;lt;/ScriptBody&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;SecureInput /&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;TimeoutSeconds&amp;gt;60&amp;lt;/TimeoutSeconds&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;ErrorExpression&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;SimpleExpression&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;lt;ValueExpression&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;XPathQuery Type=&amp;quot;String&amp;quot;&amp;gt;Property[@Name=&amp;#39;Status&amp;#39;]&amp;lt;/XPathQuery&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;lt;/ValueExpression&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;lt;Operator&amp;gt;Equal&amp;lt;/Operator&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;lt;ValueExpression&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;Value Type=&amp;quot;String&amp;quot;&amp;gt;BAD&amp;lt;/Value&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;lt;/ValueExpression&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;/SimpleExpression&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;/ErrorExpression&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;SuccessExpression&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;SimpleExpression&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;lt;ValueExpression&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;XPathQuery Type=&amp;quot;String&amp;quot;&amp;gt;Property[@Name=&amp;#39;Status&amp;#39;]&amp;lt;/XPathQuery&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;lt;/ValueExpression&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;lt;Operator&amp;gt;Equal&amp;lt;/Operator&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;lt;ValueExpression&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;Value Type=&amp;quot;String&amp;quot;&amp;gt;OK&amp;lt;/Value&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;lt;/ValueExpression&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;/SimpleExpression&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;/SuccessExpression&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;lt;/UnitMonitor&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Monitors&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Recoveries&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Recovery ID=&amp;quot;Recovery.Example.Recovery&amp;quot; Accessibility=&amp;quot;Public&amp;quot; Enabled=&amp;quot;true&amp;quot; Target=&amp;quot;Windows!Microsoft.Windows.Computer&amp;quot; Monitor=&amp;quot;Recovery.Example.Monitor.ScriptTwoState&amp;quot; ResetMonitor=&amp;quot;false&amp;quot; ExecuteOnState=&amp;quot;Error&amp;quot; Remotable=&amp;quot;true&amp;quot; Timeout=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Category&amp;gt;Operations&amp;lt;/Category&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;WriteAction ID=&amp;quot;Script&amp;quot; TypeID=&amp;quot;Windows!Microsoft.Windows.ScriptWriteAction&amp;quot;&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;ScriptName&amp;gt;Recovery.vbs&amp;lt;/ScriptName&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;Arguments&amp;gt;$Data/StateChange/DataItem/Context/DataItem/Property[@Name=&amp;#39;File&amp;#39;]$&amp;lt;/Arguments&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;ScriptBody&amp;gt;&amp;lt;![CDATA[&lt;br /&gt;Option Explicit&lt;/p&gt;
&lt;p&gt;SetLocale(&amp;quot;en-us&amp;quot;)&lt;/p&gt;
&lt;p&gt;Dim oArgs, strFile&lt;br /&gt;Set oArgs = Wscript.Arguments&lt;br /&gt;strFile = oArgs(0)&lt;/p&gt;
&lt;p&gt;Dim oAPI&lt;br /&gt;Set oAPI = CreateObject(&amp;quot;MOM.ScriptAPI&amp;quot;)&lt;/p&gt;
&lt;p&gt;Call oAPI.LogScriptEvent(&amp;quot;Recovery.vbs&amp;quot;,5556,4,&amp;quot;File: &amp;quot; &amp;amp; strFile)&lt;/p&gt;
&lt;p&gt;]]&amp;gt;&amp;lt;/ScriptBody&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;TimeoutSeconds&amp;gt;300&amp;lt;/TimeoutSeconds&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/WriteAction&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Recovery&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Recoveries&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Note:&amp;nbsp; This is just an example for demonstration purposes, it is not a real production monitor.&lt;/p&gt;
&lt;p&gt;The full example MP is downloadable &lt;a href="http://wmug.co.uk/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-57/5228.Recovery.Example.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Hope that&amp;rsquo;s helpful and makes the use of recovery actions more appealing &lt;img style="border-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://wmug.co.uk/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-57-metablogapi/0576.wlEmoticon_2D00_smile_5F00_30E1E90A.png" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://wmug.co.uk/aggbug.aspx?PostID=4478&amp;AppID=57&amp;AppType=1&amp;ContentType=0" width="1" height="1"&gt;</description><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Authoring/default.aspx">Authoring</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Management+Packs/default.aspx">Management Packs</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/OpsMgr+2007/default.aspx">OpsMgr 2007</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/OpsMgr+2007+R2/default.aspx">OpsMgr 2007 R2</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/SCOM+2012/default.aspx">SCOM 2012</category></item><item><title>Windows Service Monitoring During Specific Hours</title><link>http://wmug.co.uk/wmug/b/aquilaweb/archive/2012/08/14/windows-service-monitoring-during-specific-hours.aspx</link><pubDate>Tue, 14 Aug 2012 08:08:08 GMT</pubDate><guid isPermaLink="false">10c3822e-6a55-4a1a-8d52-5181c69a645b:4459</guid><dc:creator>David Allen MVP</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://wmug.co.uk/wmug/b/aquilaweb/rsscomments.aspx?WeblogPostID=4459</wfw:commentRss><comments>http://wmug.co.uk/wmug/b/aquilaweb/archive/2012/08/14/windows-service-monitoring-during-specific-hours.aspx#comments</comments><description>&lt;p&gt;If you ever wanted to monitor Windows services, but only during business hours, then this is the post for you.&amp;nbsp; I have put together an example MP that contains a new monitor type that includes a Schedule Filter so you can specify when the monitor should or shouldn’t run.&amp;nbsp; The new monitor type is fundamentally the same as the monitor type for service monitoring that is included in the Microsoft.Windows.Library MP, but now has System.SchedulerFilter included.&lt;/p&gt;&lt;p&gt;Here is a breakdown of the modules used within the monitor type:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Microsoft.Windows.Win32ServiceInformationProvider&lt;/strong&gt; – This data source returns the state of a service.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;System.SchedulerFilter&lt;/strong&gt; – A condition detection where it is possible to specify the times in which the data should or should not be processed.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;System.ExpressionFilter&lt;/strong&gt; – This module is used twice, one to filter a service running condition, and one to filter a service not running condition.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;After the member modules are configured, the composition of the monitor type can be put together for the OK state (service running) and the BAD state (service not running).&lt;/p&gt;&lt;p&gt;&lt;a href="http://wmug.co.uk/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-57-metablogapi/0878.image_5F00_575DDEC9.png"&gt;&lt;img style="display:inline;background-image:none;" title="image" border="0" alt="image" src="http://wmug.co.uk/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-57-metablogapi/3531.image_5F00_thumb_5F00_3A74B9F4.png" width="573" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I have also included a monitor in the management pack that uses this new monitor type.&amp;nbsp; The configuration of the monitor is just the same as the configuration of the standard service monitors, but with the added parameters of Start, End and DaysOfWeekMask.&lt;/p&gt;&lt;p&gt;&lt;a href="http://wmug.co.uk/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-57-metablogapi/2626.image_5F00_671D73CD.png"&gt;&lt;img style="display:inline;background-image:none;" title="image" border="0" alt="image" src="http://wmug.co.uk/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-57-metablogapi/0474.image_5F00_thumb_5F00_5872C7E8.png" width="595" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The Start parameter allows you to specify at what time monitoring should start, and the End parameter allows you specify when the monitoring should end.&amp;nbsp; The DaysOfWeekMask is a number that controls which days the monitor will run.&amp;nbsp; For a list of all the possible values for the DaysOfWeekMask, use this TechNet article, &lt;a href="http://technet.microsoft.com/en-us/library/ee808920.aspx"&gt;http://technet.microsoft.com/en-us/library/ee808920.aspx&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;So that’s it, you can take my example MP and edit it to achieve the monitoring you are after.&amp;nbsp; You can also open up the MP in one of the authoring tools and change as required; as I mentioned above, the scheduler filter can be used not only to specify when data can be processed, but it may also be used to control when data should not be processed, and you can span multiple days if required.&lt;/p&gt;&lt;p&gt;Have fun!&lt;/p&gt;&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://wmug.co.uk/aggbug.aspx?PostID=4459&amp;AppID=57&amp;AppType=1&amp;ContentType=0" width="1" height="1"&gt;</description><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Authoring/default.aspx">Authoring</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/OpsMgr+2007+R2/default.aspx">OpsMgr 2007 R2</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/SCOM+2012/default.aspx">SCOM 2012</category></item><item><title>Making OpsMgr Dashboards More Dynamic…</title><link>http://wmug.co.uk/wmug/b/aquilaweb/archive/2012/08/09/making-opsmgr-dashboards-more-dynamic.aspx</link><pubDate>Thu, 09 Aug 2012 10:15:41 GMT</pubDate><guid isPermaLink="false">10c3822e-6a55-4a1a-8d52-5181c69a645b:4455</guid><dc:creator>David Allen MVP</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://wmug.co.uk/wmug/b/aquilaweb/rsscomments.aspx?WeblogPostID=4455</wfw:commentRss><comments>http://wmug.co.uk/wmug/b/aquilaweb/archive/2012/08/09/making-opsmgr-dashboards-more-dynamic.aspx#comments</comments><description>&lt;p&gt;Yesterday, Brian Wren at Microsoft released a sample widget for OpsMgr 2012 dashboards, which shows how you can make dashboards much more dynamic and displays some of the dashboard functionality I would have liked to have seen out of the box.&lt;/p&gt;
&lt;p&gt;The screenshot below displays the sample dashboard, and what you’ll notice is that the for performance widgets on the right are displaying data for the computers selected in the left widget.&amp;nbsp; This makes the dashboard so much more powerful and useful as I can now see 4 different performance metrics just by selecting the computer once.&amp;nbsp; And, then by selecting further computers, I can easily compare multiple performance metrics of multiple computers.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wmug.co.uk/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-57-metablogapi/3125.image_5F00_790DBE85.png"&gt;&lt;img style="border:0px currentcolor;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none;" title="image" border="0" alt="image" src="http://wmug.co.uk/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-57-metablogapi/7848.image_5F00_thumb_5F00_5C4423A3.png" width="644" height="384" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can download the sample from Brian’s blog post at &lt;a href="http://gallery.technet.microsoft.com/PerformanceMonitor-Sample-0714ddd0"&gt;http://gallery.technet.microsoft.com/PerformanceMonitor-Sample-0714ddd0&lt;/a&gt;.&amp;nbsp; Also on this webpage, Brian shares some information on how he collects the data to be displayed and defines the performance counters.&lt;/p&gt;
&lt;p&gt;By using this sample as a base, I’m hoping we’ll all start producing some really good, and very useful, dashboards!&lt;/p&gt;
&lt;p&gt;Enjoy.&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://wmug.co.uk/aggbug.aspx?PostID=4455&amp;AppID=57&amp;AppType=1&amp;ContentType=0" width="1" height="1"&gt;</description><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Authoring/default.aspx">Authoring</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Dashboards/default.aspx">Dashboards</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/SCOM+2012/default.aspx">SCOM 2012</category></item><item><title>Advanced Discoveries on Unix/Linux Computers</title><link>http://wmug.co.uk/wmug/b/aquilaweb/archive/2012/08/08/advanced-discoveries-on-unix-linux-computers.aspx</link><pubDate>Wed, 08 Aug 2012 18:26:00 GMT</pubDate><guid isPermaLink="false">10c3822e-6a55-4a1a-8d52-5181c69a645b:4453</guid><dc:creator>David Allen MVP</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://wmug.co.uk/wmug/b/aquilaweb/rsscomments.aspx?WeblogPostID=4453</wfw:commentRss><comments>http://wmug.co.uk/wmug/b/aquilaweb/archive/2012/08/08/advanced-discoveries-on-unix-linux-computers.aspx#comments</comments><description>&lt;p&gt;Recently, I had a requirement to discover a number of devices that existing on a Linux server, which got me thinking as previously I&amp;rsquo;ve only ever run a shell command that returns a status to determine whether an object is discovered or not.&amp;nbsp; In this scenario I needed to run a script to return all the devices that existed on it, and then discover an object for each device returned.&amp;nbsp; On Windows, this is pretty straightforward as you can just use a scripted discovery to discover multiple items, but on Unix/Linux computers we can&amp;rsquo;t quite do the same thing.&lt;/p&gt;
&lt;p&gt;When thinking about it a bit further though, I realised that I could almost do the same as a Windows discovery.&amp;nbsp; Because the all workflows for UNIX/Linux computers run on the management server managing the computer, and not on the agent, I can return the data I need using a script or command from the computer, and then pass that through to a Windows Script or PowerShell module where I can use a similar discovery script as I would for a Windows discovery.&lt;/p&gt;
&lt;p&gt;So here is a breakdown of the workflow for a custom discovery data source:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;System.Discovery.Scheduler &amp;ndash; &lt;/strong&gt;Scheduler data source to control the schedule of the discovery&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Microsoft.Unix.WSMan.Invoke.ProbeAction &amp;ndash; &lt;/strong&gt;A probe to run a Shell Command or script on the UNIX/Linux computer that returns the data required for the discovery.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System.ExpressionFilter&lt;/strong&gt; (Optional) &amp;ndash; An expression filter to check that no errors were returned from the previous probe.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Microsoft.Windows.ScriptDiscoveryProbe&lt;/strong&gt; &amp;ndash; A probe to run a VBS script where instances can be created based on the data inputted from the previous probe using property bags.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;Note:&amp;nbsp; If the command or script that needs running requires a privileged account, you could swap the Microsoft.Unix.WSMan.Invoke.ProbeAction probe with the Microsoft.Unix.WSMan.Invoke.Privileged.ProbeAction.&amp;nbsp; And, if you would rather use PowerShell than VBS, you could always use the Microsoft.Windows.PowerShellDiscoveryProbe instead of the Microsoft.Windows.ScriptDiscovery probe.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Once the data source is created, it is just a matter of creating a new discovery that utilises the data source and specifying the relevant details, and presto, you will start discovering!&lt;/p&gt;
&lt;p&gt;To get a good idea on building a discovery data source for Unix/Linux computers using the 2007 R2 Authoring Console, I highly recommend reading a series on extending Unix/Linux monitoring by Kris Bash.&amp;nbsp; Part 1 of the series is viewable here, &lt;a href="http://operatingquadrant.com/2011/03/23/operations-manager-extending-unixlinux-monitoring-with-mp-authoring-part-i/"&gt;http://operatingquadrant.com/2011/03/23/operations-manager-extending-unixlinux-monitoring-with-mp-authoring-part-i/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, with the information from the blog above, and what we know about discoveries with VBS or PowerShell, we can can hook everything together to discover multiple items on a Unix/Linux Computer.&lt;/p&gt;
&lt;p&gt;Below I have provided an example management pack for you, so you can see how everything works.&amp;nbsp; I have used a basic script to simply return the devices on a Linux server using &amp;lsquo;iostat&amp;rsquo;, and then create an object representing each device.&amp;nbsp; I know the default monitoring MP&amp;rsquo;s already discover this, I am just using it as an example.&amp;nbsp; The management pack also contains the script that gets run on the UNIX/Linux computer, it is not executing a script that is already on the computer, so this MP will work as an example if you would like to know how to embed the script and use the ExecuteScript method of the Microsoft.Unix.WSMan.Invoke.ProbeAction probe.&lt;/p&gt;
&lt;p&gt;Management pack:&amp;nbsp; &lt;a href="http://wmug.co.uk/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-57/0844.ExampleMP.xml"&gt;ExampleMP.xml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hope this proves useful, and enjoy!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://wmug.co.uk/aggbug.aspx?PostID=4453&amp;AppID=57&amp;AppType=1&amp;ContentType=0" width="1" height="1"&gt;</description><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Authoring/default.aspx">Authoring</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Management+Packs/default.aspx">Management Packs</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/X_2D00_Plat/default.aspx">X-Plat</category></item><item><title>OpsMgr 2012 Authoring - The Wait Is Over...</title><link>http://wmug.co.uk/wmug/b/aquilaweb/archive/2012/06/29/opsmgr-2012-authoring-the-wait-is-over.aspx</link><pubDate>Fri, 29 Jun 2012 13:12:49 GMT</pubDate><guid isPermaLink="false">10c3822e-6a55-4a1a-8d52-5181c69a645b:4427</guid><dc:creator>David Allen MVP</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://wmug.co.uk/wmug/b/aquilaweb/rsscomments.aspx?WeblogPostID=4427</wfw:commentRss><comments>http://wmug.co.uk/wmug/b/aquilaweb/archive/2012/06/29/opsmgr-2012-authoring-the-wait-is-over.aspx#comments</comments><description>&lt;p&gt;The wait for the new System Center 2012 - Operations Manager authoring tools is over!!! &amp;nbsp;Brian Wren has announced on his blog that both the Visio Management Pack Designer and Visual Studio Authoring Extensions are available now from the Microsoft Download Center.&lt;/p&gt;
&lt;p&gt;Visio Management Pack Designer download: &amp;nbsp;&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=30170"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=30170&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Visual Studio Authoring Extensions: &amp;nbsp;&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=30169"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=30169&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Brian&amp;#39;s blog post: &amp;nbsp;&lt;a href="http://blogs.technet.com/b/mpauthor/archive/2012/06/28/the-new-authoring-tools-are-here.aspx"&gt;http://blogs.technet.com/b/mpauthor/archive/2012/06/28/the-new-authoring-tools-are-here.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Happy authoring everyone :-)&lt;/p&gt;
&lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://wmug.co.uk/aggbug.aspx?PostID=4427&amp;AppID=57&amp;AppType=1&amp;ContentType=0" width="1" height="1"&gt;</description><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Authoring/default.aspx">Authoring</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/SCOM+2012/default.aspx">SCOM 2012</category></item><item><title>Logical Disk Extension Management Pack</title><link>http://wmug.co.uk/wmug/b/aquilaweb/archive/2010/04/15/logical-disk-extension-management-pack.aspx</link><pubDate>Thu, 15 Apr 2010 19:00:00 GMT</pubDate><guid isPermaLink="false">10c3822e-6a55-4a1a-8d52-5181c69a645b:2842</guid><dc:creator>David Allen MVP</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://wmug.co.uk/wmug/b/aquilaweb/rsscomments.aspx?WeblogPostID=2842</wfw:commentRss><comments>http://wmug.co.uk/wmug/b/aquilaweb/archive/2010/04/15/logical-disk-extension-management-pack.aspx#comments</comments><description>&lt;p&gt;Recently, I had the need to run a logical disk free space report and knowing that this isn’t provided out of the box I created a report and put it into a new management pack.&amp;#160; I was then approached about collecting fragmentation data on each drive as well and this got me thinking, why don’t I create an MP that extends the standard management of logical disks.&amp;#160; So, I created it !&lt;/p&gt;  &lt;p&gt;This management pack collects 21 different statistics on each managed logical drive.&amp;#160; These counters are…&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Average File Size &lt;/li&gt;    &lt;li&gt;Average Fragments per File &lt;/li&gt;    &lt;li&gt;Cluster Size &lt;/li&gt;    &lt;li&gt;Excess Folder Fragments &lt;/li&gt;    &lt;li&gt;File Percent Fragmentation &lt;/li&gt;    &lt;li&gt;Fragmented Folders &lt;/li&gt;    &lt;li&gt;Free Space &lt;/li&gt;    &lt;li&gt;Free Space Percent &lt;/li&gt;    &lt;li&gt;Free Space Percent Fragmentation &lt;/li&gt;    &lt;li&gt;MFT Percent in Use &lt;/li&gt;    &lt;li&gt;MFT Record Count &lt;/li&gt;    &lt;li&gt;Total Excess Fragments &lt;/li&gt;    &lt;li&gt;Total Files &lt;/li&gt;    &lt;li&gt;Total Folders &lt;/li&gt;    &lt;li&gt;Total Fragmented Files &lt;/li&gt;    &lt;li&gt;Total MFT Fragments &lt;/li&gt;    &lt;li&gt;Total MFT Size &lt;/li&gt;    &lt;li&gt;Total Page File Fragments &lt;/li&gt;    &lt;li&gt;Total Percent Fragmentation &lt;/li&gt;    &lt;li&gt;Used Space &lt;/li&gt;    &lt;li&gt;Volume Size &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Collecting this many counters created its own challenge as I didn’t want to have to run a script multiple times to collect each counter or run it for each drive.&amp;#160; To combat this challenge I wrote a data source that all the collection rules use.&amp;#160; This data source contains a VBS script that will only run once per server at the scheduled time and collect all 21 pieces of data for each and every logical drive on that server.&amp;#160; Writing a data source and rules like this means that cookdown does not get broken and is the most efficient way of collecting and monitoring data.&lt;/p&gt;  &lt;p&gt;This management pack also contains a “Free Space” report and a “Top 10 fragmented logical drives” report as well as performance, state and dashboard views for you to consume all the collected data.&amp;#160; And, there is also a task to analyze whether a logical drive requires defragmentation or not.&lt;/p&gt;  &lt;p&gt;Click the following link if you want to download the MP or review the guide for more information, &lt;a href="http://www.systemcentercentral.com/tabid/145/IndexId/64216/Default.aspx"&gt;http://www.systemcentercentral.com/tabid/145/IndexId/64216/Default.aspx&lt;/a&gt;.&amp;#160; The download will include a sealed copy of the MP, an unsealed copy of the MP and the MP guide.&lt;/p&gt;  &lt;p&gt;I hope you find it useful and please let me have and feedback, good or bad, that you may have :-)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://wmug.co.uk/aggbug.aspx?PostID=2842&amp;AppID=57&amp;AppType=1&amp;ContentType=0" width="1" height="1"&gt;</description><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Authoring/default.aspx">Authoring</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Management+Packs/default.aspx">Management Packs</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/OpsMgr+2007/default.aspx">OpsMgr 2007</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/OpsMgr+2007+R2/default.aspx">OpsMgr 2007 R2</category></item><item><title>View DPM Protection Groups in Operations Manager</title><link>http://wmug.co.uk/wmug/b/aquilaweb/archive/2010/02/02/view-dpm-protection-groups-in-operations-manager.aspx</link><pubDate>Tue, 02 Feb 2010 15:05:00 GMT</pubDate><guid isPermaLink="false">10c3822e-6a55-4a1a-8d52-5181c69a645b:2640</guid><dc:creator>David Allen MVP</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://wmug.co.uk/wmug/b/aquilaweb/rsscomments.aspx?WeblogPostID=2640</wfw:commentRss><comments>http://wmug.co.uk/wmug/b/aquilaweb/archive/2010/02/02/view-dpm-protection-groups-in-operations-manager.aspx#comments</comments><description>&lt;p&gt;Ever wanted a centralised list of all your protection groups across all of your DPM servers? Well this guide I wrote explains how you can do just that in Operations Manager.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.scdpmonline.org/view-dpm-protection-groups-in-operations-manager.aspx"&gt;http://www.scdpmonline.org/view-dpm-protection-groups-in-operations-manager.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;
&lt;div&gt;
&lt;table cellspacing="0" cellpadding="2"&gt;

&lt;tr&gt;
&lt;td&gt;&lt;a href="https://mvp.support.microsoft.com/profile/David.Allen"&gt;&lt;img border="0" alt="MVP" src="http://www.scdpmonline.org/Data/Sites/1/logos/mvpcolourvertical.jpg" width="86" height="135" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;David Allen&lt;/strong&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;MVP System Center Operations Manager&lt;/strong&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="mailto:davidallengb@gmail.com?subject=SCDPMOnline%20-%20"&gt;&lt;img border="0" alt="Email David Allen at SCDPMOnline" src="http://www.scdpmonline.org/Data/Sites/1/templateimages/emailenvelopeicon.png" width="40" height="41" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.facebook.com/DavidAllenGB"&gt;&lt;img border="0" alt="Follow David on Facebook" src="http://www.scdpmonline.org/Data/Sites/1/templateimages/facebookicon.png" width="40" height="40" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://uk.linkedin.com/in/aquilaweb"&gt;&lt;img border="0" alt="David Allen on LinkedIn" src="http://www.scdpmonline.org/Data/Sites/1/templateimages/linkedinicon.png" width="40" height="40" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://feeds.feedburner.com/scdpmonline"&gt;&lt;img border="0" alt="RSS SCDPMOnline Articles" src="http://www.scdpmonline.org/Data/Sites/1/templateimages/rssicon.png" width="40" height="40" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.twitter.com/aquilaweb"&gt;&lt;img border="0" alt="Follow David on Twitter" src="http://www.scdpmonline.org/Data/Sites/1/templateimages/twittericon.png" width="40" height="40" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://profiles.us.playstation.com/playstation/psn/visit/profiles/Aquilagb"&gt;&lt;img border="0" alt="PlayStation Network" src="http://www.scdpmonline.org/Data/Sites/1/templateimages/psn-logo.png" width="40" height="39" /&gt;&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="http://www.scdpmonline.org/"&gt;http://www.scdpmonline.org&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="http://wmug.co.uk/blogs/aquilaweb"&gt;http://wmug.co.uk/blogs/aquilaweb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;
&lt;/div&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://wmug.co.uk/aggbug.aspx?PostID=2640&amp;AppID=57&amp;AppType=1&amp;ContentType=0" width="1" height="1"&gt;</description><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Authoring/default.aspx">Authoring</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/DPM/default.aspx">DPM</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Management+Packs/default.aspx">Management Packs</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/OpsMgr+2007+R2/default.aspx">OpsMgr 2007 R2</category></item><item><title>OpsMgr MP Authoring Survey</title><link>http://wmug.co.uk/wmug/b/aquilaweb/archive/2010/01/19/opsmgr-mp-authoring-survey.aspx</link><pubDate>Tue, 19 Jan 2010 11:25:00 GMT</pubDate><guid isPermaLink="false">10c3822e-6a55-4a1a-8d52-5181c69a645b:2622</guid><dc:creator>David Allen MVP</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://wmug.co.uk/wmug/b/aquilaweb/rsscomments.aspx?WeblogPostID=2622</wfw:commentRss><comments>http://wmug.co.uk/wmug/b/aquilaweb/archive/2010/01/19/opsmgr-mp-authoring-survey.aspx#comments</comments><description>&lt;p&gt;Do you want your voice to be heard and directly influence improvements and changes in MP Authoring?&amp;nbsp; Well if you do, complete the MP Authoring Survey now !&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.surveymonkey.com/s/mpauthoring" title="http://www.surveymonkey.com/s/mpauthoring"&gt;http://www.surveymonkey.com/s/mpauthoring&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It will only take 10 short minutes of your time.&lt;/p&gt;
&lt;p&gt;Thank you.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table cellpadding="2" cellspacing="0"&gt;

&lt;tr&gt;
&lt;td&gt;&lt;a href="https://mvp.support.microsoft.com/profile/David.Allen"&gt;&lt;img height="135" width="86" src="http://www.scdpmonline.org/Data/Sites/1/logos/mvpcolourvertical.jpg" alt="MVP" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;David Allen&lt;/strong&gt;           &lt;br /&gt;&lt;strong&gt;MVP System Center Operations Manager&lt;/strong&gt;           &lt;br /&gt;          &lt;br /&gt;&lt;strong&gt;&lt;a href="mailto:davidallengb@gmail.com?subject=SCDPMOnline%20-%20"&gt;&lt;img height="41" width="40" src="http://www.scdpmonline.org/Data/Sites/1/templateimages/emailenvelopeicon.png" alt="Email David Allen at SCDPMOnline" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.facebook.com/DavidAllenGB"&gt;&lt;img height="40" width="40" src="http://www.scdpmonline.org/Data/Sites/1/templateimages/facebookicon.png" alt="Follow David on Facebook" border="0" /&gt;&lt;/a&gt; &lt;a href="http://uk.linkedin.com/in/aquilaweb"&gt;&lt;img height="40" width="40" src="http://www.scdpmonline.org/Data/Sites/1/templateimages/linkedinicon.png" alt="David Allen on LinkedIn" border="0" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/scdpmonline"&gt;&lt;img height="40" width="40" src="http://www.scdpmonline.org/Data/Sites/1/templateimages/rssicon.png" alt="RSS SCDPMOnline Articles" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.twitter.com/aquilaweb"&gt;&lt;img height="40" width="40" src="http://www.scdpmonline.org/Data/Sites/1/templateimages/twittericon.png" alt="Follow David on Twitter" border="0" /&gt;&lt;/a&gt; &lt;a href="http://profiles.us.playstation.com/playstation/psn/visit/profiles/Aquilagb"&gt;&lt;img height="39" width="40" src="http://www.scdpmonline.org/Data/Sites/1/templateimages/psn-logo.png" alt="PlayStation Network" border="0" /&gt;&lt;/a&gt;&lt;/strong&gt; &lt;br /&gt;&lt;a href="http://www.scdpmonline.org"&gt;http://www.scdpmonline.org&lt;/a&gt;           &lt;br /&gt;&lt;a href="http://wmug.co.uk/blogs/aquilaweb"&gt;http://wmug.co.uk/blogs/aquilaweb&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://wmug.co.uk/aggbug.aspx?PostID=2622&amp;AppID=57&amp;AppType=1&amp;ContentType=0" width="1" height="1"&gt;</description><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Authoring/default.aspx">Authoring</category><category domain="http://wmug.co.uk/wmug/b/aquilaweb/archive/tags/Management+Packs/default.aspx">Management Packs</category></item></channel></rss>