Strange error message when trying to upgrade SCSM 2012 Sp1 to SCSM 2012 R2

January 22, 2014 Posted by Anders Asp

Today when I was helping a customer doing an upgrade of their SCSM 2012 SP1 UR2 environment to R2, we got a strange error message when trying to upgrade the Data Warehouse management server:

“The Data Warehouse management group to which this management group is registered must be upgraded or unregistered before this management group can be upgraded”

ErrorMessage

The error message appear as soon as you try to initiate the upgrade by starting the Setup.exe and you don’t really get any information on what causes this. Searching the internet didn’t get me anything regarding this error at all (except one other person having the same error) so I turned to my fellow MVP colleges for some input. As it turned out, a couple of them had seen and worked their way around this issue before (thanks Christian and Steve!).

So, to get around this issue you have to Unregister SCSM with the DW, and then do the upgrade. Once the upgrade is completed on both the DW mgmt. server and the SCSM mgmt. server, you can safely register SCSM with the DW again. All data should still be present in the database, but of course you did a backup right before the upgrade – just in case. Right?

I don’t know what caused this error, maybe it was the fact that the customer was having a space in their management group name (I have to try that in my lab later on) cause it caused another issue when we tried to unregister SCSM with the DW. Unregistering from DW if you have a space in the management group name is not possible from the console obviously. Instead, we hade to use PowerShell to do this.

On the DW mgmt. server, load the SCSM DW PowerShell module and then run the following commands.

Get-SCDWSource 

The command above will retrieve all data sources and display the information needed to run the next command.

Unregister-SCDWSource -DataSourceTypeName <DataSourceTypeName> -DataSourceName <NameOfDataSource>

This command will unregister the datasource from the Data Warehouse.

If you run into this error – do you have a space in your management group name? Please drop a comment below!

Install Data Warehouse Management unattended on a named SQL instance

January 18, 2014 Posted by Alexander Axberg

A bug in the installation wizard for the Service Manager setup can cause you to not be able to complete the wizard when installing the Data Warehouse Management server if you are planning on putting your databases on named instance on the SQL server (in other words, NOT the default instance).

To get around this issue you have to do an unattenden installation from the command prompt.

So, start by logging in to the Data Warhouse Management server with an account with all necessary permissions, fire up the command prompt (cmd.exe).

Go to your Service Manager installation media where you can find setup.exe (for example: cd D:\amd64\)

Type in the following commandline, and replace all text in red with your own values. This commandline is actually what the wizard produces after asking you about all settings and paths.
Wait until the installation finishes, and then your done. Examine the SCSMInstall.log in your profile after the installation is complete to verify that everything went well, look for “return value 3”.

 

Start /Wait Setup.exe /Install:Datawarehouse /AcceptEula:YES /RegisteredOwner:SCSM /RegisteredOrganization:”My Company” /ProductKey:ABCDE-ABCDE-ABCDE-ABCDE-ABCDE /CreateNewDatabase /AdminRoleGroup:DOMAIN\SCSM_Admins /StgConfigSqlServerInstance:SQL01.scsm.local\INST3 /RepositorySqlServerInstance:SQL01.scsm.local\INST3 /DataMartSqlServerInstance:SQL01.scsm.local\INST3 /ReportingServer:SQL01.scsm.local\INST3 /ReportingWebServiceURL:”http://sql01.scsm.local:80/ReportServer/ServiceRunUnderAccount:AD\svc_scsm\p@ssw0rd /DatasourceAccount:AD\svc_scsm_report\p@ssw0rd /CustomerExperienceImprovementProgram:NO /EnableErrorReporting:NO /ManagementGroupName:DW_SCSM /OMDataMartSqlServerInstance:SQL01.scsm.local\INST3 /CMDataMartSqlServerInstance:SQL01.scsm.local\INST3 /AnalysisServerInstance:SQL01.scsm.local\INST3 /ASRunUnderAccount:AD\svc_scsm_analysis\p@ssw0rd

Cannot connect to Orchestrator Web Service after upgrade to 2012R2

December 13, 2013 Posted by Alexander Axberg

Update: This error now now has an official KB: http://support.microsoft.com/kb/2919041

After doing a couple of 2012SP1 -> 2012R2 upgrades, I’ve stumpled across the same error several times when upgrading Orchestrator to 2012R2.

The uninstall/install procedures complete just fine, no issues there. And all services on the Orchestrator server start up like they should.

However, the issue appears when you try to use the Orchestrator webservice. This webservice is used by the Orchestrator Console and the Service Manager Connector, and you’ll get an error message that they cannot connect.

