Stefan Stranger's Lifestream - tagged with opsmgr-2007-r2 http://www.stranger.nl/feed en-us http://blogs.law.harvard.edu/tech/rss Sweetcron stefan@stranger.nl Reblog: QuickTricks – Select/unselect all in Reports http://www.stranger.nl/items/view/6056

Source: System Center Central  I just found this QuickTrick on System Center Central and I could not believe I didn’t know this trick… If you want to Select All or Unselect all in some of the Report Parameters boxes you can just right-click and there it is. Let’s take a look at the Overrides Report in my Demo environment. Right-Click on the Management Pack Parameter Window. Great QuickTrick IMO. Thank you System Center Central!

]]>
Tue, 02 Mar 2010 12:45:00 +0100 http://www.stranger.nl/items/view/6056
Download OpsMgr Guides in one-click http://www.stranger.nl/items/view/5928

Have you ever tried to download the files on the System Center Operations Manager 2007 R2 Documentation webpage? On this page you find all the technical documentation for Operations Manager 2007 R2. Pretty handy to have them downloaded on you workstation for offline reading. But as you see you need download each file separately :-( And if you are as lazy as me you don’t like that. That’s why I created a PowerShell script using BitsTransfer to do this in one-click. Cool? I think so. ############################################################################### # Download all OpsMgr Guides from # http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=19bd0eb5-7ca0-41be-8c0f-2d95fe7ec636 # in one-go using PowerShell and Bits. # Remark: Use PowerShell 2.0 because it makes use of the BitsTransfer Module # Author: Stefan Stranger # v1.001 - 19/02/2010 - stefstr - initial release ############################################################################### $global:path = "c:\Temp\" Import-Module BitsTransfer #Loads the BitsTransfer Module Write-Host "BitsTransfer Module is loaded" $OpsMgrGuides = @("http://download.microsoft.com/download/7/4/d/74deff5e-449f-4a6b-91dd-ffbc117869a2/Linked.Reporting.MP.xml", "http://download.microsoft.com/download/B/F/D/BFDD0F66-1637-4EA3-8E6E-8D03001E5E66/OM2007_AuthGuideXplat.exe", "http://download.microsoft.com/download/B/F/D/BFDD0F66-1637-4EA3-8E6E-8D03001E5E66/OM2007_ReportAuthoringGuide.docx", "http://download.microsoft.com/download/B/F/D/BFDD0F66-1637-4EA3-8E6E-8D03001E5E66/OM2007R2_CrossPlatformMPAuthoringGuide.docx", "http://download.microsoft.com/download/B/F/D/BFDD0F66-1637-4EA3-8E6E-8D03001E5E66/OM2007R2_CrossPlatformMPAuthoringGuide_Samples.zip", "http://download.microsoft.com/download/B/F/D/BFDD0F66-1637-4EA3-8E6E-8D03001E5E66/OM2007R2_CrossPlatformMPAuthoringGuide_Samples.zip", "http://download.microsoft.com/download/B/F/D/BFDD0F66-1637-4EA3-8E6E-8D03001E5E66/OM2007R2_DesignGuide.docx", "http://download.microsoft.com/download/B/F/D/BFDD0F66-1637-4EA3-8E6E-8D03001E5E66/OM2007R2_DeploymentGuide.docx", "http://download.microsoft.com/download/B/F/D/BFDD0F66-1637-4EA3-8E6E-8D03001E5E66/OM2007R2_MPAuthoringGuide.docx", "http://download.microsoft.com/download/B/F/D/BFDD0F66-1637-4EA3-8E6E-8D03001E5E66/OM2007R2_MPModuleReference.docx", "http://download.microsoft.com/download/B/F/D/BFDD0F66-1637-4EA3-8E6E-8D03001E5E66/OM2007R2_OperationsAdministratorsGuide.docx", "http://download.microsoft.com/download/B/F/D/BFDD0F66-1637-4EA3-8E6E-8D03001E5E66/OM2007R2_OperationsUsersGuide.docx", "http://download.microsoft.com/download/B/F/D/BFDD0F66-1637-4EA3-8E6E-8D03001E5E66/OM2007R2_SecurityGuide.docx", "http://download.microsoft.com/download/B/F/D/BFDD0F66-1637-4EA3-8E6E-8D03001E5E66/OM2007R2_UpgradeGuide.docx") Foreach ($OpsMgrGuide in $OpsMgrGuides) { Start-BitsTransfer $OpsMgrGuide $path} Write-Host "OpsMgr Guides are downloaded to $path" Just copy above script and save it to DownLoadOpsMgrGuides.ps1 and run it from PowerShell 2.0. Screenshots:   Have fun with the OpsMgr Guides and using PowerShell!

]]>
Fri, 19 Feb 2010 10:43:00 +0100 http://www.stranger.nl/items/view/5928
OpsMgr Custom Reporting Tips & Tricks http://www.stranger.nl/items/view/5361

Lately I’ve been busy creating some OpsMgr Custom Reports for customers and wanted to share some tips & tricks for creating custom OpsMgr Reports. Hope you can use them in your own custom OpsMgr Reports. First some background info on what to use for creating Custom OpsMgr Reports.

What do I need for creating Custom OpsMgr Reports?

Your first start needs to be, reading the Operations Manager 2007 Report Authoring Guide Secondly you need to install Visual Studio and SQL Server Business Intelligence Development Studio What next? How do I create my first OpsMgr Custom Report?

The highlevel steps for creating a Custom OpsMgr Report are:

