<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Karchworld Identity</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/karchworld_identity/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/karchworld_identity/feed.xml</link>
    <description>Adventures in identity management, federation, directory services, software engineering, computer science...</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:13:03 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>MIMFIMMA Creation: Failed to connect to the specified database or Forefront Identity Management Service</title>
      <link>https://docs.microsoft.com/archive/blogs/karchworld_identity/mimfimma-creation-failed-to-connect-to-the-specified-database-or-forefront-identity-management-service</link>
      <pubDate>Thu, 18 Feb 2016 07:14:34 GMT</pubDate>
      <dc:creator><![CDATA[Erich Karch]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/karchworld_identity/2016/02/18/mimfimma-creation-failed-to-connect-to-the-specified-database-or-forefront-identity-management-service/</guid>
      <description><![CDATA[Are you having issues creating the MIM/FIM Portal Management Agent because you are getting an error...]]></description>
      <content:encoded><![CDATA[<p>Are you having issues creating the MIM/FIM Portal Management Agent because you are getting an error like the one below?</p>
<p><em><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/44/37/2211.Capture1.JPG" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-44-37/2211.Capture1.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/44/37/2211.Capture1.JPG" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-44-37/2211.Capture1.JPG" alt="" border="0" /></a></em></p>
<p>After you have exhausted all the usual things (e.g. making sure it's not a firewall issue, making sure it's not a SQL login permission issue, etc.) but are still stumped, check the Forefront Identity Manager Management Agent&nbsp;event log (i.e. EventLog --&gt; Applications and Service Logs --&gt;&nbsp;Forefront Identity Manager Management Agent) and see if you are getting an error like the one below:</p>
<p><em>System: System.UriFormatException: Invalid URI: The format of the URI could not be determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; at MIIS.ManagementAgent.RavenMA.InitializeConnection(XmlNode connectionInformationNode, XmlNode encryptedAttributeNode, Boolean runInitialization)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; at MIIS.ManagementAgent.RavenMA.UIInitialize(String pszInitString, Int32&amp; pfValid, String&amp; ppszResult)</em></p>
<p><em></em>&nbsp;</p>
<p>If you are, then the answer is quite simple -- you can actually see it in the screen shot above if you aren't too distracted by the error message. If you can't see it, let me point it out to you in the screenshot below:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/44/37/0184.Capture.JPG" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-44-37/0184.Capture.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/44/37/0184.Capture.JPG" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-44-37/0184.Capture.JPG" alt="" border="0" /></a></p>
<p>What you have done is neglected to put the FIM Service base address value in the <a href="http://<SPN>:5725">http://&lt;SPN&gt;:5725</a> notation. Adjusting the value as depicted below will correct your mistake and allow you to proceed:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/44/37/3225.Capture.JPG" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-44-37/3225.Capture.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/44/37/3225.Capture.JPG" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-44-37/3225.Capture.JPG" alt="" border="0" /></a></p>
<p>A groan-worthy, forehead slapping, bonehead mistake? Absolutely, but also a simple and easy one to make if you aren't paying attention, which is why I am putting this debugging tip up for others.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Help Desk RCDC Tab for Unlocking and Unregistering Users from SSPR</title>
      <link>https://docs.microsoft.com/archive/blogs/karchworld_identity/help-desk-rcdc-tab-for-unlocking-and-unregistering-users-from-sspr</link>
      <pubDate>Thu, 05 Nov 2015 08:56:00 GMT</pubDate>
      <dc:creator><![CDATA[Erich Karch]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/karchworld_identity/2015/11/05/help-desk-rcdc-tab-for-unlocking-and-unregistering-users-from-sspr/</guid>
      <description><![CDATA[In virtually every Self-Service Password Reset engagment I have done, there is always some role that...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: arial,helvetica,sans-serif;">In virtually every Self-Service Password Reset engagment I have done, there is always some role that organization's helpdesk / service desk (etc) plays in the administrative processes that accompany it; mainly the ability for them to clear the registrations of users whom have simply forgotten their security question answers and to unlock users whom have failed to complete the reset their passwords too many times.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif;">To make this easy, what I do is simply add a tab to the <em>Configuration for User Editing</em> RCDC. The following is the XML that I tend to just paste into it right after the ContactInfo tab and customize as necessary:&nbsp;</span><br /><br /></p>
<pre class="scroll"><code class="html"> &lt;my:Grouping my:Name="ServiceCenter" my:Caption="Service Center" my:Enabled="true" my:Visible="true"&gt;<br /> &lt;my:Help my:HelpText="%SYMBOL_ContactInfoTabHelpText_END%" my:Link="01796fb1-c1ab-417c-abe3-41d1907e299a.htm#bkmk_grouping_ContactInfo"/&gt;<br /> &lt;my:Control my:Name="ResourceCurrentSetPicker1" my:TypeName="UocIdentityPicker" my:Caption="Locked Out Authentication Processes" my:Description="This is a list of the authentication processes out of which the user is locked out (e.g. self-service password reset)" my:RightsLevel="{Binding Source=rights, Path=AuthNWFLockedOut}"&gt;<br /> &lt;my:Properties&gt;<br /> &lt;my:Property my:Name="Mode" my:Value="MultipleResult"/&gt;<br /> &lt;my:Property my:Name="ObjectTypes" my:Value="WorkflowDefinition"/&gt;<br /> &lt;my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName"/&gt;<br /> &lt;my:Property my:Name="AttributesToSearch" my:Value="DisplayName"/&gt;<br /> &lt;my:Property my:Name="Value" my:Value="{Binding Source=object, Path=AuthNWFLockedOut, Mode=TwoWay}"/&gt;<br /> &lt;my:Property my:Name="Filter" my:Value="/Set"/&gt;<br /> &lt;my:Property my:Name="UsageKeywords" my:Value="<span style="background-color: #ffff00;">ServiceCenterUI</span>"/&gt;<br /> &lt;my:Property my:Name="ResultObjectType" my:Value="AuthNWFLockedOut"/&gt;<br /> &lt;my:Property my:Name="SearchOnLoad" my:Value="true"/&gt;<br /> &lt;/my:Properties&gt;<br /> &lt;/my:Control&gt;<br /> &lt;my:Control my:Name="ResourceCurrentSetPicker2" my:TypeName="UocIdentityPicker" my:Caption="Registered Authentication Processes" my:Description="This is a list of the authentication processes for which the user is registered (e.g. self-service password reset)" my:RightsLevel="{Binding Source=rights, Path=AuthNWFRegistered}"&gt;<br /> &lt;my:Properties&gt;<br /> &lt;my:Property my:Name="Mode" my:Value="MultipleResult"/&gt;<br /> &lt;my:Property my:Name="ObjectTypes" my:Value="WorkflowDefinition"/&gt;<br /> &lt;my:Property my:Name="ColumnsToDisplay" my:Value="DisplayName"/&gt;<br /> &lt;my:Property my:Name="AttributesToSearch" my:Value="DisplayName"/&gt;<br /> &lt;my:Property my:Name="Value" my:Value="{Binding Source=object, Path=AuthNWFRegistered, Mode=TwoWay}"/&gt;<br /> &lt;my:Property my:Name="Filter" my:Value="/Set"/&gt;<br /> &lt;my:Property my:Name="UsageKeywords" my:Value="<span style="background-color: #ffff00;">ServiceCenterUI</span>"/&gt;<br /> &lt;my:Property my:Name="ResultObjectType" my:Value="AuthNWFRegistered"/&gt;<br /> &lt;my:Property my:Name="SearchOnLoad" my:Value="true"/&gt;<br /> &lt;/my:Properties&gt;<br /> &lt;/my:Control&gt;<br /> &lt;/my:Grouping&gt;</code></pre>
<p><code class="html"></code>&nbsp;</p>
<p><span style="font-family: arial,helvetica,sans-serif;"><code class="html">Below is what is looks like after you post the updated RCDC</code></span></p>
<p><span style="font-family: arial,helvetica,sans-serif;"><code class="html"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/44/37/8535.Help%20Desk%20RCDC.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-44-37/8535.Help-Desk-RCDC.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/44/37/8535.Help%20Desk%20RCDC.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-44-37/8535.Help-Desk-RCDC.jpg" alt="" border="0" /></a></code></span></p>
<p><span style="font-family: arial,helvetica,sans-serif;"><code class="html"></code>&nbsp;</span></p>
<p><span style="font-family: arial,helvetica,sans-serif;">As you can see, this will allow a help / service desk member the ablity to clear self-service password reset registrations and to clear any that have been locked. </span></p>
<p><span style="font-family: arial,helvetica,sans-serif; text-decoration: underline;"><code class="html">Couple of notes: </code></span></p>
<p><span style="font-family: arial,helvetica,sans-serif;"><code class="html">Regarding the highlighted text, if you have a UsageKeyword that you associated with Help / Service Desk UI resources (and you should organize your UI resources like that), those highlighted values are what you would replace with the UsageKeyword you've created. <br /></code></span></p>
<p><span style="font-family: arial,helvetica,sans-serif;"><code class="html">Also, be sure you grant those Help/Service Desk users (i.e. set members) the right to read and modify the <em>AuthNWFRegistered</em> and <em>AuthNWFLockedOut </em>attributes of the <em>Password Reset Users</em> set. Otherwise, this won't work.</code></span></p>
<p><span style="font-family: arial,helvetica,sans-serif;"><code class="html"></code>&nbsp;</span></p>
<p><span style="font-family: arial,helvetica,sans-serif;"><code class="html">Good luck!</code></span></p>]]></content:encoded>
    </item>
    <item>
      <title>How to Enable Users to Access the MIM Portal</title>
      <link>https://docs.microsoft.com/archive/blogs/karchworld_identity/how-to-enable-users-to-access-the-mim-portal</link>
      <pubDate>Tue, 03 Nov 2015 11:47:27 GMT</pubDate>
      <dc:creator><![CDATA[Erich Karch]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/karchworld_identity/2015/11/03/how-to-enable-users-to-access-the-mim-portal/</guid>
      <description><![CDATA[Ok, so you' ve imported all the users into the portal, but no other account can access it other than...]]></description>
      <content:encoded><![CDATA[<p>Ok, so you' ve imported all the users into the portal, but no other account can access it other than the FIM Administrator used to install the application.</p>
<p>You've done the usual to verify that everything as it is supposed to be:</p>
<ol>
<li>You verified that the user accounts in the portal have the following attributes populated and are valid:</li>
<ul>
<li>Display Name</li>
<li>Account Name</li>
<li>Domain</li>
<li>Object SID</li>
</ul>
<li>You verified that the following MPRs are enabled</li>
<ul>
<li>General: Users can read non-administrative configuration resources</li>
<li>User management: Users can read attributes of their own</li>
</ul>
</ol>
<p>But still no luck? Try this. You might have forgotten to check that stupid little checkbox while installing the MIM Portal and Service&nbsp;entitled "Grant authenticated users access to the MIM Portal site"</p>
<p>Under the hood, all that checkbox is doing is ensuring that <em>NT Authority\authenticated users&nbsp;</em>is granted <em>Read</em> permissions to your MIM Portal.</p>
<p>How can you check to see if this is the case? Open up PowerShell and do the run the following:</p>
<p style="padding-left: 30px;">&nbsp;</p>
<p style="padding-left: 30px;"># Load the SharePoint PowerShell Snap-IN<br />Add-PSSnapin Microsoft.SharePoint.PowerShell<br /><br /># Set a reference to the MIM portal website<br />$MIM = Get-SPWeb -Identity <a href="http://[MIM_PORTAL_NAME]/IdentityManagement">http://[MIM_PORTAL_NAME]/IdentityManagement</a><br /><br /># Display the list of users<br />$MIM.Users</p>
<p>If you don't see <em>NT AUTHORITY\authenticated</em> users in the list that returns, you know that is the issue. Authenticated users have not been given read permission to the MIM portal, which is of course a requirement for them to log into it..</p>
<p>&nbsp;</p>
<p>Here is how to fix it</p>
<p style="padding-left: 30px;"># Load the SharePoint PowerShell Snap-IN<br />Add-PSSnapin Microsoft.SharePoint.PowerShell<br /><br /># Set a reference to the MIM portal website<br />$MIM = Get-SPWeb -Identity <a>http://[MIM_PORTAL_NAME]/IdentityManagement</a></p>
<p style="padding-left: 30px;"><br /># Set a reference to the authenticated users<br />$account = $MIM.EnsureUser("NT AUTHORITY\authenticated users")</p>
<p style="padding-left: 30px;"># Set a reference to the Read (only) role definition<br />$role = $MIM.RoleDefinitions["Read"]<br /><br />#&nbsp;Instantiate a new role assignment object for the authenticated users<br />$assignment = New-Object Microsoft.SharePoint.SPRoleAssignment($account)<br />&nbsp;<br /># Bind the role to the new role definition<br />$assignment.RoleDefinitionBindings.Add($role)</p>
<p style="padding-left: 30px;"><br /># Add the role assignment to the web site.<br />$MIM.RoleAssignments.Add($assignment)</p>
<p style="padding-left: 30px;"># Release the reference to the web site for garbage disposal<br />$MIM.Dispose()</p>
<p>&nbsp;</p>
<p>How that helps!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>How to Update a Resource's Reference Attribute with just a Function Evaluator</title>
      <link>https://docs.microsoft.com/archive/blogs/karchworld_identity/how-to-update-a-resources-reference-attribute-with-just-a-function-evaluator</link>
      <pubDate>Wed, 07 May 2014 17:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Erich Karch]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/karchworld_identity/2014/05/07/how-to-update-a-resources-reference-attribute-with-just-a-function-evaluator/</guid>
      <description><![CDATA[I figured out something very simply yet no know with whom I consulted knew how to do: How does one...]]></description>
      <content:encoded><![CDATA[<p>I figured out something very simply yet no know with whom I consulted knew how to do: How does one update a resource object's attribute if it is a reference type with just out-of-the-box (OOB) functionality?</p>
<p>For instance, say that you wanted that whenever an owner of a group was deleted from AD that it would be replaced with a default value (i.e. say for self-service&nbsp;sake).</p>
<p>One could create a Transition-In MPR that whenever a resource enters that set (e.g. an ownerless group), that would trigger an action workflow, that would contain a custom activity that you could write -- or calls an UpdateResource activity from the Workflow Activity Library (WAL) that Microsoft Consultant Services provided you -- but wouldn't it be nice if you could just use the out-of-the-box Function Evaluator? Well, I figured out how you can.</p>
<p>In order to populate the reference attribute, create the workflow with a Function Evaluator activity that points to the desired reference attribute (e.g. [//Target/Owner]); then, for its value, add a String that simply contains the Resource ID of the desired resource (e..g e05d1f1c-3d5e-4014-baa6 -- without&nbsp;the single quotes!)&nbsp;and wallah. That is literally all there is to it.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>A Note When Creating a Custom Resource Types that Has a Domain Attribute Binding</title>
      <link>https://docs.microsoft.com/archive/blogs/karchworld_identity/a-note-when-creating-a-custom-resource-types-that-has-a-domain-attribute-binding</link>
      <pubDate>Fri, 02 May 2014 11:11:00 GMT</pubDate>
      <dc:creator><![CDATA[Erich Karch]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/karchworld_identity/2014/05/02/a-note-when-creating-a-custom-resource-types-that-has-a-domain-attribute-binding/</guid>
      <description><![CDATA[Ugh, this one was a pain-in-the-ass to figure out, but I did, so I thought I would share. The other...]]></description>
      <content:encoded><![CDATA[<p>Ugh, this one was a pain-in-the-ass to figure out, but I did, so I thought I would share. The other day, I had to add a custom resource type to the portal -- computer and contact types to be specific. After I did all tedeious work of expanding the schema, granting permissions to the synchronization engine to control them, added their types to the synchronization filter, defined the synchronization rules, blah, blah blah; when I attempted to&nbsp;export them from my ADMA into my FIMMA, I was getting the following error:<br /><br /><em>Microsoft.ResourceManagement: Microsoft.ResourceManagement.WebServices.Exceptions.UnwillingToPerformException: Other ---&gt; </em><br /><em>System.Data.SqlClient.SqlException: Reraised Error 50000, Level 16, State 1, Procedure ReRaiseException, Line 31, </em><br /><em>Message: Reraised Error 50000, Level 16, State 1, Procedure ReRaiseException, Line 31, Message: Reraised Error 547, </em><br /><em>Level 16, State 1, Procedure UpdateResource, Line 462, Message: The INSERT statement conflicted with the </em><br /><em>FOREIGN KEY constraint "FK_ObjectValueReference_BindingInternal". The conflict occurred in database "FIMService", table "fim.BindingInternal".</em><br /><em>at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)</em><br /><em>at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)</em><br /><em>at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)</em><br /><em>at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()</em><br /><em>at System.Data.SqlClient.SqlDataReader.get_MetaData()</em><br /><em>at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)</em><br /><em>at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)</em><br /><em>at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)</em><br /><em>at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)</em><br /><em>at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)</em><br /><em>at System.Data.SqlClient.SqlCommand.ExecuteReader()</em><br /><em>at Microsoft.ResourceManagement.Data.DataAccess.ProcessRequest(RequestType request)</em><br /><em>--- End of inner exception stack trace ---</em><br /><em>at Microsoft.ResourceManagement.Utilities.ExceptionManager.ThrowException(Exception exception)</em><br /><em>at Microsoft.ResourceManagement.Data.Exception.DataAccessExceptionManager.ThrowException(SqlException innerException)</em><br /><em>at Microsoft.ResourceManagement.Data.DataAccess.ProcessRequest(RequestType request)</em><br /><em>at Microsoft.ResourceManagement.ActionProcessor.ActionDispatcher.ProcessInputRequest(RequestType request)</em><br /><em>at Microsoft.ResourceManagement.WebServices.RequestDispatcher.ExecuteAction(RequestType request)</em><br /><em>at Microsoft.ResourceManagement.WebServices.RequestDispatcher.ExecuteAction[ResponseBodyType](RequestType request)</em><br /><em>at Microsoft.ResourceManagement.WebServices.RequestDispatcher.DispatchRequest[ResponseBodyType](RequestType request, Guid requestIdentifier, Object redispatchSingleInstanceKey, Boolean isRedispatch)</em><br /><em>at Microsoft.ResourceManagement.WebServices.RequestDispatcher.DispatchRequest[ResponseBodyType](RequestType request)</em><br /><em>at Microsoft.ResourceManagement.WebServices.ResourceManagementService.Create(Message request)</em></p>
<p>If you are reading this, likely you are having this problem too and likely it is because in defining the schema of the custom resource type, you included a binding to the <em>Domain</em> attribute. Well, after conferring with the product group, it turns out that whenever you create or update a binding of a resource to a <em>Domain</em>&nbsp;attribute, you must also create a&nbsp;second binding for the <em>DomainConfiguration</em> attribute to that resource type as well. *Woof* Nice for them to make that obvious...&nbsp;<br /><br />Anyway, the short of it is: whenever you create (or update) a binding to the <em>Domain</em> attribute, you <strong>must</strong> also create a <em>DomainConfiguration</em> binding. After doing so, refresh the schema of the FIMMA in the sync engine, run a full import, sync, and export, and celebrate that this nut has been cracked... freeing you up for the next one.</p>]]></content:encoded>
    </item>
    <item>
      <title>Automating Rebuilding of FIM Service Database Full-Text Index Catalogs</title>
      <link>https://docs.microsoft.com/archive/blogs/karchworld_identity/automating-rebuilding-of-fim-service-database-full-text-index-catalogs</link>
      <pubDate>Thu, 02 May 2013 06:19:25 GMT</pubDate>
      <dc:creator><![CDATA[Erich Karch]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/karchworld_identity/2013/05/02/automating-rebuilding-of-fim-service-database-full-text-index-catalogs/</guid>
      <description><![CDATA[A recommend practice is the regular rebuilding of the full text catalog for the FIM Service...]]></description>
      <content:encoded><![CDATA[<p>A recommend practice is the regular rebuilding of the full text catalog for the FIM Service database, since this optimizes performance of FIM queries.&nbsp;Without attention to maintaining this catalog one may experience SQL timeouts occurring leading to failures in FIM requests.<br /><br />This blog entry contains the instructions on how to set up the automation to rebuild the full-text indexes at 1:00am each night.</p>
<h4>Implementation Steps</h4>
<ol>
<li>Login a workstation or server that has Microsoft SQL Server Management Studio installed on it with an account that has administrative rights on the SQL server.</li>
<li>Launch SQL Server Management Studio.</li>
<li>From the SQL Servicer Management Studio&rsquo;s Object Explorer tree view on the left, navigate Databases&nbsp;--&gt; FIMService --&gt; Storage --&gt; Full Text Catalogs</li>
<li>Right-click on the ftCatalog node under Full Text Catalogs and select Properties. The Full-Text Catalog Properties window will appear.</li>
<li>On the Full-Text Catalog Properties window, select the Populate Schedule item from the menu on the left and then click the New button. The New Full-Text Indexing Catalog Schedule dialog will appear.</li>
<li>On the New Full-Text Indexing Catalog Schedule dialog, enter in the following values:<br />&bull;&nbsp;Name: Nightly Rebuild of Indexes<br />&bull;&nbsp;Enabled: checked <br />&bull;&nbsp;Schedule Type: Reoccuring<br />&bull;&nbsp;Frequency:<br />&bull;&nbsp;Occurs: Daily<br />&bull;&nbsp;Recurs every: 1 day<br />&bull;&nbsp;Daily frequency:<br />&bull;&nbsp;Occurs once at: 01:00 AM<br />&bull;&nbsp;Duration<br />&bull;&nbsp;Start date: (today&rsquo;s date)<br />&bull;&nbsp;No end date: selected</li>
<li>On the New Full-Text Indexing Catalog Schedule dialog, click the OK button. The New Full-Text Indexing Catalog Schedule dialog will close.</li>
<li>On the Full-Text Catalog Properties window, click the OK button. The Full-Text Catalog Properties window will close.</li>
</ol>]]></content:encoded>
    </item>
    <item>
      <title>Automating the Clearing of a FIM Synchronization Server's of Run History</title>
      <link>https://docs.microsoft.com/archive/blogs/karchworld_identity/automating-the-clearing-of-a-fim-synchronization-servers-of-run-history</link>
      <pubDate>Thu, 02 May 2013 06:09:00 GMT</pubDate>
      <dc:creator><![CDATA[Erich Karch]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/karchworld_identity/2013/05/02/automating-the-clearing-of-a-fim-synchronization-servers-of-run-history/</guid>
      <description><![CDATA[As many of you know, periodically&nbsp;clearing of the FIM Synchronization Server's Run History is...]]></description>
      <content:encoded><![CDATA[<p>As many of you know, periodically&nbsp;clearing of the FIM Synchronization Server's Run History is not only a good idea, it's a recommended practice. Since the run history is stored in the FIMSynchronizationService database, doing so serves to minimize the growth of it, which otherwise can grow to extreme sizes after a period of time if left unchecked. Doing so not only conserves space, but also serves to ensure that there is no degradation of performance in the moving between Management Agents and Operations tabs in the Synchronization Server Console. Anyway, enough with the sermon to the choir. <br /><br />This blog entry contains three parts:</p>
<ul>
<li>Part I -&nbsp;Instructions on how to set up the automate the clearing of the run history on the first of each month.</li>
<li>Part II - The scheduled task XML file that you can simply import into yoru scheduled task library and turn on</li>
<li>Part III - The PowerShell script that will the scheduled task will call to clear the logs.</li>
</ul>
<p><strong>BUT!</strong> Before we begin, a special thanks is due to one of the best FIM consultants&nbsp;with whom&nbsp;I have ever had the pleasure of working. His name is <strong><span style="text-decoration: underline;">Oren Kwiatek</span></strong> and he is the author of the original script detailed in Part III of this post. He has since left Microsoft to form his own Washington DC based&nbsp;consulting firm specializing in FIM and IdM called <em>Intellectix</em> and he can be contacted at oren@intellectix.com</p>
<h4>Part I - Instructions:</h4>
<ol>
<li>Save the XML document in Part II to a file called FIM Clear History Runs.xml</li>
<li>Save the PowerShell document in Part III to a file called FIMClearRuns.ps1</li>
<li>Login the FIM Synchronization server with an account that is a member of the Domain Admins security group.</li>
<li>Open Windows Explorer and create a new folder called Scripts under the following path: C:\Program Files\Microsoft Forefront Identity Manager\2010\Synchronization Service. (Note: Do not change the location of this folder without also updating the XML file in Part II)</li>
<li>Into the previously created folder, copy the following files from the deployment package:<br />&bull;&nbsp;FIMClearRuns.ps1<br />&bull;&nbsp;FIM Clear History Runs.xml</li>
<li>Open the Windows Task Scheduler by navigating, Start --&gt; Administrator Tools --&gt; Task Scheduler.</li>
<li>From the tree view on the left of the Task Scheduler, select and then right-click on the Task Scheduler Library entry and select New Folder. In the textbox on the modal dialog that appears, enter in the name FIM Automation and then click the OK button. The dialog will close and the folder will be created.</li>
<li>From the tree view on the left of the Task Scheduler, select and then right-click on the newly created FIM Automation folder and select Import Task. An Open File dialog will appear.</li>
<li>From the Open File dialog, navigate to the FIM Incremental Sync.xml file located in the following folder: C:\Program Files\Microsoft Forefront Identity Manager\2010\Synchronization Service\Scripts. The Create Task dialog will appear.</li>
<li>On the Create Task dialog, click the Change User button and update the service account that should be used to execute the PowerShell file. I recommend the user of the FIM Sync Service account.</li>
<li>On the Create Task dialog, click OK button. A dialog will appear to prompt you for the password for the service account specified to run this task. Enter the password for this account and click the OK button. Both dialogs will then close and the scheduled task ought to appear in the list under this folder.</li>
</ol>
<h4>Part II - FIM Clear History Runs.xml&nbsp;</h4>
<p><span style="font-size: x-small;">&lt;?xml version="1.0" encoding="UTF-16"?&gt;</span><br /><span style="font-size: x-small;">&lt;Task version="1.3" xmlns="<a href="http://schemas.microsoft.com/windows/2004/02/mit/task">http://schemas.microsoft.com/windows/2004/02/mit/task</a>"&gt;</span><br /><span style="font-size: x-small;">&nbsp; &lt;RegistrationInfo&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;Date&gt;2013-04-12T12:59:00.5037425&lt;/Date&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;Author&gt;NMIS\karcher_adm&lt;/Author&gt;</span><br /><span style="font-size: x-small;">&nbsp; &lt;/RegistrationInfo&gt;</span><br /><span style="font-size: x-small;">&nbsp; &lt;Triggers&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;CalendarTrigger&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;StartBoundary&gt;2011-02-28T01:00:00&lt;/StartBoundary&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Enabled&gt;true&lt;/Enabled&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ScheduleByMonth&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DaysOfMonth&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Day&gt;1&lt;/Day&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/DaysOfMonth&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Months&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;January /&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;February /&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;March /&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;April /&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;May /&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;June /&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;July /&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;August /&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;September /&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;October /&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;November /&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;December /&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Months&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ScheduleByMonth&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;/CalendarTrigger&gt;</span><br /><span style="font-size: x-small;">&nbsp; &lt;/Triggers&gt;</span><br /><span style="font-size: x-small;">&nbsp; &lt;Principals&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;Principal id="Author"&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;UserId&gt;DOMAIN\FIM-SYNC-ACCOUNT&lt;/UserId&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;LogonType&gt;Password&lt;/LogonType&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;RunLevel&gt;HighestAvailable&lt;/RunLevel&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;/Principal&gt;</span><br /><span style="font-size: x-small;">&nbsp; &lt;/Principals&gt;</span><br /><span style="font-size: x-small;">&nbsp; &lt;Settings&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;MultipleInstancesPolicy&gt;IgnoreNew&lt;/MultipleInstancesPolicy&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;DisallowStartIfOnBatteries&gt;false&lt;/DisallowStartIfOnBatteries&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;StopIfGoingOnBatteries&gt;false&lt;/StopIfGoingOnBatteries&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;AllowHardTerminate&gt;true&lt;/AllowHardTerminate&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;StartWhenAvailable&gt;true&lt;/StartWhenAvailable&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;RunOnlyIfNetworkAvailable&gt;false&lt;/RunOnlyIfNetworkAvailable&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;IdleSettings&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;StopOnIdleEnd&gt;true&lt;/StopOnIdleEnd&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;RestartOnIdle&gt;false&lt;/RestartOnIdle&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;/IdleSettings&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;AllowStartOnDemand&gt;true&lt;/AllowStartOnDemand&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;Enabled&gt;true&lt;/Enabled&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;Hidden&gt;false&lt;/Hidden&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;RunOnlyIfIdle&gt;false&lt;/RunOnlyIfIdle&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;DisallowStartOnRemoteAppSession&gt;false&lt;/DisallowStartOnRemoteAppSession&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;UseUnifiedSchedulingEngine&gt;false&lt;/UseUnifiedSchedulingEngine&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;WakeToRun&gt;false&lt;/WakeToRun&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;ExecutionTimeLimit&gt;PT4H&lt;/ExecutionTimeLimit&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;Priority&gt;7&lt;/Priority&gt;</span><br /><span style="font-size: x-small;">&nbsp; &lt;/Settings&gt;</span><br /><span style="font-size: x-small;">&nbsp; &lt;Actions Context="Author"&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;Exec&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Command&gt;powershell.exe&lt;/Command&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Arguments&gt;-command "&amp;amp; 'C:\Program Files\Microsoft Forefront Identity Manager\Scripts\FIMClearRuns.ps1'"&lt;/Arguments&gt;</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp; &lt;/Exec&gt;</span><br /><span style="font-size: x-small;">&nbsp; &lt;/Actions&gt;</span><br /><span style="font-size: x-small;">&lt;/Task&gt;</span></p>
<h4>Part III - FIMClearRuns.ps1</h4>
<p><span style="font-size: x-small;">####################################################################################################</span><br /><span style="font-size: x-small;"># Script Name:&nbsp;FIMClearRuns.ps1</span><br /><span style="font-size: x-small;"># Author:&nbsp;Oren Kwiatek</span><br /><span style="font-size: x-small;"># Company:&nbsp;Microsoft Corporation</span><br /><span style="font-size: x-small;"># Date:&nbsp;&nbsp;03/24/2011</span><br /><span style="font-size: x-small;"># Description:&nbsp;Performs a backup of the FIM run history then clears the runs</span><br /><span style="font-size: x-small;">####################################################################################################</span></p>
<p><span style="font-size: x-small;"># Define Variables</span></p>
<p><span style="font-size: x-small;">$filePath = "C:\Program Files\Microsoft Forefront Identity Manager\Logs\Run History"</span></p>
<p><span style="font-size: x-small;"># Script Logic</span></p>
<p><span style="font-size: x-small;">$today = Get-Date</span><br /><span style="font-size: x-small;">[datetime]$clearRunsEndingBefore = $today.ToString("yyyy-MM-01")</span><br /><span style="font-size: x-small;">$fileName = "Run History for " + $clearRunsEndingBefore.AddDays(-1).ToString("yyyy-MM") + ".log"</span></p>
<p><span style="font-size: x-small;">if ((Test-Path $filePath) -eq $false)</span><br /><span style="font-size: x-small;">{</span><br /><span style="font-size: x-small;">&nbsp;New-Item $filePath -type Directory</span><br /><span style="font-size: x-small;">}</span></p>
<p><span style="font-size: x-small;">New-Item -path $filePath -name $fileName -type File</span></p>
<p><span style="font-size: x-small;">$runs = Get-WmiObject -Class MIIS_RunHistory -Namespace root/MicrosoftIdentityIntegrationServer</span></p>
<p><span style="font-size: x-small;">$runs | ForEach-Object {</span><br /><span style="font-size: x-small;">&nbsp;$run = $_</span></p>
<p><span style="font-size: x-small;">&nbsp;If ([datetime]$run.RunEndTime -lt $clearRunsEndingBefore)</span><br /><span style="font-size: x-small;">&nbsp;{</span><br /><span style="font-size: x-small;">&nbsp;&nbsp;Write-Host ('Exporting ' + $run.RunEndTime)</span></p>
<p><span style="font-size: x-small;">&nbsp;&nbsp;$run.RunDetails().ReturnValue &gt;&gt; $filePath\$fileName</span><br /><span style="font-size: x-small;">&nbsp;}</span><br /><span style="font-size: x-small;">}</span></p>
<p><span style="font-size: x-small;">$mc = Get-WmiObject MIIS_Server -Namespace 'ROOT\MicrosoftIdentityIntegrationServer'</span><br /><span style="font-size: x-small;">$inParams = $mc.psbase.GetMethodParameters('ClearRuns')</span><br /><span style="font-size: x-small;">$inParams.EndingBefore = $clearRunsEndingBefore</span><br /><span style="font-size: x-small;">$mc.psbase.InvokeMethod('ClearRuns', $inParams, $null)</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Powershell: Create 1000 Test User Accounts</title>
      <link>https://docs.microsoft.com/archive/blogs/karchworld_identity/powershell-create-1000-test-user-accounts</link>
      <pubDate>Mon, 01 Apr 2013 11:59:00 GMT</pubDate>
      <dc:creator><![CDATA[Erich Karch]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/karchworld_identity/2013/04/01/powershell-create-1000-test-user-accounts/</guid>
      <description><![CDATA[For those looking for populate a test domain -- oooh with say a 1000 users with distinct user...]]></description>
      <content:encoded><![CDATA[<p>For those looking for populate a test domain -- oooh with say a 1000 users with distinct user attribute values -- here is a script that I think will do you just fine:&nbsp;</p>
<p>&nbsp;</p>
<hr style="width: 720px;" width="720" />
<p>Import-Module ActiveDirectory</p>
<p>&nbsp;$total = 1000<br />&nbsp;for ($userIndex=0; $userIndex -lt $total; $userIndex++) <br />&nbsp;{ <br />&nbsp;&nbsp;$userID = "{0:0000}" -f ($userIndex + 1)<br />&nbsp;&nbsp;$userName = "test.user$userID"</p>
<p>&nbsp;&nbsp;Write-Host "Creating user" ($userIndex + 1) "of" $total ":" $userName</p>
<p>&nbsp;&nbsp;New-ADUser `<br />&nbsp;&nbsp;&nbsp;-AccountPassword (ConvertTo-SecureString "AAaaAAaa11!!11" -AsPlainText -Force) `<br />&nbsp;&nbsp;&nbsp;-City "City" `<br />&nbsp;&nbsp;&nbsp;-Company "Company" `<br />&nbsp;&nbsp;&nbsp;-Country "US" `<br />&nbsp;&nbsp;&nbsp;-Department "Department" `<br />&nbsp;&nbsp;&nbsp;-Description ("TEST ACCOUNT " + $userID + ": This user account does not represent a real user and is meant for test purposes only")`<br />&nbsp;&nbsp;&nbsp;-DisplayName "Test User ($userID)" `<br />&nbsp;&nbsp;&nbsp;-Division "Division" `<br />&nbsp;&nbsp;&nbsp;-EmailAddress "<a href="mailto:$userName@nmis.gwan.npa.ic.gov">$userName@karchworld.local</a>" `<br />&nbsp; &nbsp;&nbsp;-EmployeeNumber "$userID" `<br />&nbsp;&nbsp;&nbsp;-EmployeeID "ISED$userID" `<br />&nbsp;&nbsp;&nbsp;-Enabled $true `<br />&nbsp;&nbsp;&nbsp;-Fax "703-555-$userID" `<br />&nbsp;&nbsp;&nbsp;-GivenName "Test" `<br />&nbsp;&nbsp;&nbsp;-HomePhone "703-556-$userID" `<br />&nbsp;&nbsp;&nbsp;-Initials "TU$userID" `<br />&nbsp;&nbsp;&nbsp;-MobilePhone "703-557-$userID" `<br />&nbsp;&nbsp;&nbsp;-Name "Test User ($userID)" `<br />&nbsp;&nbsp;&nbsp;-Office "Office: $userID"`<br />&nbsp;&nbsp;&nbsp;-OfficePhone "703-558-$userID" `<br />&nbsp;&nbsp;&nbsp;-Organization "Organization" `<br />&nbsp;&nbsp;&nbsp;-Path "OU=Users,,DC=KARCHWORLD,DC=LOCAL" `<br />&nbsp;&nbsp;&nbsp;-POBox "PO Box $userID"`<br />&nbsp;&nbsp;&nbsp;-PostalCode $userID `<br />&nbsp;&nbsp;&nbsp;-SamAccountName $userName `<br />&nbsp;&nbsp;&nbsp;-State "VA - Virginia" `<br />&nbsp;&nbsp;&nbsp;-StreetAddress "$userID Any Street" `<br />&nbsp;&nbsp;&nbsp;-Surname "User ($userID)" `<br />&nbsp;&nbsp;&nbsp;-Title "Title" `<br />&nbsp;&nbsp;&nbsp;-UserPrincipalName "<a href="mailto:$userName@nmis.gwan.npa.ic.gov">$userName@karchworld.local</a>"<br />&nbsp;}</p>]]></content:encoded>
    </item>
    <item>
      <title>FIM 2010 Kerberos Overview &amp; Setup</title>
      <link>https://docs.microsoft.com/archive/blogs/karchworld_identity/fim-2010-kerberos-overview-setup</link>
      <pubDate>Tue, 22 Jan 2013 10:25:00 GMT</pubDate>
      <dc:creator><![CDATA[Erich Karch]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/karchworld_identity/2013/01/22/fim-2010-kerberos-overview-setup/</guid>
      <description><![CDATA[I don't usually do this, but I came across just a great article on how FIM 2010&nbsp;utilizes...]]></description>
      <content:encoded><![CDATA[<p>I don't usually do this, but I came across just a great article on how FIM 2010&nbsp;utilizes Kerberos for securing communications between its components, that I thought I would share it:</p>
<p><a href="http://social.technet.microsoft.com/wiki/contents/articles/3385.aspx">FIM 2010 Kerberos Setup by Thomas Vuylsteke</a></p>
<p>...What a great piece of IP</p>]]></content:encoded>
    </item>
    <item>
      <title>Automating FIM Syncs but "A Specified Logon Session Does Not Exist!" WTF does that mean?</title>
      <link>https://docs.microsoft.com/archive/blogs/karchworld_identity/automating-fim-syncs-but-a-specified-logon-session-does-not-exist-wtf-does-that-mean</link>
      <pubDate>Thu, 10 Jan 2013 10:42:00 GMT</pubDate>
      <dc:creator><![CDATA[Erich Karch]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/karchworld_identity/2013/01/10/automating-fim-syncs-but-a-specified-logon-session-does-not-exist-wtf-does-that-mean/</guid>
      <description><![CDATA[Personally, I think it would be really nice -- and perhaps is long overdue -- for the FIM...]]></description>
      <content:encoded><![CDATA[<p>Personally, I think it would be really nice -- and perhaps is long overdue -- for the FIM Synchronization engine to provide functionality to allow for the automated execution of run profiles on a schedule, but until that sweet day, we need to use the standard process of exectuing the run profiles via a script,&nbsp;initiated from a scheduled task. <br /><br />Anyway, I digress...</p>
<p>This morning, while attempting to create a scheduled task to run my automation script&nbsp;(under the security context of a service account WITH a persisted password), this usually routine effort was thwarted with the following error message when I attempted to save it:<br /><br /><strong><span style="font-size: medium;"><em>An error has occurred for task [NAME OF SCHEDULED TASK]. Error Message: The following error was reported: A specified logon session does not exist. It may already have been terminated.</em></span></strong> <br /><br />What this jibber-jabber is saying is that there is a local policy preventing you from persisting (i.e. storing) the&nbsp;specified service account's password.&nbsp;<br /><br />To verify this:</p>
<ol>
<li>Open up your Local Security Policies.</li>
<li>Navigate&nbsp;to Security&nbsp;Settings --&gt; Local Policies --&gt; Security Options</li>
<li>Open up the policy, <em>Network access: Do not allow storage of passwords and credentials for network authentication</em></li>
<li>If that locally is enabled, you will need to disable it in order to persist the password for your service account.</li>
</ol>
<p>As usual, if your ability to change it is grayed out otherwise unavailable, you either do not have rights to change the policy or the policy is controlled by GPO. Either way, you will need to disable this policy in order to get past this.</p>
<p>Good luck!&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>