Stefan Stranger's Lifestream - tagged with mp-authoring http://www.stranger.nl/feed en-us http://blogs.law.harvard.edu/tech/rss Sweetcron stefan@stranger.nl Reblog: Management Pack Authoring Survey http://www.stranger.nl/items/view/6144

Source: MOM Team The Operations Manager product group is looking for feedback on how you author custom Management Packs for System Center Operations Manager 2007, as well as areas where we can improve. Please take this survey to help guide future authoring investments. The survey is anonymous and should take about 10 minutes to fill out. Go to the MOM Team blog and fill in the survey please.

]]>
Thu, 18 Mar 2010 21:47:00 +0100 http://www.stranger.nl/items/view/6144
MP Authoring: Extending a class attribute from a file http://www.stranger.nl/items/view/6138

Sources: Steve Rachui’s Manageability blog – ConfigMgr/OpsMgr and                Savision Live Maps Blog Is this a coincidence or what? I’ve been asked to take a look at some new blog articles from Savision about adding a ‘location’ attribute to the Windows Server class. And you can now read their first blog article How-To: Import Computer Location Information Into OpsMgr (Part 1-3) in a series of three. Savision explains how this can be achieved in three steps: Create a management pack that adds a ‘location’ attribute to the Windows Server class Write a connector that reads asset information from a CSV file and updates OpsMgr Configure Live Maps to create dynamic location aware maps Steve Rachui also extends in his blog article the class attributes from a flat file. But he uses a discovery vbscript to read the flat file instead of the connector being used/explained (in later blog posts) by Savision. It’s up to you what you choose to use. Have fun extending class attributes!

]]>
Tue, 16 Mar 2010 21:19:00 +0100 http://www.stranger.nl/items/view/6138
Anybody wants to test my OpsMgr MP Authoring PowerGUI PowerPack? http://www.stranger.nl/items/view/6134

I just created my first PowerGUI PowerPack which you can use together with the MP Authoring Console. Just like I blogged previously in my MP Authoring Helper PowerShell script here. Here a teaser screenshot of the PowerGUI PowerPack.   It’s just a first version I created and I would like to have it tested a little more before posting it on the PowerGUI PowerPack library. So if anybody is creating MP’s using the MP Authoring Console and wants to try to use the MP Authoring PowerPack within PowerGUI to help creating MP’s let me know via Twitter via a DM or use the contact form on my weblog and I’ll email my PowerPack for testing.

]]>
Mon, 15 Mar 2010 21:24:00 +0100 http://www.stranger.nl/items/view/6134
MP Authoring Helper http://www.stranger.nl/items/view/6110