Create a database query to get the data you need Use Visual Studio (SQL Server Business Intelligence Development Studio) to create the Report Deploy the Report to OpsMgr In the Operations Manager 2007 Report Authoring Guide are some examples to get you started. (starts on page 23) How do I make my Custom Report more beautiful? 

It depends on what you mean with more beautiful ;-) But here are some examples I use to make my custom OpsMgr Reports more beautiful;

Insert Charts Insert Pictures Show extra info, like;

who run the report how long did it take for the report to run extra parameters (Begin Date and End Date, Filter on ComputerGroup Members). Let’s start with the Custom Reports - Sample Scenario for a Simple Report 1 from Operations Manager 2007 Report Authoring Guide and try to make this report a little bit more beautiful ;-) Background info: This report collects all Events with an ID of 21025. I created this Custom Report on my OpsMgr 2007 R2 environment with SQL 2008 and Visual Studio 2008. Here are the steps taken from the Authoring Guide with some extra info added me: Procedures To create a report using Visual Studio (open SQL Server Business Intelligence Development Studio)

Open SQL Server Business Intelligence Development Studio and click on File and create a new Project   Select Report Server Wizard Project Wizard and give your Report a Name and click on OK.
Click Next on Report Wizard Screen
Create a New data source and give it a name like, DataWarehouseMain and click on Edit.
Enter the correct Connection Properties and click on OK.
Click on Next in Report Wizard screen
Now we need to use the SQL query from the Authoring Guide. Copy and past the SQL query to the Query string window.

SELECT  evt.eventnumber,Evt.EventOriginId,    Evt.EventPublisherRowId,    Pub.EventPublisherName,    Evt.DateTime,    Evt.EventChannelRowId,    Chl.EventChannelTitle,    Evt.EventCategoryRowId,    Chl.EventChannelTitle,    Evt.EventLevelId,    Lev.EventLevelTitle,    Evt.LoggingComputerRowId,    Cmp.ComputerName,    Evt.EventDisplayNumber,    Evt.UserNameRowId,    Usr.UserName,    Det.RawDescription,    Det.RenderedDescription,    Det.EventData FROM Event.vEvent(NoLock) Evt       Inner Join EventPublisher(NoLock) Pub On Evt.EventPublisherRowId  = Pub.EventPublisherRowId Inner Join EventChannel(NoLock) Chl On Evt.EventChannelRowId  = Chl.EventChannelRowId Inner Join EventCategory(NoLock) Cat On Evt.EventCategoryRowId  = Cat.EventCategoryRowId Inner Join EventLevel(NoLock) Lev On Evt.EventLevelId         = Lev.EventLevelId Inner Join EventLoggingComputer(NoLock) Cmp On Evt.LoggingComputerRowId = Cmp.EventLoggingComputerRowId Inner Join      EventUserName(NoLock) Usr On Evt.UserNameRowId= Usr.EventUserNameRowId Inner Join      Event.vEventDetail      (NoLock) Det      On Evt.EventOriginId = Det.EventOriginId WHERE Evt.EventNumber = 21025

TIP: Test this query first in SQL Management Studio.
Ok, we know now this query will give us some results back when we use this in our Custom Report. 8. Select the report type, Matrix or Table, and then click Next.      
9. Select the fields to be displayed on the different areas of the report, and then  click Next.    
10.Select the style of the layout.    
11. Select the Deployment Location and click on Next.    
12. Give the Report a Name and Review the Report Summary and select Preview Report and click on Finish

So this is the Result:

Maybe not completely what you wanted. Let’s change that. These are some things we are going to change:

Less columns (EventNumber, Event Publisher Name, Date Time, ComputerName, UserName and Rendered Descripition) Add a Start and End Data Parameter Add a select Computer Group Parameter Add who run the report and how long did it take for the report to run Less columns If we want less columns in our Report we can do two things; change the SQL query or remove the columns in the Report Designer. If you don’t need the columns leave them out the query, I would say. We can change the SQL query to:

SELECT     Pub.EventPublisherName,    Evt.DateTime,    Cmp.ComputerName,    Evt.EventDisplayNumber,    Usr.UserName,    Det.RenderedDescription FROM Event.vEvent(NoLock) Evt       Inner Join EventPublisher(NoLock) Pub On Evt.EventPublisherRowId  = Pub.EventPublisherRowId Inner Join EventChannel(NoLock) Chl On Evt.EventChannelRowId  = Chl.EventChannelRowId Inner Join EventCategory(NoLock) Cat On Evt.EventCategoryRowId  = Cat.EventCategoryRowId Inner Join EventLevel(NoLock) Lev On Evt.EventLevelId         = Lev.EventLevelId Inner Join EventLoggingComputer(NoLock) Cmp On Evt.LoggingComputerRowId = Cmp.EventLoggingComputerRowId Inner Join      EventUserName(NoLock) Usr On Evt.UserNameRowId= Usr.EventUserNameRowId Inner Join      Event.vEventDetail      (NoLock) Det      On Evt.EventOriginId = Det.EventOriginId WHERE Evt.EventNumber = 21025 Add a Start and End Data Parameter If we want to be able to select a Start and End Date parameter in the report we need to add some variables to our query.

