<?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>AD Troubleshooting</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/instan/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/instan/feed.xml</link>
    <description>AD and Domain-related issues and troubleshooting methods for Active Directory.</description>
    <lastBuildDate>Mon, 02 Nov 2015 04:03:04 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Iceland vNext evolution</title>
      <link>https://docs.microsoft.com/archive/blogs/instan/iceland-vnext-evolution</link>
      <pubDate>Tue, 16 Jul 2013 18:34:00 GMT</pubDate>
      <dc:creator><![CDATA[Ingolfur Arnar Stangeland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/instan/2013/07/16/iceland-vnext-evolution/</guid>
      <description><![CDATA[This blog has been my scratchpad for the last 6 years or so for noting down interesting things...]]></description>
      <content:encoded><![CDATA[<p>This blog has been my scratchpad for the last 6 years or so for noting down interesting things encountered while assisting customers get the most out of their Microsoft Environments. However, as I'm leaving Microsoft and relocating then this will be the closing entry on it.<p>My primary goal at Microsoft was to make Windows just a Little Bit Better and as part of the hivemind of engineers contributing to it I'd like to believe that was a success*.</p><p><br>Once the initial dust settles after our relocation&nbsp;you can go to <a href="https://blog.cryptocrap.com">https://blog.cryptocrap.com</a> if you're interested in following future Writings/scratchpad entries on similar subjects from the author of this blog.</p><p>Thanks for your time :)</p><p>&nbsp;</p><p><span style="font-size:x-small;"><strong><em>Footnotes</em></strong></span></p><p><span style="font-size:x-small;"><em>* No, I did<strong> *not*</strong> remove the Start button...</em></span></p></p>
]]></content:encoded>
    </item>
    <item>
      <title>Peeling the onion - how many layers should your PKI have?</title>
      <link>https://docs.microsoft.com/archive/blogs/instan/peeling-the-onion-how-many-layers-should-your-pki-have</link>
      <pubDate>Fri, 05 Jul 2013 02:17:00 GMT</pubDate>
      <dc:creator><![CDATA[Ingolfur Arnar Stangeland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/instan/2013/07/05/peeling-the-onion-how-many-layers-should-your-pki-have/</guid>
      <description><![CDATA[I&lsquo;ve been talking to a colleague who insists a 1-tier PKI infrastructure is better than a...]]></description>
      <content:encoded><![CDATA[<p style="padding-left:30px;"><span style="color:#339966;"><em>I&lsquo;ve been talking to a colleague who insists a 1-tier PKI infrastructure is better than a 2-tier PKI infrastructure but without providing details on exactly why.&nbsp; <br>Is it better?</em></span><p><em></em>&nbsp;The word &bdquo;Better&ldquo; is fairly meaningless as a quantitative descriptor.&nbsp; If you&lsquo;re talking to someone that uses that word when describing an IT-related subject it probably means that it&lsquo;s a question of belief and preference rather than a matter of logic and factual evidence.</p><p>Easier to deploy and simpler to manage, yes &ndash; Better, no.</p><p>The answer to the 1-tier vs. 2-tier question for PKI deployments is entirely dependant on what you intend to do with the PKI environment and, more importantly,&nbsp;the requirements of other&nbsp;organizations that you want to establish a certificate relationship with.</p><p style="padding-left:30px;"><strong>For example;</strong> most military or financial institutions that you want to establish a certificate trust with will typically dictate security requirements that you must fulfil in order for them to start considering whether they can trust you (and this will typically include a requirement for the Root CA to be offline while the issuing CA&lsquo;s can be online.</p><p>The general rule of thumb is that you should not spend more money on protecting assets than what they are worth.&nbsp; However, this cost can include goodwill, privacy concerns, prestige and loss of reputation from a breach so even if you&lsquo;re not protecting an asset that has a high value in itself the secondary value needs to be considered in the equation.</p><p>The primary reason for deploying an offline root CA is typically to minimize the attack surface of it and simplify revocation in case of a breach as distributing a CRL for a revoked issuing CA to all affected workstations requires less work and takes less time than removing a trusted Root CA certificate from the clients (especially for unmanaged clients that you don't have direct control of).&nbsp;</p><p>A secondary reason for a 2-tier deployment is to be able to revoke the issuing CA certificate without needing to redeploy the trusted root certificate which would be necessary for a 1-tier online issuing root CA.</p><p>Additionally, if you have no management control over the clients you cannot remove a breached Root CA certificate from them whereas revoking a SubCA certificate will be subject to normal revocation checking and will be picked up by the clients the next time they download your CRL (or OCSP response) without you being involved.</p><p>Policy requirements and company politics can also come into play for the design decisions, for example if you have several different departments that must be able to manage their own issuing CA servers then the overhead of distributing and managing multiple trusted Root CA certificates is higher than having one Root CA that all issuing CA&lsquo;s chain up to.</p><p style="padding-left:30px;"><strong><br>In short; </strong>there are pros and cons for both 1-tier and 2-tier PKI infrastructures, you need to start any PKI project by evaluating what your needs are and what your budget is before you decide on a 1-tier or a 2-tier deployment (or a 3-tier for that matter).&nbsp; Just make sure you don't let anyone tell you one is always better than the other, that is simply not the case.</p><p>&nbsp;</p><p>For a second opinion from non-Microsoft sources, please consult the following non-Microsoft sites:</p><p><strong>Hierarchies in PKI<br></strong><a href="https://networklore.com/hierarchies-in-pki/">https://networklore.com/hierarchies-in-pki/</a></p><p>&nbsp;</p><p><em>3.4.1 PKI Certificate<br>Hierarchy Recommendations for ICCP Networks Each certification hierarchy has<br>its advantages and disadvantages, and each network is different. See section 1,</em></p><p><a href="https://energy.gov/sites/prod/files/oeprod/DocumentsandMedia/19-Secure_ICCP_Integration.pdf">https://energy.gov/sites/prod/files/oeprod/DocumentsandMedia/19-Secure_ICCP_Integration.pdf</a></p><p>From page 88:</p><p>&nbsp;</p><p><strong><em>[1-Tier]</em></strong></p><p><em>This centralized approach has several strengths and weaknesses:</em></p><p><strong><em>Strengths</em></strong></p><ul>
<li><em>&bull; </em><em>Certificates are managed by one central site, relieves burden from<br>individual companies</em></li>
<li><em>&bull; </em><em>A node needs to send only its own certificate in the handshake</em></li>
<li><em>&bull; </em><em>CRLs are simpler and valid across the system</em></li>
<li><em>&bull; </em><em>CRLs are managed at one central site</em></li>
<li><em>&bull; </em><em>Simplicity; getting PKI services is very straightforward</em></li>
</ul><p><strong><em>&nbsp;</em></strong></p><p><strong><em>Weaknesses</em></strong></p><ul>
<li><em>&bull; </em><em>Does not scale to large networks (500+ nodes)</em></li>
<li><em>&bull; </em><em>Centralized solution provides a single point of failure</em></li>
<li><em>&bull; </em><em>&ldquo;One size fits all&rdquo; model of security for all nodes across<br>different companies. Changes to the security policy must be more formal and<br>restrictive since they affect all nodes.</em></li>
<li><em>&bull; </em><em>Companies must trust the single CA to manage everyone fairly</em></li>
<li><em>&bull; </em><em>Single node responsible for CRLs can experience heavy load</em></li>
<li><em>&bull; </em><em>The process of adding a node to the CRL can be complicated</em></li>
</ul><p><em>&nbsp;</em></p><p><em>As networks grow larger, the flat PKI structure becomes difficult<br>for a single entity to manage and service. Furthermore, either out of<br>convenience or distrust, organizations may prefer to manage their own PKI nodes<br>themselves. To satisfy these issues, a tiered PKI hierarchy can be implemented.</em></p><p><em>&nbsp;</em></p><p><strong><em>[2-tier]</em></strong></p><p><strong><em>Strengths</em></strong></p><ul>
<li><em>&bull; </em><em>Scales very well for larger networks. There can be multiple tiers<br>of CAs between the root CA and the end node.</em></li>
<li><em>&bull; </em><em>Each company can independently manage its own nodes</em></li>
<li><em>&bull; </em><em>There is much less stress on the single root CA</em></li>
<li><em>&bull; </em><em>The burden of circulating the CRL is no longer on a single node</em></li>
<li><em>&bull; </em><em>A failure or compromise at a company&rsquo;s CA will only affect that<br>company&rsquo;s nodes</em></li>
</ul><p><strong><em>Weaknesses</em></strong></p><ul>
<li><em>&bull; </em><em>Complexity. This scenario is slightly more complex. The company<br>CAs must occasionally have their certificates updated, which in turn must be<br>distributed to all the nodes.</em></li>
<li><em>&bull; </em><em>There are multiple CAs that must be secured from failure and<br>attack</em></li>
<li><em>&bull; </em><em>Each company must maintain its own CRL and distribute<br>certificates.</em></li>
<li><em>&bull; </em><em>Multiple certificates must be passed to provide proper<br>authentication</em></li>
<li><em>&bull; </em><em>Lower-tiered CAs must have<br>reachback to the primary &ldquo;root&rdquo; CA.</em><strong><em></em></strong></li>
</ul><p>&nbsp;</p></p>
]]></content:encoded>
    </item>
    <item>
      <title>Assigning a static RPC port to ADLDS or ADAM for replication</title>
      <link>https://docs.microsoft.com/archive/blogs/instan/assigning-a-static-rpc-port-to-adlds-or-adam-for-replication</link>
      <pubDate>Wed, 26 Jun 2013 00:18:00 GMT</pubDate>
      <dc:creator><![CDATA[Ingolfur Arnar Stangeland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/instan/2013/06/26/assigning-a-static-rpc-port-to-adlds-or-adam-for-replication/</guid>
      <description><![CDATA[Just wanted to put this here as it's not been easy to find this information anywhere:ADLDS registers...]]></description>
      <content:encoded><![CDATA[<p>Just wanted to put this here as it's not been easy to find this information anywhere:<p>ADLDS registers a custom RPC port which is by default taken from the dynamic port range 49152-65535, this is NOT the same as the LDAP port specified for the instance. On ADAM the same thing applies but the dynamic port range there is 1025-5000.</p><p>This means that if you're upgrading from ADAM to ADLDS and are using firewalls with aggressive blocking&nbsp;between your ADAM instances then you'll need to update the firewall rules to allow the new dynamic port range.</p><p>Alternatively, you can also lock down each ADAM or ADLDS instance to a specific RPC port using the following registry entry:</p><p>&nbsp;</p><div class="reg_path" style="padding-left: 30px;"><em>HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices&lt;ADLDS or ADAM instance&gt;Parameters</em></div><p style="padding-left: 30px;"><em>Registry value:&nbsp; TCP/IP Port</em><br><em>Value type:&nbsp; REG_DWORD</em><br><em>Value data: (available port)</em></p><p>&nbsp;</p><p>This is effectively the same as the setting for NTDS in KB224196 but needs to reference each ADLDS instance and use a separate port for each.<br>The DCTcpipPort entry only applies to Netlogon on DC's and shouldn't need to be set.</p><p><br>Details:</p><p><strong>The default dynamic port range for TCP/IP has changed in Windows Vista and in Windows Server 2008</strong><br><a href="https://support.microsoft.com/kb/929851">https://support.microsoft.com/kb/929851</a></p><p><strong>Understanding ADAM bind redirection</strong><br><a href="https://technet.microsoft.com/en-us/library/cc758386(v=WS.10).aspx">https://technet.microsoft.com/en-us/library/cc758386(v=WS.10).aspx</a></p><p><strong>Restricting Active Directory replication traffic and client RPC traffic to a specific port</strong><br><a href="https://support.microsoft.com/kb/224196">https://support.microsoft.com/kb/224196</a></p><p><strong>Active Directory Application Mode Tools and Settings</strong><a href="https://technet.microsoft.com/en-us/library/cc739021(v=WS.10).aspx"><br>https://technet.microsoft.com/en-us/library/cc739021(v=WS.10).aspx</a></p><p><strong>Active Directory Lightweight Directory Services (ADLDS) Monitoring Management Pack<br></strong><a href="https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&amp;id=1451">https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&amp;id=1451</a></p><p>&nbsp;<strong>ADLDS ASKDS entries:<br></strong><a href="https://blogs.technet.com/b/askds/archive/2009/04/02/one-stop-audit-shop-for-adam-and-adlds.aspx">https://blogs.technet.com/b/askds/archive/2009/04/02/one-stop-audit-shop-for-adam-and-adlds.aspx</a>&nbsp;<br><a href="https://blogs.technet.com/b/askds/archive/2011/05/27/viewing-adlds-traffic-with-netmon-where-is-my-ldap.aspx">https://blogs.technet.com/b/askds/archive/2011/05/27/viewing-adlds-traffic-with-netmon-where-is-my-ldap.aspx</a></p></p>
]]></content:encoded>
    </item>
    <item>
      <title>God mode on Windows 8</title>
      <link>https://docs.microsoft.com/archive/blogs/instan/god-mode-on-windows-8</link>
      <pubDate>Tue, 25 Jun 2013 12:30:57 GMT</pubDate>
      <dc:creator><![CDATA[Ingolfur Arnar Stangeland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/instan/2013/06/25/god-mode-on-windows-8/</guid>
      <description><![CDATA[It' s summer, you're bored enough to start reading random newsletters and then you pick up something...]]></description>
      <content:encoded><![CDATA[<p>It' s summer, you're bored enough to start reading random newsletters and then you pick up something useful.<ol>
<li>Create a folder on your Surface desktop with&nbsp;the name <strong><em>GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}</em></strong></li>
<li>Open The folder for a surprise...</li>
</ol><p>&nbsp;</p><p>...this incidentally also works on Windows 7.</p><p>&nbsp;</p></p>
]]></content:encoded>
    </item>
    <item>
      <title>ADCS and dedicated CRL-signing certificates</title>
      <link>https://docs.microsoft.com/archive/blogs/instan/adcs-and-dedicated-crl-signing-certificates</link>
      <pubDate>Thu, 13 Jun 2013 01:31:00 GMT</pubDate>
      <dc:creator><![CDATA[Ingolfur Arnar Stangeland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/instan/2013/06/13/adcs-and-dedicated-crl-signing-certificates/</guid>
      <description><![CDATA[&nbsp;We're seeing what appears to be random revocation checking failures on clients for...]]></description>
      <content:encoded><![CDATA[<p style="padding-left: 30px;">&nbsp;<em><span style="color: #339966;">We're seeing what appears to be random revocation checking failures on clients for certificates issued by our CA.&nbsp;The infrastructure is a 2-tier PKI with an OCSP defined on the issuing CA certificate and the CRL from the Root CA signed by a dedicated CRL-signing </span></em><em><span style="color: #339966;">certificate (i.e. not the issuing cert).&nbsp; <br><br></span></em><span style="color: #339966;">We&acute;ve observed that in cases where the OCSP is reachable the revocation checking succeeds but even this seems to sometimes fail for the same CRL.</span><p>&nbsp;</p><p>CAPI2 does not support using a dedicated CRL signing certificate, it only supports CRL's signed by the issuer of the certificate being validated.&nbsp; CAPI2 <strong>*does*</strong> however support OCSP responses signed by a dedicated OCSP-signing certificate.</p><p>In your case the CRL check will always fail because the CRL isn't signed by the issuer, when using OCSP it will succeed as the OCSP response is signed by the dedicated OCSP-signing certificate.&nbsp;&nbsp;As long as&nbsp;the OCSP check succeeds then the certificate validates and everything is fine and dandy.</p><p>However, if a revocation check request is made more than the magic number of 50 times (the default) for a specific issuer then the default behaviour is to switch to CRL instead and this will fail as the CRL isn't signed by the issuer of the CRL&nbsp;(which explains the seeming randomness of the failure).</p><p>So, in your case once the client has made more than 50 revocation checks for certificates issued by your CA (which will succeed) then it switches to CRL's (which will fail).&nbsp; This will be locally on each client so you may see two clients side-by-side where one works and the other one fails because it has done more than 50 checks.&nbsp; Rebooting the failing client will reset the magic number count and things will magically work again (until 50 checks have been made).</p><p>Simple, eh? :-)</p><p>&nbsp;</p><p>From <a href="https://technet.microsoft.com/en-us/library/ee619754(v=WS.10).aspx">https://technet.microsoft.com/en-us/library/ee619754(v=WS.10).aspx:</a></p><p><em>In some cases, CryptoAPI may retrieve CRLs before OCSP URLs. This only occurs when one of the following two circumstances exist:</em></p><ul>
<li class="unordered"><em>The number of cached OCSP responses for a specific certificate issuer exceeds the magic number defined in Group Policy. This number is 50 by default.</em></li>
<li class="unordered"><em>Group Policy is configured to prefer CRLs over OCSP for revocation checking.</em></li>
</ul><p>....</p><p><em>When CryptoAPI must validate a certificate for revocation status, the following algorithm is used:</em></p><ol class="ordered">
<li><em>If a stapled OCSP response that was returned by the TLS server or the DC is time valid, the stapled response is used to validate the certificate.</em></li>
<li><em>If the certificate being validated only includes either OCSP or CRL information, then the URLs are processed in the order in which they are presented in the certificate.</em></li>
<li><em>If both OCSP URLs and CDP URLs are present, the following routine is followed:</em><ol class="ordered">
<li><em>The initial assumption is that OCSP is preferred over CRLs.</em></li>
<li><em>When an OCSP response is cached, the URL is hashed and used as the prefix for the file name in the URL cache entry.</em></li>
</ol></li>
<li><em>The total number of cached OCSP responses from a single OCSP responder URL is calculated, and then compared to a predefined value known as the magic count. The default magic count value is 50.</em>
<ul>
<li class="unordered"><em>If the number is less than or equal to the magic count, then the OCSP URLs are processed in the order dictated by the authority information access extension.</em></li>
<li class="unordered"><span style="color: #ff0000;"><em>If the number of is greater than the magic count, then the CRL URLs are processed in the order dictated by the CRL distribution point extension.</em></span></li>
<li class="unordered"><span style="color: #ff0000;"><em>If none of the OCSP URLs in the authority information access extension succeeds, then fall back to using CRLs.</em></span></li>
</ul>
</li>
</ol><p>&nbsp;</p><p><em>The magic count value can be specified in the &ldquo;<span style="color: #ff0000;">CryptnetCachedOcspSwitchToCrlCount</span>&rdquo; DWORD value in the <span style="color: #ff0000;">HKEY_LOCAL_MACHINESoftwarePoliciesMicrosoftSystemCertificatesChainEngineConfig</span> registry key.</em>&nbsp;</p><p><strong>Note:</strong> setting this to 0 uses the default of 50, if you want to turn off OCSP fetching then you&nbsp;need to&nbsp;use the Options DWORD and the CERT_CHAIN_OPTION_DISABLE_AIA_URL_RETRIEVAL flag (0x2).&nbsp; See WinCrypt.h in the Platforms SDK for details.</p><p>&nbsp;</p><p>Further details:</p><p><strong>How Certificate Revocation Works</strong><br><a href="https://technet.microsoft.com/en-us/library/ee619754(v=WS.10).aspx">https://technet.microsoft.com/en-us/library/ee619754(v=WS.10).aspx</a></p><p><strong>Optimizing the Revocation Experience<br></strong><a href="https://technet.microsoft.com/en-us/library/ee619783(v=WS.10).aspx">https://technet.microsoft.com/en-us/library/ee619783(v=WS.10).aspx</a></p><p><strong>Installing the Platform SDK and Configuring Visual C++</strong><br><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms759194(v=vs.85).aspx">https://msdn.microsoft.com/en-us/library/windows/desktop/ms759194(v=vs.85).aspx</a></p></p>
]]></content:encoded>
    </item>
    <item>
      <title>PowerShelling your DC's</title>
      <link>https://docs.microsoft.com/archive/blogs/instan/powershelling-your-dcs</link>
      <pubDate>Sat, 04 May 2013 11:17:00 GMT</pubDate>
      <dc:creator><![CDATA[Ingolfur Arnar Stangeland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/instan/2013/05/04/powershelling-your-dcs/</guid>
      <description><![CDATA[The following is useful for scenarios where you want to either batch process a command online...]]></description>
      <content:encoded><![CDATA[<p>The following is useful for scenarios where you want to either batch process a command online against all of the DC's in the domain or if you have data files from all the DC's that you want to process offline.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/63/78/3364.DCStuff.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-63-78/3364.DCStuff.png"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/63/78/3364.DCStuff.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-63-78/3364.DCStuff.png" alt="" border="0" /></a></p>
<p>The PS script will check for the presence of a file called dclist.csv with the output of all DC's in the domain (or export the same to that file if not present) and do a loop of DSQuery to do a simple check for the LDAP response time for each.&nbsp; You'll need PowerShell 3.0 on the box you're running this from and you also need to add the AD PowerShell module option in the Remote Server Administration Tools section (Add Features Wizard on the server variant or in Programs on the client versions).</p>
<pre class="scroll"><code class="js">clear-host<br /> $objsum = New-Object -TypeName PSObject<br /> $chkfile = test-path DCList.csv<br /> $ScriptStart = Get-Date<br /> [string[]]$DCInfo=""<br /> $Msg= @()<br /> <br /> function getExTime ([object]$variable)<br /> {<br /> " ...completed in $($variable.Days) days, $($variable.Hours) hours, $($variable.Minutes) minutes, $($variable.Seconds) seconds, $($variable.Milliseconds) milliseconds"<br /> }<br /> <br /> "Processing DC's:"<br /> <br /> if ($chkfile -eq "True") {<br /> "Found DCList.csv - loading it"<br /> $DCList=import-csv DCList.csv|select-object<br /> "...imported list of DC's from DCList.csv"<br /> }<br /> else {<br /> Write-host "No DCList.csv found - creating it"<br /> import-module ActiveDirectory<br /> "...imported AD PowerShell module"<br /> $DCList=get-addomaincontroller -filter *<br /> $DCList|Export-CSV DCList.csv<br /> }<br /> <br /> "`nBreakdown of DC's in domain:"<br /> $DCList | ForEach {<br /> $DCInfo+="$($_.OperatingSystem) $($_.OperatingSystemServicePack)"|sort-object -unique<br /> }<br /> $DCsInDomain=($DCinfo.Count)-1<br /> $tableFormat = @{Expression={$_.Count};Label="Count";width=6}, @{Expression={$_.Name};Label="Operating System and Service Pack of DC's";width=120}<br /> $msg=$DCInfo|select-string -pattern "Server"|%{$data =[regex]::Replace($_,'(Windows Server).+ 2008', 'Windows Server 2008'); Write-Output "$($data)"}|Group-Object |Sort-Object -Descending -Property Count| Select-Object Count,Name |ft $tableFormat -autosize<br /> $msg<br /> "`nTotal number of DC's in domain: $($DCsInDomain)"<br /> <br /> <br /> $DCList | ForEach {<br /> #Do some tests<br /> "`nQuerying $($_.name) for partitions using LDAP:"<br /> $xScripts=Measure-command {<br /> dsquery partition -server $_.name<br /> }<br /> getExTime($xScripts)<br /> Add-Member -inputobject $objsum -membertype NoteProperty -name "$($_.name)" -value "$($xScripts)"<br /> <br /> }<br /> <br /> $objsum|sort-object|fl</code></pre>]]></content:encoded>
    </item>
    <item>
      <title>Getting FIM CM to inventory all certificate requests made outside of the FIM CM Portal</title>
      <link>https://docs.microsoft.com/archive/blogs/instan/getting-fim-cm-to-inventory-all-certificate-requests-made-outside-of-the-fim-cm-portal</link>
      <pubDate>Thu, 02 May 2013 03:50:00 GMT</pubDate>
      <dc:creator><![CDATA[Ingolfur Arnar Stangeland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/instan/2013/05/02/getting-fim-cm-to-inventory-all-certificate-requests-made-outside-of-the-fim-cm-portal/</guid>
      <description><![CDATA[There's a neat policy module plug-in called "Support for non-FIM CM certificate requests" that's...]]></description>
      <content:encoded><![CDATA[<p>There's a neat policy module plug-in called <em>"Support for non-FIM CM certificate requests"</em> that's available in the latest version of FIM CM 2010 R2 SP1:&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/63/78/3107.FIMCMCustomPolicyModuleConfig.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-63-78/3107.FIMCMCustomPolicyModuleConfig.png"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/63/78/3107.FIMCMCustomPolicyModuleConfig.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-63-78/3107.FIMCMCustomPolicyModuleConfig.png" alt="" width="792" height="551" border="0" /></a></p>
<p>&nbsp;</p>
<p>After adding this plugin as a custom policy module on the CA you need to do the following:</p>
<ul>
<li>put in the SQL connection string (should already be present in the FIM CM Exit module if your FIM CM is already set up and working)</li>
<li>tick the certificate templates that you want the template to be applied to</li>
<li>define a Profile Template that you want to use for this and specify it in the Profile Template section above</li>
</ul>
<p>&nbsp;...after this you should see all autoenrollment or manal enrollments that go through that CA show up in the FIM CM database - even if they aren't passing through the FIM Portal.</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/63/78/5852.UsageReport.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-63-78/5852.UsageReport.png"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/63/78/5852.UsageReport.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-63-78/5852.UsageReport.png" alt="" border="0" /></a></p>
<p>The limitation is of course that this is for reporting and informational purposes only - as FIM isn't making the requests on behalf of the users in this case then no private keys are being handled by FIM when enrollment is done outside the FIM CM portal so you won't be able to do certificate recovery via FIM either.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>ADFS, Antivirus and Backup and Monitoring</title>
      <link>https://docs.microsoft.com/archive/blogs/instan/adfs-antivirus-and-backup-and-monitoring</link>
      <pubDate>Tue, 09 Apr 2013 03:04:00 GMT</pubDate>
      <dc:creator><![CDATA[Ingolfur Arnar Stangeland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/instan/2013/04/09/adfs-antivirus-and-backup-and-monitoring/</guid>
      <description><![CDATA[What do I need to do a Disaster Recovery of ADFS?What exclusions should I configure for my ADFS...]]></description>
      <content:encoded><![CDATA[<p style="padding-left: 30px;"><em><span style="color: #339966;">What do I need to do a Disaster Recovery of ADFS?</span></em><br><em><span style="color: #339966;">What exclusions should I configure for my ADFS Server?<br></span></em><p>There&rsquo;s a really good Wiki article on backing up ADFS on <a href="https://social.technet.microsoft.com/wiki/contents/articles/ad-fs-2-0-how-to-back-up-the-federation-service.aspx">https://social.technet.microsoft.com/wiki/contents/articles/ad-fs-2-0-how-to-back-up-the-federation-service.aspx</a>&nbsp;that is a must-read for any serious deployment of ADFS.</p><p><strong>In short;&nbsp;</strong>a System State backup that includes all volumes of the ADFS server will be sufficient for ADFS disaster recovery (assuming AD is still present).<br>A more extended Technet article is also&nbsp;available on <a href="https://technet.microsoft.com/en-us/library/cc787348(v=WS.10).aspx">https://technet.microsoft.com/en-us/library/cc787348(v=WS.10).aspx</a>.<br>If SQL is being used&nbsp;rather than WID then a backup of the ADFS configuration database on the target SQL server being used is also required for ADFS recovery.</p><p>For Antivirus exclusions for ADFS with WID involved you should combine the exclusion recommendations for SQL and IIS on <a href="https://social.technet.microsoft.com/wiki/contents/articles/953.microsoft-anti-virus-exclusion-list.aspx">https://social.technet.microsoft.com/wiki/contents/articles/953.microsoft-anti-virus-exclusion-list.aspx</a>.</p><p>For monitoring purposes you can use the ADFS 2.x management pack for SCOM, see <a href="https://blogs.msdn.com/b/card/archive/2010/08/06/announcing-active-directory-federation-services-2-0-management-pack-for-microsoft-system-center-operations-manager-2007.aspx">https://blogs.msdn.com/b/card/archive/2010/08/06/announcing-active-directory-federation-services-2-0-management-pack-for-microsoft-system-center-operations-manager-2007.aspx</a> for details.</p><p>&nbsp;</p><p>Related links:</p><p><strong>How to back up the federation service</strong><br><a href="https://social.technet.microsoft.com/wiki/contents/articles/ad-fs-2-0-how-to-back-up-the-federation-service.aspx">https://social.technet.microsoft.com/wiki/contents/articles/ad-fs-2-0-how-to-back-up-the-federation-service.aspx</a>&nbsp;</p><p><strong>Back up ADFS components on a federation server, federation server proxy, or Web server</strong><br><a href="https://technet.microsoft.com/en-us/library/cc787348(v=WS.10).aspx">https://technet.microsoft.com/en-us/library/cc787348(v=WS.10).aspx</a></p></p>
]]></content:encoded>
    </item>
    <item>
      <title>The Power of POSH and Get-Help</title>
      <link>https://docs.microsoft.com/archive/blogs/instan/the-power-of-posh-and-get-help</link>
      <pubDate>Sat, 23 Mar 2013 00:53:45 GMT</pubDate>
      <dc:creator><![CDATA[Ingolfur Arnar Stangeland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/instan/2013/03/23/the-power-of-posh-and-get-help/</guid>
      <description><![CDATA[If you ever find yourself&nbsp;yearning to break into Powershell for extending your technological...]]></description>
      <content:encoded><![CDATA[<p>If you ever find yourself&nbsp;yearning to break into Powershell for extending your technological tendrils into areas normally reserved for C++ or C# developers then you'll want to leverage the Power of the Get-Help Powershell cmdlet.<p style="padding-left: 30px;"><strong>Example:</strong> Let's say you want to list all and any cmdlets that contain 'ADFS' or that mention 'ADFS' anywhere in the associated help:</p><p style="padding-left: 30px;"><span style="color: #339966;">Update-Help</span></p><p style="padding-left: 30px;"><span style="color: #339966;">Get-Help *ADFS*</span></p><p style="padding-left: 60px;">- or -</p><p style="padding-left: 30px;"><span style="color: #339966;">Get-Help *LDAP*</span></p><p>Once you have figured out which cmdlet you want to run you can then typically append the -example option to get some sample code for each cmdlet.</p></p>
]]></content:encoded>
    </item>
    <item>
      <title>Installing ADFS 2.1 on Windows Server 2012 with Windows Internal Database fails if local GPO granting User Rights is overwritten at the Domain or OU-level</title>
      <link>https://docs.microsoft.com/archive/blogs/instan/installing-adfs-2-1-on-windows-server-2012-with-windows-internal-database-fails-if-local-gpo-granting-user-rights-is-overwritten-at-the-domain-or-ou-level</link>
      <pubDate>Thu, 21 Mar 2013 10:32:00 GMT</pubDate>
      <dc:creator><![CDATA[Ingolfur Arnar Stangeland]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/instan/2013/03/21/installing-adfs-2-1-on-windows-server-2012-with-windows-internal-database-fails-if-local-gpo-granting-user-rights-is-overwritten-at-the-domain-or-ou-level/</guid>
      <description><![CDATA[During the installation of ADFS 2.1 on Windows Server 2012 the Add-Role wizard&nbsp;grants the local...]]></description>
      <content:encoded><![CDATA[<p>During the installation of ADFS 2.1 on Windows Server 2012 the Add-Role wizard&nbsp;grants the local virtual account <strong>NT SERVICEMSSQL$MICROSOFT##WID</strong>&nbsp;that runs the WID service '<em>Log on as&nbsp;a service</em>' user rights via&nbsp;the Local Group policy.<p>If the Local&nbsp;Group Policy that grants the user rights is overwritten by a&nbsp;GPO with a higher priority that also defines User Rights&nbsp;the WID service account will&nbsp;not have Log on as a&nbsp;Service user rights and this will in turn cause the addition of the WID role to fail during the Add-Role wizard run.</p><p>Other symptoms are that the WID service will appear to be installed but cannot start and further Add-Role wizard runs will complain that a restart is pending - which is technically correct as the WID service will not be fully removed until the next reboot.</p><p>&nbsp;</p><p>The resolution is to ensure the local Group Policy defining the User Rights permissions for the server is not overwritten at a higher level&nbsp;(the&nbsp;priority being Local-Site-Domain-OU in order) or to add <strong>NT SERVICEMSSQL$MICROSOFT##WID</strong> *or* <strong>NT SERVICEALL SERVICES</strong> to&nbsp;the winning GPO that is applying Log on as a Service User Rights settings to the W2k12 server.</p><p>&nbsp;</p></p>
]]></content:encoded>
    </item>
  </channel>
</rss>