This week I’m having an internal MP Authoring Workshop from Brian Wren and I learned that it’s sometimes handy to have information available that’s not available when having the MP Authoring tool open. You can not switch to the Service Model when you have an other windows open. That’s why I created a PowerShell script that let’s you easily have a look at all the Classes, Discoveries, Relationships and Modules you already created in your Management Pack (if you have saved it). Just copy the script and save it to “MPAuthoringHelper_v1.003.ps1” ############################################################################### # Getting Classes from MP XML file and exporting it to csv for use in the # MP Authoring tool # Authors: Stefan Stranger # v1.001 - 27/01/2010 - sstranger - initial sstranger's release # v1.002 - 11/03/2010 - sstranger - added GetRelationshipTypes Function and changed GetClasTypes Function #                               - added GetDiscoveries Function # v1.003 - 11/03/2010 - sstranger - added GetModules Function ############################################################################### param ([string]$Path = $(read-host "Please enter MP XML path and file name")) $Path = "c:\TEMP\MPAuthoringWS\day4\StoreApp.stefstr.xml" #$Path = "C:\Users\stefstr\Documents\Customers\Rabobank\MPDumps\Microsoft.SQLServer.2008.Monitoring.xml" #$Path = "C:\Users\stefstr\Documents\Customers\Rabobank\MPDumps\Microsoft.Exchange.Server.2003.Monitoring.xml" #Globals $global:XmlMPFileDocument = new-object System.Xml.XmlDocument # Get MP XML file. # Make sure you saved your MP file to XML regularly. $XmlMPFileDocument.Load($Path) ############################################################################################## #Function GetClassTypes # #Get Class Types from MP XML file ############################################################################################# Function GetClassTypes {      $MyClassTypes = $XmlMPFileDocument.ManagementPack.TypeDefinitions.EntityTypes.ClassTypes.ClassType     $MyClassTypes | select @{n='Class Name';e='ID'},@{n='Base Class';e='Base'}, Abstract, Singleton } ############################################################################################## #Function GetRelationshipTypes # #Get RelationShip Types from MP XML file ############################################################################################# Function GetRelationshipTypes {     $myRelationshipTypes = $XmlMPFileDocument.ManagementPack.TypeDefinitions.EntityTypes.RelationshipTypes.RelationshipType     $myRelationshipTypes | select @{n='Name';e='ID'},@{n='Base Class';e='Base'}, Abstract, Source, Target } ############################################################################################## #Function GetDiscoveries # #Get Discoveries from MP XML file ############################################################################################# Function GetDiscoveries {      $myDiscoveries = @()     foreach ($Discovery in $XmlMPFileDocument.ManagementPack.Monitoring.Discoveries.Discovery)     {         $obj = new-object System.Management.Automation.PSObject         $obj = $obj | add-member -membertype NoteProperty -name "Name" -value $Discovery.ID -passthru         $obj = $obj | add-member -membertype NoteProperty -name "Target" -value $Discovery.Target -passthru         $obj = $obj | add-member -membertype NoteProperty -name "Discovery Class" -value $Discovery.DiscoveryTypes.DiscoveryClass.TypeID -passthru         $obj = $obj | add-member -membertype NoteProperty -name "DS TypeID" -value $Discovery.DataSource.TypeID -passthru         $myDiscoveries = $myDiscoveries + $obj     }     $myDiscoveries } ############################################################################################## #Function GetModules # #Get Modules from MP XML file ############################################################################################# Function GetModules {     $myModules = @()     if ($XmlMPFileDocument.ManagementPack.TypeDefinitions.ModuleTypes.ProbeActionModuleType)     {         foreach ($ProbeModule in $XmlMPFileDocument.ManagementPack.TypeDefinitions.ModuleTypes.ProbeActionModuleType)         {             $obj = new-object System.Management.Automation.PSObject             $obj = $obj | add-member -membertype NoteProperty -name "Module Type" -value "Probe" -passthru             $obj = $obj | add-member -membertype NoteProperty -name "Name" -value $ProbeModule.ID -passthru             $obj = $obj | add-member -membertype NoteProperty -name "Type ID" -value $ProbeModule.ModuleImplementation.Composite.MemberModules.ProbeAction.TypeID -passthru             $myModules = $myModules + $obj         }     }     if ($XmlMPFileDocument.ManagementPack.TypeDefinitions.ModuleTypes.DataSourceModuleType)     {         foreach ($DSModule in $XmlMPFileDocument.ManagementPack.TypeDefinitions.ModuleTypes.DataSourceModuleType)         {             $obj = new-object System.Management.Automation.PSObject             $obj = $obj | add-member -membertype NoteProperty -name "Module Type" -value "Data Source" -passthru             $obj = $obj | add-member -membertype NoteProperty -name "Name" -value $DSModule.ID -passthru             $obj = $obj | add-member -membertype NoteProperty -name "Type ID" -value $DSModule.ModuleImplementation.Composite.MemberModules.DataSource.TypeID -passthru             $myModules = $myModules + $obj         }     }     if ($XmlMPFileDocument.ManagementPack.TypeDefinitions.ModuleTypes.WriteActionModuleType)     {            foreach ($WAModule in $XmlMPFileDocument.ManagementPack.TypeDefinitions.ModuleTypes.WriteActionModuleType)         {             $obj = new-object System.Management.Automation.PSObject             $obj = $obj | add-member -membertype NoteProperty -name "Module Type" -value "Write Action" -passthru             $obj = $obj | add-member -membertype NoteProperty -name "Name" -value $WAModule.ID -passthru             $obj = $obj | add-member -membertype NoteProperty -name "Type ID" -value $WAModule.ModuleImplementation.Composite.MemberModules.WriteAction.TypeID -passthru             $myModules = $myModules + $obj         }     }     if ($XmlMPFileDocument.ManagementPack.TypeDefinitions.ModuleTypes.ConditionDetectionModuleType)     {            foreach ($ConditionModule in $XmlMPFileDocument.ManagementPack.TypeDefinitions.ModuleTypes.ConditionDetectionModuleType)         {             $obj = new-object System.Management.Automation.PSObject             $obj = $obj | add-member -membertype NoteProperty -name "Module Type" -value "Condition Dectection" -passthru             $obj = $obj | add-member -membertype NoteProperty -name "Name" -value $ConditionModule.ID -passthru             $obj = $obj | add-member -membertype NoteProperty -name "Type ID" -value "See XML for more info" -passthru             $myModules = $myModules + $obj         }     }     $myModules } #Call Functions GetClassTypes | Out-GridView GetRelationshipTypes | Out-GridView GetDiscoveries | Out-GridView GetModules | Out-GridView It only needs one parameter and that’s the path and filename of the MP xml file you are creating. Remember to save your MP xml file regularly. Have fun creating new MP’s!

]]>
Thu, 11 Mar 2010 19:18:00 +0100 http://www.stranger.nl/items/view/6110
Online documentation on Authoring in Operations Manager 2007 R2 http://www.stranger.nl/items/view/4635