DECLARE @StartDate DATETIME DECLARE @EndDate   DATETIME SET @StartDate = '2009-12-01 00:00:00.000' SET @EndDate = '2009-12-21 00:00:00.000' SELECT     Pub.EventPublisherName,    Evt.DateTime,    Cmp.ComputerName,    Evt.EventDisplayNumber,    Usr.UserName,    Det.RenderedDescription FROM Event.vEvent(NoLock) Evt       Inner Join EventPublisher(NoLock) Pub On Evt.EventPublisherRowId  = Pub.EventPublisherRowId Inner Join EventChannel(NoLock) Chl On Evt.EventChannelRowId  = Chl.EventChannelRowId Inner Join EventCategory(NoLock) Cat On Evt.EventCategoryRowId  = Cat.EventCategoryRowId Inner Join EventLevel(NoLock) Lev On Evt.EventLevelId         = Lev.EventLevelId Inner Join EventLoggingComputer(NoLock) Cmp On Evt.LoggingComputerRowId = Cmp.EventLoggingComputerRowId Inner Join      EventUserName(NoLock) Usr On Evt.UserNameRowId= Usr.EventUserNameRowId Inner Join      Event.vEventDetail      (NoLock) Det      On Evt.EventOriginId = Det.EventOriginId WHERE Evt.EventNumber = 21025 AND       Evt.DateTime BETWEEN @StartDate AND @EndDate Remark: Use above query in SQL Management Studio for testing the results. In Visual Studio you don’t need to DECLARE and SET the StartDate and EndDate. Let’s test this first in Visual Studio The easiest way is to create a new Report using the already created Data Warehouse.   If you select Add New Report the same Report Wizard is shown. See for the steps above, but now use the new SQL query. There is no need to create a New Data Source

After clicking Next you see the Preview Report and there you see the two added parameters Start Date and End Date

Before we can use these parameters we need to configure them. Click on Design. Double click on Parameters in the Report Data screen (in Visual 2005 you go to tools I believe)

Change the Data Type from Text to Date/Time for both Parameters

Test the Report and select different Start and End Dates

Add  Computer Group Parameter Now we want to add a Computer Group parameter so we can select a Computer Group where we want to see the events from it’s members. We first need to create a SQL query that shows us all the OpsMgr Computer Groups in a dropdown list.

SELECT DisplayName FROM vManagedEntity WHERE ManagedEntityTypeRowID in (SELECT ManagedEntityTypeRowID from dbo.ManagedEntityDerivedTypeHierarchy ((SELECT ManagedEntityTypeRowId from vmanagedentitytype WHERE managedentitytypesystemname = 'system.group'),0)) ORDER BY DisplayName This will give us the next result.

Now we need to create a new DataSet for this query in Visual Studio. Select Add DataSet.

Give the Dataset a Name (ComputerGroup) insert the above SQL query.

And click on OK to save DataSet

But how do we use this ComputerGroup and it’s member to filter the eventids in our Report? First we need to retrieve the the members of the ComputerGroup and store them in a  Table variable so we can use this in a JOIN. A table variable is created in memory, and so performs slightly better than #temp tables (also because there is even less locking and logging in a table variable). The next SQL query retrieves all members of a given ComputerGroup.

DECLARE @GroupDisplayName NVARCHAR(250) SET @GroupDisplayName = 'Agent Managed Computer Group'; USE [OperationsManagerDW] Select vManagedEntity.Displayname from vManagedEntity join vRelationship on vRelationship.TargetManagedEntityRowId=vManagedEntity.ManagedEntityRowId join vManagedEntity vme2 on vme2.ManagedEntityRowId=vRelationship.SourceManagedEntityRowId where vme2.DisplayName=@GroupDisplayName Result from SQL Management Studio:

If we place the results of this query in a temp table or table variable we can use this in a JOIN on ComputerName from the Event Table. TIP: Use the Design Query in Editor if you need to create a JOIN for your query.

TIP: Create the TEMP table first as a new table in your database, so you can use this table in the Design Query in Editor SQL Server Management Studio To create the table ComputerGroupMembers in the OperationsManagerDW database run the next query.

CREATE TABLE ComputerGroupMembers (Displayname NVARCHAR(250)) INSERT INTO ComputerGroupMembers Select vManagedEntity.Displayname from vManagedEntity join vRelationship on vRelationship.TargetManagedEntityRowId=vManagedEntity.ManagedEntityRowId join vManagedEntity vme2 on vme2.ManagedEntityRowId=vRelationship.SourceManagedEntityRowId where vme2.DisplayName='Management Server Computer Group' -- 'Management Server Computer Group' of -- 'Agent Managed Computer Group'

                                                                  We now created the ComputerGroupMember table. We can use this table to only show the records for the members of our computer group. First we take a look at the base query and remove any unnecessary stuff.

SELECT     Pub.EventPublisherName,    Evt.DateTime,    Cmp.ComputerName,    Evt.EventDisplayNumber,    Usr.UserName,    Det.RenderedDescription FROM Event.vEvent(NoLock) Evt       Inner Join EventPublisher(NoLock) Pub On Evt.EventPublisherRowId  = Pub.EventPublisherRowId Inner Join EventChannel(NoLock) Chl On Evt.EventChannelRowId  = Chl.EventChannelRowId Inner Join EventCategory(NoLock) Cat On Evt.EventCategoryRowId  = Cat.EventCategoryRowId Inner Join EventLevel(NoLock) Lev On Evt.EventLevelId         = Lev.EventLevelId Inner Join EventLoggingComputer(NoLock) Cmp On Evt.LoggingComputerRowId = Cmp.EventLoggingComputerRowId Inner Join      EventUserName(NoLock) Usr On Evt.UserNameRowId= Usr.EventUserNameRowId Inner Join      Event.vEventDetail      (NoLock) Det      On Evt.EventOriginId = Det.EventOriginId Let’s copy this to the Design Query in Editor tool.

Reorder the tables and have look at the JOINs in the original query.

Now we have a look at how we  could create a JOIN on the ComputerGroupMembers temp table we have created. Let’s add our table.

