Stefan Stranger's Lifestream - tagged with authoring http://www.stranger.nl/feed en-us http://blogs.law.harvard.edu/tech/rss Sweetcron stefan@stranger.nl 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
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
System Center Operations Manager 2007 R2 Authoring Resource Kit http://www.stranger.nl/items/view/4636

The System Center Operations Manager 2007 R2 Authoring Resource Kit is now available for download on Microsoft Download Center.   Overview The System Center Operations Manager 2007 R2 Resource Kit will install the Authoring console, which aids customers in creating and modifying operations management packs (MPs). Optionally, eight tools designed to help improve the MP authoring experience will also be included: the MP Best Practice Analyzer; MP Spell Checker; Visio MP Diagram Generator; Cookdown Analyzer; All References Addin; MP Diff; Workflow Analyzer; and Workflow Simulator. Feature Summary The System Center Operation Manager 2007 Authoring Resource Kit provides the following features to aid in management pack (MP) development and customization: Authoring Console - Develop MPs within a GUI environment. Management Pack Best Practice Analyzer (MPBPA) MPBPA scans management packs for best practice compliance and provides automated resolution for numerous issues. This tool integrates with the Authoring Console. Management Pack Spell Checker (MP Spell Checker) MP Spell Checker checks spelling in management packs to eliminate errors in display strings. Management Pack Visio Generator (MP Visio Generator) MP Visio Generator allows you to generate a class inheritance and class relationship diagram using Microsoft Office Visio. Management Pack Diff (MP Diff) MP Diff shows the differences between two management packs. Management Pack Cookdown Analyzer (MP Cookdown Analyzer) MP Cookdown Analyzer identifies workflows which may break cookdown. Suggestions are provided for how to fix the performance problems. All References Add-in All References Add-in helps find all management pack elements that reference the specific element chosen. For example, the ability to right click a class and find all rules, monitors, overrides, as well as anything else that targets that class is provided. This tool works on most management pack elements. Workflow Analyzer The Workflow Analyzer provides the ability to statically analyze all types of workflows. It also allows users to trace workflows running on any Health Service. Workflow Simulator The Workflow Simulator provides the ability to test certain types of workflows such as discoveries, rules, and monitors without a Management Server and Management Group. Key functionality includes the ability to test workflows as well as view and validate output prior to signing and importing the MP into a Management Group for additional testing. Management Packs Three management packs which are frequently used as dependencies are provided as part of the tools installation. These MPs are necessary to allow the Authoring Console to open most MPs available online in the System Center Operations Manager MP Catalog. The provided MPs are: Microsoft.SystemCenter.DataWarehouse.Report.Library Microsoft.SystemCenter.InstanceGroup.Library Microsoft.SystemCenter.ServiceDesigner.Library

]]>
Thu, 22 Oct 2009 09:49:00 +0200 http://www.stranger.nl/items/view/4636