<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Lukasz Rutkowski on Operations Manager</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/lukaszr/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/lukaszr/feed.xml</link>
    <description>A PFE point of view on System Center Operations Manager</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:44:29 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Operations Manager 2007 R2 end of mainstream support in one day!</title>
      <link>https://docs.microsoft.com/archive/blogs/lukaszr/operations-manager-2007-r2-end-of-mainstream-support-in-one-day</link>
      <pubDate>Mon, 07 Jul 2014 05:56:00 GMT</pubDate>
      <dc:creator><![CDATA[Łukasz Rutkowski]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/lukaszr/2014/07/07/operations-manager-2007-r2-end-of-mainstream-support-in-one-day/</guid>
      <description><![CDATA[I&rsquo;ve just realized that I&rsquo;m getting very old right now. It was just few drops of water...]]></description>
      <content:encoded><![CDATA[<p>I&rsquo;ve just realized that I&rsquo;m getting very old right now. It was just few drops of water ago when I first implemented Operations Manager 2007 RTM in one of the biggest banks in my country. Yetthose were the days when SCOM Guys were called &ldquo;<strong>Green Bar Watchers Club</strong>&rdquo; due to green bar showing the console &ldquo;is thinking of something, but none of us knows about what&rdquo;. Then there was SP1 which improved performance and finally there was R2 with tons of improvements, especially adding UNIX/Linux support &ndash; this is massive. SCOM 2007 R2 was a big success and tons of companies started to implement it in their environments, either as a test or comparison product to existing technology, or a fully sized production environment. Do you know how far ago this version went live? It was 2009. That was a good year. Been married on the same year!</p>
<p>But everything must be in a forseable future coming to an end. Same is with Operations Manager 2007 R2. There&rsquo;s a big date coming soon &ndash; 8th July 2014. That&rsquo;s tomorrow. For anyone reading this post after the date &ndash; maybe it&rsquo;s time for reflection? 8th July marks the date as <strong>end of Mainstream Support</strong> for the product. What is a Mainstream Support and how it differs from <strong>Extended Support</strong>? The table below will help you sort it out:</p>
<table style="width:512px;" cellpadding="2" cellspacing="0" border="1">
<tbody>
<tr>
<td valign="top" width="293">
<p align="center"><strong>Support Provided</strong></p>
</td>
<td valign="top" width="110">
<p align="center"><strong>Mainstream Support</strong></p>
</td>
<td valign="top" width="107">
<p align="center"><strong>Extended Support</strong></p>
</td>
</tr>
<tr>
<td valign="top" width="289">
<p style="margin-right:0px;" dir="ltr" align="center">Paid support (per-incident, per hour, and others)</p>
</td>
<td valign="top" width="113">
<p align="center">TRUE</p>
</td>
<td valign="top" width="109">
<p align="center">TRUE</p>
</td>
</tr>
<tr>
<td valign="top" width="285">
<p align="center">Security update support</p>
</td>
<td valign="top" width="115">
<p align="center">TRUE</p>
</td>
<td valign="top" width="111">
<p align="center">TRUE</p>
</td>
</tr>
<tr>
<td valign="top" width="283">
<p align="center">Non-security hotfix support</p>
</td>
<td valign="top" width="116">
<p align="center">TRUE</p>
</td>
<td valign="top" width="112">
<p align="center">Requires extended hotfix agreement, purchased within 90 days of mainstream support ending.</p>
</td>
</tr>
<tr>
<td valign="top" width="281">
<p align="center">No-charge incident support</p>
</td>
<td valign="top" width="117">
<p align="center">TRUE</p>
</td>
<td valign="top" width="113"></td>
</tr>
<tr>
<td valign="top" width="280">
<p align="center">Warranty claims</p>
</td>
<td valign="top" width="117">
<p align="center">TRUE</p>
</td>
<td valign="top" width="113"></td>
</tr>
<tr>
<td valign="top" width="280">
<p align="center">Design changes and feature requests</p>
</td>
<td valign="top" width="117">
<p align="center">TRUE</p>
</td>
<td valign="top" width="113"></td>
</tr>
<tr>
<td valign="top" width="280">
<p align="center">Product-specific information that is available by using the online Microsoft Knowledge Base</p>
</td>
<td valign="top" width="117">
<p align="center">TRUE</p>
</td>
<td valign="top" width="113">
<p align="center">TRUE</p>
</td>
</tr>
<tr>
<td valign="top" width="280">
<p align="center">Product-specific information that is available by using the Support site at Microsoft Help and Support to find answers to technical questions</p>
</td>
<td valign="top" width="119">
<p align="center">TRUE</p>
</td>
<td valign="top" width="114">
<p align="center">TRUE</p>
</td>
</tr>
</tbody>
</table>
<p></p>
<p>For more information it is advisable to contact your local Microsoft representative. What if you have SCOM 2007 R2 and you are thinking of moving forward? Here are some good resources you can start with: <a title="http://social.technet.microsoft.com/wiki/contents/articles/7809.system-center-2012-operations-manager-survival-guide.aspx" href="http://social.technet.microsoft.com/wiki/contents/articles/7809.system-center-2012-operations-manager-survival-guide.aspx">http://social.technet.microsoft.com/wiki/contents/articles/7809.system-center-2012-operations-manager-survival-guide.aspx</a>.</p>
<p>Remember &ndash; let SCOM be your friend!</p>]]></content:encoded>
    </item>
    <item>
      <title>How to get nice Logical Disk State View using PowerShell Grid Widget</title>
      <link>https://docs.microsoft.com/archive/blogs/lukaszr/how-to-get-nice-logical-disk-state-view-using-powershell-grid-widget</link>
      <pubDate>Wed, 18 Jun 2014 03:33:08 GMT</pubDate>
      <dc:creator><![CDATA[Łukasz Rutkowski]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/lukaszr/2014/06/18/how-to-get-nice-logical-disk-state-view-using-powershell-grid-widget/</guid>
      <description><![CDATA[Hi there after a long break. This time I’d like to share with you some nice example of using...]]></description>
      <content:encoded><![CDATA[<p>Hi there after a long break. This time I’d like to share with you some nice example of using PowerShell Grid Widget. There are already lots of good blog posts, just to mention Stefan Stranger’s walkthrough: <a title="http://blogs.technet.com/b/stefan_stranger/archive/2014/04/28/new-powershell-grid-widget-walkthrough.aspx" href="http://blogs.technet.com/b/stefan_stranger/archive/2014/04/28/new-powershell-grid-widget-walkthrough.aspx">http://blogs.technet.com/b/stefan_stranger/archive/2014/04/28/new-powershell-grid-widget-walkthrough.aspx</a> and official blog post of MOM Team: <a title="http://blogs.technet.com/b/momteam/archive/2014/04/24/new-widgets-and-dashboard.aspx" href="http://blogs.technet.com/b/momteam/archive/2014/04/24/new-widgets-and-dashboard.aspx">http://blogs.technet.com/b/momteam/archive/2014/04/24/new-widgets-and-dashboard.aspx</a>. There are already guides on how to create a nice widget view, so I will just briefly mention high-level steps needed to perform widget creation:</p>  <p>1. Create a Dashboard View with Grid Layout and 1 Cell in it.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/image_577BE32E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/image_5F00_577BE32E.png"><img title="image" style="margin-right:auto;margin-left:auto;float:none;display:block;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/image_thumb_3B6DB4F4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/image_5F00_thumb_5F00_3B6DB4F4.png" width="431" height="269" /></a></p>  <p>&#160;</p>  <p>2. Create a Widget inside of created Dashboard by clicking Add Widget in it.</p>  <p>3. Choose PowerShell Grid Widget layout.</p>  <p>4. Name it like “Windows Server Logical Disk State and Space”</p>  <p>5. In the Script pane insert following script:</p>  <p><em>$disks = Get-SCOMClass -Name &quot;Microsoft.Windows.Server.LogicalDisk&quot; | Get-SCOMClassInstance     <br />foreach ($disk in $disks)       <br /> {      <br />&#160;&#160; $query = GET-WMIOBJECT –query “SELECT * from win32_logicaldisk where DeviceID = &#39;$disk&#39;&quot; -ComputerName $disk.Path | Select-Object Size, FreeSpace      <br />&#160;&#160; $size = $query.Size      <br />&#160;&#160; $free = $query.FreeSpace      <br />&#160;&#160; $percent = $free / $size      <br />&#160;&#160; $pervalue = &quot;{0:P0}&quot; -f $percent      <br />&#160;&#160; $sizeGB = &quot;{0:N1}&quot; -f ($size / 1024 / 1024 / 1024)      <br />&#160;&#160; $freeGB = &quot;{0:N1}&quot; -f ($free / 1024 / 1024 / 1024) </em></p>  <p><em>&#160;&#160; $dataobject = $ScriptContext.CreateFromObject($disk, &quot;Id=Id,HealthState=HealthState,DisplayName=DisplayName,Server=Path&quot;, $null)     <br />&#160;&#160; $dataobject[&quot;% Free&quot;] = $pervalue      <br />&#160;&#160; $dataobject[&quot;Size (in GB)&quot;] = $sizeGB      <br />&#160;&#160; $dataobject[&quot;Free Space (in GB)&quot;] = $freeGB      <br />&#160;&#160; $ScriptContext.ReturnCollection.Add($dataobject)      <br /> }</em></p>  <p>6. Save the Widget and wait a moment.</p>  <p>Be aware that this widget will collect data only on the account you are logged in for those disks and if you need to get it done for disks in untrusted domain, workstations etc., you need to change script to pass proper credentials.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/image_6CFBB33A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/image_5F00_6CFBB33A.png"><img title="image" style="margin-right:auto;margin-left:auto;float:none;display:block;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/image_thumb_3EA4BE3E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/image_5F00_thumb_5F00_3EA4BE3E.png" width="562" height="225" /></a></p>  <p>So on each refresh the state dasboard will reflect the space and size on demand.</p>  <p>&#160;</p>  <p>&#160;</p>  <p><strong><em>Disclaimer:       <br /></em></strong><strong><em>This example is provided “AS IS” with no warranty expressed or implied. Run at your own risk.       <br />The opinions and views expressed in this blog are those of the author and do not necessarily state or reflect those of Microsoft.</em></strong></p>  <p><strong><em><font color="#ff0000">**Always test in your lab first**&#160; Do this at your own risk!! The author will not be held responsible for any damage you incur when making these changes!</font></em></strong></p>]]></content:encoded>
    </item>
    <item>
      <title>The Hyper-V 2008 and 2012 Management Pack issues</title>
      <link>https://docs.microsoft.com/archive/blogs/lukaszr/the-hyper-v-2008-and-2012-management-pack-issues</link>
      <pubDate>Tue, 26 Nov 2013 23:08:23 GMT</pubDate>
      <dc:creator><![CDATA[Łukasz Rutkowski]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/lukaszr/2013/11/26/the-hyper-v-2008-and-2012-management-pack-issues/</guid>
      <description><![CDATA[It’s been a while since I blogged something about SCOM and some issues found during implementations,...]]></description>
      <content:encoded><![CDATA[<p>It’s been a while since I blogged something about SCOM and some issues found during implementations, testing and playing with my beloved product. Recently I was busy doing lots of trainings, presentations not only on SCOM, but also SCVMM, Service Manager and Orchestrator, although SCOM is still my key goal in Microsoft. Throughout last three weeks I was able to install two System Center Operations Manager 2012 R2 environments where customers would like to replace Nagios with it. Well, funny enough, it was not the key goal, it appeared during configuration that Nagios can be replaced with SCOM and SCOM is even better. Oh well, it should a general truth, though :) </p>  <p></p>  <p>So this is first of blog posts about the issues I encountered and how to resolve them. At first the small production environment consisted of 50 servers. Most of them virtualized with XXX technology, though 7 servers were a Hyper-V node, 5 of them were 2008 R2 SP1, 2 were 2012. And the disrupt began. Immediately after both Management Packs for Hyper-V 2008 and 2012 were installed, 5 servers thrown out the following error:</p>  <p></p>  <p><strong><em>Alert: Operations Manager failed to start a process</em></strong></p>  <p><strong><em>Source: HYPERV1.my.local</em></strong></p>  <p><strong><em>Path: HYPERV1.my.local</em></strong></p>  <p><strong><em>Last modified by: System</em></strong></p>  <p><strong><em>Last modified time: 11/26/2013 3:24:51 PM Alert description: The process started at 3:24:37 PM failed to create System.PropertyBagData. Errors found in output:</em></strong></p>  <p><strong><em>C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Monitoring Host Temporary Files 1\3059\GetDiskPartitionSpace.vbs(60, 5) Microsoft VBScript runtime error: Overflow</em></strong></p>  <p><strong><em>Command executed: &quot;C:\Windows\system32\cscript.exe&quot; /nologo &quot;GetDiskPartitionSpace.vbs&quot; HYPERV1.my.local</em></strong></p>  <p><strong><em>Working Directory: C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Monitoring Host Temporary Files 1\3059\</em></strong></p>  <p><strong><em>One or more workflows were affected by this.</em></strong></p>  <p><strong><em>Workflow name: Microsoft.Windows.HyperV.2008.DiskPartitionSpaceProvider.FreeSpaceCollectionRule</em></strong></p>  <p><strong><em>Instance name: FILESERVER</em></strong></p>  <p><strong><em>Instance ID: {9B3F7158-81D8-BD11-E6BF-6540C9CA856F}</em></strong></p>  <p><strong><em>Management group: MY-PROD</em></strong></p>  <p><strong><em></em></strong></p>  <p>Thought – awesome. Another script debugging day. The key point here is the word <strong>Overflow</strong>. This means that the script couldn’t launch a task it supposed to do because of wrong data or calculation of parameters in that task. So let’s check what’s in line 60:</p>  <p></p>  <p><strong><em>UsedSpacePerc = (UsedSpace * 100)/TotalSpace</em></strong></p>  <p><strong></strong></p>  <p>This is an extract from bigger function which should calculate disk size for specific Virtual Machine and its usage. Now for the main dish – answer to question “Why?”. Because the UsedSpace and TotalSpace are query from results from WMI for Fixed VHDs. And fixed VHDs have Used Space and Total Space values as “0”. Who likes to divide by zero? Neither me, nor the script. The worst thing is that 2012 Management Pack will act the same only for fixed sized VHDs. So there are three rules which should be overridden – either globally disabled or disabled just for specific VM instances:</p>  <p></p>  <p>For Hyper-V 2008 Management Pack:</p>  <p><strong><em>Free Disk Space Collection Rule </em></strong></p>  <p>For Hyper-V 2012 Management Pack</p>  <p><strong><em>Hyper-V 2012 Virtual Machine Hard Drive Percentage of Used Space Collection Rule</em></strong></p>  <p><strong><em>Virtual Machine Disk Free Space Collection Rule</em></strong></p>  <p>For Hyper-V 2012 R2 Management Pack – didn’t have time to check yet :)</p>  <p></p>  <p>Happy Hyper-V monitoring.</p>]]></content:encoded>
    </item>
    <item>
      <title>KB2790831 - SCOM Hotfix for Windows Server 2012</title>
      <link>https://docs.microsoft.com/archive/blogs/lukaszr/kb2790831-scom-hotfix-for-windows-server-2012</link>
      <pubDate>Thu, 14 Feb 2013 02:52:41 GMT</pubDate>
      <dc:creator><![CDATA[Łukasz Rutkowski]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/lukaszr/2013/02/14/kb2790831-scom-hotfix-for-windows-server-2012/</guid>
      <description><![CDATA[Just a short notice to all people who are using or monitoring Windows Server 2012 with System Center...]]></description>
      <content:encoded><![CDATA[<p>Just a short notice to all people who are using or monitoring Windows Server 2012 with System Center Operations Manager 2012 (both RTM and SP1), or managing those with SCVMM 2012 or SCDPM 2012. There is a very important hotfix which fixes a handle leak in WMI. Extract from KB:</p>  <p>&#160;</p>  <blockquote>   <p><em>This issue occurs because, when Performance Data Helper log files are opened, Pdh.dll creates a new thread by using the <b>CreateThread()</b> API to process the log files. The <b>CreateThread()</b> API then returns a handle to the newly created thread. The handle remains open after these log files are closed, causing a handle leak.</em></p> </blockquote>  <p>To download the hotfix, go to download location: <a title="http://support.microsoft.com/kb/2790831/en-us" href="http://support.microsoft.com/kb/2790831/en-us">http://support.microsoft.com/kb/2790831/en-us</a></p>  <p>Happy monitoring!</p>]]></content:encoded>
    </item>
    <item>
      <title>How to Reset the Administrators Group in Operations Manager 2012 – Working</title>
      <link>https://docs.microsoft.com/archive/blogs/lukaszr/how-to-reset-the-administrators-group-in-operations-manager-2012-working</link>
      <pubDate>Thu, 29 Nov 2012 13:20:44 GMT</pubDate>
      <dc:creator><![CDATA[Łukasz Rutkowski]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/lukaszr/2012/11/29/how-to-reset-the-administrators-group-in-operations-manager-2012-working/</guid>
      <description><![CDATA[Scenario – imagine a quick hit on Delete button while standing on BUILTIN\Administrators entry in...]]></description>
      <content:encoded><![CDATA[<p>Scenario – imagine a quick hit on Delete button while standing on BUILTIN\Administrators entry in Operations Manager Administrators user role window. What happens few hours later? If this was a default setting and no-one was later added to OM Admins group – oh well – no-one is an administrator. That happens. There should be a fix.</p>  <p align="center"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/0601.image_0A1DAEB2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/0601.image_5F00_0A1DAEB2.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/3817.image_thumb_086CE2DE.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/3817.image_5F00_thumb_5F00_086CE2DE.png" width="505" height="194" /></a></p>  <p><strong>NOTE</strong> – You can delete BUILTIN\Administrators only, if you added second entry as a member. You can’t be left without any group there (through console of course).</p>  <p><strong>NOTE 2</strong> – To this group you can add only domain groups, not local, so BUILTIN\Administrators are unable to be added.</p>  <p align="center">&#160;</p>  <p><font color="#2a2a2a"><strong>Step 1</strong> – Go to your favourite search engine and look for the topic above. You will be redirected to TechNet page - <a title="http://technet.microsoft.com/en-us/library/hh456441.aspx" href="http://technet.microsoft.com/en-us/library/hh456441.aspx">http://technet.microsoft.com/en-us/library/hh456441.aspx</a></font></p>  <p><strong>Step 2</strong> – You go step-by-step through the guide. You go to paragraph 2, point 2. You go into <strong>&lt;drive letter&gt;:\Program Files\System Center Operations Manager 2012\SDK Service State</strong>… wait a minute. There no such folder! Default path is <strong>&lt;drive letter&gt;:\Program Files\System Center 2012\Operations Manager\Server </strong>and even there there is no <strong>momauth.xml</strong> file. You hit search – it has to be somewhere – and you are punished by your naivety… </p>  <p>Just to be clear – as per <strong>Mihai Sarbulescu blog </strong>and post on missing <a href="http://blogs.technet.com/b/mihai/archive/2012/07/23/build-in-user-role-missing-from-operations-manager-2012.aspx" target="_blank">Built-In User Roles</a>, the MomAuth.xml is not there anymore.</p>  <blockquote>   <p><strong></strong></p>    <p><strong>NOTE:</strong> <em>In OM <strong>2007</strong> the user roles and their permissions, roles, etc. were managed through <a href="http://technet.microsoft.com/en-us/library/cc757023(v=ws.10)">Authorization Manager</a> which is an OS component and the data was stored in an XML file called <strong>MomAuth.xml</strong> which could be found on the <strong>RMS</strong>. Now, in OM <strong>2012</strong>, this has been changed and <strong>AzMan</strong> is no longer used - the user roles and security checks, permissionsm information, etc. about the OM Management Group is stored and checked directly in the OM operational database.</em></p> </blockquote>  <p><em></em></p>  <p>Now what? Now let’s go into SQL Server Management Studio and let’s play a bit. There are few new tables there which gives you an idea how the authorization works in OM12 and where to find specific data.</p>  <p align="center"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/0272.image_6DC046C4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/0272.image_5F00_6DC046C4.png"><img title="image" style="margin: 0px; display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/0513.image_thumb_6C0F7AF0.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/0513.image_5F00_thumb_5F00_6C0F7AF0.png" width="244" height="231" /></a></p>  <p align="left">If you are familiar with <strong>AzMan </strong>and you created a totally custom user role, you now need to familiarize with those most important tables.</p>  <p align="left"><strong>AzMan_AzOperation</strong> – list of all operations, which can be scoped (i.e. Agent__Deploy, Agent__Get, Agent__Set etc.)</p>  <p align="left"><strong>AzMan_AzRoleAssignment</strong> – connects User Roles to AzMan profiles</p>  <p align="left"><strong>AzMan_AzTask</strong> – list of User Roles with their descriptions</p>  <p align="left"><strong>AzMan_Role_SIDMember</strong> – list of SIDs (stored in DB as varbinary(85) connected to Roles</p>  <p align="left">&#160;</p>  <p align="left">And the last one is what we want. When you have a deleted an account from OM Admins you will have a table like this (fresh install, in your environment there can be lots of them)</p>  <p align="center"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/2262.image_035A7F62.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/2262.image_5F00_035A7F62.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/2350.image_thumb_169B3601.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/2350.image_5F00_thumb_5F00_169B3601.png" width="463" height="163" /></a></p>  <p align="left">&#160;</p>  <p align="left">Well, there is something here, so why I don’t see it in console? Because the first one is a default entry for LocalSystem, which is always an OM Admin member, but hidden from list. So how can we add a member here? Well, that’s a bit nasty, but just creating a simple INSERT. But what to insert? A varbinary value for BUILTIN\Administrators is:</p>  <p align="center"><strong>0x01020000000000052000000020020000</strong></p>  <p>So just copy the SQL query from below to your Query Window:</p>  <p align="left"><strong></strong></p>  <p><strong>INSERT INTO [OperationsManager].[dbo].[AzMan_Role_SIDMember]</strong></p>  <blockquote>   <p><strong>([RoleID]</strong></p> </blockquote>  <blockquote>   <p><strong>,[MemberSID])</strong></p> </blockquote>  <p><strong>VALUES</strong></p>  <blockquote>   <p><strong>(1, 0x01020000000000052000000020020000)</strong></p> </blockquote>  <p><strong>GO</strong></p>  <p align="center"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/7633.image_7FF8E7B9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/7633.image_5F00_7FF8E7B9.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/2671.image_thumb_7E481BE5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/2671.image_5F00_thumb_5F00_7E481BE5.png" width="447" height="218" /></a></p>  <p>Now re-run the SELECT query.</p>  <p align="center"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/2678.image_5CE87649.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/2678.image_5F00_5CE87649.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/7043.image_thumb_0924FD2E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/7043.image_5F00_thumb_5F00_0924FD2E.png" width="439" height="178" /></a></p>  <p align="left">And let’s check the console too.</p>  <p align="center"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/3240.image_0774315A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/3240.image_5F00_0774315A.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/4745.image_thumb_785D527F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/4745.image_5F00_thumb_5F00_785D527F.png" width="363" height="118" /></a></p>  <p align="left">OH NO! Aaaah, wait, let’s use /clearcache</p>  <p align="center"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/3252.image_0C0A3C14.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/3252.image_5F00_0C0A3C14.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/6153.image_thumb_360A3A3C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/6153.image_5F00_thumb_5F00_360A3A3C.png" width="367" height="102" /></a></p>  <p>Hope this will help anyone when falling into trouble of need to recreate Operations Manager Administration User Role.</p>  <p>&#160;</p>  <p>DISCLAIMER: THIS SOLUTION IS PROVIDED &quot;AS IS&quot;. YOU ARE RUNNING IN ON YOUR OWN RISK AS THIS IS NOT MICROSOFT’S SUPPORTED SOLUTION AT THE DATE OF POSTING.</p>]]></content:encoded>
    </item>
    <item>
      <title>Where is my SCOM installed?</title>
      <link>https://docs.microsoft.com/archive/blogs/lukaszr/where-is-my-scom-installed</link>
      <pubDate>Wed, 14 Nov 2012 23:22:06 GMT</pubDate>
      <dc:creator><![CDATA[Łukasz Rutkowski]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/lukaszr/2012/11/14/where-is-my-scom-installed/</guid>
      <description><![CDATA[This will be a short tip on how to get something really useful, especially if you have many OM...]]></description>
      <content:encoded><![CDATA[<p>This will be a short tip on how to get something really useful, especially if you have many OM environment to work with regardless its version. Recently there was a question internally how to run a script or a command and pass SCOM installation directory within XML tag. This was normal in OM07, but install directory has changed in OM12 from</p>  <p>%ProgramFiles%\System Center Operations Manager 2007</p>  <p>to</p>  <p>%ProgramFiles%\System Center 2012\Operations Manager\Server</p>  <p>If you migrated to OM12, you have a mixture of OM07 and OM12, you don’t want to change your management packs </p>  <p>&#160;</p>  <p><em>Method #1:</em></p>  <p>You can create a junction to this new folder on every OM12 server:</p>  <p><strong>mklink /J “C:\Program Files\System Center Operations Manager 2007” “C:\Program Files\System Center 2012\Operations Manager\Server”</strong></p>  <p>So now everytime something points to first folder it will be really pointing to new one, but will never know about it.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/5611.image_2CEA8E2A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/5611.image_5F00_2CEA8E2A.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/5621.image_thumb_64509F58.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/5621.image_5F00_thumb_5F00_64509F58.png" width="477" height="179" /></a></p>  <p>&#160;</p>  <p><em>Method #2:</em></p>  <p>If you can’t make any modifications to folder structure or it is easier to create a global solution, you can populate environmental variable with installation directory from registry, but this will enforce you to change your MPs to reflect your new environmental variable too. If you are writing a new MP – this is probably better solution.</p>  <p>&#160;</p>  <p><strong>$scomdir = (New-Object –ComObject Wscript.Shell).RegRead(&quot;HKLM\SOFTWARE\Microsoft Operations Manager\3.0\Setup\InstallDirectory&quot;)</strong></p>  <p><strong>[Environment]::SetEnvironmentVariable(&quot;SCOMDir&quot;, $scomdir, &quot;Machine&quot;)</strong></p>  <p>And then you can use it as:</p>  <p><strong>&lt;OpsMgrInstallPath&gt;&quot;%SCOMDir%&quot;&lt;/OpsMgrInstallPath&gt;</strong></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/5224.image_375B3C7D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/5224.image_5F00_375B3C7D.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/6607.image_thumb_55C57D66.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/6607.image_5F00_thumb_5F00_55C57D66.png" width="474" height="182" /></a></p>]]></content:encoded>
    </item>
    <item>
      <title>Discovery never stops… but tried everything!</title>
      <link>https://docs.microsoft.com/archive/blogs/lukaszr/discovery-never-stops-but-tried-everything</link>
      <pubDate>Wed, 24 Oct 2012 13:05:00 GMT</pubDate>
      <dc:creator><![CDATA[Łukasz Rutkowski]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/lukaszr/2012/10/24/discovery-never-stops-but-tried-everything/</guid>
      <description><![CDATA[So have you ever been in situation where everything you did just didn&rsquo;t help and every blog...]]></description>
      <content:encoded><![CDATA[<p>So have you ever been in situation where everything you did just didn&rsquo;t help and every blog post, every forum entry and every link in search engine provided an information which you tried three times or more? Such things happen and then you have to fight on your own (or with little help from Support Escalation Engineers).</p>
<p>Whenever you see a blue bar just going from left to right for ages on discovery wizard, your mind starts to refresh every blog post you&rsquo;ve seen and remind yourself of three things you have to check before going wild. First thing is a <strong>Microsoft SQL Server Service Broker</strong> (which was discussed thousand Times). In Operations Manager 2012 SQL Server Broker is enabled on OperationsManager database from default, which eases your pain (<a title="http://support.microsoft.com/kb/941409" href="http://support.microsoft.com/kb/941409">http://support.microsoft.com/kb/941409</a>).</p>
<p>Second thing will be great, old Health Service State folder, which can be stale after many operations and this will prevent showing results in discovery pane. Third option &ndash; you didn&rsquo;t specify SPNs for SDK Service correctly. Good blog post and nice bunch of links can be found in Marnix Wolf&rsquo;s post from two years ago (<a title="http://thoughtsonopsmgr.blogspot.gr/2010/08/discovery-wizard-is-running-for-ever.html" href="http://thoughtsonopsmgr.blogspot.gr/2010/08/discovery-wizard-is-running-for-ever.html">http://thoughtsonopsmgr.blogspot.gr/2010/08/discovery-wizard-is-running-for-ever.html</a>). What if there&rsquo;s no luck? What if all of those options fail?</p>
<p>&nbsp;</p>
<p><strong>The Mystery</strong></p>
<p>If everything works fine, but one thing doesn&rsquo;t and you don&rsquo;t know why &ndash; it has to be a permission, as old legends say. But what, why, when? Let&rsquo;s see exactly how the discovery proces works (from <a title="http://blogs.technet.com/b/momteam/archive/2007/12/10/how-does-computer-discovery-work-in-opsmgr-2007.aspx" href="http://blogs.technet.com/b/momteam/archive/2007/12/10/how-does-computer-discovery-work-in-opsmgr-2007.aspx">http://blogs.technet.com/b/momteam/archive/2007/12/10/how-does-computer-discovery-work-in-opsmgr-2007.aspx</a>)</p>
<p><img width="522" height="556" title="Computer Discovery" style="display: inline;" alt="Computer Discovery" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/13/6022/00/00/02/63/23/20/CompDisc.jpg" original-url="http://blogs.technet.com/photos/deploymentman/images/2632320/original.aspx" /></p>
<p>Since I&rsquo;ve been discovering servers only, the option to check if they are accessible is enabled by default, in Alert View I saw multiple entries on no connection to remote host. That means that steps 8 to 10 went through, but returning results didn&rsquo;t finish. Since step 11 didn&rsquo;t show proper results and there&rsquo;s no connection with permissions and returning results from discovery engine, something had to happen before step 8.</p>
<p>One of the steps which are not documented in this list is when SQL Server checks if SDK Account is in the proper group to use OperationsManager&rsquo;s SQL Server Broker. This is done somewhere between steps 5 and 7.</p>
<p></p>
<p><strong>The Solution</strong></p>
<p>What was the turning point? It was the Application log in SQL Machine which showed such entry:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/8664.image_28A88919.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/8664.image_5F00_28A88919.png"><img width="694" height="188" title="image" style="display: inline; background-image: none;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/4540.image_thumb_26F7BD45.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/4540.image_5F00_thumb_5F00_26F7BD45.png" border="0" /></a></p>
<p><em>Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application <br />Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MSSQLSERVER <br />Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10/24/2012 4:55:48 PM <br />Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 28005 <br />Task Category: Server <br />Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error <br />Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Classic <br />User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A <br />Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; omdb.om.domain <br />Description: <br />An exception occurred while enqueueing a message in the target queue. Error: 15404, State: 19. Could not obtain information about Windows NT group/user 'domain\OmSDK', error code 0x5.</em></p>
<p>&nbsp;</p>
<p>So it turns out that SQL Server service account should be able to check attributes of OMSDK service account. Normally you should see permissions like this:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/6014.image_037B18E0.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/6014.image_5F00_037B18E0.png"><img width="385" height="325" title="image" style="display: inline; background-image: none;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/7673.image_thumb_68CE7CC6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/7673.image_5F00_thumb_5F00_68CE7CC6.png" border="0" /></a></p>
<p>The real life shows something different. <strong>Authenticated Users</strong> on the new OU for SCOM accounts didn&rsquo;t have this entry. In fact it was totally missing. Didn&rsquo;t want to break anything, maybe it was on purpose, maybe not. Adding <strong>Read</strong> right to <strong>SQL Server account</strong> resolved the hanging discovery process.</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/7266.image_34F660A8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/7266.image_5F00_34F660A8.png"><img width="386" height="327" title="image" style="display: inline; background-image: none;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/7144.image_thumb_1A49C48F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/7144.image_5F00_thumb_5F00_1A49C48F.png" border="0" /></a></p>
<p>Hope you can add it to the list of possible solutions of hanging discovery problem.</p>]]></content:encoded>
    </item>
    <item>
      <title>A nice report on Distributed Application component state</title>
      <link>https://docs.microsoft.com/archive/blogs/lukaszr/a-nice-report-on-distributed-application-component-state</link>
      <pubDate>Mon, 08 Oct 2012 21:04:00 GMT</pubDate>
      <dc:creator><![CDATA[Łukasz Rutkowski]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/lukaszr/2012/10/08/a-nice-report-on-distributed-application-component-state/</guid>
      <description><![CDATA[When you need a report and you suddenly see that it&rsquo;s impossible (or possible, but there are...]]></description>
      <content:encoded><![CDATA[<p>When you need a report and you suddenly see that it&rsquo;s impossible (or possible, but there are easier ways to accomplish this) via standard reports in Operations Manager, you first starting to fight with a tool that comes in handy on ACS &ndash; Report Builder. Well, maybe that&rsquo;s just me, but playing with RB on standard reporting OM playground is like trying to fish a shark with a jelly bait.</p>
<p>When I was young and full of grace&hellip; I tried not to anything which had a bit of Visual part in its name. For me Visual Studio = programming and boring typing of code blocks. That may be true for 90% of work, but fortunately writing (that&rsquo;s a tough word, composing is more accurate) reports in Visual Studio is a really piece of cake. That&rsquo;s what I found out lately when pushed to the wall was given a task &ndash; report which shows live state of objects which are bits of custom Distributed Application.</p>
<p>Before I go into this task step-by-step, I will confess myself. I tried to do that by copying Kevin Holman&rsquo;s custom stuff, some example reports, I&rsquo;ve read few posts on this &ndash; nothing lit a candle in my dark space of brain. I&rsquo;m a type of person who loves two things &ndash; getting it done by myself and&hellip; wizards. All types of wizards are having +1 for my happiness.</p>
<p>&nbsp;</p>
<p><strong>Before you start&hellip; </strong>make sure you follow few steps, which are needed to be done on Business Intelligence 2008 and 2008 R2 Studio from SQL Server installation (yes, you need to install that to start work &ndash; just launch setup and from Shared Features choose that BI one). All necessary steps are available on <a href="http://ok-sandbox.com/2012/06/configure-sql-server-business-intelligence-development-studio-2008-to-support-opsmgr-reports-development/" target="_blank">Oleg Kapustin&rsquo;s blog</a>.</p>
<p>&nbsp;</p>
<p><strong>Let&rsquo;s start&hellip;</strong> and to do that we need to prepare a plan. This plan would contain vision, materials and data to work with. Let&rsquo;s begin with vision.</p>
<p><em>Vision<strong>: </strong></em>A tabular report on main DA part and Level 1 containers which we create in Distributed Application designer. Level 2 report can also be available as a detailed version of our report (<em>real world scenario: business wants less data, administrators &ndash; more of it</em>). The report should show graphical indicator of healthy, warning or critical state, not only numeric or word entries. This would be fun!</p>
<p><em>Materials:</em> This should be prepared basing of our vision. So graphical indicators&hellip; will be icons from OM or any other icons you can find for <strong>ok</strong>, <strong>warning </strong>or <strong>critical</strong> values. Best ones would be max 20x20 px. Also we will make use of SQL Server Management Studio to connect to the database, so you can start opening this one right now, as we will need&hellip;</p>
<p><em>Data to work with</em>: I&rsquo;ve had a discussion whether to work on OperationsManagerDW or OperationsManager database for this report. It&rsquo;s easier to find all the data in OM live database but there&rsquo;s one point you should be aware of. Live data is live data &ndash; it changes a lot. When you create a small report from one table and this is a state change for example which doesn&rsquo;t flicker a lot, it&rsquo;s rather safe. Be sure to use WITH (NOLOCK) clause on SQL queries as this won&rsquo;t lock tables for query and will allow other queries to run against it without waiting for your process to finish.</p>
<p>&nbsp;</p>
<p>How to query an OperationsManager database for health state of components of distributed application? Good question. You can do it in two ways &ndash; like a robot or like a brain. Robot method would be to query BaseManagedEntity table for known part names of application. This however is causing a need to rewrite dataset if your DA will change in future. So second method is much nicer. We can use in-built procedure to query for all predecessors of any object. In our case those would be kids of our DA.</p>
<p>------</p>
<p><em><strong>select s.HealthState, b.DisplayName, UPPER(SUBSTRING(b.FullName, CHARINDEX(':', b.FullName)+1, 50)) as CompService</strong></em></p>
<p><em><strong>from dbo.fn_ContainedBaseEntitiesFromList('84BB11C7-29D1-DD9C-C228-3FEC82533499', 2) a </strong></em></p>
<p><em><strong>left join dbo.BaseManagedEntity b on</strong></em></p>
<p><em><strong>a.BaseManagedEntityId = b.BaseManagedEntityId</strong></em></p>
<p><em><strong>inner join dbo.State s on</strong></em></p>
<p><strong><em>a.BaseManagedEntityId = s.BaseManagedEntityId</em> </strong></p>
<p><em><strong>where Depth &lt;= 2 and s.MonitorId = 'E3AB86A1-34FA-35B5-B864-DA4DB993C0F5'</strong></em></p>
<p><em><strong>order by b.DisplayName, CompService asc</strong></em></p>
<p>-------</p>
<p>&nbsp;</p>
<p>Let&rsquo;s explain a bit. dbo.fn_ContainedBaseEntitiesFromList is an in-built procedure which retrieves contained items from specific object (represented as a GUID here) and we can but how many levels down it should return. Funny thing is that every number below 1 returns all contained objects, so when I put two, it gave up to level 6. That is why I restricted values only to level 2 (for admin report) and we can do it also only for level 1. When you want to return only level 1 items (LOB App &ndash;&gt; Databases, LOB App &ndash;&gt; Web Servers, LOB App &ndash;&gt; Services), you don&rsquo;t need that CompService column as this part trims down those long values which are seen as path in return from query (it cuts it just to have computer FQDN name of instance). So for Level 1 items it would be like this:</p>
<p>------</p>
<p><em><strong>select s.HealthState, b.DisplayName</strong></em></p>
<p><em><strong>from dbo.fn_ContainedBaseEntitiesFromList('84BB11C7-29D1-DD9C-C228-3FEC82533499', 1) a </strong></em></p>
<p><em><strong>left join dbo.BaseManagedEntity b on</strong></em></p>
<p><em><strong>a.BaseManagedEntityId = b.BaseManagedEntityId</strong></em></p>
<p><em><strong>inner join dbo.State s on</strong></em></p>
<p><strong><em>a.BaseManagedEntityId = s.BaseManagedEntityId</em> </strong></p>
<p><em><strong>where Depth = 1 and s.MonitorId = 'E3AB86A1-34FA-35B5-B864-DA4DB993C0F5'</strong></em></p>
<p><em><strong>order by b.DisplayName asc</strong></em></p>
<p>-------</p>
<p>Order by clause is just for fun and to be sure everything is properly arranged. '84BB11C7-29D1-DD9C-C228-3FEC82533499' GUID is my DA main application (like LOB App) and 'E3AB86A1-34FA-35B5-B864-DA4DB993C0F5' GUID is a monitor ID for Entity (so top one). That way I represented in numeric value (s.HealthState) a state of all main parts of DA. The first GUID you should search in BaseManagedEntiity table by your app name.</p>
<p>Having those queries we can then do our first report. Let&rsquo;s start then. Open Business Intelligence (properly configured).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/7674.clip_image001_60E91AC7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/7674.clip_5F00_image001_5F00_60E91AC7.png"><img style="display: inline; background-image: none;" title="clip_image001" border="0" alt="clip_image001" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/8737.clip_image001_thumb_23984033.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/8737.clip_5F00_image001_5F00_thumb_5F00_23984033.png" width="233" height="244" /></a></p>
<p>The first screen allow you to choose from variety of Visual Studio templates. Choose Report Server Project.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/8345.clip_image002_61350222.jpg" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/8345.clip_5F00_image002_5F00_61350222.jpg"><img style="display: inline; background-image: none;" title="clip_image002" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/3108.clip_image002_thumb_4A726841.jpg" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/3108.clip_5F00_image002_5F00_thumb_5F00_4A726841.jpg" width="588" height="401" /></a></p>
<p>&nbsp;</p>
<p>In new project window on the right side you will see small box called Solution Explorer. From there right click Reports and choose Add New Report.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/5228.clip_image0014_766F1998.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/5228.clip_5F00_image0014_5F00_766F1998.png"><img style="display: inline; background-image: none;" title="clip_image001[4]" border="0" alt="clip_image001[4]" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/5417.clip_image0014_thumb_52761C71.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/5417.clip_5F00_image0014_5F00_thumb_5F00_52761C71.png" width="225" height="143" /></a></p>
<p>&nbsp;</p>
<p>My beloved wizard opens :)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/5025.clip_image0016_157BEFD8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/5025.clip_5F00_image0016_5F00_157BEFD8.png"><img style="display: inline; background-image: none;" title="clip_image001[6]" border="0" alt="clip_image001[6]" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/0310.clip_image0016_thumb_23F6EBFD.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/0310.clip_5F00_image0016_5F00_thumb_5F00_23F6EBFD.png" width="476" height="443" /></a></p>
<p>&nbsp;</p>
<p>On the next screen we will create a data source to our main OperationsManager database (not Warehouse!). In the Select Data Source window click New Data Source and Edit. This will pop-up Properties window which you can intuitively fill in.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/0726.clip_image0018_3A5964B7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/0726.clip_5F00_image0018_5F00_3A5964B7.png"><img style="display: inline; background-image: none;" title="clip_image001[8]" border="0" alt="clip_image001[8]" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/0724.clip_image0018_thumb_05D8926F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/0724.clip_5F00_image0018_5F00_thumb_5F00_05D8926F.png" width="389" height="528" /></a></p>
<p>&nbsp;</p>
<p>You can Test Connection is everything is ok. After accept you can mark this data source as a shared one for future references which is a good idea.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/6165.clip_image00110_070D0581.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/6165.clip_5F00_image00110_5F00_070D0581.png"><img style="display: inline; background-image: none;" title="clip_image001[10]" border="0" alt="clip_image001[10]" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/3823.clip_image00110_thumb_0BA3103B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/3823.clip_5F00_image00110_5F00_thumb_5F00_0BA3103B.png" width="586" height="545" /></a></p>
<p>&nbsp;</p>
<p>On the next screen paste your query from Management Studio. For our demonstration I will use level 1 query.</p>
<p>Next select Tabular report type.</p>
<p>On Design Table do not drag any fields, just hit Next.</p>
<p>Then choose your layout and complete the wizard. You should see something similar to mine.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/1778.image_27E02C8E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/1778.image_5F00_27E02C8E.png"><img style="display: inline; background-image: none;" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/0602.image_thumb_185D1ABF.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/0602.image_5F00_thumb_5F00_185D1ABF.png" width="593" height="161" /></a></p>
<p>&nbsp;</p>
<p>Now for some tweaking. As you see my report name will only be about Level 1 items. Let&rsquo;s hide the Health State column first and then add second one as just State for future images. Click the Health State column and then right click it and choose Column Visibility.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/2437.clip_image00112_21893033.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/2437.clip_5F00_image00112_5F00_21893033.png"><img style="display: inline; background-image: none;" title="clip_image001[12]" border="0" alt="clip_image001[12]" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/2450.clip_image00112_thumb_1FA8B49F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/2450.clip_5F00_image00112_5F00_thumb_5F00_1FA8B49F.png" width="333" height="164" /></a></p>
<p>&nbsp;</p>
<p>Change the value to Hide.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/0383.clip_image00114_30603980.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/0383.clip_5F00_image00114_5F00_30603980.png"><img style="display: inline; background-image: none;" title="clip_image001[14]" border="0" alt="clip_image001[14]" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/1351.clip_image00114_thumb_2F1BA0A1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/1351.clip_5F00_image00114_5F00_thumb_5F00_2F1BA0A1.png" width="468" height="269" /></a></p>
<p>Now add new column. Again right click Health State column and choose Add New Column to the left. Click a header, then double click and enter State name.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/5732.clip_image00116_1402D193.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/5732.clip_5F00_image00116_5F00_1402D193.png"><img style="display: inline; background-image: none;" title="clip_image001[16]" border="0" alt="clip_image001[16]" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/1832.clip_image00116_thumb_36E39343.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/1832.clip_5F00_image00116_5F00_thumb_5F00_36E39343.png" width="467" height="124" /></a></p>
<p>Now for the best part. We need to put images somehow here and change them basing on values of HealthState field (1 is healthy, 2 is warning, 3 is critical, 0 will be uninitialized, so if you want to show this one too, prepare 4th icon for this one).</p>
<p>On the left side click Images and from right click menu choose Add Image.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/5557.clip_image00118_28587151.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/5557.clip_5F00_image00118_5F00_28587151.png"><img style="margin: 0px; display: inline; background-image: none;" title="clip_image001[18]" border="0" alt="clip_image001[18]" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/1030.clip_image00118_thumb_4E4E21A7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/1030.clip_5F00_image00118_5F00_thumb_5F00_4E4E21A7.png" width="208" height="185" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/4075.clip_image00120_33355299.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/4075.clip_5F00_image00120_5F00_33355299.png"><img style="display: inline; background-image: none;" title="clip_image001[20]" border="0" alt="clip_image001[20]" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/4087.clip_image00120_thumb_7C0BC49F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/4087.clip_5F00_image00120_5F00_thumb_5F00_7C0BC49F.png" width="565" height="186" /></a></p>
<p>After you finish you should see your items.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/6644.clip_image00122_76F96123.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/6644.clip_5F00_image00122_5F00_76F96123.png"><img style="display: inline; background-image: none;" title="clip_image001[22]" border="0" alt="clip_image001[22]" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/0777.clip_image00122_thumb_14F76F18.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/0777.clip_5F00_image00122_5F00_thumb_5F00_14F76F18.png" width="214" height="152" /></a></p>
<p>Now drag one of the images from this list into empty field below State. Right click this field then and open Properties.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/3808.clip_image00124_635BDBB5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/3808.clip_5F00_image00124_5F00_635BDBB5.png"><img style="display: inline; background-image: none;" title="clip_image001[24]" border="0" alt="clip_image001[24]" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/3580.clip_image00124_thumb_4C4D5A79.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/3580.clip_5F00_image00124_5F00_thumb_5F00_4C4D5A79.png" width="482" height="434" /></a></p>
<p>You can see that this field will use <strong>ok </strong>image every time. We want to change that. Click <strong><em>fx</em></strong> button. In function field paste this formula:</p>
<p><strong>=Switch(Fields!HealthState.Value="1","ok",Fields!HealthState.Value="2","warn",Fields!HealthState.Value="3","error")</strong></p>
<p>This tells the field that basing on HealthState value it needs to get proper image from those three we imported. As I said you can make another switch option to put Uninitialized value there. When you accept and close all windows you should see an image icon in the field.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/4544.clip_image00126_04E7DEBA.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/4544.clip_5F00_image00126_5F00_04E7DEBA.png"><img style="display: inline; background-image: none;" title="clip_image001[26]" border="0" alt="clip_image001[26]" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/metablogapi/0334.clip_image00126_thumb_58CAE1C8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24-metablogapi/0334.clip_5F00_image00126_5F00_thumb_5F00_58CAE1C8.png" width="492" height="167" /></a></p>
<p>&nbsp;</p>
<p>When you click Preview above the design pane, you should see also proper report.</p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/6675.untitled.jpg" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24/6675.untitled.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/24/6675.untitled.jpg" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-24/6675.untitled.jpg" width="346" height="174" /></a>&nbsp;</p>
<p>Now from the File menu just save this specific report and later import it to you SQL Reporting Server reports website (<a href="http://yourssrs/reports">http://yourssrs/reports</a> and choose Import File to a folder you like).</p>
<p>Happy Reporting! :)</p>]]></content:encoded>
    </item>
  </channel>
</rss>