Then we need to create a JOIN for DisplayName with ComputerName in the Cmp table.

Remark: In some OpsMgr environments the vEventLoggingComputer View of the OperationsManagerDW database returns a NETBIOS name instead of the FQDN and your JOIN is not working. Please check this by running the next SQL query:

SELECT * FROM vEventLoggingComputer If the above results return FQDN you are ready to go on. If not contact me and I’ll help you solve this by using another query. Let’s assume you can create the JOIN  between the ComputerGroupMembers (FQDN members) and the vEventLoggingComputer View. We are only interested in the Rows from our ComputerGroupMembers.

When we test this query in the SQL Analyzer we get this:

SELECT     Pub.EventPublisherName, Evt.DateTime, Cmp.ComputerName, Evt.EventDisplayNumber, Usr.UserName, Det.RenderedDescription,                       ComputerGroupMembers.Displayname FROM         Event.vEvent AS Evt WITH (NoLock) INNER JOIN                       EventPublisher AS Pub WITH (NoLock) ON Evt.EventPublisherRowId = Pub.EventPublisherRowId INNER JOIN                       EventChannel AS Chl WITH (NoLock) ON Evt.EventChannelRowId = Chl.EventChannelRowId INNER JOIN                       EventCategory AS Cat WITH (NoLock) ON Evt.EventCategoryRowId = Cat.EventCategoryRowId INNER JOIN                       EventLevel AS Lev WITH (NoLock) ON Evt.EventLevelId = Lev.EventLevelId INNER JOIN                       EventLoggingComputer AS Cmp WITH (NoLock) ON Evt.LoggingComputerRowId = Cmp.EventLoggingComputerRowId INNER JOIN                       EventUserName AS Usr WITH (NoLock) ON Evt.UserNameRowId = Usr.EventUserNameRowId INNER JOIN                       Event.vEventDetail AS Det WITH (NoLock) ON Evt.EventOriginId = Det.EventOriginId RIGHT OUTER JOIN                       ComputerGroupMembers ON Cmp.ComputerName = ComputerGroupMembers.Displayname           This is still not completely correct but this is a start to work from.

Ok, let’s try to fix this. First let us pick the Tables or Views we need for our query. I think we need the next table (ComputerGroupMembers) and views.

Let’s create the some JOINs.

So your query could look something like this:

SELECT     ComputerGroupMembers.Displayname, Evt.DateTime, Evt.EventDisplayNumber, Det.RenderedDescription, Usr.UserName FROM       ComputerGroupMembers WITH (NOLOCK) INNER JOIN            vEventLoggingComputer AS Cmp WITH (NOLOCK) ON Cmp.ComputerName = ComputerGroupMembers.Displayname INNER JOIN            Event.vEvent AS Evt WITH (NOLOCK) ON Cmp.EventLoggingComputerRowId = Evt.LoggingComputerRowId INNER JOIN            vEventUserName AS Usr WITH (NoLock) ON Evt.UserNameRowId = Usr.EventUserNameRowId INNER JOIN            Event.vEventDetail AS Det WITH (NoLock) ON Evt.EventOriginId = Det.EventOriginId WHERE Evt.EventNumber = 21025 TIP: Use the NOLOCK option. SQL Server offers many hints that can be used to determine how a query executes and therefore the impact of the query on other processes.  One such hint that is offered in SQL Server is the NOLOCK hint.  This query hint allows SQL Server to ignore the normal locks that are placed and held for a transaction and allows the query to complete without having to wait for the first transaction to finish and therefore release the locks. Let’s test above query in SQL Management Studio by changing the Members of the Computer Group.

I changed the members of the ComputerGroupMembers table by changing the the Computer Group in above query. Now let’s look at our Report Query. Hopefully we only see events from OpsMgrR2DC1.opsmgrdemo.r2. Before changing the Computer Group:

After Changing the Computer Group:

It seems to work ;-) No we can remove the ComputerGroupMembers table from the OperationsManagerDW database because we are going to use a temp/variable table later on. The ComputerGroupMembers table was only to help us create the correct query. Run DROP TABLE ComputerGroupMembers to delete the table. We are going to use the next query to create a variable table in our last query.

DECLARE @StartDate DATETIME DECLARE @EndDate   DATETIME DECLARE @ComputerGroupMembers TABLE (DisplayName NVARCHAR(250)) DECLARE @GroupDisplayName NVARCHAR(250) SET @StartDate = '2009-12-01 00:00:00.000' SET @EndDate = '2009-12-21 00:00:00.000' SET @GroupDisplayName = 'Management Server Computer Group'; --INSERT ComputerGroup Members in Variable table @ComputerGroupMembers --Use Variables if the table is not large so it can be hold in memory --Retrieves Members of selected OpsMgr ComputerGroup INSERT INTO @ComputerGroupMembers Select vManagedEntity.Displayname from vManagedEntity join vRelationship on vRelationship.TargetManagedEntityRowId=vManagedEntity.ManagedEntityRowId join vManagedEntity vme2 on vme2.ManagedEntityRowId=vRelationship.SourceManagedEntityRowId where vme2.DisplayName=@GroupDisplayName SELECT     t1.Displayname, Evt.DateTime, Evt.EventDisplayNumber, Det.RenderedDescription, Usr.UserName FROM       @ComputerGroupMembers as t1 INNER JOIN            vEventLoggingComputer AS Cmp WITH (NOLOCK) ON Cmp.ComputerName = t1.Displayname INNER JOIN            Event.vEvent AS Evt WITH (NOLOCK) ON Cmp.EventLoggingComputerRowId = Evt.LoggingComputerRowId INNER JOIN            vEventUserName AS Usr WITH (NoLock) ON Evt.UserNameRowId = Usr.EventUserNameRowId INNER JOIN            Event.vEventDetail AS Det WITH (NoLock) ON Evt.EventOriginId = Det.EventOriginId WHERE Evt.EventNumber = 21025 AND       Evt.DateTime BETWEEN @StartDate AND @EndDate We save the Members of the Computer Group ‘Management Server Computer Group’ in variable which we later use in the final SELECT statement. And now we can finally go back to Visual Studio and use the above query in our Simple Report 1. Again add a new report and start the Report Wizard. Use the next query in the Query Builder:

