Archive for May, 2010

May
31

SCSM PowerShell Cmdlets v0.1

Posted by: | Comments (5)

Inspired by Travis Wright over at the product team’s Service Manager blog, I’ve started a new Codeplex project that will develop a PowerShell snap-in containing useful Service Manager cmdlets. Today I’ve released the first preview version which will give you an idea of what’s to come!

Included is a set of cmdlets which gives you the power to create, update and search for Incidents in Service Manager 2010.
Go to http://smlets.codeplex.com/ and grab the download to start testing this out!

Included cmdlets are:

  • Get-SCSMIncident
    Ex. get all incidents that includes the word “network” in the title (wildcard by %) and has the status “Active”
  • Set-SCSMIncident
    Ex. update an incident’s description and attach a new file.
  • New-SCSMIncident
    Ex. register a new incident with title, description, impact, urgency, classification and source.

Using these we can now do stuff like closing all incidents which title starts with “Network”, has the status Resolved and hasn’t been touched for a given period of time
Get-SCSMIncident –Title “Network%” –Status Resolved –InactiveFor 5.00:00:00 | Set-SCSMIncident –Status Closed –Comment “Closed due to inactive period”

Don’t miss the solution built using these cmdlets by Anders Bengtsson over at contoso.se, where he solves the intensively discussed problem regarding “update incident by mail”.

Comments (5)
May
25

ConfigMgr v.Next Beta 1 Released

Posted by: | Comments (0)

The highly anticipated ConfigMgr v.Next Beta 1 was released today and will be available on the connect site very soon. You can sign up for the beta here.

This next release of Configuration Manager is focused on 3 main pillars:

Empower. System Center Configuration Manager helps IT provide a powerful, flexible work experience for people who want to connect from anywhere; on any device they choose—automatically detecting network conditions and device configurations to determine the most appropriate services for each user identity.

  • New application management model
  • On-demand applications with a self-service software portal
  • State-based application delivery to provide people with reliable access

Unify. System Center Configuration Manager reduces IT’s operational costs by simplifying and consolidating the client environment through a lean, unified infrastructure for managing and securing multiple systems and devices per user—including personal devices and PCs.

  • Unified management across PCs and devices
  • Centralized management of desktop virtualization

Simplify. System Center Configuration Manager reduces complexity and improves visibility into the client environment by providing a single configuration interface for networks and devices, and by automatically detecting vulnerabilities and offering IT-definable remediation of non-compliant systems

  • Automated compliance remediation
  • Client health and auto remediation
  • Streamlined administrative console

Stay tuned by following System Center Nexus Team Blog and of course read our reviews and the highlights here at Litware as soon as we have evaluated Beta 1.

Comments (0)

This week my friend Anders Bengtsson and I delivered a Service Manager event together with Microsoft in Sweden. There were a lot of good questions from the audience and a great interest in the product. One of the questions was if the Active Directory synchronize blank attributes from Active Directory if there is a value in the CMDB. Of course we have tried this in a sandbox :)

1. I created a new user account in Active Directory. I did not change any default values so the Office attribute (PhysicalDeliveryOfficeName) was set to “Not Set”
2. I ran the Active Directory connector synchronization
3. I verified that I had a blank Office attribute in the CMDB
4. I updated the attribute in the CMDB
5. I logged in and out with the account on a workstation
6. I ran the Active Directory connector synchronization
7. The Office attribute in the CMDB is back to blank

If my AD user object is updated, in this case some attributes was updated when the user loged into a workstation, the watermark on the user object is updated, then the whole user will be synchronized back to the CMDB.

Remember this! What you see is not always what you think in Service Manager.
You might think that looking at a computer in the computer form is in fact looking at a single object in the CMDB. This is seldom the truth since most forms in Service Manager targets TypeProjections (which could be seen as a view displaying data from several objects related to each other). As an example you might take a look at the type projection acting as source to the “computer form” in Service Manager. As you can see in the definition below, quite a few different objects support the computer form.

Microsoft.Windows.Computer.ProjectionType :

<TypeProjection Accessibility=”Public”>

<Component
Path=”$Context/Path[Relationship='ConfigurationManager!Microsoft.SystemCente
r.ConfigurationManager.DeployedComputerRunsWindowsComputer'
SeedRole='Target']$” Alias=”PhysicalComputer” />

