Hiding Console Tasks

Hiding Console Tasks

  • Comments 24
  • Likes

Sometimes you just want to hide a console task don’t you?  Take for example the useless ‘Request Input From User’ task.  Especially if you are using the SendEmail solution from the Exchange connector the ‘Request Input from End User’ task is useless.  How can you hide it and other console tasks for other reasons?  There are three ways to control the visibility of console tasks:

1) All console tasks in MPs that do not have the following category in them will be hidden.  This was primarily done to hide all the console tasks in MPs that weren’t specifically designed for SCSM and therefore we don’t know how to handle them – think MPs that  were originally designed for SCOM.

<Category ID="SCSMMPCategory" Value="Console!Microsoft.EnterpriseManagement.ServiceManager.ManagementPack">
  <ManagementPackName>Your MP ID Here</ManagementPackName>
  <ManagementPackVersion>Your MP Version Here</ManagementPackVersion>
</Category>

I’ve discussed this before and you can read more about I here.

2) If you want to just hide the console task from some people then you can create a custom user role and scope the users to specific console tasks that you want them to be able to see.  You can only grant tasks using user roles.  There is no way to say ‘all tasks except these tasks’.

3) If you want to hide a console task from everybody (including administrators) you just need to create a category in an MP and import it into your system.  The category needs to look like this:

<Category ID="Category.Task.Hide.RequestUserInput "

Target="IncidentManagementLibrary!System.WorkItem.Incident.RequestUserInputCommand.Task"

Value="Console!Microsoft.EnterpriseManagement.ServiceManager.UI.Console.DonotShowConsoleTask" />

The ID can be anything you want.  Target attribute needs to point at the console task you want to hide.  The Value always needs to point to the enum Microsoft.EnterpriseManagement.ServiceManager.UI.Console.DonotShowConsoleTask.

If you import the attached MP you’ll see that it will indeed hide the Request Input from User console task.

Update... 7/5/2011 - I've added all the console tasks for incident management to the MP now.  You can just comment out or delete those items that you do want to show before you import the MP.

Update… 7/12/2011 – You should also be able to hide console tasks in forms using a category targeted at a different enumtype:

Microsoft.EnterpriseManagement.ServiceManager.UI.Console.DonotShowFormTask

For example:

<Category ID="Category.Task.Hide.RequestUserInputFromForms "

Target="IncidentManagementLibrary!System.WorkItem.Incident.RequestUserInputCommand.Task"

Value="Console!Microsoft.EnterpriseManagement.ServiceManager.UI.Console.DonotShowFormTask" />

Attachment: Microsoft.Demo.HideConsoleTasks.xml
Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Wow Travis much appreciated on the post. I just have one question can you please tell me how would i go about hiding the ping related computer and remote desktop task please. Thanks Trav.

  • I've added those two tasks and all the other incident related tasks to the sample MP.

    If there are others that people are interested in, just let me know and I'll add them to the sample.

  • Thank you Travis much appreciated. I just want to let you know your blogs are super informative.

  • Thanks a lot for great post!

    But I have one problem: this MP hides tasks only in Views. When you open an Incident form you still see hidden tasks.

  • @kpaRU - Thanks for pointing that out.  I've updated the blog post to describe how to hide console tasks in forms too.  I havent tested this but I think it will work.  Please let me know if it does/doesn't work.

  • Thanks a lot, Travis.

    It works.

  • Travis,

    In reference to hiding the Close (Incident) console activity, how could one hide the 'Close' status on the Change Incident Status task on the Tasks Pane? That would be the remaining 'loophole' in the hiding of the Close capability from the typical console user.

    The list item does not seem possible to hide. If you remove the status from the Incident Status list, you may remove the status everywhere in the database!

    Thank you.

    Adam

  • @Adam - There isnt a way to hide Close there other than to hide the entire 'Change incident status' task itself.  That might be an option though.

  • Hi Travis, how would you hide the Create Change Request and Link Problem tasks?

    Thanks.

  • @Matt_Hall88

    What you need to know is the ID of the console task that you want to hide and which MP it is in.  To do that I would use smlets (http://smlets.codeplex.com).

    Run a command like this in a Powershell window on the SCSM management server after you have installed SMLets

    Import-Module SMLets

    then

    Get-SCSMConsoleTask | Sort-Object $_.DisplayName | %{Write-Host $_.DisplayName, $_.Name, $_.GetManagementPack().Name}

    that will display all the console tasks by display name and also show you the console task ID ("name") and MP Name.  That's all you need to be able to create an additional Category in the MP XML.

  • Thank you very much

  • Hi Travis,

    Using similar logic is it possible to change the displayed text for console tasks?

    Thanks

  • @Matt_Hall88

    No, sorry you can't use Categories to change the display name of a console task.  If you want to hack the database you can change it in the LocalizedText table.  Keep in mind that future MP imports might set it back to the value defined in the MP though so you might need to do it again.  You will probably need to restart the Data Access Service and the console to get the new text to show up.

  • Hi Travis,

    Even in ScSM 2012 the 'Close' status from Change incident status is not possible. One of our customer requirement is to grant only the incident 'resolve' permission to Analyst and Close to service Managers.

    Would appreciate your response on this!!!

  • This looks really handy. Unfortunately, whenever I try to download the MP, I end up with a null file. Any other way I can get my hands on the MP?