DECLARE @GroupDisplayName NVARCHAR(250) INSERT INTO @ComputerGroupMembers Select vManagedEntity.Displayname from vManagedEntity join vRelationship on vRelationship.TargetManagedEntityRowId=vManagedEntity.ManagedEntityRowId join vManagedEntity vme2 on vme2.ManagedEntityRowId=vRelationship.SourceManagedEntityRowId where vme2.DisplayName=@GroupDisplayName SELECT     t1.Displayname, Evt.DateTime, Evt.EventDisplayNumber, Det.RenderedDescription, Usr.UserName FROM       @ComputerGroupMembers as t1 INNER JOIN            vEventLoggingComputer AS Cmp WITH (NOLOCK) ON Cmp.ComputerName = t1.Displayname INNER JOIN            Event.vEvent AS Evt WITH (NOLOCK) ON Cmp.EventLoggingComputerRowId = Evt.LoggingComputerRowId INNER JOIN            vEventUserName AS Usr WITH (NoLock) ON Evt.UserNameRowId = Usr.EventUserNameRowId INNER JOIN            Event.vEventDetail AS Det WITH (NoLock) ON Evt.EventOriginId = Det.EventOriginId WHERE Evt.EventNumber = 21025 AND       Evt.DateTime BETWEEN @StartDate AND @EndDate

As you can see there are three parameters needed. Parameter GroupDisplayName is filled by the ComputerGroup DataSet.

Result:

As you see we need to configure the Group Display Name Therefore we need the ComputerGroup DataSet   Go to Parameters folder and right click and select Parameter Properties.

Select Get Values from a query, select the ComputerGroup Dataset and select the DisplayName for Value field and Label Field and click on OK.

Test the Report with the Preview Tab.

Result:

As you see selecting the ‘All Windows Computer’ Group returns all events with eventid 21025 from all members of the All Windows Computer Group! Who run the report and how long did it take for the report to run We can add extra info to the report by inserting two text boxes with who run the report and how long it took for the report to run. Add a TextBox from the Toolbox to your Report

Insert the next expression into you text box:

="Generated by " + User!UserID + " on " + Globals!ExecutionTime.ToString()

Add another TextBox for the How long the report has run. Use the next expression:

="Execution Time: " + IIf(System.DateTime.Now.Subtract(Globals!ExecutionTime).TotalSeconds < 1, "0 seconds",    ( IIf(System.DateTime.Now.Subtract(Globals!ExecutionTime).Hours > 0, System.DateTime.Now.Subtract(Globals!ExecutionTime).Hours & " hour(s), ", "") + IIf(System.DateTime.Now.Subtract(Globals!ExecutionTime).Minutes > 0, System.DateTime.Now.Subtract(Globals!ExecutionTime).Minutes & " minute(s), ", "") + IIf(System.DateTime.Now.Subtract(Globals!ExecutionTime).Seconds > 0, System.DateTime.Now.Subtract(Globals!ExecutionTime).Seconds & " second(s)", "")) ) & " at server: " & Globals!ReportServerUrl                                     Result:

Final Tip: Change the parameter order. With up and down arrows you can change the order of your parameters.

So if you have done all this and more your Simple Report 1 could look like this.

  I’ve attached the Report.rdl file so you can have a look at the complete report. Have fun creating OpsMgr Custom Reports and have a great New Year!

]]>
Wed, 30 Dec 2009 15:22:00 +0100 http://www.stranger.nl/items/view/5361
New Screencast Series: Service Level Dashboard 2.0 http://www.stranger.nl/items/view/4895

In these three short screencasts, IT Pro Evangelist Matt Hester shows how you can use the Service Level Dashboard 2.0 for System Center Operations Manager 2007 R2 to keep mission-critical, line of business applications up and running.  The dashboard automatically displays application or system availability and performance in near-real time.  Using the dashboard, you can easily keep track of availability and performance trends, and head off problems before they occur.  The dashboard also lets you easily create role-specific dashboards to support different departments, like HR, Finance, or Operations.    Part 1: SLD overview. Part 2: How to install SLD. Part 3: How to configure SLD. To a look at the screencasts and download the Service Level Dashboard 2.0 today!   

]]>
Thu, 19 Nov 2009 09:36:00 +0100 http://www.stranger.nl/items/view/4895
Interoperability: Monitor your Unix and Linux Servers with OpsMgr 2007 R2 http://www.stranger.nl/items/view/4729

Today I created a video demonstrating monitoring your Unix and Linux servers with OpsMgr 2007 R2 for the Dutch LinuxWorld expo next week. I created this video so I can also have a moment to look around at the LinuxWorld Expo ;-) It’s part of a rolling presentation so I didn’t added any sound to it, but I thought it would be nice to upload the video anyway. In the video you can see that I’m monitoring two Linux servers, one Redhat and one Suse Novell machine in my demo environment. To demo the health of the Suse server I stopped the powersaved service on the machine and with the help of a geographical map created with the latest version of Savision Live Maps you can see that the Suse server is going from healthy to unhealthy and to healthy again after restarting the service.   See you at the LinuxWorld expo next week!

]]>
Thu, 29 Oct 2009 14:24:00 +0100 http://www.stranger.nl/items/view/4729
New version of Savision Live Maps for Operations Manager R2 http://www.stranger.nl/items/view/4713

