<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Operating Operations Manager</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/dirkbri/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/dirkbri/feed.xml</link>
    <description>Some notes and ideas from the field around Operations Manager</description>
    <lastBuildDate>Wed, 17 Apr 2019 04:02:08 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>This blog is dead - long live the blog "GERMANageability"</title>
      <link>https://docs.microsoft.com/archive/blogs/dirkbri/this-blog-is-dead-long-live-the-blog-germanageability</link>
      <pubDate>Wed, 24 Feb 2016 05:36:51 GMT</pubDate>
      <dc:creator><![CDATA[Dirk Brinkmann]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dirkbri/2016/02/24/this-blog-is-dead-long-live-the-blog-germanageability/</guid>
      <description><![CDATA[This will probably my last post in this blog. Do I stop blogging? Quite the contrary! My colleagues...]]></description>
      <content:encoded><![CDATA[<p>This will probably my last post in this blog. Do I stop blogging? Quite the contrary! My colleagues and I from the German Premier Field Egineer (PFE) team for Monitoring decided to start a new blog: <strong>GERMANanageability</strong>!</p>
<p>You will find a lot of hopefully useful information related to SCOM, OMS, Azure Insights, PowerShell and SMA in this new blog.</p>
<p>So stay tuned and bookmark our new blog: <a href="https://blogs.technet.microsoft.com/germanageability">https://blogs.technet.microsoft.com/germanageability</a></p>
<p>Cheers,</p>
<p>Dirk</p>]]></content:encoded>
    </item>
    <item>
      <title>SCOM Certificate Monitoring – does the Health Service really use the correct Certificate?</title>
      <link>https://docs.microsoft.com/archive/blogs/dirkbri/scom-certificate-monitoring-does-the-health-service-really-use-the-correct-certificate</link>
      <pubDate>Tue, 16 Feb 2016 10:14:42 GMT</pubDate>
      <dc:creator><![CDATA[Dirk Brinkmann]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dirkbri/2016/02/16/scom-certificate-monitoring-does-the-health-service-really-use-the-correct-certificate/</guid>
      <description><![CDATA[Unfortunately this blog has been quite for a while due to Christmas time and a lot of other tasks I...]]></description>
      <content:encoded><![CDATA[<p>Unfortunately this blog has been quite for a while due to Christmas time and a lot of other tasks I had to do but I promise to do better in 2016&hellip; :-)</p>
<p>Today I want to talk about an issue I bet almost every SCOM Admins who uses X.509 Certificates for authentication had stumbled upon and that I experience quite often in the field: <br />The Certificate used for SCOM authentication has been changed and you forgot to reimport this Certificate into SCOM with <span style="font-family:courier new,courier;">momcertimport.exe</span>.</p>
<p>Most of you might say: <em>Oh man, that&rsquo;s old hat!</em> That&rsquo;s why we have e.g. Rapahael Burri&rsquo;s excellent <a href="https://www.systemcentercentral.com/pack-catalog/pki-certificate-verification-mp/" target="_blank">PKI MP </a>for. <br />And yes, you are absolutely right! But a Certificate monitoring MP only warns you if a Certificate is about to expire or has already expired, but it usually does not warn you that the SCOM health service still uses a different Certificate!</p>
<h2>Scenario</h2>
<p>Let me give you an example:<br />The SCOM Management Server and Gateways are using Certs for authentication. The Cert is about to expire (that can be monitored e.g. with Raphael&rsquo;s PKI MP) and will be updated either manually or automatically (e.g. via AD CA auto-enrollment). <br /><strong>Changing Certs automatically is very efficient and lean, but can be extremely dangerous to SCOM because</strong>:</p>
<p>Updating a Cert usually means changing the serial number of the Cert (e.g. from SNR 1 to SNR 2). So the serial number of the Cert in the Certificate store of the local computer and the serial number of the Cert used by the SCOM health service (stored in <span style="font-family:courier new,courier;">HKLM\Software\Microsoft\Microsoft Operations Manager\3.0\Machine Settings\ChannelCertificateSerialNumber</span>) does not match anymore.<br />In the screenshot below the serial number in the registry does not match the one on the Cert (I deleted the first byte):</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2016-02-16-CertReg.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2016_2D00_02_2D00_16_2D00_CertReg.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2016-02-16-CertReg.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2016_2D00_02_2D00_16_2D00_CertReg.PNG" border="0" /></a></p>
<p>Will updating the Cert cause any immediate trouble? Not necessarily. Everything will continue to work as long as you do not restart the SCOM services, because SCOM caches the specified Cert at startup time. Once you restart the services SCOM will notice that the Cert with the serial number 1 is not available anymore. SCOM will then write an Error Event and immediately closes all connections authenticated by the Cert (mainly the Gateways).</p>
<p><span style="color:#ff0000;"><strong>This scenario (SCOM Cert has been changed, everything is running but SCOM uses an invalid cached Cert) is unfortunately not covered by any Management Pack known to me.</strong></span></p>
<h2>A possible solution</h2>
<p>To get an actionable alert in case that this scenario happens I wrote a small demo MP with only one monitor that does this job:</p>
<ul>
<li>It runs on all Management Servers (incl. Gateways)</li>
<li>Monitor affects health state of the Windows Computer (to get a visible state change as well)&nbsp;&nbsp;</li>
<li>Monitor checks on a regular basis (e.g. every 1h) if the serial number found in HKLM can be found in the Certificate store of the local computer. If not it will create an actionable alert for the operations team.</li>
<li>I know, that this might not be the best way, because the Cert in the store might be invalid. But invalid Certs should already be monitored by the PKI MP.</li>
</ul>
<p></p>
<p>Monitor in an error state (mismatch will be detected, serial number will be shown and the Operator gets the hint to reimport the Cert with <span style="font-family:courier new,courier;">momcertimport.exe</span>):</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2016-02-16-MonitorResult.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2016_2D00_02_2D00_16_2D00_MonitorResult.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2016-02-16-MonitorResult.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2016_2D00_02_2D00_16_2D00_MonitorResult.PNG" border="0" /></a></p>
<p></p>
<p>Monitor in a healthy state:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2016-02-16-MonitorResultOK.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2016_2D00_02_2D00_16_2D00_MonitorResultOK.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2016-02-16-MonitorResultOK.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2016_2D00_02_2D00_16_2D00_MonitorResultOK.PNG" border="0" /></a></p>
<p>You can find the unsealed MP attached to this post.</p>
<h2>Summary</h2>
<p>Even if you monitor your Certs closely you might run into the situation that you update a SCOM Cert but forget to register this new one in SCOM as well. My demo MP monitors this situation and creates an actionable alert. Based on this alert a SCOM Admin should then take appropriate action and import the new Cert into SCOM with the help of <span style="font-family:courier new,courier;">momcertimport.exe</span>.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/10318/00/00/03/66/04/50/Custom.SCOM.CertCheck.xml" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-10318-00-00-03-66-04-50/Custom.SCOM.CertCheck.xml">Custom.SCOM.CertCheck.xml</a></p>]]></content:encoded>
    </item>
    <item>
      <title>PowerShell function testing if a SCOM ETL trace is running</title>
      <link>https://docs.microsoft.com/archive/blogs/dirkbri/powershell-function-testing-if-a-scom-etl-trace-is-running</link>
      <pubDate>Tue, 10 Nov 2015 09:58:45 GMT</pubDate>
      <dc:creator><![CDATA[Dirk Brinkmann]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dirkbri/2015/11/10/powershell-function-testing-if-a-scom-etl-trace-is-running/</guid>
      <description><![CDATA[The other day I needed a function which tells me if a SCOM ETL trace is currently running or not. I...]]></description>
      <content:encoded><![CDATA[<p>The other day I needed a function which tells me if a SCOM ETL trace is currently running or not. I had some hard time to figure out a simple and reliable way&nbsp;testing this. With some great assistance from my Support colleagues Silvana Deac and Mihai Sarbulescu I finally found a way :)</p>
<p>The attached function <span style="font-family:courier new,courier;">test-customopsmgrtracerunning</span></p>
<ul>
<li>does not require any parameter</li>
<li>returns<span style="font-family:courier new,courier;"> $NULL</span> if it cannot determine the Tools directory on an Agent or Management Server</li>
<li>returns <span style="font-family:courier new,courier;">$True</span> if it finds loaded OpsMgrTrace ETL files -&gt; Trace is running</li>
<li>returns <span style="font-family:courier new,courier;">$False</span> if it does not find loaded OpsMgrTrace ETL files -&gt; Trace is not running</li>
</ul>
<p>The function in action:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/ETLFunctionTest.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/ETLFunctionTest.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/ETLFunctionTest.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/ETLFunctionTest.PNG" border="0" /></a></p>
<p></p>
<p></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/10318/00/00/03/65/68/88/test-customopsmgrtracerunning.ps1" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-10318-00-00-03-65-68-88/test_2D00_customopsmgrtracerunning.ps1">test-customopsmgrtracerunning.ps1</a></p>]]></content:encoded>
    </item>
    <item>
      <title>How I do it: SCOM Override handling</title>
      <link>https://docs.microsoft.com/archive/blogs/dirkbri/how-i-do-it-scom-override-handling</link>
      <pubDate>Thu, 05 Nov 2015 11:59:00 GMT</pubDate>
      <dc:creator><![CDATA[Dirk Brinkmann]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dirkbri/2015/11/05/how-i-do-it-scom-override-handling/</guid>
      <description><![CDATA[Summary for the impatientThis post describes why and how to implement a certain naming convention...]]></description>
      <content:encoded><![CDATA[<p><strong>Summary for the impatient</strong><br />This post describes why and how to implement a certain naming convention for the Override description field and provides an automated solution to enforce this syntax, handle temporary Overrides and report on Overrides.</p>
<h2>Use case</h2>
<p>Working with Overrides for SCOM workflows is a common task. There is a lot of documentation available describing how to set Overrides for specific targets and how to store them correctly (preferably in separate custom Override MPs).<br />But I figured out that many customer still struggle with the handling of their Overrides. Common questions I often hear are:</p>
<ul>
<li>Who has set a specific Override?</li>
<li>Who was the client/customer who ordered an override (e.g. a specific user or department)</li>
<li>What is this Override doing? Why was it set?</li>
<li>How can I handle temporary Overrides which are only necessary for a certain time period?</li>
<li>In ITIL driven environments: what is the change ticket id for this specific override?</li>
</ul>
<p>Out of the box SCOM provides the &ldquo;Overrides&rdquo; Report which lists all Overrides for specific MPs created in a specific time frame. This is really useful as a general overview but does not answer all questions asked above.<br />Well, each Override has a description field which can be edited with the required information. Simple, easy, end of story.</p>
<p>Hmm, yes but there are still some caveats:</p>
<ul>
<li>What if I want to report on the entered data in an automated and structured way?</li>
<li>The description field is not a mandatory field. How can I force my Operator to enter the required information in a structured way?</li>
</ul>
<h2>How I do it: Solution Overview</h2>
<p>My solution for handling Overrides consists of two parts:</p>
<ol>
<li>Structured naming convention for each Override description in form of a written policy/work instruction or however you might call it.</li>
<li>A Management Pack which reports and controls the compliance of the defined naming convention</li>
</ol>
<p><strong>1. Structured naming convention</strong><br />What kind of convention you will use and which kind of delimiter you choose is completely up to you. I will usually use this syntax:</p>
<p><span style="font-family:courier new,courier;">&lt;Creation date&gt;<span style="color:#ff0000;">#</span>&lt;Author&gt;<span style="color:#ff0000;">#</span>&lt;Client&gt;<span style="color:#ff0000;">#</span>&lt;Expiration date&gt;|&lt;NULL&gt;<span style="color:#ff0000;">#</span>&lt;Ticket ID&gt;|&lt;NULL&gt;<span style="color:#ff0000;">#</span>&lt;Description&gt;</span><br /><br />Where:</p>
<ul>
<li>Creation date: <span style="font-family:courier new,courier;">YYYYMMDD</span></li>
<li>Author: Username or any other common abbreviation of the user who sets the Override</li>
<li>Client: Username, department name or SELF, describing who has ordered the Override. SELF it Author and Client are the same person.</li>
<li><em><span style="font-family:arial,helvetica,sans-serif;">[Optional]</span></em> Expiration date for temporary Overrides: <span style="font-family:courier new,courier;">YYYYMMDD</span> or NULL/empty string.</li>
<li><em>[Optional]</em> Ticket ID of ITSM tool e.g. for the corresponding change. Can also be NULL/empty</li>
<li>Description: Textual description why the override was set</li>
</ul>
<p>Examples:</p>
<ul>
<li>20151001#Dirk#SELF###Set because &hellip;&nbsp;<br />Override was set and ordered by Dirk on October 1st 2015 without a ticket and it is never expiring</li>
<li>20151015#Dirk#John##SR123456#Set because &hellip;<br />Override was set by Dirk on October 15th&nbsp; 2015 on behalf of John with ticket id SR123456 and it is never expiring.</li>
<li>20151018#Dirk#John#20151130##Set because &hellip;<br />Override was set by Dirk on October 18th 2015 on behalf of John. This Override will expire on November 30th 2015.</li>
</ul>
<p><strong>2. Management Pack</strong><br />The attached simple demo Management Pack consists of one custom data source which</p>
<ul>
<li>Executes a custom PowerShell script on a daily basis (SyncTime 9:00, Intervall 86400 seconds), which
<ul>
<li>Creates an export of all existing Overrides as CSV for later analysis and reporting</li>
<li>Checks if there are Overrides in Management Packs using a specific prefix (in this demo <span style="text-decoration:underline;"><em><span style="color:#000000;text-decoration:underline;">XXX</span></em></span>) not in compliance with the above defined naming convention and creates a specific property bag with the result</li>
<li>Checks if there are temporary Overrides in Management Packs using a specific prefix (in this demo <span style="text-decoration:underline;"><em>XXX</em></span>) which have already expired and creates a specific property bag with the result</li>
</ul>
</li>
<li>A custom unit monitor type which consumes the property bags</li>
<li>One unit monitor which creates an alarm if there are Overrides not compliant with the naming convention</li>
<li>One unit monitor which creates an alarm if there are expired temporary Overrides</li>
</ul>
<p>Explanations:</p>
<ul>
<li>MP Filter in the script<br />I will not check the syntax in ALL Override MPs, because there might be default overrides in certain MPs which do not comply with the naming convention for a good reason. As it is best practice to store all custom Overrides in own custom Override MPs, these MPs should use a certain common prefix. In this demo I have chosen <span style="text-decoration:underline;"><em>XXX</em> </span>as the prefix. So only Overrides contained in MPs beginning with the internal name XXX will be checked.</li>
<li>Workflow target<br />I have chosen the RMS Emulator role as a target for all workflows. This might not be the best choice, but it is a good trade-off between simplicity, functionality and scalability.</li>
</ul>
<p></p>
<h2>The solution in action</h2>
<p>A correct Override description according to the naming convention&nbsp;would look like that:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/Blog-OR-CorrectSyntax.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/Blog_2D00_OR_2D00_CorrectSyntax.png"><img width="392" height="341" style="width:255px;height:271px;" alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/Blog-OR-CorrectSyntax.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/Blog_2D00_OR_2D00_CorrectSyntax.png" border="0" /></a></p>
<p>But this is just a convention which cannot be enforced... <br /><span style="color:#99cc00;"><strong><span style="color:#000000;">Now the Override Handling Management Pack enters the stage :)</span> </strong></span></p>
<p>After importing the MP you can see three Monitors attached to the Configuration Health roll up Monitor on the RMS Emulator:<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/blog-mon-green.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/blog_2D00_mon_2D00_green.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/blog-mon-green.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/blog_2D00_mon_2D00_green.png" border="0" /></a><br /><br />If you create a new Override in a MP starting with XXX and not complying with the naming convention for the description field by e.g. leaving it empty&hellip;<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/Blog-OR-WIthoutText.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/Blog_2D00_OR_2D00_WIthoutText.png"><img width="392" height="351" style="width:248px;height:265px;" alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/Blog-OR-WIthoutText.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/Blog_2D00_OR_2D00_WIthoutText.png" border="0" /></a><br />&hellip; or by creating&nbsp;a temporary Override which has already expired &hellip;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/Blog-OR-Expired.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/Blog_2D00_OR_2D00_Expired.png"><img width="392" height="354" style="width:246px;height:240px;" alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/Blog-OR-Expired.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/Blog_2D00_OR_2D00_Expired.png" border="0" /></a><br /><br />&hellip; these monitors will change state and generate an alert with the problematic Override GUIDs included in the alert description:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/snip_20151104212359.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/snip_5F00_20151104212359.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/snip_20151104212359.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/snip_5F00_20151104212359.png" border="0" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/Blog-Mon-Expired.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/Blog_2D00_Mon_2D00_Expired.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/Blog-Mon-Expired.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/Blog_2D00_Mon_2D00_Expired.png" border="0" /></a></p>
<p><strong>Outcome 1: Detailed alarming<br />So you will get a detailed monitoring and alerting thus enforcing the naming convention and never forget any expired Overrides anymore!</strong></p>
<p><br />The data source will also create an export of ALL available Overrides as a CSV file with the name <span style="font-family:courier new,courier;">YYYY-MM-DD_&lt;Management Group&gt;_OverrideExport.csv</span>:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/Blog-Report-File.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/Blog_2D00_Report_2D00_File.png"><img width="312" height="86" style="width:283px;height:70px;" alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/Blog-Report-File.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/Blog_2D00_Report_2D00_File.png" border="0" /></a><br />This CSV file contains a lot of information about the Overrides. Once you import it into Excel it could look like this (I have filtered the table to match the three previously created Overrides and filtered out all unnecessary columns):</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/Blog-Report-Excel.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/Blog_2D00_Report_2D00_Excel.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/Blog-Report-Excel.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/Blog_2D00_Report_2D00_Excel.png" border="0" /></a></p>
<p></p>
<p><strong>Outcome 2: Flexible reporting<br />You can use the daily CSV files to create flexible reports in Excel and to track changes!</strong></p>
<p>The PowerShell Script in the data source will also generate detailed Event log entries (9001-9099) in the Operations Manager Eventlog on the RMS Emulator which simplifies troubleshooting and debugging:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/blog-script-events.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/blog_2D00_script_2D00_events.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/blog-script-events.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/blog_2D00_script_2D00_events.png" border="0" /></a></p>
<p></p>
<p></p>
<h2>Implementing the solution in your own SCOM environment</h2>
<p><strong><span style="color:#ff0000;">The attached unsealed Management Pack is for demonstration purpose in TEST environments &nbsp;only and not suited for production environments.</span></strong></p>
<p>The requirements for testing this MP:</p>
<ul>
<li>Management Server Action account must be member of SCOM Admin role. The PowerShell data source will be executed under this account and will try to connect to the SCOM SDK. If you don&rsquo;t like this, simply modify the MP by creating a suitable RunAs account to execute the data source under a different security context.</li>
<li>Before you import the MP please modify the overrideable parameters <span style="font-family:courier new,courier;">PrefixCustomOverrideMP</span> and <span style="font-family:courier new,courier;">ExportDirectory</span> for both Unit Monitors to suit your needs or create Overrides. <br /><strong>Please be aware that you should set the same values in both workflows to make use of Workflow Cookdown!<br /><br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/blog-MP-Customizing.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/blog_2D00_MP_2D00_Customizing.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/blog-MP-Customizing.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/blog_2D00_MP_2D00_Customizing.png" border="0" /></a></strong></li>
</ul>
<p></p>
<h2><br />Conclusion</h2>
<p>That is my way of handling SCOM Overrides. I use the naming conventions and the automation processes behind in several customer environments successfully. It is simple to implement and can easily adapted to your specific needs.</p>
<p>Let me know what you think of it.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/10318/00/00/03/65/67/41/Community.OverrideHandling.xml" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-10318-00-00-03-65-67-41/Community.OverrideHandling.xml">Community.OverrideHandling.xml</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Quick note: new SQL MP 6.6.2.0 with fixes around dashboards available -&gt; Fix 6.6.3.0 available</title>
      <link>https://docs.microsoft.com/archive/blogs/dirkbri/quick-note-new-sql-mp-6-6-2-0-with-fixes-around-dashboards-available-fix-6-6-3-0-available</link>
      <pubDate>Thu, 15 Oct 2015 02:36:00 GMT</pubDate>
      <dc:creator><![CDATA[Dirk Brinkmann]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dirkbri/2015/10/15/quick-note-new-sql-mp-6-6-2-0-with-fixes-around-dashboards-available-fix-6-6-3-0-available/</guid>
      <description><![CDATA[IMPORTANT NOTE (13.11.2015):&nbsp;An updated version 6.6.3.0 is now available which fixes the...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size:small;"><strong><span style="color:#ff0000;"><span><strong><span><span style="font-size:small;"><strong><span style="color:#ff0000;"><span><strong><span>IMPORTANT NOTE (13.11.2015):&nbsp;An updated version 6.6.3.0 is now available which fixes the previous issues</span></strong></span></span></strong></span></span></strong></span></span></strong></span></p>
<p><span style="font-size:small;"><strong><span style="color:#ff0000;"><span><strong><span></span></strong></span></span></strong></span></p>
<p style="margin-left:36pt;"><span style="color:#424242;font-family:Segoe UI;font-size:12pt;"><strong>SQL Server Visualization Library (dashboards) features and changes in v6.6.3.0 </strong></span></p>
<p><span style="font-size:small;"><strong><span style="color:#ff0000;"><span><strong><span></span></strong></span></span></strong></span></p>
<ul style="margin-left:72pt;">
<li>
<div><span style="color:#424242;font-family:Segoe UI;font-size:9pt;">Implemented batching to all data aggregation mechanisms to ensure low temp database space and log space usage. </span></div>
<ul>
<li><span style="color:#424242;font-family:Segoe UI;font-size:9pt;">Please see Notes section below for further details. </span></li>
</ul>
</li>
<li><span style="color:#424242;font-family:Segoe UI;font-size:9pt;">Implemented a control bit to divide group from non-group references to save space in aggregated data storage. </span></li>
<li><span style="color:#424242;font-family:Segoe UI;font-size:9pt;">Fixed error message in SQL DB Discovery script that erroneously stated &quot;&hellip; SQL Agent Job discovery script &hellip; failed&quot;. </span></li>
<li><span style="color:#424242;font-family:Segoe UI;font-size:9pt;">Improved performance! </span></li>
<li>
<div><span style="color:#424242;font-family:Segoe UI;font-size:9pt;">Dashboard displays behave in line with user permissions: </span></div>
<ul>
<li><span style="color:#424242;font-family:Segoe UI;font-size:9pt;">The user can see the groups according to his/her access level only. </span></li>
<li><span style="color:#424242;font-family:Segoe UI;font-size:9pt;">Read-Only mode for non-authors provides basic functions only: navigation, changing of the personalization settings. </span></li>
</ul>
</li>
<li>
<div><span style="color:#424242;font-family:Segoe UI;font-size:9pt;">Dark, Light, and Contrast themes have been added. </span></div>
</li>
</ul>
<p><span style="font-size:small;"><strong><span style="color:#ff0000;"><span><strong><span>&nbsp;</span></strong></span></span></strong></span></p>
<p><span style="font-size:small;"><strong><span style="color:#ff0000;"><span><strong><span>&nbsp;</span></strong></span></span></strong></span></p>
<p><span style="font-size:small;"><strong><span style="color:#ff0000;"><span><strong><span>IMPORTANT NOTE (22.10.2015):&nbsp;SQL Product Group has been removed the MP version 6.6.2.0 from download. Read more <a href="https://blogs.msdn.com/b/sqlreleaseservices/archive/2015/10/16/released-system-center-management-pack-for-sql-server-and-replication-6-6-2-0.aspx" target="_blank">here</a>.<br />If you are affected by the issues caused by the MP you can mitigate the issue by executing this SQL code on your OpsMgrDB according to the Product Group<br /></span></strong></span></span></strong></span></p>
<p><span style="font-family:courier new,courier;">alter procedure sdk.Microsoft_SQLServer_Visualization_Library_UpdateHierarchy as RETURN 0;</span><br /><span style="font-family:courier new,courier;">GO</span><br /><span style="font-family:courier new,courier;">alter procedure sdk.Microsoft_SQLServer_Visualization_Library_UpdateLastValues as RETURN 0;</span><br /><span style="font-family:courier new,courier;">GO</span><br /><span style="font-family:courier new,courier;">update sdk.Microsoft_SQLServer_Visualization_Library_Tables set LastProcessedId = 9223372036854775807;</span></p>
<p><span style="font-family:courier new,courier;font-size:small;"><strong><span style="color:#ff0000;"><strong>&nbsp;</strong></span></strong></span></p>
<p><span style="font-size:small;"><strong><span style="color:#ff0000;">IMPORTANT NOTE (20.10.2015):&nbsp;Please be careful with this release of the MP and test it thoroughly. There might be issues with the SQL 2014 MP and fast growing Log files which I did not notice in my test environments so far but other customers have. Thanks to Vladimir and Patrick for pointing me to this issue.</span></strong></span></p>
<p></p>
<p>This is just a short info that&nbsp; a new SQL MP is available for download <a href="https://www.microsoft.com/en-hk/download/details.aspx?id=10631" target="_blank">here</a>.</p>
<p>According to the MP guide it contains several fixes:</p>
<ul>
<li>Added a support for disabled TCP/IP protocol</li>
<li>Fixed performance metrics error that may occur on some localized versions of Windows</li>
<li><strong><span style="background-color:#ffff00;">Fixed bugs in monitor tiles on SQL Server Summary Dashboard</span></strong></li>
<li>Fixed incorrect performance of Transaction log free space monitor</li>
<li>Added new type of events from failed discoveries; added a new rule that collects such events</li>
<li>Added overrides to prevent various scripts timeout failure</li>
<li><span style="background-color:#ffff00;"><strong>Removed some 1X1 tiles from Summary Dashboards</strong></span></li>
<li>Filestream filegroups are excluded from discovery for now</li>
<li><span style="background-color:#ffff00;"><strong>2008/2012 Summary Dashboards tiles were reorganized</strong></span></li>
</ul>
<p>In my test environment everything seems to work now, so happy testing and evaluating :)</p>]]></content:encoded>
    </item>
    <item>
      <title>How I do it: SCOM alert handling/management</title>
      <link>https://docs.microsoft.com/archive/blogs/dirkbri/how-i-do-it-scom-alert-handlingmanagement</link>
      <pubDate>Tue, 22 Sep 2015 13:25:24 GMT</pubDate>
      <dc:creator><![CDATA[Dirk Brinkmann]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dirkbri/2015/09/22/how-i-do-it-scom-alert-handlingmanagement/</guid>
      <description><![CDATA[This week I had a discussion with some colleagues about SCOM alert handling/management. When do I...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:Calibri;font-size:medium;">This week I had a discussion with some colleagues about SCOM alert handling/management. When do I close an alert? How do I do that? What about the monitors causing the alert? &nbsp;How can we automate this stuff? What about roll-up monitors? A lot of questions and I never took the time to think about that in the past. This time I did and the result is this post. It is mostly a reference for myself, but I hope it gives some other people some guidance as well.</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<h3><span style="font-family:Calibri;font-size:medium;">SCOM alert handling scenarios</span></h3>
<p><span style="font-family:Calibri;font-size:medium;">What kind of alerts do we have to handle in SCOM? What are good practices and what are bad practices? <br /> I came along with five different alert handling scenarios (see attached PDF for better readability):</span></p>
<p><span style="font-family:Calibri;font-size:medium;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/SCOM-Alert-Management-Scenarios.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/SCOM_2D00_Alert_2D00_Management_2D00_Scenarios.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/SCOM-Alert-Management-Scenarios.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/SCOM_2D00_Alert_2D00_Management_2D00_Scenarios.PNG" border="0" /></a><br /></span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p></p>
<h3>Automating the scenarios</h3>
<p>In an ideal world:</p>
<ul>
<li>We only get actionable, meaningful alerts -&gt; every alert makes perfect sense</li>
<li>every monitor alert gets automatically resolved once the underlying root cause has been fixed</li>
<li>no SCOM Operator will ever close a monitor alert without ensuring that the causing monitor is healthy</li>
</ul>
<p><span style="background-color:#ffff00;">TO BE VERY CLEAR: </span><br /><span style="background-color:#ffff00;">IF YOU CLOSE AN ALERT CREATED BY A UNIT MONITOR THIS MONITOR WILL NOT&nbsp;SWITCH BACK TO A HEALTHY STATE. AS LONG AS THE ROOT CAUSE HAS NOT BEEN FIXED THE MONITOR STAYS UNHEALTHY AND WILL NOT TRIGGER ANY NEW ALERT!!!</span></p>
<p><br />But unfortunately we don&rsquo;t live in an ideal world so I created a little script (you can download it from TechNet Gallery <a href="https://gallery.technet.microsoft.com/PoC-PS-script-for-1bfcf1ca" target="_blank">here</a>) to help me with the alert handling and management according to Microsofts good practices. <br />This script handles alerts:</p>
<ul>
<li>It closes all open SCOM alerts (ResolutionState &lt;&gt; 255) where the TimeRaised property is older than a certain age.<br /><span style="font-family:courier new,courier;">-&gt; This will clean up my console if the Operators have forgotten to close alerts in time</span></li>
<li>It closes all new SCOM alerts (ResolutionState = 0) where the TimeRaised property is older than the configured SCOM alert grooming age (default 7 days)<br /><span style="font-family:courier new,courier;">-&gt; This will clean up my console if the Operators have forgotten to acknowledge or otherwise handle open alerts</span></li>
<li>It closes alerts created by specific workflows in a configurable amount of time by using an XML file with custom alert handling rules<br /><span style="font-family:courier new,courier;">-&gt; This allows you to configure exceptions to the rules above. E.g. some alerts created by the AD MP rules are not relevant after X hours. So you can close the alert safely because it will be triggered again if the issue still exists.</span><br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/AlertHouseKeepingCustomRulesetXML.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/AlertHouseKeepingCustomRulesetXML.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/AlertHouseKeepingCustomRulesetXML.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/AlertHouseKeepingCustomRulesetXML.PNG" border="0" /></a></li>
</ul>
<p>But this script takes also care of the causing monitors and their health state:</p>
<ul>
<li>If a monitor alert is closed by the script it will automatically reset the causing monitor if necessary.<br /><span style="font-family:courier new,courier;">-&gt; This will ensure that if the root cause has not been fixed the monitor will trigger a new alert during the next execution cycle.</span></li>
<li>It analysis closed monitoring alerts for the last 24 hours. If there is a closed monitor alert not tagged by the script than it is probable that an Operator has closed this alert manually. The script checks if the causing monitor has been reset. If not, the script will reset the monitor. <br /><span style="font-family:courier new,courier;">-&gt; This handles the common mistake that Operators will close alerts without taking care of the causing monitor.</span></li>
</ul>
<p>The script is a working proof of concept. Requirements are:</p>
<ul>
<li>PowerShell 2.0</li>
<li>SCOM 2012 PS module (e.g. SCOM 2012+ Console installed)</li>
<li>SCOM 2012 agent installed</li>
</ul>
<p>The reason for the SCOM agent requirement is that you can easily execute this script in a SCOM workflow context (e.g. timed rule). But you can also execute it simply in a shell. It has a detailed command based help included which explains all parameters:<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/SCOM-Alert-Management-Help.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/SCOM_2D00_Alert_2D00_Management_2D00_Help.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/SCOM-Alert-Management-Help.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/SCOM_2D00_Alert_2D00_Management_2D00_Help.PNG" border="0" /></a><br />The script will write detailed log events to the Operations Manager event log (hence the requirement for the SCOM 2012 agent):<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/EventLogEntries.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/EventLogEntries.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/EventLogEntries.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/EventLogEntries.PNG" border="0" /></a></p>
<p></p>
<p>What do you think? Do you have more SCOM alert scenarios that should be handled? Please let me know! Feedback is als always highly appreciated.</p>
<p></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p></p>
<p><span style="font-family:Times New Roman;font-size:medium;">&nbsp;</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/10318/00/00/03/65/49/72/SCOM-Alert-Management-Scenarios.pdf" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-10318-00-00-03-65-49-72/SCOM_2D00_Alert_2D00_Management_2D00_Scenarios.pdf">SCOM-Alert-Management-Scenarios.pdf</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Reporting RunAsAccount usage information in a SCOM 2012 (R2) Management Group</title>
      <link>https://docs.microsoft.com/archive/blogs/dirkbri/reporting-runasaccount-usage-information-in-a-scom-2012-r2-management-group</link>
      <pubDate>Sun, 19 Jul 2015 07:48:00 GMT</pubDate>
      <dc:creator><![CDATA[Dirk Brinkmann]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dirkbri/2015/07/19/reporting-runasaccount-usage-information-in-a-scom-2012-r2-management-group/</guid>
      <description><![CDATA[A few days ago I was asked if I had a script to list all RunAsAccounts in a SCOM Management Group...]]></description>
      <content:encoded><![CDATA[<p>A few days ago I was asked if I had a script to list all RunAsAccounts in a SCOM Management Group and their associated RunAsProfile (&ldquo;Which profile uses which account?&rdquo; or &quot;Which account is used in which profile?&quot;). I had none, but in my youthful carelessness I thought, that couldn&rsquo;t be rocket science&hellip;</p>
<p>Ok, it was not rocket science, but much harder as I thought. Quickly I came up with a function which used <span style="font-family:courier new,courier;">Get-SCOMRunAsProfile</span> and a method of the Management Group called <span style="font-family:courier new,courier;">GetMonitoringSecureDataHealthServiceReferenceBySecureReferenceId()</span> to process all RunAsAccounts and list there usage in profiles. Unfortunately this method only lists accounts in profiles where the target is the HealthService object itself. If you use other targets (classes, instances) it won&rsquo;t work.<br /><br />Hmm, looking at the console I found a link &ldquo;Where is the credential used?&rdquo;, which does the trick. <br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-02-03-GUI-CrendetialUsage.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_02_2D00_03_2D00_GUI_2D00_CrendetialUsage.PNG"></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-02-03-GUI-CrendetialUsage.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_02_2D00_03_2D00_GUI_2D00_CrendetialUsage.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-02-03-GUI-CrendetialUsage.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/300x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_02_2D00_03_2D00_GUI_2D00_CrendetialUsage.PNG" border="0" /></a><br />But how do I translate this into PowerShell?<br />Thanks to our highly knowledgeable and extremely helpful Support Engineer <a href="/b/mihai" target="_blank">Mihai Sarbulescu </a>who showed me the code behind this link I could finally finish this task!</p>
<h3>get-customscomrunasaccounttoprofile</h3>
<p>So let&rsquo;s see the function in action:<br />I have several RunAsAccounts in my Lab environment&hellip;<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-02-00-Accounts.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_02_2D00_00_2D00_Accounts.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-02-00-Accounts.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_02_2D00_00_2D00_Accounts.PNG" border="0" /></a><br />and e.g. a demo Profile with several accounts associated with different targets:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-02-01-Profile.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_02_2D00_01_2D00_Profile.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-02-01-Profile.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_02_2D00_01_2D00_Profile.PNG" border="0" /></a></p>
<p>When you run the function get-customscomrunasaccounttoprofile it will list all SCOM RunAsAccounts and their usage 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/01/03/18/2015-07-02-02-ScriptOutput.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_02_2D00_02_2D00_ScriptOutput.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-02-02-ScriptOutput.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_02_2D00_02_2D00_ScriptOutput.PNG" border="0" /></a></p>
<p>The function</p>
<ul>
<li>lists all RunAsAccounts</li>
<li>shows their usage in profiles and</li>
<li>displays&nbsp;the corresponding target ID and the display dame of the target</li>
</ul>
<p><br />You can download the most current version of the function at <a href="https://gallery.technet.microsoft.com/scriptcenter/Listing-SCOM-2012-R2-24be56b1" target="_blank">TechnetGallery</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>New SCOM dashboard gems available with SQL MP 6.6.0.0</title>
      <link>https://docs.microsoft.com/archive/blogs/dirkbri/new-scom-dashboard-gems-available-with-sql-mp-6-6-0-0</link>
      <pubDate>Mon, 06 Jul 2015 05:12:00 GMT</pubDate>
      <dc:creator><![CDATA[Dirk Brinkmann]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dirkbri/2015/07/06/new-scom-dashboard-gems-available-with-sql-mp-6-6-0-0/</guid>
      <description><![CDATA[This is just a short post to point everybody to the new SQL MP 6.6.0.0 released last week. This MP...]]></description>
      <content:encoded><![CDATA[<p>This is just a short post to point everybody to the new <a href="https://www.microsoft.com/en-us/download/details.aspx?id=10631" target="_blank">SQL MP 6.6.0.0</a> released last week. This MP comes with completely new and revamped dashboards:</p>
<h3>Overview (Datacenter) Dashboard</h3>
<p>You can create overview dashboards for SCOM groups and include State and Alert data for the group as well as aggregated performance and monitoring data:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-00-Datacenter.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_00_2D00_Datacenter.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-00-Datacenter.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_00_2D00_Datacenter.png" border="0" /></a><br />&nbsp; <br />and</p>
<h3>Individual (Instance) Dashboards</h3>
<p>The datacenter dashboards allows you to drill into your data and create additional tiles with monitoring and performance data:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-00-Instance.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_00_2D00_Instance.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-00-Instance.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_00_2D00_Instance.png" border="0" /></a></p>
<p>And the best thing is: <br /><span style="font-size:medium;"><strong>You can use these dashboards for all other (custom) SCOM classes, counters and monitors!</strong></span></p>
<p>So you are not limited to SQL data. This is just a quick demo dashboard for one of my test Management Groups:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-01-DemoDatacenter.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_01_2D00_DemoDatacenter.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-07-01-DemoDatacenter.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_07_2D00_01_2D00_DemoDatacenter.PNG" border="0" /></a></p>
<p>You can find all necessary details and steps to set these dashboards up and running in the attached SQLServerDashboards.docx document which is also included in the new SQL MP.</p>
<p></p>
<p></p>
<h3>Call to action</h3>
<p>Download and install the new SQL MP as soon as possible in your favorite test environment. Read the documentation and quickly create powerful, great looking Dashboards!</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/10318/00/00/03/65/17/67/SQLServerDashboards.docx" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-10318-00-00-03-65-17-67/SQLServerDashboards.docx">SQLServerDashboards.docx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>How are GUIDs in SCOM and SCSM calculated?</title>
      <link>https://docs.microsoft.com/archive/blogs/dirkbri/how-are-guids-in-scom-and-scsm-calculated</link>
      <pubDate>Thu, 11 Jun 2015 13:12:17 GMT</pubDate>
      <dc:creator><![CDATA[Dirk Brinkmann]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dirkbri/2015/06/11/how-are-guids-in-scom-and-scsm-calculated/</guid>
      <description><![CDATA[Quite some time ago I discussed with Raphael Burri how GUIDs for SCOM elements are getting...]]></description>
      <content:encoded><![CDATA[<p>Quite some time ago I discussed with <a href="https://rburri.wordpress.com/" target="_blank">Raphael Burri </a>how GUIDs for SCOM elements are getting calculated. To be honest even with Raphael&#39;s great explanation I did not fully understand this topic. Today I read a post from Anton Gritsenko by accident, talking about GUIDs in SCSM and I thought this is the right time to become acquainted with this topic once and for all.</p>
<p><strong>Credits for this post</strong><br />All credits and knowledge for this post goes completely to Anton Gritsenko for his great post <a href="https://blog.scsmsolutions.com/2015/05/how-to-get-guid-of-management-pack-element-even-before-import-mp-to-scsm/" target="_blank">here </a>and to Mihai Sarbulescu for his excellent post <a href="/b/mihai/archive/2014/05/03/how-object-guids-are-created-in-operations-manager-and-service-manager.aspx" target="_blank">here</a>.<br />I have just summed the topic up in a way that I (and hopefully all other interested people) can understand and hopefully remember this topic.</p>
<h2>Why do I need to know this stuff?</h2>
<p>Good question. Knowing this stuff answers questions which you might have been asked yourself already:</p>
<ul>
<li>Do you ever wanted to know, why a MP produces different GUIDs in a Lab (where it is unsealed) and a production environment (where it is sealed)?</li>
<li>What happens when you use GUIDs for instances or classes in a MP and move the MP between Management Groups (LAB -&gt; Test -&gt; Production)?</li>
</ul>
<h2>Demo XML</h2>
<p>For demonstration purposes I created a quick and dirty MP with Silects MP Author (see MP attached). It contains two classes, a discovery and two monitors:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-00-DemoMP.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_00_2D00_DemoMP.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-00-DemoMP.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_00_2D00_DemoMP.PNG" border="0" /></a></p>
<h2>&ldquo;Static&rdquo; MP elements vs. &ldquo;dynamic&rdquo; instances</h2>
<p>When we talk about GUIDs we can roughly distinguish into two main classes of GUIDs:</p>
<ul>
<li>&ldquo;static&rdquo; MP Elements<br />like the GUID for the MP itself, classes, monitors, rules etc. and</li>
<li>&ldquo;dynamic&rdquo; (Class) Instances<br />like a disk object or a health service object and so on</li>
</ul>
<p></p>
<h2>How are GUIDs for MP elements created?</h2>
<p>GUIDs for MP elements are created by using two SQL functions in the OperationsManager db:</p>
<ul>
<li><strong>dbo.fn_MPId</strong> for Management Packs<br />Example sealed MP: <span style="font-family:courier new,courier;">SELECT dbo.fn_MPId(&#39;MY.MP.NAME, &#39;%PUBLICKEY%&#39;)</span><br />Example unsealed MP: <span style="font-family:courier new,courier;">SELECT dbo.fn_MPId(&#39;MY.MP.NAME, NULL)</span></li>
<li><strong>dbo.fn_MPObjectId</strong> for other Management Pack elements like classes<br />Example sealed MP: <span style="font-family:courier new,courier;">SELECT dbo.fn_MPObjectId(&#39;MY.MP.NAME,&#39;%PUBLICKEY%&#39;,&lsquo;MY.NEW.CLASS&#39;)</span><br />Example unsealed MP: <span style="font-family:courier new,courier;">SELECT dbo.fn_MPObjectId(&#39;MY.MP.NAME, NULL, &#39;MY.NEW.CLASS&#39;)</span></li>
</ul>
<p>When you have a look at the function code you can see, that SCOM combines the function parameter and uses a SHA1 hash function to calculate the GUID:<br />&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-07-functioncode.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_07_2D00_functioncode.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-07-functioncode.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_07_2D00_functioncode.PNG" border="0" /></a></p>
<p><span style="font-family:courier new,courier;">%PUBLICKEY%</span> is the public key (aka KeyToken) of a sealed MP. You can always get this key for any sealed MP by using the <span style="font-family:courier new,courier;">get-scommanagementpack</span> Cmdlet.</p>
<p><strong>It is important to note here, that both SQL functions require all uppercase letters, so don&rsquo;t write e.g. &#39;My.MP.Name&#39;!</strong></p>
<p>Ok, let&rsquo;s verify this on an example:<br />Without importing the MP into a Management Group I check the GUID via PowerShell:<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-01-UnsealedGUID.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_01_2D00_UnsealedGUID.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-01-UnsealedGUID.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_01_2D00_UnsealedGUID.PNG" border="0" /></a><br /><br />And now let&rsquo;s verify it with the correct SQL function:<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-02-UnsealedGUID_MPID.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_02_2D00_UnsealedGUID_5F00_MPID.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-02-UnsealedGUID_MPID.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_02_2D00_UnsealedGUID_5F00_MPID.PNG" border="0" /></a><br />YESS, right GUID.</p>
<p>Now let&rsquo;s import the MP and verify a class. Again first via PowerShell:<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-03-UnsealedGUID_Class.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_03_2D00_UnsealedGUID_5F00_Class.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-03-UnsealedGUID_Class.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_03_2D00_UnsealedGUID_5F00_Class.PNG" border="0" /></a><br />And again with the correct SQL function:<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-04-UnsealedGUID_ClassSQL.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_04_2D00_UnsealedGUID_5F00_ClassSQL.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-04-UnsealedGUID_ClassSQL.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_04_2D00_UnsealedGUID_5F00_ClassSQL.PNG" border="0" /></a><br />Perfect match!</p>
<p></p>
<p></p>
<h2>How are GUIDs for MP instances created?</h2>
<p>Ok, what about GUIDs for instances? When we talk about instances we have to deal with two different types of instances:</p>
<ul>
<li>Singleton class instances&nbsp; (e.g. Groups) and</li>
<li>Non-singleton class instances (e.g. Disk objects)</li>
</ul>
<p>Singleton class instances will be treated like all other classes and will use the function&nbsp;<span style="font-family:courier new,courier;">dbo.fn_MPObjectId(&#39;MY.MP.NAME, &#39;%PUBLICKEY%&#39;, &lsquo;MY.NEW.SINGLETONCLASS &#39;)<br /></span><br />Non-singleton class instances will be treated differently and in a much more complex way:</p>
<p><strong><span style="font-family:courier new,courier;">StringToHash = &lsquo;TypeId={&lt;TypeGuid&gt;}[,{&lt;KeyPropertyId&gt;}=&lt;KeyValue&gt;][,{&lt;KeyPropertyId_2&gt;}=&lt;KeyValue_2&gt; ...]&rsquo;</span></strong></p>
<p>The string to be hashed will be calculated by combining:</p>
<ul>
<li>the GUID of the target class (TypeID) and</li>
<li>all key properties in a way like this:<br /><span style="font-family:courier new,courier;">{GUID of key property 1}=VALUE_OF_KEY_PROPERTY_IN_UPPERCASE_LETTERS</span></li>
</ul>
<p>Sounds complicated? It IS complicated unfortunately. Let&rsquo;s see an example and start with my demo class which contains only one instance and start again by using PowerShell:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-05-UnsealedGUID_ClassInstance.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_05_2D00_UnsealedGUID_5F00_ClassInstance.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-05-UnsealedGUID_ClassInstance.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_05_2D00_UnsealedGUID_5F00_ClassInstance.PNG" border="0" /></a></p>
<p><br />My <span style="font-family:courier new,courier;">SCOM.DEMO.GUID.SCOMDEMO.Application</span> class is a child of <span style="font-family:courier new,courier;">Microsoft.Windows.LocalApplication</span>. We have to find the key property which can be a bit tricky. In my case, the key property is <span style="font-family:courier new,courier;">PrincipalName (5c324096-d928-76db-e9e7-e629dcc261b1)</span> from class <span style="font-family:courier new,courier;">Microsoft.Windows.Computer (EA99500D-8D52-FC52-B5A5-10DCD1E9D2BD).</span></p>
<p>Using Mihai&rsquo;s SQL function it will look 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/01/03/18/2015-06-05-UnsealedGUID_ClassInstanceMP.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_05_2D00_UnsealedGUID_5F00_ClassInstanceMP.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-06-05-UnsealedGUID_ClassInstanceMP.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_06_2D00_05_2D00_UnsealedGUID_5F00_ClassInstanceMP.PNG" border="0" /></a></p>
<p>And again: a perfect match!</p>
<p></p>
<h2>Conclusions</h2>
<p><strong>Conclusion Nr 1:</strong> <br />MP element GUIDs are calculated based on their Name (MP name, element name) and, if sealed, on the KeyToken of the MP. As long as you do not change one of these properties (e.g. use a new MP seal key), the GUIDs will always be the same, regardless of the Management Group the MP will be imported into.</p>
<p><strong>Conclusion Nr 2:</strong> <br />As soon as you seal (or unseal) a Management Pack and import it into another Management Group, the GUIDs will change, because the KeyToken is one element in the hash function used by the SQL functions.</p>
<p><strong>Conclusion Nr 3:</strong> <br />As long as the key property value won&rsquo;t change (which his highly unlikely) and we are using sealed MPs the GUID for a class instance is also predictable.</p>
<p></p>
<p>I hope, that this post will shed some light on the creation and calculation of SCOM GUIDs. The same mechanisms are also valid for Service Manager (SCSM).</p>
<p></p>
<p></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/10318/00/00/03/65/08/50/SCOM.DEMO.GUID.xml" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-10318-00-00-03-65-08-50/SCOM.DEMO.GUID.xml">SCOM.DEMO.GUID.xml</a></p>]]></content:encoded>
    </item>
    <item>
      <title>An approach to automate SCOM service account password change – part 3/3:  the script in action</title>
      <link>https://docs.microsoft.com/archive/blogs/dirkbri/an-approach-to-automate-scom-service-account-password-change-part-33-the-script-in-action</link>
      <pubDate>Sat, 23 May 2015 09:49:12 GMT</pubDate>
      <dc:creator><![CDATA[Dirk Brinkmann]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dirkbri/2015/05/23/an-approach-to-automate-scom-service-account-password-change-part-33-the-script-in-action/</guid>
      <description><![CDATA[This is part three of my little blog series on how to automate SCOM service account password...]]></description>
      <content:encoded><![CDATA[<p>This is part three of my little blog series on how to automate SCOM service account password changes. In <a href="/b/dirkbri/archive/2015/05/22/an-approach-to-automate-scom-service-account-password-change-part-1-3-background-and-process.aspx" target="_blank">part one </a>I set the stage, in <a href="/b/dirkbri/archive/2015/05/22/an-approach-to-automate-scom-service-account-password-change-part-2-3-prerequisites-and-execution-steps.aspx" target="_blank">part two </a>I explained the individual steps this script performs and now I will show you how the script is working and what result it produces. You can download the script from <a href="https://gallery.technet.microsoft.com/PoC-PS-script-for-4685b5d7" target="_blank">TechNet Gallery</a>.</p>
<p><br /><strong>CAUTION and NOTE</strong></p>
<ol>
<li>This script is a proof of concept to demonstrate how to automate password changes in SCOM. It is neither fully tested nor&nbsp;supported by me or Microsoft in any way. Do not use this script without analyzing the code carefully and maybe adapting it to your needs. <strong>Use it at your own risk!</strong></li>
<li>There are always several way to perform certain tasks. Some are much more elegant than others. I do not claim to always use the most elegant ways in my script *smile*&nbsp;</li>
</ol>
<p>Ok, let&rsquo;s get started:</p>
<p><strong>Script help</strong><br />The script is documented by a command based help:<br />&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-00-Help.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_00_2D00_Help.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-00-Help.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_00_2D00_Help.PNG" border="0" /></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/6013.2015-05-00-Help.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/6013.2015_2D00_05_2D00_00_2D00_Help.PNG"></a></p>
<p><strong>Script call<br /></strong>Calling the script with random individual passwords (default setting) and backing up the SRS encryption key:<br /><span style="font-family:courier new,courier;">PS&gt; SCOM-SEC-ChangeSVCPassword.ps1 -managementserver myms.domain.com &ndash;BackupSRSEncryptionKey</span></p>
<p><strong>Script consent</strong><br />To prevent any accidental use of the script:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-02-Consent.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_02_2D00_Consent.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-02-Consent.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_02_2D00_Consent.PNG" border="0" /></a></p>
<p><strong>Account verification</strong><br />After testing the environment and loading the account information the script will present the information to you and ask for your consent:<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-03-VerifyAccount.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_03_2D00_VerifyAccount.PNG"></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-03-VerifyAccount.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_03_2D00_VerifyAccount.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-03-VerifyAccount.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_03_2D00_VerifyAccount.PNG" border="0" /></a></p>
<p><strong>The whole picture</strong><br />If everything goes fine, you will not get any further consent prompts and the script shell output will look something like that:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-05-ResultScripts2.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_05_2D00_ResultScripts2.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-05-ResultScripts2.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_05_2D00_ResultScripts2.PNG" border="0" /></a></p>
<p><br /><strong>Generated (log) files</strong><br />The script will generate three or four files:<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/5811.2015-05-06-ResultLogs.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/5811.2015_2D00_05_2D00_06_2D00_ResultLogs.PNG"></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-06-ResultLogs.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_06_2D00_ResultLogs.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-06-ResultLogs.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/300x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_06_2D00_ResultLogs.PNG" border="0" /></a></p>
<p>where</p>
<ul>
<li><span style="font-family:courier new,courier;">YYYY-MM-dd_hh-mm_OpsMgr_SVC_PasswordChange.log</span> <br />contains detailed logging information (without any password information)<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/6786.2015-05-07-Log.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/6786.2015_2D00_05_2D00_07_2D00_Log.PNG"></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-07-Log.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_07_2D00_Log.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-07-Log.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/300x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_07_2D00_Log.PNG" border="0" /></a></li>
<li><span style="font-family:courier new,courier;">YYYY-MM-dd_hh-mm_OpsMgr_SVC_PasswordChange.csv</span> <br />contains all account information including the new passwords in clear text</li>
<li><span style="font-family:courier new,courier;">YYYY-MM-dd_hh-mm_OpsMgr_SVC_PasswordChange_Error.log</span> <br />contains potential PowerShell errors.</li>
<li><em>[optional]</em> <span style="font-family:courier new,courier;">YYYY-MM-dd_hh-mm_[SRS Servername]_SRS_EncryptionKey.snk</span> <br />contains the SRS encryption key. The password for this key is the password of one of the accounts. Please check the <span style="font-family:courier new,courier;">YYYY-MM-dd_hh-mm_OpsMgr_SVC_PasswordChange.log</span> for details</li>
</ul>
<p></p>
<p><strong>Modifed account description</strong><br />Each AD account gets a description for better documentation appended:<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/0333.2015-05-09-ADDescription.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/0333.2015_2D00_05_2D00_09_2D00_ADDescription.PNG"></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-09-ADDescription.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_09_2D00_ADDescription.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-09-ADDescription.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_09_2D00_ADDescription.PNG" border="0" /></a><br />This is also true for RunAs accounts:<br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/4520.2015-05-08-RUnAsDescription.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/4520.2015_2D00_05_2D00_08_2D00_RUnAsDescription.PNG"></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-08-RUnAsDescription.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_08_2D00_RUnAsDescription.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/18/2015-05-08-RUnAsDescription.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/300x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-18/2015_2D00_05_2D00_08_2D00_RUnAsDescription.PNG" border="0" /></a></p>
<p><br /><br /></p>
<h3>Testing and verification</h3>
<p><strong>Do not forget to test every single SCOM component after the change! Verify that everything is up and running. If you have 3rd party software which requires password changes as well, please do this now!</strong></p>
<h3><br />Conclusion</h3>
<p>By using an automated approach like the demonstrated&nbsp;script</p>
<ul>
<li><strong>I can change SCOM service account passwords even in complex environments in under 2 minutes</strong></li>
<li>Because it is fast it allows more frequent password changes, thus increasing the overall security of your environment</li>
<li>All steps and actions taken are documented and logged&nbsp;automatically</li>
</ul>
<p>I hope you found this blog series interesting and it encourages you to create your own automation tools for your SCOM environment(s).<br />As always I would love to hear your feedback and comments.</p>]]></content:encoded>
    </item>
  </channel>
</rss>