And if you try to access the webservice from your browser by surfing to: http://SCOServer:81/Orchestrator2012/Orchestrator.svc (as an example), you are faced with an error message, insted of XML code which should be the correct response.

The error:

sco_error

This is because a special permission for the Orchestrator Service Account is not set on the database during the installation. The Quick-fix is to give the Orchestrator service account “dbowner” permissions on the Orchestrator database.

If you do not want to give dbowner permissions, you have check the database role permissions according to the documenatation here: http://technet.microsoft.com/en-us/library/hh912315.aspx

In my case, the “EXECUTE store procedure [Microsoft.SystemCenter.Orchestrator].[GetSecurityToken]” permission was missing for the database role: Microsoft.SystemCenter.Orchestrator.Operators

Nordic System Center Summit

November 11, 2013 Posted by Anders Asp

Early in December there is a new event called “Nordic System Center Summit” which is being hosted by Lumagate (which is my employer – just for the record). A full day with focus on System Center – one track for technicians and another track for business decision makers.

The event is free and is being held in Stockholm the 4th of December and Oslo the 5th of December and if you are able to, I really think you should come listen to all the great sessions!

Some of the speakers:
Me – Anders Asp (MVP)
Robert Hedblom (MVP)
Kristian Nese (MVP)
Chris Ross (MVP)
Travis Wright (SC God)

NCSC

Read more at http://www.nordicsystemcentersummit.com

Hope to see you there!

 

Type Projections Management Pack

October 25, 2013 Posted by Alexander Axberg

(Last update, 2014-09-09)

A couple of years ago, Travis released some excellent Management Packs containing several different Type Projections for a specific type of Work Items, which you could use to speed up the Query in your views instead of using the “(advanced)” type projections. Very useful.

The one for Change Requests is located here: http://blogs.technet.com/b/servicemanager/archive/2011/09/19/new-change-request-type-projections-management-pack.aspx
and for Incidents: http://blogs.technet.com/b/servicemanager/archive/2010/12/02/faq-why-is-my-custom-incident-view-so-slow.aspx

So what I’ve done is to gather all of these  type projections and put them all in the same Management Pack (and added some own too).

The Management Pack i sealed, so you can use these type projections in any view you want, regardless of what Management Pack the view is stored in. You can download it at the bottom of the post.

It will probably be updated in the future with more useful type projections

The following type projections are included in the pack:

Incident (Primary Owner)
Incident (Affected User)
Incident (Assigned To User)
Incident (Created By User)
Incident (Resolved By User)
Incident (Closed By User)
Incident (Assigned and Affected User)
Incident (Assigned To, Affected, and Primary Onwer User)
Incident (Assigned To, Affected, Primary Owner, Created By User)
Incident (Assigned To, Affected, Primary Owner, Created By, Resolved By User)
Incident (Assigned To, Affected, Primary Owner, Created By, Resolved By, Closed By User)
Incident (Created By, Resolved By, Closed By)
Incident (Created By, Assigned To, Resolved By, Closed By)
Incident (Created By, Assigned To, Primary Owner, Resolved By, Closed By)
Incident (Related Work Items)
Incident (Related Work Items, Assigned To, Affected User)
Incident (Related Knowledge Articles)
Incident (Affected Services)
Incident (Affected Configuration Items)
Incident (Related Manual Activities)
Incident (Affected User, Assigned To, Related CIs – both ways)
Incident (Affected User, Assigned To, SLA)
Incident (SLA, Affected, Assigned To)
Incident (SLA, Affected, Assigned To, Affected Services)
Problem (Assigned To)
Problem (Affects Service)
Problem (Related WorkItems)
Change Request (Created By, Assigned To, Affected User)
Change Request (Created By User)
Change Request (Assigned To User)
Change Request (Affected User)
Change Request (Assigned To, Affected User)
Change Request (Created By, Affected User)
Change Request (Created By, Assigned To User)
Change Request (Activities)
Change Request (Related Work Items)
Change Request (Related Configuration Items)
Change Request (File Attachments)
Change Request (Knowledge Articles)
Change Request (Activity, Assigned To)
Service Request (Assigned To, Affected User)
Service Request (Activity)
Service Request (Related Configuration Items)
Service Request (Affected User)
Service Request (Assigned To)
Service Request (Related Work Items)
Service Request (Activity, Assigned To)
Service Request (SLA, Affected, Assigned To, Affected Items)
Service Request (Knowledge Articles)
Service Request (Affected Items)
Service Request (File Attachment)
Service Request (Assigned To, Affected User, Created By)
User (Manager, Reporting)
Manual Activity (Created By, Assigned To)
Manual Activity (Parent WI Assigned To)
Manual Activity (Parent WI Assigned To, Assigned To)
Service (Owned By, Service Customers, Affectes Users)