I just downloaded and installed the latest version of Savision Live Maps in my demo environment and started creating a new List View for my Linux servers.

The new release of Live Maps 4.1 for Operations Manager R2 contains, besides some fixes and performance improvements, a number of new features that have been added based on customer feedback. Some of the new features are highlighted in this article, a complete overview can be found in the release notes. You can read more about the new features on their weblog. The new release can be downloaded here. You may ask why are you creating a List View for your Linux Servers? I’m preparing a demo for next week’s Dutch LinuxWorld event in Utrecht. You can visit us at booth D072 of our partner Ictivity. You can also take a look at the website http://www.metopenvizier.nl/. [Dutch]

]]>
Wed, 28 Oct 2009 15:40:00 +0100 http://www.stranger.nl/items/view/4713
Public Beta OpenUMR - Cross Monitoring Integrator available http://www.stranger.nl/items/view/4694

Today I got a friendly email from Markus Schneider about the general availability of OpenUMR on CodePlex. I was interested in this project but it was not open for public yet. But now it is and it looks very cool. OpenUMR (Open Universal Message Receiver)OpenUMR offers the capability to integrate agentless all kinds of monitoring solutions into Operations Manager 2007 R2 in a very easy way.A cross-platform script interface gives the flexibility to discover monitoring objects and to send event/performance data from remote. Basic IdeaThe basic idea behind OpenUMR is to combine the power of Open Source with the strength of Operations Manager 2007 R2. Open Sourcegives us the flexibility we need to handle the complexity that is caused by the individual needs of an enterprise IT environment. Life means diversity! - So we think the most efficient way to build up an effective enterprise Monitoring is to integrate existing System Management solutions instead of replacing them. In our opinion that's the most practical and successful approach. With OpenUMR we wantto develop a powerful interface that makes it easy for you to create a "Focal Point of IT-Control" with Operations Manager 2007 R2especially for non Windows-Components. Our wish is that OpenUMR grows by a strong community that improves the code, creates a lot of different management packs and eventmessage senders (OpenUMS) in all kinds of languages (Perl, Ruby, Python, PHP, PowerShell, Groovy etc...) Please, never forget - OpenUMR is only one more way to do things. Features10 Good reasons for using OpenUMR

 Native Integration  Decentral Administration  Remote Discovery  Event/Alert Management  Performance Data Collection  High Availability  Agentless Architecture  Fast and Simple  Open Source Free of Charge So take an look and let Markus know what you think about this new cool project.

]]>
Tue, 27 Oct 2009 11:56:00 +0100 http://www.stranger.nl/items/view/4694
OpsMgr Crossplatform Logging on the Unix Agent http://www.stranger.nl/items/view/4671

I’m currently busy with learning more about Crossplatform monitoring with OpsMgr 2007 R2 and stumbled on Logging on the Unix Agent for troubleshooting issues. As you may know on the Linux agent you can troubleshoot, manage and manually control the agent by using the scxadmin tool. /opt/microsoft/scx/bin/tools/scxadmin -stop [all|cimom|provider] /opt/microsoft/scx/bin/tools/scxadmin -start [all|cimom|provider /opt/microsoft/scx/bin/tools/scxadmin -restart [all|cimom|provider] You can view the running status by executing: /opt/microsoft/scx/bin/tools/scxadmin -status [all|cimom|provider] And you can view the agent version by executing: /opt/microsoft/scx/bin/tools/scxadmin –version   You can enable debug level logging on all 3 components - wsman, cimom (openPegasus) and the providers. The following command creates the necessary entries in the agent configuration for logging: /opt/microsoft/scx/bin/tools/scxadmin -log-set [all|cimom|provider] {verbose | intermediate | errors} The following logs are created in /var/opt/microsoft/scx/log: scx.log scxcimd.log cimserver.trc cimserver.trc.SCXCoreProviderModule.root   The initial Linux Logging setting shows this: As you can see no logging is currently configured. When we change the logging level to verbose for all components the logging level changes to TraceLevel 4. Let’s have a look at the log files first to see what’s happening now. You can see the log file size is growing fast ;-) Ok, after you have found what you are looking for you want to stop the Linux Agent logging. But how do you stop the Linux Agent Logging? According to the scxadmin  --help you can stop the logging with the next commando: scxadmin –log-reset Let’s run that command now and check the new settings. Huh? Even though we did a –log-reset according to the –log-list the traceLevel is still 1. If we look at the log files for info if there is still logging going on we see that no logging is taking place after the –log-reset. The reason why the –log-list command still shows a tracelevel of 1 is due to explicit config files (/etc/opt/microsoft/scx/conf/cimserver_current.conf). So you can ignore the tracelevel=1 in the –log-list of scxadmin after enabling and resetting logging on a Linux Agent. Have fun with OpsMgr and Crossplatform monitoring.

]]>
Sat, 24 Oct 2009 20:42:00 +0200 http://www.stranger.nl/items/view/4671
OpsMgr can monitor everything: The Coretech Coffee Monitor Management Pack – 0.0.0.1 http://www.stranger.nl/items/view/4645