<Component
Path=”$Context/Path[Relationship='Windows!Microsoft.Windows.ComputerHostsOpe
ratingSystem']$” Alias=”OperatingSystem” />

<Component
Path=”$Context/Path[Relationship='Windows!Microsoft.Windows.ComputerHostsLog
icalDevice'
TypeConstraint='Peripherals!Microsoft.Windows.Peripheral.NetworkAdapter']$”
Alias=”NetworkAdapter” />

<Component
Path=”$Context/Path[Relationship='Windows!Microsoft.Windows.ComputerHostsLog
icalDevice'
TypeConstraint='Peripherals!Microsoft.Windows.Peripheral.Processor']$”
Alias=”Processor” />

<Component
Path=”$Context/Path[Relationship='Windows!Microsoft.Windows.ComputerHostsLog
icalDevice'
TypeConstraint='Peripherals!Microsoft.Windows.Peripheral.PhysicalDisk']$”
Alias=”PhysicalDisk” />

<Component
Path=”$Context/Path[Relationship='Windows!Microsoft.Windows.ComputerHostsLog
icalDevice'
TypeConstraint='Peripherals!Microsoft.Windows.Peripheral.LogicalDisk']$”
Alias=”LogicalDisk” />

<Component
Path=”$Context/Path[Relationship='System!System.ComputerPrimaryUser']$”
Alias=”PrimaryUser” />

<Component
Path=”$Context/Path[Relationship='System!System.ConfigItemOwnedByUser']$”
Alias=”Custodian” />

<Component
Path=”$Context/Path[Relationship='WorkItem!System.WorkItemRelatesToConfigIte
m' SeedRole='Target']$” Alias=”ImpactedWorkItem” />

<Component
Path=”$Context/Path[Relationship='WorkItem!System.WorkItemAboutConfigItem'
SeedRole='Target']$” Alias=”RelatedWorkItem” />

<Component
Path=”$Context/Path[Relationship='SupportingItem!System.ConfigItemHasFileAtt
achment']$” Alias=”FileAttachment” />

<Component
Path=”$Context/Path[Relationship='System!System.ConfigItemRelatesToConfigIte
m']$” Alias=”RelatedConfigItem” />

<Component
Path=”$Context/Path[Relationship='System!System.ConfigItemRelatesToConfigIte
m' SeedRole='Target']$” Alias=”RelatedConfigItemSource” />

<Component
Path=”$Context/Path[Relationship='CoreKnowledge!System.EntityLinksToKnowledg
eDocument']$” Alias=”RelatedKnowledgeArticles” />

</TypeProjection>

A short summary of this is ”last-write wins” and that you should be very aware that a form can be a mix of the result of a number of connectors and synchronized data.

Categories : Service Manager
Comments (3)
May
11

Custom console tasks: Part 1

Posted by: | Comments (3)

In Service Manager 2010 there is a concept of console tasks. Using tasks you’re able to quickly perform actions while working in the console. An example of this could be launching remote desktop against a computer affected by an incident by just pressing a link within the incident form.

Console tasks are a great feature of Service Manager, but what’s even greater is that you can create your own. There are two different ways to add console tasks, in the console “Library – Tasks” or by defining console tasks in a management pack and importing this. The difference between these two entry points is that you can add much more advanced tasks in the latter one. In this first post of two I’m going to show you how to add a task directly in the console. To show you how to do this – here is how to add a task for rebooting the affected computer of an incident.

  1. Go to LibraryTasksNew Task
  2. Name the task “Reboot affected computer
  3. Choose the target class Incident
    (This associates the task with the incident form and enables us to use properties and related objects properties of the selected incident as arguments for the task command line)
  4. Choose the Incident management Folder Tasks category
    (This controls where the task will be available in the console)
  5. Full path to command: shutdown.exe
  6. On the Parameters section, click insert property and choose: IncidentAbout Config Item
    (“About Config Items” is called “Affected Items” in the form)
  7. Select the property called “NetBIOS Computer Name”
    (Locate it faster by using the search functionality)
  8. Working directory: “%windir%\system32” 
  9. Check: Log in action log when this task is run
  10. Check: Show output when this task is run

Note: You cannot use the option to “log in action log when this task is run”, without using the “show output when this task is run”. Doing so will cause the action to not get registered in the action log. This is a reported bug (not confirmed)!


Now you’ve created a task that can be used from the Incident Management part of the console to reboot an affected computer of an incident.

Some important things to remember here:

  • If the list of “Affected Items” (About Config Item) only contains one computer the task will be executed without prompting the user. In this case this would mean that, clicking the reboot task would instantly reboot the affected computer without asking questions like “Are you sure….?”. In the case of the list containing more than one computer, the user will get prompted to select which of the listed computer to reboot.
  • The file specified in the command, in this case shutdown.exe, needs to be available on each machine where the console will be used to launch the task (in this specific case this shouldn’t be a problem since shutdown.exe is distributed with the OS).
  • When executing a console task, the task will be executed in the context of the logged on user. You can still use roles in Service Manager to show/hide console tasks from different users, but remember that seeing a console task doesn’t automatically give a user the permission to execute the task successfully.

Related information: http://blogs.technet.com/servicemanager/archive/2010/02/11/tasks-part-1-tasks-overview.aspx

In the next part of “Custom console tasks” series I’ll show how to add more advanced console tasks using the SDK (some coding coming up!) and a custom management pack.

Comments (3)

A couple of days ago there was a blog post published on the official Service Manager blog that solves a really annoying problem. The problem was that it wasn’t possible to, out-of-the-box, run incident workflows based on SLA breaches in Service Manager. Using the blogged solution you are now able to do exactly that! This means that you are now able to do notification and apply templates on incidents about to or breaching their SLA. By applying templates you could for instance escalate an incident about to breach its SLA. Isn’t that sweet?!

The posted solution is a joint project that Travis Wright and I have been working on for a couple of weeks. I hope you like it!
http://blogs.technet.com/servicemanager/archive/2010/05/06/incident-sla-management-in-service-manager.aspx

Comments (0)