Lumagate.TypeProjections1.0.0.26

Exchange Connector 3.0 re-released

October 8, 2013 Posted by Anders Asp

Short but important post – The Exchange Connector 3.0 RTM has just been re-released to include an important bugfix for the bug that caused the connector to malfunction if you had created any class extension. Previously you had to register a support case at Microsoft to get the fix but it’s now included in the connector itself. So go ahead and download the new connector: http://www.microsoft.com/en-us/download/details.aspx?id=38791

Remember that you will have to have SCSM 2012 SP1 UR2 or higher for the connector to function.

Create Runbook activities from Orchestrator

September 16, 2013 Posted by Anders Asp

Have you tried adding Runbook Activities to your Service Requests dynamic through Orchestrator? Depending on the information provided by the end user on the self-service portal you might want to automate different things or in different ways. So the idea here is to have a Service Request template containing one initial Runbook Activity that adds the rest of the activities to the actual Service Request, whether it’s Manual, Review or Runbook Activities.

Creating/addning Manual or Review activities through Orchestrator isn’t that complicated, as long as you remember to set some essential properties, such as Sequence ID or adding the prefix to ID. The challange comes when trying to add Runbook Activities to your Work Item.

Using the same approach as you do when creating Manual or Review Activities, this is how you would do it:

SS1This will create the Runbook Activity in the SR but if you want the Runbook Activity to function properly, you have to set some pretty complex parameters in the configuration of the “Create related RB activity”. It’s simply not manageable.

So how do we solve this? Well, how does it work from the console? When adding an activity to a Work Item, you actually have to select an activity template, and that’s exactly what we are going to do here as well. It’s just that we are going to apply the template to the Runbook Activity after it’s been created.