How cool is this? Coretech has created a coffee monitor MP. This management packs can be used to keep track of the level of coffee in left in the pot. With this management pack, you will never run dry of, what we all know, is the most important part of a productive environment! This is mostly made as a proof of concept, as this technique can be transferred to other monitor types. It could be expanded with other types of sensors, like a weight to check the level of coffee instead of a camera, or a thermometer to check the temperature of the coffee. This is the very first version. It has been tested in test environments. By default, it will trigger a warning when under 50% is left, and a Critical Alert when under 20% is left. Please do not hesitate to report any bugs and please send suggestions for the next version you might have. This was developed by Jakob Gottlieb Svendsen with the help of Kåre Rude Andersen Guys great work! Loving it.

]]>
Thu, 22 Oct 2009 16:17:00 +0200 http://www.stranger.nl/items/view/4645
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
Updated IPD guide for System Center Operations Manager http://www.stranger.nl/items/view/4542

There is an updated version of the Infrastructure Planning and Design Guide for OpsMgr and Windows Deployment Services. The Infrastructure Planning and Design Guide for Microsoft® System Center Operations Manager outlines the critical infrastructure design elements that are crucial to a successful implementation of Microsoft System Center Operations Manager. The guide takes the reader step-by-step through the process of designing components, layout, and connectivity in a logical, sequential order. Identification and design of the required management groups is presented in simple, easy-to-follow steps, helping the reader to design and optimize management infrastructure. Download the IPD Guides for Windows Deployment Services and System Center Operations Manager at http://technet.microsoft.com/en-us/solutionaccelerators/ee382254.aspx. Infrastructure Planning and Design streamlines the planning process by: Defining the technical decision flow through the planning process. Listing the decisions to be made and the commonly available options and considerations. Relating the decisions and options to the business in terms of cost, complexity, and other characteristics. Framing decisions in terms of additional questions to the business to ensure a comprehensive alignment with the appropriate business landscape.

]]>
Tue, 06 Oct 2009 23:42:00 +0200 http://www.stranger.nl/items/view/4542
Updated IPD guide for System Center Operations Manager http://www.stranger.nl/items/view/4491

There is an updated version of the Infrastructure Planning and Design Guide for OpsMgr and Windows Deployment Services. The Infrastructure Planning and Design Guide for Microsoft® System Center Operations Manager outlines the critical infrastructure design elements that are crucial to a successful implementation of Microsoft System Center Operations Manager. The guide takes the reader step-by-step through the process of designing components, layout, and connectivity in a logical, sequential order. Identification and design of the required management groups is presented in simple, easy-to-follow steps, helping the reader to design and optimize management infrastructure. Download the IPD Guides for Windows Deployment Services and System Center Operations Manager at http://technet.microsoft.com/en-us/solutionaccelerators/ee382254.aspx. Infrastructure Planning and Design streamlines the planning process by: Defining the technical decision flow through the planning process. Listing the decisions to be made and the commonly available options and considerations. Relating the decisions and options to the business in terms of cost, complexity, and other characteristics. Framing decisions in terms of additional questions to the business to ensure a comprehensive alignment with the appropriate business landscape.

]]>
Tue, 06 Oct 2009 20:42:00 +0200 http://www.stranger.nl/items/view/4491
When does my OpsMgr 2007 R2 Eval versions ends? http://www.stranger.nl/items/view/4552

Today I am at a customer who has installed the OpsMgr 2007 R2 Evaluation version and wanted to know when the evaluation periods ends. I thought the easiest way would be look at the install date of the RMS and add 180 days. So I created a PowerShell script to do that for me. $InstallDate = get-managementserver | where {$_.IsRootManagementServer -eq "True"} | select InstallTime Write-host "RMS is installed on: " $InstallDate.InstallTime $InstallDate2 = $InstallDate.InstallTime Write-host "OpsMgr Eval ends on: " $InstallDate2.AddDays(180) Just copy the above lines and run them from the OpsMgr Command Shell.

]]>
Wed, 24 Jun 2009 16:10:00 +0200 http://www.stranger.nl/items/view/4552
When does my OpsMgr 2007 R2 Eval versions ends? http://www.stranger.nl/items/view/3461

Today I am at a customer who has installed the OpsMgr 2007 R2 Evaluation version and wanted to know when the evaluation periods ends. I thought the easiest way would be look at the install date of the RMS and add 180 days. So I created a PowerShell script to do that for me. $InstallDate = get-managementserver | where {$_.IsRootManagementServer -eq "True"} | select InstallTime Write-host "RMS is installed on: " $InstallDate.InstallTime $InstallDate2 = $InstallDate.InstallTime Write-host "OpsMgr Eval ends on: " $InstallDate2.AddDays(180) Just copy the above lines and run them from the OpsMgr Command Shell.

]]>
Wed, 24 Jun 2009 13:10:00 +0200 http://www.stranger.nl/items/view/3461
Reblog: Tool: OpsMgr 2007 - RuntimeHealthExplorer http://www.stranger.nl/items/view/3266

Source: Notes on System Center Operations Manager I’ve updated my OpsMgr toolbox collection with a new tool from Marius Sutara called RuntimeHealthExplorer. This tool helps someone with investigation of health state issues. This is what Marius tells about this new OpsMgr tool. “Did you ever wonder what is the state of the instance as known to the runtime (health service) monitoring it? Did you believe that some state changes are unaccounted for? Did you see discrepancy in Health Explorer? I believe many of you may answer yes to one of these questions. Right now, there really is not a good guidance on how to troubleshoot state change problems, but since OpsMgr 2007 SP1 release, there was a way to at least display states of the monitors targeting the instance as recorded by runtime during state calculation. This led me to creation of the tool returning those states from runtime. It also provides visual comparison against “real” Health Explorer (states are returned from Ops DB) while integrated with OpsMgr console thru console task. This task targets instance of “HealthService” managed entity type. Tool uses Health Explorer like view of monitors for each active instance monitored by specific runtime. Following is a snapshot of the tool executed against my Root Management Server. Please observe that I created view listing all health service instances as well as console task associated with this type and accessible thru “Actions” pane.” Please read disclaimer before using.

]]>
Thu, 04 Jun 2009 20:51:00 +0200 http://www.stranger.nl/items/view/3266
When will there be WSDL for the MP Catalog Webservice? http://www.stranger.nl/items/view/2990

