Happy new year! Another year is gone and I wanted to share the blog stats with my fellow readers and sponsors. Thanks for your support, the many interesting discussions, your endurance and patience Image may be NSFW. Clik here to view..
I decided to do a VSAE series that explains how to use the Visual Studio Authoring Extensions to extend and customize Service Manager. This is indeed an excellent extension when Visual Studio is your Service Manager authoring tool! If it’s not, it’s definitely worth looking at it, and the System Center VSAE help you being successful.
First you need to install Visual Studio 2010. After that, download and install the Visual Studio Authoring Extensions from here. Now start Visual Studio and create a new Project. Select “Service Manager 2012 Management Pack”, select name and location for the project and the solution.
When the project is created, it contains two references. These will be used in the “Manifest” area of the Management Pack to reference to other Management Packs.
A new file is added to the project which holds the class definition. The cool thing when using VSAE is, that the MP elements are stored in different MP fragment files. Compared to one big XML file, this makes it more transparent and elements can be found and edited much faster. At the end when the MP is built, everything is glued together into a single XML-, MP- or MPB-file.
When you double click on the new item it opens and can be edited. The template contains a class example that helps creating your very own class. Also, IntelliSense is available to simplify the authoring process.
In this example I will create a new class called “Car” which will later be used to store information and relationships about car CIs in the CMDB. That means that some things need to be changed from the example class. Because I want to add another CI class, I need to derive from the Configuration Item class System.ConfigItem. Because this class lives in another Management Pack, we need to reference to this class to get the base class. This is one of the default references that is already there. The alias is predefined and is called System.
Now as the class is ready it’s time to deploy the Management Pack to the Service Manager Management Group. This can be done directly from Visual Studio. Configure the properties of the project.
If needed, the Management Pack can be automatically sealed before it is deployed to the Management Group. This makes sense if the MP holds type definition. In this example, I choose to seal the MP, define the path to the strong name key file which is needed for the sealing process. You can get more information about that here. As a last step, I change the Configuration and Platform options as shown in the Screenshot.
Next I need to select the Management Server to connect to for the automatic deployment process. Just add a Management Server and specify the credentials.
Now we are ready to go. First, save all the files of the project, then build the solution by hitting F6 or using “Build Solution” from the “Build” menu. This will create your Management Pack from the different fragments and store it in the bin\release folder within your project folder. There are several files created: a XML file (unsealed), if the option was selected a MP file (sealed) and a MP bundle file (MPB, to bundle additional resources with the Management Pack).
Now, to deploy the MP bundle to the Management Group you need to start the debugging process in Visual studio. If you specified to use different credentials to connect to the Management Group, you are prompted for those.
Because I only created a class in this example, we are not able to see anything for now. But you could now start creating views and use the created class to display and create car CIs. Something like this.
In part 2 of this VSAE series I will demonstrate how to create folders with custom images to the Management Pack to have a container ready for creating views later on. Make sure you take a look at the other parts too as I will not go into some details again.
When creating new Folders in Management Pack you need to define what the parent folder will be. In this example I want to create a new folder under “Configuration Items”.
By using Powershell with smlets you can quickly find out all the needed details. By using the cmdlet “Get-SCSMFolder” with some filter you can see the ID of the folder you want to use as parent. Also, you need to find out in what MP this folder lives.
Before we can use the parent folder we need to make sure that we have a reference to the MP where the folder lives in. In this example, there is no existing reference. The MP we are talking about is part of a MP bundle that is stored in the SCSM installation directory. So let’s add a reference to this MP bundle.
A warning window may appear telling you that some references could be added, some maybe not. In this case one MP of the bundle could not be referenced because it is unsealed which is a regular behavior as referencing to unsealed MPs is not possible. More important is the fact, that the MP that the folder we are looking for was added successfully.
Now change the code a little bit. First, remove the “Folder Items” area, this is not needed for now. Then the ID as needed and also the Accessibility of the Folder to “Public”. Then also change the parent folder. By using the MP alias you reference to the MP, then set the ID of the folder.
The folder is there, but no image is assigned to it which makes it a bit boring Image may be NSFW. Clik here to view. So let’s add an image.
Step 2 – Assign a folder image
First you need an image. For this example I created a simple 24×24 png file and saved it to a folder within the project folder. Now a new MP Fragment needs to be added. Because there’s no template available OOB for Image references, we need an empty MP fragment. Keep in mind that you can create your very own templates or snippets if you want to re-use fragments for later projects. I will demonstrate this in later post.
Now we need to do some XML hacking, but thanks to IntelliSense this is pretty easy. First we need to add the Image (Filename) in the Resource section. Then we need an Image Reference to assign the Image to the Folder (Folder ID).
VSAE offers multiple options to create views. You could use the View template or an empty Management Pack Fragment template. For this example however, I decided to use a snippet template to demonstrate how this can be used to create your own templates for your needs. It is indeed very powerful and can save you lots of time for repetitive tasks.
The template will show some code. The idea behind is, that you can replace hard coded information with place holders that are later configured in the GUI. There are three different place holders available:
#text# –> This will be replaced by a value that is entered in the GUI later (e.g. the name of a new view)
#alias# –> This can be used to reference to another MP (e.g. System)
#choice# –> This allows to select from a list of predefined values (e.g. Accessibility = Public/Internal)
Check the sample code first, then delete it an paste your own code. I quickly created a view in the SCSM console, saved it to a MP, then exported it. This is more or less the code you can paste here. After the code is pasted and the needed tidy up has been done, remove the hard coded information and use the mentioned place holders.
In this example MP, the view, the class and the parent folder for the view live in the same MP, therefore I removed the referencing to other MPs from the code.
After saving the Snippet template, we can now use in together with another snippet. Add a new Snippet to the project, then select your prepared snippet
Now we are ready to add a new view using the GUI that uses the snippet template in the background. A cool thing is, that you can add views by using CSV Import which allows you to create hundreds of objects within minutes.
Now build and deploy the MP. The new view should be visible in the SCSM console. If needed, add some cool images. as I already went through the needed steps in this series, I will not go into any details again. Please read the relevant posts.
Nice! Now, in a perfect world it would make sense to separate classes from views, but in this example I used a single sealed Management Pack for everything. Stay tuned for the next part!
I had this error today while installing a new SCSM SSP Server in my lab. At the end it was a pretty simple thing to fix, but it cost me some time to figure it out. Just wanted to share with you in case you run into the same thing.
I have the following setup
Two Management Servers with SCSM 2012 SP1 based on Windows Server 2012
One SQL Server with SQL Server 2012 based on Windows Server 2012 hosting the Service Manager database
One SharePoint Foundation Server based on Windows Server 2008 R2
I tried to install SCSM with SP1 on the SharePoint Server to build a brand new SSP and got the following error:
Some binging and it turned out to be a problem with the combination of SharePoint Foundation 2010 RTM and SQL Server 2012 RTM. The resolution was quiet simple: Installing SharePoint Foundation 2010 Service Pack 1. After that, everything went smoothly and the Web Components could be installed. SSP is now up and running.
Lessons learned for me: update all components in the environment even when it’s only a lab … what a greenhorn mistake Image may be NSFW. Clik here to view.
In two weeks I will attend the MVP Global Summit 2013 in Redmond and Bellevue/USA. For this event, Microsoft invites all MVPs worldwide (approx 4000) for a great week of learning, sharing and having fun! For me it’s a great opportunity to meet people that I’m connected with from all over the world in person. More information available here –> http://www.2013mvpsummit.com/.
Starting now, I accept orders for famous swiss chocolate Image may be NSFW. Clik here to view.
“How can I use SCORCH to link Parent Incidents with Child Incidents?” seems to be a common question that I get a lot. So I decided to write a quick post on this topic. In this example I will use two Incidents that will be linked together, but you can of course modify this basic procedure for your own need. The only requirements are that you have SCSM and SCORCH up and running together with the SCSM Integration Pack.
First, I created 2 Incidents by using the console.
Because 1 Incident (IR1793 – Outlook cannot connect to Exchange Server) is a direct result of Incident 2 (IR1795 – Exchange Server down), it can make sense to link them together. This is especially the case when more and more users start calling Service Desk because they cannot use Outlook anymore.
The procedure to get to the result is as follows:
Declare one Incident (IR 1795) as a Parent Incident
Add Child Incident (IR 1793) to the Parent Incident
Here I configure the runbook parameters. In this example I use two parameters, one is the ID of the Incident that will become the parent, the other one is the ID that will become the child.
Now we have to get the Incident Object that will become the parent from the Service Manager database. Use class “Incident” and filter based in on the ID. Use published data from “Initialize Data”.
The next activity will mark one Incident (IR1795) as the parent Incident. For this we must use Published Data and get the SC Object GUID of Incident 1. Then we update the property “is parent” to “true”.
As a last step, we can link the Incidents together. In the “Create Relationship” activity we have to select the source and target class (in this case “Incident” for both) as well as the relationship type “Has Parent Work Item”. To make sure the correct objects are linked together we must again use published data (SC Object GUID) to define the source and target object. The source is the SC Object GUID of the Child Incident, the target the SC Object GUID of the parent Incident.
When you are dealing with Service Manager or especially CMDB’s you know that it’s all about relationships. Service Manager delivers tons of different relationships between object classes that will help you to build the relationships to reflect your needs. Of course, most of the time these relationships are not enough and you need to add many additional relationships on your own. But you must know what relationships exist out of the box, what classes they relate together and how they work.
To make things easier I put together an excel spreadsheet that lists the most important (not all) relationships in Service Manager together with the following information:
Relationship Display Name and Internal Name
Source Class
Destination Class
Relationship Type
Management Pack information where the Relationship lives
You can download the file from my SkyDrive. Maybe I will update the spreadsheet over time. If not, feel free to download and update it on your own Image may be NSFW. Clik here to view.
We have lots of Service Manager customers that have comprehensive CMDBs where they store all kind of object types and relationships. When defining your very own classes you know that every class should have a key property. Often this is property is called something like “ID” and will contain an auto incrementing value, e.g. “Car1”, “Car2” etc. so that you don’t have to take care about setting a unique value for every instance. Default classes also have key properties, but not always a real ID. The windows computer class uses the computer principal name as a key property. This can be confusing when you re-install computers or re-use computer names – this is especially confusing when accounting comes into play. So why not having an auto incrementing ID property there too to uniquely identify assets over time?
First add a new property to an existing class. In this example I use the Windows Computer Class and add a string property called “Computer ID”. The Default value is set to “Comp{0}” and used to automatically set a value. To make sure the value increments automatically, I set the auto increment option to true. The property cannot be set as a key property because this is already defined for this scenario.
Now I seal and import the Management Pack. The property is instantly available. All existing Windows Computer objects will have the default value set, but because the system does not know about the auto incrementing yet, it really just sets the value “Comp{0}” for all existing instances. This makes no sense. So first of all, I want to set a real value for these objects by using a simple script.
Now we are running into a problem. When a new Windows Computer is created manually, the system will auto set a value and use an incrementing number that is already used by another object. The problem is that the script did indeed change the values, but because the objects were already existing objects, the system still thinks that it has to use the first number from the auto increment range.
So before we start creating new Windows Computer objects (either manually, CSV import or by using some connectors), we have to increase the auto increment number to another starting point – higher that the highest number we are already using. This can only be done by a direct database change – nasty, but there’s no other way to do it. Travis Wright, Service Manager guru and my well respected MVP Lead at Microsoft, has written a post long time ago for SCSM 2010, but the procedure is still the same for SCSM 2012. Please keep in mind that this is an absolutely unsupported approach! But when you are deep in Service Manager, you already know that you have to accept that fact – Exchange Connector, IDataItem etc., you know what I mean Image may be NSFW. Clik here to view.
If you run this SQL query against the Service Manager database, you will get a list of all incrementing values from all classes and the next value that will be used.
By using another SQL statement, the value can be updated to a value that fits your needs. Make sure you use the correct IDs from the first query.
update AutoIncrementAvailableRange set FirstAvailableValue = 1000 where ManagedTypeId = ’4364F5B6-7A8E-549E-4B66-9BECF551B346′ and ManagedTypePropertyId = ’2CE46CF5-FD34-F16C-FC72-3E51EFF43675′
Now as the new value is set and a new Windows Computer is created, the auto incrementing value should be set correctly.
Many of my customers start their Service Manager implementation by implementing Configuration Management first. This indeed makes sense, because as soon as objects and relationships are available in the CMDB and under change control, they know what’s going on behind the scenes and get the needed transparency for the infrastructure and their services. And of course they have an excellent base for supporting their processes, e.g. Change Management, Incident Management or Request Fulfillment. The big question here is how all these objects and relations are brought to the CMDB. Well, we all know that one cool thing about Service Manager is the fact that we have different connectors available to easily bring objects from ADDS, SCCM or SCOM to the CMDB.
The HP ProLiant Management Pack for SCOM discovers physical ProLiant Servers and monitors them. By using the SCOM connector in SCSM you have all those Servers in the CMDB within minutes. But I often face customers that either do not have all ProLiant Server monitored by SCOM or are running older ProLiant Server for ESX (why ever …) that are not discovered. One thing you might think of is “Hey easy, I just create these ProLiant CIs manually in the Service Manager console”. Good thought, but impossible.
When ProLiant objects are synched from SCOM to SCSM, you can create views as needed to display those – easy as 1-2-3.
Once there, you will also get a “Create HP ProLiant Server” task. Hit it to create a new object … bummer! You will get an error message telling that this is not possible because the objects of the ProLiant class are somehow hosted and there’s no hosting object present.
Let’s investigate this a little bit. When looking out for relationships you will soon find a relationship called “Windows Computer Hosts HP ProLiant Server”. It seems that you first need a Windows Computer object that will later host the ProLiant object. Unfortunately this cannot be configured in the GUI. So we need some PowerShell magic, a script that will create a Windows Computer object and a hosted HP ProLiant Server object at the same time. Sounds easy? Not that easy, but here are the steps you need.
Keep in mind that you can use this procedure not only for HP ProLiant Server objects but for any kind of other objects where you run into the same thing.
Step 1 – Create a Type Projection for the creation process
Because we will have to create both objects at the same time, we need to create a Type Projection with the Windows Computer class as the seed class and the relation to the HP ProLiant Server object. This could look something like this.
Open and check the details. Don’t let the screenshot below confuse you. This is from an environment with tons of extensions that is using custom forms. So your form may look different. But your form should hold the defined data from the script. Feel free to add values for all other attributes as needed.
Cool, with this procedure you can bring all HP ProLiant objects to the CMDB within minutes, even those that are not managed by SCOM. The same procedure also works for other object types/classes. Just change Type Projection Names, Attributes etc. and you are ready to go!
For some more details about the described procedure also check out this blog post from Travis.
The MVP program allows you to get in touch with lots of specialists, enthusiasts and geeks, some of them becoming good friends over time. I really enjoy to be part of this family and am looking forward for an other exciting year!
Service Desk employees are often faced with the situation that they do not know if the user that is calling is reporting an incident or has a request for service. By using a good questioning technique he can try to find out what the caller really wants and can then open the correct ticket. But until it is clear what the caller really needs or wants, no ticket can be opened because the decision if it will be an Incident Request or a Service Request must be made first. There is no out of the box “conversion” if the ticket afterwards. So how to deal with that?
To make a Service Desk employees life easier we created an Intake Form that allows to register all relevant information before making choice about the correct ticket type. The information can be entered in some form and at the very end the employee can choose if it is an Incident or a Service Request. If needed, the requests can also be resolved/completed immediately (quick fix).
When “OK” is hit, the selected request is created. If it is not resolved/completed automatically, the ticket is opened and more information can be added if needed.
Another thing that makes a Service Desk guys life easier …
Credits to Stefan Johner (http://scsmlab.com, @scsmlab), one of our Cloud Engineers who build the form and and logic behind. Also many thanks to Kurt van Hoecke (http://authoringfriday.com, @BunkCo) and Rob Ford (http://scsmnz.net, @Manxferdey) for the great input and the interesting discussions around this topic.
If you are a Microsoft System Center enthusiast like me, then you are faced with the challenge to install all those products over and over again. Well, when using the PowerShell Deployment Toolkit this gets a bit easier because it helps you to deploy the complete suite in one hour – wow! I will post some additional information on how to use the PDT later on this blog. For now, enjoy this video (not recorded by me) or get more information here –> http://blogs.technet.com/b/privatecloud/archive/2013/02/08/deployment-introducing-powershell-deployment-toolkit.aspx
Have you ever heard of the famous System Center Universe (SCU) hosted by Catapult Systems? If not then it’s about time to visit http://www.systemcenteruniverse.com and check out the excellent content.
After talking to Catapult Systems we decided to bring this great event to Europe. We are now in the planning phase, talking to partners, speakers, sponsors etc. that are interested to partner with us and help making this event coming true. Visit the event web site where we will start publishing more information shortly!
As soon as it comes to custom reporting in Service Manager, you are sooner or later dealing with SQL queries to get the needed data out of the data warehouse and into your reports. One of my customers came up with the request for a business service report that allows him to display information about business services with all related objects, e.g. service owner, contacts, related items etc. Knowing the data warehouse model helps here, but there are still some things that you have to take care about when it comes to reporting on 1:many relationships.
So lets go with the first query that gets Business Services together with some other properties and relationships out of the data warehouse.
SELECT DISTINCT SERVICE.DisplayName as “Display Name”, USERCIOWNED.DisplayName as “Service Owner”, USERCISERVICEDBY.DisplayName as “Service Contacts”, USERCIIMPACT.DisplayName as “Service Customers”, CIRELATED.DisplayName as “Related CIs”
FROM ServiceDimvw as SERVICE
– map serviceentitydimkey to configitementitydimkey to get configitemdimkey INNER JOIN ConfigItemDimvw CIDIM ON SERVICE.EntityDimKey = CIDIM.EntityDimKey
– config item owned by user –> Service Owner LEFT JOIN ConfigItemOwnedByUserFactvw CIOWNEDBY ON CIOWNEDBY.ConfigItemDimKey=CIDIM.ConfigItemDimKey LEFT JOIN UserDimvw USERCIOWNED ON USERCIOWNED.UserDimKey=CIOWNEDBY.ConfigItemOwnedByUser_UserDimKey
– config item serviced by user –> Service Contact LEFT JOIN ConfigItemServicedByUserFactvw CISERVICEDBY ON CISERVICEDBY.ConfigItemDimKey=CIDIM.ConfigItemDimKey LEFT JOIN UserDimvw USERCISERVICEDBY ON USERCISERVICEDBY.UserDimKey=CISERVICEDBY.ConfigItemServicedByUser_UserDimKey
– config item impacts user –> Service Customers LEFT JOIN ConfigItemImpactsCustomersFactvw CICUSTOMERS ON CICUSTOMERS.ConfigItemDimKey=CIDIM.ConfigItemDimKey LEFT JOIN UserDimvw USERCIIMPACT ON USERCIIMPACT.UserDimKey=CICUSTOMERS.ConfigItemImpactsCustomers_UserDimKey
– config item related to config item –> Related Config Items LEFT JOIN ConfigItemRelatesToConfigItemFactvw CICI on CICI.ConfigItemDimKey=CIDIM.ConfigItemDimKey LEFT JOIN ConfigItemDimvw CIRELATED on CIRELATED.ConfigItemDimKey=CICI.ConfigItemRelatesToConfigItem_ConfigItemDimKey
WHERE SERVICE.displayname IS NOT NULL ORDER by SERVICE.displayname
The query returns all business services with some property values and relationships, but depending on the exact configuration of a business service, there can be multiple rows per business service because of normalization. If you have a business service that has 2 related items, the query will return two rows for that service, both rows holding one of the related items. When it comes to reporting this can be painful because there are no possibilities that allows you to group or concatenate all those information of a business service together and return it as one single line. So the query needs some modification. By using temporary tables to store query results, it is possible to concatenate the different values.
SELECT DISTINCT SERVICE.DisplayName as “Display Name”, USERCIOWNED.DisplayName as “Service Owner”, USERCISERVICEDBY.DisplayName as “Service Contacts”, USERCIIMPACT.DisplayName as “Service Customers”, CIRELATED.DisplayName as “Related CIs”
INTO ##Table1 FROM ServiceDimvw as SERVICE
– map serviceentitydimkey to configitementitydimkey to get configitemdimkey INNER JOIN ConfigItemDimvw CIDIM ON SERVICE.EntityDimKey = CIDIM.EntityDimKey
– config item owned by user –> Service Owner LEFT JOIN ConfigItemOwnedByUserFactvw CIOWNEDBY ON CIOWNEDBY.ConfigItemDimKey=CIDIM.ConfigItemDimKey LEFT JOIN UserDimvw USERCIOWNED ON USERCIOWNED.UserDimKey=CIOWNEDBY.ConfigItemOwnedByUser_UserDimKey
– config item serviced by user –> Service Contact LEFT JOIN ConfigItemServicedByUserFactvw CISERVICEDBY ON CISERVICEDBY.ConfigItemDimKey=CIDIM.ConfigItemDimKey LEFT JOIN UserDimvw USERCISERVICEDBY ON USERCISERVICEDBY.UserDimKey=CISERVICEDBY.ConfigItemServicedByUser_UserDimKey
– config item impacts user –> Service Customers LEFT JOIN ConfigItemImpactsCustomersFactvw CICUSTOMERS ON CICUSTOMERS.ConfigItemDimKey=CIDIM.ConfigItemDimKey LEFT JOIN UserDimvw USERCIIMPACT ON USERCIIMPACT.UserDimKey=CICUSTOMERS.ConfigItemImpactsCustomers_UserDimKey
– config item related to config item –> Related Config Items LEFT JOIN ConfigItemRelatesToConfigItemFactvw CICI on CICI.ConfigItemDimKey=CIDIM.ConfigItemDimKey LEFT JOIN ConfigItemDimvw CIRELATED on CIRELATED.ConfigItemDimKey=CICI.ConfigItemRelatesToConfigItem_ConfigItemDimKey
WHERE SERVICE.displayname IS NOT NULL ORDER by SERVICE.displayname
SELECT DISTINCT t1.[Display Name], [Service Owner_], [Service Contacts_], [Service Customers_], [Related CIs_] INTO ##Table2 FROM ##Table1 as t1
CROSS APPLY ( SELECT DISTINCT [Service Owner] + ‘, ‘ FROM ##table1 t2 WHERE t2.[Display Name] = t1.[Display Name] FOR XML PATH(”) ) T21 ( [Service Owner_] )
CROSS APPLY ( SELECT DISTINCT [Service Contacts] + ‘, ‘ FROM ##table1 t3 WHERE t3.[Display Name] = t1.[Display Name] FOR XML PATH(”) ) T31 ( [Service Contacts_] )
CROSS APPLY ( SELECT DISTINCT [Service Customers] + ‘, ‘ FROM ##table1 t4 WHERE t4.[Display Name] = t1.[Display Name] FOR XML PATH(”) ) T41 ( [Service Customers_] )
CROSS APPLY ( SELECT DISTINCT [Related CIs] + ‘, ‘ FROM ##table1 t5 WHERE t5.[Display Name] = t1.[Display Name] FOR XML PATH(”) ) T51 ( [Related CIs_] )
– clean commas UPDATE ##table2 SET [Service Owner_] = LEFT([Service Owner_], LEN([Service Owner_])-1) WHERE LEN([Service Owner_]) > 0
UPDATE ##table2 SET [Service Contacts_] = LEFT([Service Contacts_], LEN([Service Contacts_])-1) WHERE LEN([Service Contacts_]) > 0
UPDATE ##table2 SET [Service Customers_] = LEFT([Service Customers_], LEN([Service Customers_])-1) WHERE LEN([Service Customers_]) > 0
UPDATE ##table2 SET [Related CIs_] = LEFT([Related CIs_], LEN([Related CIs_])-1) WHERE LEN([Related CIs_]) > 0
This time, every business service only shows up once and all the values are concatenated. Now this query can be used to create your report, e.g. by using SQL Report Builder or something.
Looking forward to September 2013: For the first time, the event System Center Universe is held in Switzerland! During two days, IT professionals are supplied with the latest information about Microsoft System Center Cloud and Datacenter Management topics in 38 sessions. Registration is now open! Register for a seat now and benefit from the early bird discount.
The event will be held in Bern/Switzerland on September 16th and 17th 2013. Check out the web site for more information –> http://www.systemcenteruniverse.ch
Why should I attend?
During 2 days we present the latest information about Microsoft System Center Cloud and Datacenter Management topics. Learn how all these products are working, how they can be integrated and how you can use them in your own company to bring your IT infrastructure to the next level. Still unsure if this is the correct event to attend? Check this out:
The best of the best speakers from all over the world present Microsoft Windows, System Center and Windows Azure content
More than 15 Microsoft Most Valuable Professionals (MVPs), Microsoft Program Managers and Microsoft Consultants are presenting content
2 days, 2 keynotes and 36 breakout sessions in 4 parallel tracks
No marketing content but technical in-depth, real-world sessions
Meet the experts sessions (discussions, Q&A)
Sessions are presented in German and English
Networking options with other specialists and speakers
Cponsoring booths
Food & Beverages during the whole day
Exclusive Networking Party on September 16th
What about pricing?
No time wasting here. We only offer 1 package for attendees plus an early bird option:
Full 2-day pass (all inclusive), early bird price until June 30th –> CHF 399.00
Full 2-day pass (all inclusive) –> CHF 449.00
Prices are in swiss francs. Make sure you benefit from the early bird option if you know that you will attend. Additionally, the first 50 registered attendees will get a special gift!
Is a session list available?
We published the schedule but not a detailled session list yet. Sessions will be planned and announced after TechEd North America in June 2013.
Who are the event sponsors?
Without sponsors it would not be possible to organize and carry out an event like that. We are therefore pleased that we were able to inspire a number of sponsors for this event. The actual sponsors are:
Platinum Sponsors
Microsoft
Cisco
Gold Sponsors
Veeam
Provance
Some of the sponsors will be present at the event with a booth. Use this option to ask and talk about new or planned products with the manufacturers.
Who is the event host?
The event is completely planned and carried out by itnetx gmbh – Microsoft Gold Partner and Microsoft Switzerland Partner of the Year 2011 and 2012.
I started my blogging and social media career more than 2.5 years ago with the idea to share Microsoft System Center Service Manager stuff with the community. Because of the strong focus on Service Manager, I originally decided to use scsmfaq as my name for the blog and twitter handle. That was a good decision as has given me good visibility in the community. Of course I did not only share stuff, but also learned a lot from the community! So thanks for your feedback, questions and discussions during that time!
Now, System Center Service Manager is one very important part of Microsoft’s management story, but there are also lots of other products in the System Center suite that are part of management solutions. So I decided to move a little bit to the center of that and target other products as well. This is important because these days we are talking more about solutions that consist of multiple products that integrate. Therefore I now changed my blog address as well as twitter handle to marcelzehner.
So what can you expect from the future of this blog and my activities?
I love Service Manager and this will still be the main topic discussed on this blog. If you liked my blog so far, make sure you keep on reading. There will be no changes in this area. But in the future I will also share about Orchestrator, Operations Manager, SPF, Windows Azure Services for Windows Server and Windows Azure. This gives me great possibilities for discussions around private, public and hybrid cloud solutions.
So what should YOU change?
You also have to change some things to make sure you don’t loose information.
www –> Change your browser favorite to http://marcelzehner.ch (the old URL is redirected)
When using Microsoft System Center to manage VMware infrastructures you will very fast get in contact with the awesome SCOM management pack from Veeam. If you want to know more on how to install and configure this MP, you should take a look at this blog post over at scomfaq.ch. When you follow these steps you will have your VMware infrastrucure components fully discovered and monitored in SCOM. To use them from a service management perspective, we now need to bring them over to the Service Manager CMDB. Read on to learn how it works.
One important thing to know about this MP is that the classes are not the same compared to older versions of the MP. Veeam has rewritten most of the MP and tried to get rid of the old nworks names, id’s etc. That means that you have to take some extra steps when you already have Veeam MP 5.x in action. From a SCOM point of view, you will have to delete the old MPs and import the new ones. This will rediscover all the VMware objects. When syncing those to SCSM, this will generate new CIs in parallel to the old ones. Before deleting the old CI’s make sure you migrate the relevant information to the new CI’s.
Now let’s talk about bringing over the objects to the CMDB (without taking care of the old MP versions). First of all we need to import the appropriate MPs from the Veeam MP V6 into Service Manager. I imported the following two MPs:
Now we have to configure the SCOM connector and select the MPs that we want to sync over from SCOM. All objects that SCOM discovered so far will be brought over to the CMDB. I choose all MPs that I imported in step 1.
After running a full connector sync it’s time to create the appropriate views. Because we imported the MPs we have some classes available that might house interesting objects. Here are some class examples (display names) for which I created views.
SPF, short for service provider foundation, adds multi-tenancy capabilities to your System Center environment by offering a web service that in the backend will talk to other management products like System Center Virtual Machine Manager. To give users a good self service experience you can design a portal that communicates with SPF. Or if you want to save time you can use Windows Azure Services for Windows Server that contains different portals – one of them a tenant portal that allows new tenants to sign up and also order and manage virtual machines.
I will not go into any details how all these components are installed as there are already good articles out there. Check out this excellent series by Mark van Eijk.
In this post I’d like to focus more on the tenant objects and how they are managed. For this I will start with the sign up process on the Windows Azure Services portal to create a new tenant.
After a few seconds the tenant is created and is logged in automatically. Depending on the selected plan and it’s configuration, he will see different areas on the portal. In this case I selected a plan that only allows the creation of virtual machines and networks.
So the initial registration is done. But what happened in the background when the tenant was created? First, a new tenant was created in SPF. This can be checked by using the SPFAdmin PowerShell module available on the SPF server.
This tenant lives in the SPF SQL database. This can also be checked by checking the tenant table in the database. It displays more or less the same information as the cmdlet.
SPF will talk to SCVMM to deploy and manage virtual machines if the tenant requests it from the portal. Let’s check what happened in SCVMM so far. For that I use the VMM PowerShell module to connect to the SCVMM server and display the user roles.
As you can see, a user role (tenant) was created in SCVMM that has the same ID as the tenant in SPF. Whenever SPF initiates a connection to SCVMM to do work for a logged in user, this ID is used to identify the tenant in SCVMM. Good, so everything seems to be prepared. Let’s deploy a new VM from the tenant portal.
After some seconds you should see different jobs running in SCVMM that will deploy the new virtual machine. In this example the virtual machine creation job failed because the Hyper-V server was not running – doesn’t matter Image may be NSFW. Clik here to view.