Now the System Center Operations Manager 2007 R2 Authoring Resource Kit has been released you may want to know more about Authoring in OpsMgr 2007 R2. Did you know you can find all that info on Microsoft TechNet? Check them out!

]]>
Thu, 22 Oct 2009 10:49:00 +0200 http://www.stranger.nl/items/view/4635
Adding Report Details to your Custom OpsMgr Report http://www.stranger.nl/items/view/4543

So you finally created that super cool custom report in OpsMgr and you want to add all the info necessary to run the report correctly. But how do you do that? If you use the MP Authoring Tool you have the option to add a Description. If you open the MP xml file you can see the above Description is added to the DisplayStrings section of the MP. This is the Result: To do more advanced stuff you need to add a KnowledgeArticles section to your XML.   So if you add the next section to the KnowledgeArticles Section: <KnowledgeArticle ElementID="My.Custom.Reporting.Report" Visible="true">           <MamlContent>             <maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">               <maml:title>Summary</maml:title>               <maml:para>                 <maml:ui>How does this report work?</maml:ui>               </maml:para>               <maml:para>This report shows the next items:</maml:para>               <maml:list>                 <maml:listItem>                   <maml:para>Item 1</maml:para>                 </maml:listItem>               </maml:list>               <maml:para />               <maml:para>The report finds data if the objects supplied are of type</maml:para>               <maml:para>Exampe type</maml:para>               <maml:para>Search for objects on blabla</maml:para>               <maml:para />               <maml:para>The report displays for every selected object a separate chart. Data is aggregated to days of a month.</maml:para>               <maml:para>                 <maml:ui>How to use this report?</maml:ui>               </maml:para>               <maml:para>When run from the Reporting space:</maml:para>               <maml:para>The second column in the search results shows of which type the displayed objects are. Make sure you select objects of type blabla.</maml:para>               <maml:para />               <maml:para>When run from the Monitoring space:</maml:para>               <maml:para>Create a state view or performance view by choosing the blabla type.</maml:para>               <maml:para />               <maml:para>                 <maml:ui>What Parameters are offered?</maml:ui>               </maml:para>               <maml:para>Date/Time selection: Allows selecting a relative or fixed date and time range and time zone.</maml:para>               <maml:para>Object: Allows adding objects to run this report for</maml:para>               <maml:para />             </maml:section>           </MamlContent>         </KnowledgeArticle>   This will be the result in the OpsMgr Console Report Description:

]]>
Sat, 03 Oct 2009 16:07:00 +0200 http://www.stranger.nl/items/view/4543
Adding Report Details to your Custom OpsMgr Report http://www.stranger.nl/items/view/4451

So you finally created that super cool custom report in OpsMgr and you want to add all the info necessary to run the report correctly. But how do you do that? If you use the MP Authoring Tool you have the option to add a Description. If you open the MP xml file you can see the above Description is added to the DisplayStrings section of the MP. This is the Result: To do more advanced stuff you need to add a KnowledgeArticles section to your XML.   So if you add the next section to the KnowledgeArticles Section: <KnowledgeArticle ElementID="My.Custom.Reporting.Report" Visible="true">           <MamlContent>             <maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">               <maml:title>Summary</maml:title>               <maml:para>                 <maml:ui>How does this report work?</maml:ui>               </maml:para>               <maml:para>This report shows the next items:</maml:para>               <maml:list>                 <maml:listItem>                   <maml:para>Item 1</maml:para>                 </maml:listItem>               </maml:list>               <maml:para />               <maml:para>The report finds data if the objects supplied are of type</maml:para>               <maml:para>Exampe type</maml:para>               <maml:para>Search for objects on blabla</maml:para>               <maml:para />               <maml:para>The report displays for every selected object a separate chart. Data is aggregated to days of a month.</maml:para>               <maml:para>                 <maml:ui>How to use this report?</maml:ui>               </maml:para>               <maml:para>When run from the Reporting space:</maml:para>               <maml:para>The second column in the search results shows of which type the displayed objects are. Make sure you select objects of type blabla.</maml:para>               <maml:para />               <maml:para>When run from the Monitoring space:</maml:para>               <maml:para>Create a state view or performance view by choosing the blabla type.</maml:para>               <maml:para />               <maml:para>                 <maml:ui>What Parameters are offered?</maml:ui>               </maml:para>               <maml:para>Date/Time selection: Allows selecting a relative or fixed date and time range and time zone.</maml:para>               <maml:para>Object: Allows adding objects to run this report for</maml:para>               <maml:para />             </maml:section>           </MamlContent>         </KnowledgeArticle>   This will be the result in the OpsMgr Console Report Description:

]]>
Sat, 03 Oct 2009 13:07:00 +0200 http://www.stranger.nl/items/view/4451