Did you know that in PowerShell V2 using a Web service is very easy with the new Cmdlet New-WebServiceProxy? This would become very handy if the ManagementPackCatalogWebservice had a WSDL ;-) Then we could do some very cool stuff with the ManagementPack Catalog Webservice… Now we have to wait if there will be a WSDL implemented. Let’s hope.. For more info on Using PowerShell to get info from the ManagementPack Catalog go to Daniele Muscetta’s weblog. He’s the OpsMgr PowerShell guru ;-)

]]>
Fri, 15 May 2009 21:39:00 +0200 http://www.stranger.nl/items/view/2990
Reblog: Visio Add-in for Operations Manager 2007 R2 Beta released http://www.stranger.nl/items/view/2823

Source: System Center Operations Manager blog The Visio Add-in for System Center Operations Manager 2007 R2 combines the strengths of two applications widely used in enterprise IT to simplify the creation of customized graphical dashboards showing the health of an environment. Examples of such diagrams include showing objects by geography overlaid on a map, by location in a datacenter or building, by role in a logical view of an application or by topology for complex distributed applications such as Exchange or Active Directory.  The Visio Add-in has the following features: Distributed applications exported from System Center Operations Manager 2007 R2 (release candidate) as Visio documents automatically show live health state information on the exported objects when opened in Visio. You can easily create new Visio documents and link shapes to any managed object (computer, database, web site, perspective etc.) to show the current health state. You can automatically link entire existing Visio documents to the computer and network devices managed by Operations Manager by matching computer names or IP addresses. Health states can be automatically refreshed in Visio documents. You can use this option along with Visio’s full screen view to create dashboard views suitable for use as a summary display in a datacenter control room. Predefined data graphics enable you to toggle from Operations Manager health icons to shape color for health state.  Download the Visio add-in at https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=446&DownloadID=17995. (To get access to this release, apply to participate in the "Operations Manager Public Beta" at https://connect.microsoft.com/SelfNomination.aspx?ProgramID=2249&pageType=1&SiteID=446.) This looks quite like the solution Savision is offering with their Savision Live Maps.

]]>
Sat, 25 Apr 2009 14:23:00 +0200 http://www.stranger.nl/items/view/2823
New downloads for OpsMgr 2007 R2 on Connect http://www.stranger.nl/items/view/2798

There are new downloads available for OpsMgr 2007 R2 on Connect. Bulk URL Editor (BUE) for Operations Manager R2 With Operations Manager 2007 R2, you can now monitor up to 1000 URLs per watcher node and 3000 URLs per management group. However, creating the monitors for that number of URLs has been time-consuming, as each monitor had to be created manually. The new Bulk URL Editor addresses this issue, enabling you to create multiple monitors at once. Operations Manager 2007 R2 Interop Connectors This package contains the RC software for System Center Operations Manager 2007 R2 Interop Connectors.  The following Connectors are included: Operations Manager 2007 R2 Connector for Tivoli Enterprise Console Operations Manager 2007 R2 Connector for HP OpenView Operations Operations Manager 2007 R2 Connector for BMC Remedy ARS Operations Manager 2007 R2 Universal Connector Go to Connect and download the new stuff.

]]>
Thu, 23 Apr 2009 21:15:00 +0200 http://www.stranger.nl/items/view/2798
TechNet Webcast: Operations Manager 2007 R2 Deployment and Upgrade Best Practices (Level 300) http://www.stranger.nl/items/view/2599

Source: Microsoft Technet Language(s): English. Product(s): Microsoft System Center Operations Manager. Audience(s): IT Professional. Duration: 60 Minutes Start Date: Wednesday, April 15, 2009 10:00 AM Pacific Time (US & Canada) Event Overview Join us for this informative session on deploying Microsoft Systems Center Operations Manager 2007, where you will gain useful insights into what worked, as well as what didn't, when deploying Operations Manager 2007 into different environments. You will have the opportunity to learn best practices for setup (including recommended approaches for disaster recovery and high availability), running Operations Manager in a virtualized environment, and more. Presenters: Rob Kuehfus, Setup and Deployment Program Manager, Microsoft Corporation Rob is  a Program Manager in the System Center Operations Manager product group.  Responsibilities include Setup, Deployment, Upgrade, AD Integration, High Availability, Disaster recovery, notification and maintenance mode.     Before coming to Microsoft, Rob has been working with MOM 2005 since late 2004 using it to monitor mission critical Active Directory, Exchange and Application environments.  Rob was a part of the Microsoft TAP program before coming to Microsoft and has been an early adaptor of System Center Operations Manager 2007.  Current certifications include MCSE 2003, CCNA, and ITIL foundations. View other sessions from: Managing a Microsoft Infrastructure: Improve Reliability and Performance If you have questions or feedback, contact us. Registration Options Event ID: 1032409726

]]>
Thu, 09 Apr 2009 08:16:00 +0200 http://www.stranger.nl/items/view/2599