To do this we need SMLets (http://smlets.codeplex.com/) and the “PS Script Execution” IP for Orchestrator (http://orchestrator.codeplex.com/releases/view/76101). I tend to use this IP to run SMLets on the SCSM mgmt. server when using SMLets from Orchestrator. Install SMLets on your SCSM management server and deploy and configure the “PS Script Execution” IP on your Orchestrator Runbook Server.

Now, let’s add two activities to our runbook – a “Get Object” activity from the SCSM IP to get the RB activity we just created, and a “Execute PS Script – Global” from the “PS Script Execution” IP.

SS2

I won’t go into details on how all activities are configured or used, as I think you already know that (if not, drop me a comment below and I’ll add more details!), but let’s take a closer look at the “Execute PS Script – Global” activity.

ss3

The activity is configured to call my SCSM mgmt. server where I have SMLets installed. The script I’m running to apply a template on the Runbook Activity itself is actually re-used from an earlier blogpost of mine (http://www.scsm.se/?p=239) and works really good. Using the Runbook Activity ID from the “Get RB” activity we can get the actual object using SMLets. Then we are getting the Runbook Automation Activity template by the displayname of the template itself. In this example the displayname of my template is “Runbook test” (due to lack of imagination 🙂 ). That’s the only two thing you have to reconfigure in this script to make it work!

Here’s the complete script for you to copy/paste:


Import-Module Smlets

$Projection = Get-SCSMTypeProjection Microsoft.SystemCenter.Orchestrator.RunbookAutomationActivity.Projection

$RBID = "RUNBOOK ACTIVITY ID FROM DATABUS" $RBObject = get-scsmobjectprojection $projection -filter "Id -eq $RBID"

$template = Get-SCSMObjectTemplate -displayname "Runbook test"

$RBObject.__base.ApplyTemplate($template) $RBObject.__base.Commit()

Remove-Module Smlets

 

Moving runbooks from one environment to another

September 9, 2013 Posted by Anders Asp

If you ever worked with Orchestrator in different environments you know the hassle with moving (export/import) Runbooks from one environment to another. In your pre-production environment the Integration Pack Connection settings is called one thing and in your production environment it’s called something else. This will cause the activities using that connection in your Runbooks to fail… Editing each activity manually to correct this is not an option as it will cause you to lose your activity configuration.

ConnectionSettings

There’s a rather easy fix for this however, and that is simply to do a search and replace in the exported Runbook (*.ois_export file). Open the file with Notepad (right click it and select “Open with”) and now search for <Connection datatype=”string”>. This will take you to the section in which the Connection setting for a particular activity is specified. It will look something like this:

ConnectionDatatype

Note how the name of my Connection is specified within this codeblock. Now copy the marked section and do a search and replace. Make sure to replace the connection name with the name you are using in your production environment. In my case I would do this:

Search for:
<Connection datatype=”string”>SCSM 2012 Pre-prod</Connection>

Replace with:
<Connection datatype=”string”>SCSM 2012</Connection>

Repeat this step for all the different Integration Pack connection settings used in the Runbook. Then simply save the file and import it as usual in Orchestrator and everything should be perfectly fine.

So why is there a bold “should” in that sentence? Well, as I discovered the other day, my Runbooks would simply not import correctly after doing this procedure and I couldn’t figure out why. I had been doing this for a long time and now all of a sudden it didn’t work? It turned out that for some reason, after saving my edited Runbook export file in Notepad, the file encoding had changed and Orchestrator refused to read the file when trying to import it. All I had to do to fix this was to re-save the file in the correct file encoding: ANSI.

Encoding

Hope this will save you some headache! 🙂

CSV update of Business Services

September 3, 2013 Posted by Alexander Axberg

In this post I will show how to make a bulk update of Service Owner and Serviced By User relations on specific Business Services.
Since these relations are located on the System.Service class, which is abstract, we can’t use a regular CSV import in Service Manager.

However, we can solve it with some Powershell magic and SMLets.

You need to start with installing SMLets and load it in a powershell console (http://smlets.codeplex.com/‎)

Then you need to prepare your import data. It should be saved as a CSV-file with semicolon separation, and contain the following columns:

  • Displayname of the Business Service ; sAMAccountName of the Service Owner ; sAMAccountName of the Serviced By User

Here is one example of two rows:

Active Directory;user123;user456
Exchange;user123;user456

 

  1. Name the CSV-file “input.csv” and put it in your c:\temp directory
  2. Copy the powershellscript to the same directory
  3. Run the script. The script will search for the displayname, and then update the relations for each row.
  4. All updated services will be logged to the file “updated.txt”
  5. If some service coudn’t be found and updated, they will be logged to “failed.txt”

 

Powershell script:

$input = Get-Content C:\temp\input.txt
$row = $null
$ServiceOwner_RelClass = Get-SCSMRelationshipClass System.ConfigItemOwnedByUser$
$ServiceResp_RelClass = Get-SCSMRelationshipClass System.ConfigItemServicedByUser$

Foreach ($row in $input)
{
$data = $null
$service_displayname = $null
$owner_user = $null
$resp_user = $null

$data = $row.Split(";")
$service_displayname = $data[0]
$owner_user = $data[1]
$resp_user = $data[2]

$service = $null
$row2 = $null
$ServiceOwner = $null
$ServiceResp = $null

#Check array for all columns
If ($data.Length -eq 3)
{
$service = get-scsmobject (get-scsmclass System.Service$) -Filter "Displayname -eq '$service_displayname'"

#Service not found?
If ($service -eq $null)
{
Write-Host "$service_displayname not found!" -ForegroundColor Red
$service_displayname | Out-File c:\temp\failed.txt -Append}

#Service found!
Else
{
$service_displayname + " = " + $service.Displayname
$Service.Displayname | out-file c:\temp\updated.txt -Append
$ServiceOwner = Get-SCSMObject -Class (Get-SCSMClass Microsoft.AD.User$) -filter "Username -eq '$owner_user'"
$ServiceResp = Get-SCSMObject -Class (Get-SCSMClass Microsoft.AD.User$) -filter "Username -eq '$resp_user'"
New-SCSMRelationshipObject -Relationship $ServiceOwner_RelClass -Source $Service -Target $ServiceOwner -Bulk
New-SCSMRelationshipObject -Relationship $ServiceResp_RelClass -Source $Service -Target $ServiceResp -Bulk
}
}
}

Download

Service Manager 2012 SP1 secondary Management Server issue

June 16, 2013 Posted by Anders Asp

I guess most of you already seen this post on the official blog (if not, you should read it now!):
http://blogs.technet.com/b/servicemanager/archive/2013/04/22/service-manager-2012-sp1-secondary-management-server-cannot-set-availability-on-a-health-service-that-doesn-t-exist.aspx

And the official workaround for this issue is described like this:

“The recommended workaround to address this issue yourself is to install System Center Service Manager 2012 RTM and then upgrade to SP1. If for any reason you are unable to do this, please reach out to support so that they can provide assistance.”

While this is a valid workaround, it doesn’t work in all cases. For instance, you are not able to install SCSM 2012 RTM on a Windows Server 2012 or SQL Server 2012… So if you would need to do so, you would need to contact Microsoft Support.

Now to the reason of this blogpost, I just wanted to inform you that I was forced to do so the other day and the good news about this is that there is a fix available (it’s actually a fixed installation .msi package) and that Microsoft won’t charge you for this support case as this is “seen as a problem in the software”.