With the recent release of OpsMgr 2012 SP1 UR6 and R2 UR2, number of new dashboard widgets have been made available. The PowerShell Grid Widget and PowerShell Web Browser Widget are 2 of my favourite ones.
Microsoft has just created a new repository for the community to share their scripts and dashboards. This repository is located in the TechNet Gallery Script Center. You can access it from this direct link: http://bit.ly/Wy168U. or go to the script center and browse to: System Center > Operations Manager Dashboards:
Looks like the product team has already posted 4 samples in the first day. In the next few days, I will also post few of mine to this place. I encourage everyone to keep eye on this place from now on, and please do not hesitate to share your work with the community!
Previously, I blogged my opinion on using external knowledge base for OpsMgr. In that article, I mentioned a SharePoint 2013 Wiki solution developed by Stefan Koell. As I mentioned, I successfully set it up in my home lab without issues. However, I had issues setting it up at work, which is still using SharePoint 2010.
Here’s what it looks like:
Redirects to an existing page:
Prompt to create a new page:
And here’s the script (I named it RedirectJs.txt):
When you use this script, please update the SiteUrl variable to represent the URL of your SharePoint wiki site.
Please note adding scripts to a web part is different in SharePoint 2010 than 2013. The script needs to be uploaded to the site as a separate file then link the the web part. here’s a good article on how to do it.
Note: I have also tested this script on my SharePoint 2013 wiki site. Unfortunately, it does NOT work.
The script can also be downloaded HERE.
I’ve been wanting to write a post on this topic for a while. Using an external knowledge base for OpsMgr is not something new. Many people have already shared their experiences on how to setup one up. My intention is to focus less on the technical side (i.e. How to set it up), but discussing what are the limitations of managing internal KB’s (company knowledge) natively within OpsMgr from both technical and organisational and social point of view and the how can we fill these gaps by using an external knowledge base management system.
Please Note: this post is 100% based on my own experience working on a very large OpsMgr environment which involves a mixture of 2007 and 2012 management groups and many support teams.
As I have been working for a “Customer” for the last 3 years instead of working for a solutions provider, who generally only spend a short period of time and move on to the next engagement, I am able to see the challenges within the organisation from a social and culture point of view. Hopefully you can pick up few points that also apply to your environment.
Knowledge Base Management in OpsMgr
In OpsMgr, knowledge base (KB) articles can exist in 2 places: Product Knowledge and Company Knowledge.
Product Knowledge: Written by the management pack author, generally saved in the sealed MP cannot be modified.
Operators can access product knowledge from either the alert view or the property window of the workflow:
Company Knowledge: Written my someone internally within your organisation. Consider it as an “Addendum” to the product knowledge. Generally OpsMgr operators use this functionality to store any organisation-specific information about the particular alert or workflow.
Company Knowledge articles can be added into the OpsMgr management group from a computer which has Operations Console, Microsoft Visual Studio Runtime for Office, and 32-bit Microsoft Word 2010 installed. These articles are saved into unsealed management packs. They can be viewed same way as product knowledge”:
Note: One thing I’ve picked up while writing this article is once the company knowledge for a particular alert is created and saved into an unsealed management pack, the alert view in Operations console will show the company knowledge article instead of the original product knowledge article. – Something I’ve never noticed in the past.
Use of Company Knowledge – Pros and Cons
In my opinion, using Company Knowledge in OpsMgr has the following Pros and Cons
01. Built-in Functionality within OpsMgr. No additional systems required.
02. Can be viewed within OpsMgr Operations and Web Consoles
03. Company Knowledge can be retrieved programmatically using OpsMgr SDK
i.e. SCOM Enhanced Email Notification Script created by myself.
01. Stored in Unsealed Management Packs meaning additional management pack dependencies (same as override MPs).
Company KB’s are stored the same way as product KBs, but they are stored in an Unsealed MP. The Unsealed MP therefore requires to reference the sealed MP (where the workflow for the KB is defined). This is very similar to creating overrides. As you wouldn’t save all your overrides in one single MP, same theory applies to company KB’s – We should use a dedicated unsealed MP for each product OpsMgr monitors (i.e. Company KB MP for SQL, Company KB MP for AD etc).
02. Operators requires at least OpsMgr Author access to add / manage company knowledge articles.
Therefore, it is probably not a good idea to grant normal operators access to create company KB’s because OpsMgr Author role also gives users access to create other management pack elements such as rules and monitors. However, As the nature of any knowledge base systems, you would encourage everyone to share their knowledge, not to limit the access to only fewer people (if this is the case, we might as well call this system a bulletin instead of a knowledge base). In the past I have only given few particular users author access for this purpose – as result, not many company KB’s were created because people simply couldn’t be bothered.
03. Only text and hyper-links can be included in the knowledge articles.
Sorry, you can’t attach a script / Word documents / Visio diagrams / Pictures / Videos in OpsMgr KB articles. they are only text based.
04. Users can only create one (1) company KB per OpsMgr workflow and each Company KB is associated to only one (1) workflow
There’s a 1-to-1 relationship between KB articles and OpsMgr workflows (if the Company KB is created in the operations console). It is possible that you have many very similar monitors in your environments. i.e. In my environment, I have two (2) “Average Wait Time” monitors for SQL DB engines:
One of these monitor is targeting SQL 2008 and the other one is targeting SQL 2012. If you are to write a company KB, you will need to write 2 separate ones – One for each monitor, although the content could be exactly the same.
05. The KB article is only available WITHIN the OpsMgr management group Where it is created. There is no way to share it between multiple MG’s and it cannot be access outside of OpsMgr
Often, when I introduce OpsMgr Company Knowledge to support teams, the response I get is “but we’ve already got all our KB’s in xxxxx (name of a system).” Why would they have to adopt a new system and spend the effort of migrating everything to OpsMgr? And after everything is migrated, you can only access these information when you have access in OpsMgr? Additionally, same as overrides, when you created an override in one management group, it will not automatically appear in another management group. In my employer’s environment, I’ve already lost count how many Test / Dev / Production, 2007 / 2012 management groups we have in total. to keep Company KB’s consistent among all these management groups is a nightmare!
06. KB articles are not searchable.
That’s right, unlike other knowledge base products, you cannot search for a specific phrase among all KB articles. Well, it is probably possible via a script using SDK. But it is not something a normal SCOM operators can do.
07. No versioning control
As Company KB’s are stored in unsealed MPs, version control does not apply to Unsealed MPs. Plus, once you’ve updated a Company KB, unless you’ve saved the MP before modification, there is no way you can roll back to the previous version, and it is hard to track who created / updated it.
08. It is complicated to setup a computer to enable Company KB editing
To be able to create / edit Company KB’s, the computer requires the following applications:
- OpsMgr Operations Console
- Visual Studio Runtime for Office
- 32-bit Microsoft Word
I always get confused on which version of Visual Studio Runtime for Office and MS Word is required for which version of OpsMgr. I had to google the requirements when every time I need to set one up. Currently, Word 2013 is not supported. So in my lab environment, I had to install Word 2010 on one machine where Office 2013 is installed everywhere else.
Using an External Knowledge Base Solution
There are many Knowledge sharing / Wiki solutions that you can choose from such as Microsoft SharePoint, WordPress or other Wiki applications. In fact, you may have already started using an external OpsMgr KB solution that you are not aware of – There is a very well-known community initiative called “ResearchThis!”. Essetially, ResearchThis is a collection of OpsMgr KB articles hosted on a WordPress site (www.systemcentercentral.com) and a MP which offers an alert task allowing OpsMgr operators to search support articles based on alert name. If you are using ResearchThis!, you have already adopted an external KB solution for your OpsMgr solution.
I believe by taking the Knowledge Base management out of OpsMgr and move to an external system that is designed for managing and sharing knowledge, we can overcome all the “Cons” I’ve listed above:
01. KB articles are not saved in management packs. less management packs = less maintenance effort.
02. Access to the Knowledge Base is controlled outside of OpsMgr. i.e. if you are using MS SharePoint, you can grant different level of access to users Active Directory IDs / Groups. People no longer needs access to OpsMgr to be able to share their knowledge. Therefore, no more excuses like “I don’t have access in SCOM” when you ask why didn’t they add a solution in the Company KB”.
03. Your KB articles are no longer text based. Depending on your external KB systems, you may add pictures, videos, attachments etc. to the article.
04. You can create multiple KB articles for a single alert, or a single KB article for multiple alerts, it is flexible.
05. For systems like WordPress and MS Sharepoint, not only you are able to search, but you can also use tags to further categorise your KB articles.
06. If you are running multiple OpsMgr management groups, you don’t need to have multiple instances of your KB solution of the choice. You can use a centralised knowledge base across all your management groups (and systems other than OpsMgr). personally, this is the what interests me the most based on my experience with my current employer. Not only we have many management groups (mixture of 2007 and 2012), but we also have different teams supporting same / similar systems. i.e. different support teams supporting Windows OS and other LOB applications. Some of these teams are located in different sites and they don’t know each other. By creating a centralised knowledge base will help different support teams to share their knowledge and increase productivity. – Or help to create a virtual team as what management would like to say.
07. Version Control is a standard feature in most of these systems (i.e. WordPress or MS SharePoint). You can easily roll back to previous versions and audit who created / updated the particular article.
08. No additional configuration is required on OpsMgr operators PCs. Well, it is probably more complicated to setup a SharePoint Wiki than to install all required components on a PC to enable Company KB editing. but the good thing is, you only need to do it once.
09. it is easy to extend your external KB solution to other OpsMgr management groups. i.e. If you would like to use “ResearchThis!”, all you have to do is to import the ResearchThis MP, which only contains few console tasks.
How To Setup an External Knowledge Base
Well, it depends on what type of system you’d like to implement. I don’t think anyone can write a single guide to cover it. Having said that, there are few examples out there we can refer to:
WordPress Example: ResearchThis!
Sharepoint Example: Use SharePoint Wiki as SCOM Knowledge Base (by Stefan Koell)
In my lab, I have setup a SharePoint 2013 Enterprise Wiki site as per Stefan Koell’s post.
Additionally I created a management pack which contains 4 tasks:
- Open Knowledge Base (as per Stefan’s post)
- Search Knowledge Base (Search the SharePoint Wiki Site)
- Search in Google
- Search in Bing
- Search in ResearchThis!
The reason I didn’t use ResearchThis MP is because tasks in ResearchThis! MP only launches Internet Explorer (as Shown below):
And I created same tasks that launches user’s default web browser:
I have created this MP in VSAE and sealed it with a key. In a real life environment, I’d probably do the same and included this MP as a standard MP which should be imported into all the management groups within an organisation.
Tip: If you’d like to use ResearchThis! MP, but you don’t want OpsMgr operators to accidentally post sensitive information to the ResearchThis! KB because of the security concerns, you can simply remove the “Share This” task from ResearchThis! MP since it is unsealed.
Marnix Wolf has written an good article on how to create this type of console tasks a long time ago: http://thoughtsonopsmgr.blogspot.com.au/2010/09/scom-tasks-part-iv-lets-create-simple.html. If you’d like to use your default browser instead of IE, please use the command line from Rikard Ronnkvist’s comment in this post (the first comment).
As I stated in the beginning, this post is not a “How-To” guide. The intention is to help people making design decisions when designing OpsMgr solutions. This post is 100% based on my own experience and opinion. Please feel free to contact me if you want to a further discussion on this topic.
Last night, I got an email from Microsoft and I have received the MVP Award for System Center Cloud and Datacenter Management. I’m so excited and honoured that I have been presented this wonderful award.
I started blogging in this blog 4 years ago because I thought I have learnt a lot from the community and I have something to share. I still remember the day when I sat on the couch setting up this blog while watching South Africa FIFA World Cup back in 2010. now 4 years later, I received this award during Brazil World Cup 2014 .
I’d like to thank everyone in the System Center community for sharing and caring. The following blogs and web sites have been particularly helpful to me along the way (in alphabetical order):
- Authoring Friday
- Bob Cornelissen’s Blog
- Brian Wren’s MPAuthor
- Cameron Fuller’s Blog
- Jonathan Almquist’s Blogs (Old, New)
- Kevin Greene’s Blog
- Kevin Holman’s Blog
- Marnix Wolf’s blog
- Matthew Long’s Blog
- Michel Kamp’s Blog
- OpsMgr Product Team’s Blog
- Russ Slaten’s Blog
- Stefan Roth’s blog
- Stefan Stranger’s Blog
- Steve Rachui’s Blog
- Tim McFadden’s Blog
I am looking forward to the next 12 months to come and I’ll definitely be even more involved in such a wonderful community!
By the way, it is good to see my old colleague and friend, the Inside Podcast host Dan Kregor also received his MVP award for the first time yesterday. Congrats Dan!
Tim McFadden has just released the SCOM 2012 Maintenance Mode Scheduler Version 3.
Tim and I updated the original management packs to cater for this release. The Dashboard MP has a new dashboard for version 3 which allows users to select a windows computer object from the state widget and create a maintenance mode schedule from the PowerShell contextual web browser widget:
The new MPs are included in the msi. they are located in “C:\Program Files\SCOM 2012 Maintenance Mode Scheduler\Management Packs” folder once the msi is installed.
My Upgrade Experience
I upgraded all 4 instances at work today. While I was upgrading it, I noticed that after the in place upgrade, all the settings are gone. I had to re-enter the following information:
- Management Server address
- SQL Server Address
- Database Name
- SDK User name and password
- License Key
- various tick boxes from admin.aspx page.
- IIS .Net authorization rules
Therefore, to avoid unnecessary downtime, I’d recommend you to have all these information ready before the upgrade.
Because we have multiple management groups at work, I have manually edited the WebHeader.png and WebHeader2.png files in “C:\inetpub\wwwroot\MMWeb\Content” and added a custom title on these image files so users can easily identify different instances for different management groups:
Last month, in TechEd North America, Cameron Fuller demonstrated a PowerShell script to search and remove obsolete MP references from an unsealed management pack. The script was written by Cameron’s colleague Matthew Dowst. You can watch Cameron’s presentation here and get the script here.
After TechEd, Cameron emailed me and suggest me to add this script into my OpsMgr Self Maintenance management pack. So before I built this functionality into the Self Maintenance MP, I have written a similar stand-alone script as a proof-of-concept.
The differences between my version and Matthew Dowst version are:
- No need to export and re-import unsealed management packs: My script directly reads and updates MP contents using SCOM SDK. therefore unsealed MPs don’t need to be exported and re-imported.
- Scan through all unsealed MPs: My script go through all unsealed MPs rather than individual XML files.
- Option to backup MPs before changes are made: the script accept parameters to backup original unsealed MPs before any changes are made.
- Option to increase MP version or keep version the same: Users can choose whether the MP version should be increased.
- Allow test run (-WhatIf): Users can use –WhatIf switch to test run the script before changes are made.
- MP Verify: the script verifies the MP before and after changes. if MP verify fails (including pre-existing errors), no changes will be made to the particular MP.
- Allow Users to customize a “white list” for common MPs: When obsolete references are detected for the “common management packs” defined in the CommonMPs.XML (placed in the same folder as the script), these references will be ignored. This is because these common management packs are referenced in many out-of-box unsealed management packs by default. Additionally, since it is very unlikely these management packs will ever be deleted from the management group, therefore it should not be an issue when they are referenced in other management packs. Users can manually add / remove MPs from the list by editing the CommonMPs.XML. I have pre-populated the white list and included the following MPs:
You can run this script on any computers have OpsMgr 2012 console /agent / management server installed. The script includes a help documentation. you can access it via:
get-help .\MPReferencesCleanUp.ps1 –full
#1. Test run using -WhatIf: .\MPReferencesCleanUp.ps1 -ManagementServer “OPSMGRMS01″ –BackupBeforeModify –BackupLocation “C:\Temp” -IncrementVersion –WhatIf
#2. Real run without –WhatIf: .\MPReferencesCleanUp.ps1 -ManagementServer “OPSMGRMS01″ –BackupBeforeModify –BackupLocation “C:\Temp” –IncrementVersion
The script can be downloaded HERE.
As I mentioned in the beginning, the next version of the OpsMgr 2012 Self Maintenance MP will have the ability to detect and remove these obsolete references. The MP is pretty much done. I’ve sent it to few people to test. I should be able to publish it in few days. Despite the new functionalities of the self maintenance MP, this script will still be a good standalone tool to run ad-hoc when needed.
I’d like to thank the following people for testing and advices provided to this script (in random order):
- Cameron Fuller
- Raphael Burri
- Marnix Wolf
- Bob Cornelissen
- Dan Kregor
I also want to thank Matthew Dowst for the original script and Matthew Long for his blog post where I got the ideas from.
Lastly, as always, please feel free to contact me if you have questions / issues.