<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Cloud No. 10</title><link>http://blogs.technet.com/b/cloud_no_10/</link><description /><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>PrepareMoveRequest.ps1 in a multi domain scenario</title><link>http://blogs.technet.com/b/cloud_no_10/archive/2012/05/15/preparemoverequest-ps1-in-a-multi-domain-scenario.aspx</link><pubDate>Tue, 15 May 2012 11:47:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3498055</guid><dc:creator>Faddal</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/cloud_no_10/rsscomments.aspx?WeblogPostID=3498055</wfw:commentRss><comments>http://blogs.technet.com/b/cloud_no_10/archive/2012/05/15/preparemoverequest-ps1-in-a-multi-domain-scenario.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;a title="PrepareMoveRequest" href="http://blogs.technet.com/b/exchange/archive/2010/08/10/3410619.aspx" target="_blank"&gt;PrepareMoveRequest&lt;/a&gt; powershell script supports 2 scenarios&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="2"&gt;1. Creating a brand new user in the local forest where the MBX will be moved to.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span size="2"&gt;2.&amp;nbsp; &lt;/span&gt;&lt;span size="2"&gt;A local recipient, either a Mail Enabled User (MEU) or Mail Enabled Contact (MEC) already exists, created by an external agent such as ILM - If the local forest object is a mail contact, the script will convert the mail contact to a mail user while persisting the contact's existing exchange-related attributes. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span size="2"&gt;If the local forest object is a MEU, the script will reuse this mail user and stamp the essential attributes on the local mail user object.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span size="2"&gt;The administrator must specify the&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span size="2"&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt; -UserLocalObject&lt;/span&gt;&lt;/em&gt; switch in order to tell the script to use this scenario. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="2"&gt;You can read more about &lt;strong&gt;PrepareMoveRequest.ps1&lt;/strong&gt; on the "&lt;a title="Exchange 2010 Cross-Forest Mailbox Moves" href="http://blogs.technet.com/b/exchange/archive/2010/08/10/3410619.aspx" target="_blank"&gt;Exchange 2010 Cross-Forest Mailbox Moves&lt;/a&gt;" article on our &lt;a title="Exchange Team Blog" href="http://blogs.technet.com/b/exchange/" target="_blank"&gt;Exchange Team Blog&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;However,&lt;/strong&gt; the PrepareMoveRequest.ps1 does not detect and merge already existing contacts in a multi domain scenario.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;Example - &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;There is a new Exchange 2010 forest created which has a parent root domain and 5 child domains. FIM is used as a GALSync tool to sync the GAL of the source forests into the new target Exchange 2010 forest. FIM creates Mail Enabled Contacts (MEC) in a FIM Sync OU which is in the parent root domain.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;A Mail Enabled User (MEU) is created in the new target forest by PrepareMoveRequest.ps1 script. This MEU is created in the child domain of the forest. The &lt;em&gt;-UseLocalObject parameter &lt;/em&gt;is used with the PrepareMoveRequest.ps1 so that any already existing mail enabled contact created earlier in the forest is merged into the MEU created by the PrepareMoveRequest.ps1 script. However the already existing MEC is not found and hence not merged as the contact exists in a different domain (forest root) than the MEU. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;NOTE: &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="2"&gt;-&lt;i&gt;UseLocalObject &lt;/i&gt;parameter finds a local matching object, merges the &lt;em&gt;LegacyExchangeDN&lt;/em&gt; attribute into the MEU created by the script and deletes the Object. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;Below is the powershell script that will have to be run after the PrepareMoveRequest.Ps1 script which will detect the contact from the parent root domain , merge the LegacyExchangeDN into the MEU object created by the PrepareMoveRequest script and delete the contact.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;NOTE: &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;em&gt;Remove-MailContact&lt;/em&gt; cannot be used to delete the contact objects that are created by FIM and throws the error that the contact is a "MailForestContact and can't be deleted" , hence it needs to be deleted from the powershell with a LDAP connection to ADSI.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;Script Funtionality:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;a) Search for an existing contact in the FIM Sync OU.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;b) If a contact already exists then merge the LegacyExchangeDN value of the Mail Contact in the existing MEU created by PrepareMoveRequest.ps1 and delete the contact.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;c)&amp;nbsp; Log the progress in a log file.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;How to run the script:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;Step 1 -&amp;nbsp; Copy the below script text starting with BEGIN till END and save it in a text file. You can name the text file with whatever name you like. &lt;strong&gt;MergeContact.txt&lt;/strong&gt; in this case.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;Step 2 &amp;ndash; Copy &lt;strong&gt;MergeContact.txt&lt;/strong&gt; &lt;strong&gt;&lt;/strong&gt;on any Exchange 2010 Server in the target forest.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;Step 3 &amp;ndash; Rename &lt;strong&gt;MergeContact.txt&lt;/strong&gt; &lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;to &lt;strong&gt;MergeContact.ps1&lt;/strong&gt; &lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;Step 4 -&amp;nbsp; Create a folder named &lt;strong&gt;Logs&lt;/strong&gt; in the same location where the script resides.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;Step 5 &amp;ndash;&amp;nbsp; Copy the Aliases of the users to be merged into a CSV file named &lt;strong&gt;Mailbox.csv&lt;/strong&gt;. Copy &lt;strong&gt;Mailbox.csv &lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;in the location "&lt;strong&gt;C:\Migration&lt;/strong&gt;". The column name of the Aliases in the CSV file should be "&lt;strong&gt;Identity&lt;/strong&gt;".&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;/span&gt; The path "C:\Migration" is not a compulsion and you can choose your own path for placing the Malbox.csv file. But if you change the path then make sure to the change the path in the script in the below shown line of the script.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;em&gt;import-csv -path "&lt;strong&gt;C:\Migration\Mailbox.csv&lt;/strong&gt;" | foreach-object {&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;Step 6 &amp;ndash;&amp;nbsp; Replace the $DirectoryServer1 value as the domain controller of the domain where the FIM syncs the contacts. &amp;lt;root domain in this case&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;Replace the $DirectoryServer2 value as the domain controller of the domain where the PrepareMoveRequest.ps1 creates the MEU. &amp;lt;child domain in this case&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;Step 7 -&amp;nbsp; Start Exchange Management Shell.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;Step 8 &amp;ndash; Browse to the location of the script&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;Step 9 &amp;ndash; Run &lt;strong&gt;MergeContact.ps1&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;MergeContact.ps1&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#########################################################################################################################################################################&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#########################################################################################################################################################################&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Merge Contact Script&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ============================================&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Purpose:&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Merging the &amp;lt;FIM contacts&amp;gt; contact into the MEU created by PrepareMoveRequest.PS1 script&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Funtionality Overview:&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) Search for an existing contact in the &amp;lt;target Exchange 2010&amp;gt; forest in the FIM Sync OU. &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) If a contact already exists then merge the LegacyExchangeDN value of the Mail Contact in the existing MEU created by PrepareMoveRequest.ps1 and delete the contact.&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;###########################################################################################################################################################################&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;###########################################################################################################################################################################&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;$Date=Get-Date&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;$Logfilepath= "logs\ProgressLog_{0}{1:d2}{2:d2}-{3:d2}{4:d2}{5:d2}" -f $date.year,$date.month,$date.day,$date.hour,$date.minute,$date.second + ".log"&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;$DirectoryServer1= "Root Domain DC name"&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;$DirectoryServer2= "Child Domain DC"&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;$FIMSyncOU= "OU Name"&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;################################################################################################################################&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Function: Logging&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =======&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Input Parameters: &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $logtext: The text string to be written to the console or to a log file&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $logtype: The type of message to be written: normal, error, or debug&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Purpose: &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Writes a text string to the console and/or to log files depending on the type.&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp; type=cINFO: output goes to console and the normal log file&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp; type=cERROR: Output goes to Console, normal log file, and error log file&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;# &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;###############################################################################################################################&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;function logger( $logtext, $logtype )&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;{&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt; switch($logtype)&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt; {&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp; cINFO &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp; {&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; write-host $logtext -b black -f green&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; $logtext | Out-file $Logfilepath -append&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp; }&amp;nbsp; &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp; cERROR&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp; {&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; write-host "ERROR: " $logtext -b black -f red &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; "ERROR: " + $logtext | Out-file $logfilepath -append&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp; }&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp; csv&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp; {&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; write-host $logtext -b black -f green&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; $logtext | Out-file $csvfilepath -append&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp; }&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt; }&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;}&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;## ----------------------------------------- End of Function "Logging" ---------------------------------------------------------&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#########################################################################################################################&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Function: UpdateSMTPforMailbox&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ===========================&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Input Parameters: &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Purpose: &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Adds LegacyExchangeDN of the contact as X500 addresses of the Mail User&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;#########################################################################################################################&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;function UpdateSMTPforMailbox($LDN, $useralias) &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;{&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-MailUser -identity:$useralias -domaincontroller:$DirectoryServer2 | foreach-object {&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; $MailboxID = $_."Identity"&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $newx500= "X500:" + $LDN&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;$error.clear()&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; Set-MailUser -domaincontroller:$DirectoryServer2 -Identity:$MailboxID -EmailAddresses:((Get-MailUser -domaincontroller:$DirectoryServer2 -Identity:$MailboxID).EmailAddresses + $newx500 )&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; if($error.count -gt 0)&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger ( "The LegacyExchangeDN Addresses couldn't be added : " + $newx500 + " : " + $error + " : " + "$useralias" ) cERROR&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; else&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger (" The LegacyExchangeDN has been added successfully : " + $newx500 + ": " + "$useralias")&amp;nbsp; CINFO&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;}&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;## ----------------------------- End of Function "UpdateSMTPforMailbox"----------------------------------##&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##################### Script Start ###################################&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;import-csv -path "C:\Migration\Mailbox.csv" | foreach-object {&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $useralias=$_."Identity"&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $error.clear()&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-MailContact -identity:$useralias -DomainController:$DirectoryServer1 -OrganizationalUnit:$FIMSyncOU | Foreach-object {&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $LDN = $_.LegacyExchangeDN&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $DN = $_.distinguishedName&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $name = $_.name&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-host "LegacyExchangeDN :" $LDN&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-host "Distinguished Name :" $DN&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-host "Name :" $name&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $newname = "CN=" + $name&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-host "Updated Display Name :" $newname&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if($error.count -gt 0)&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger ( "ERROR GETTING THE MAIL CONTACT: " + $useralias + " : " + $error ) cERROR&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger (" MAIL CONTACT DN OBTAINED SUCCESSFULLY: " + $useralias + " : " +&amp;nbsp; $LDN) CINFO&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $error.clear()&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## Remove mail contact by LDAP connection as it is created by FIM ##&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $Class = &amp;ldquo;Contact&amp;rdquo;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $strUsrName = &amp;ldquo;$newname&amp;rdquo;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objADSI = [ADSI]&amp;ldquo;LDAP://$FIMSyncOU&amp;rdquo;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $objUser = $objADSI.Delete($Class, $strUsrName)&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$objUser.setInfo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if($error.count -gt 0)&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger ( "ERROR REMOVING MAIL CONTACT : " + $useralias + " : " + $error ) cERROR&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger (" MAIL CONTACT REMOVED SUCCESSFULLY " + $useralias + " : " +&amp;nbsp; $LDN) CINFO&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Start-Sleep -s 60&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UpdateSMTPforMailbox ($LDN) ($useralias)&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Logger ("_____________________________________________________________________________________________________") CINFO&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;}&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;}&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;&lt;span style="background-color: #ffffff;"&gt;##################### Script End ######################################&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MergeContact.txt&lt;/strong&gt; is also available for download in this post.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For any question you can reach out to me on the below information&lt;/p&gt;
&lt;p&gt;Fahad Shaikh [MSFT] - &lt;a href="mailto:fashaik@microsoft.com"&gt;fashaik@microsoft.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the &lt;/strong&gt;&lt;a href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;strong&gt;Terms of Use&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3498055" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-03-49-80-55/MergeContact.txt" length="6128" type="text/plain" /><category domain="http://blogs.technet.com/b/cloud_no_10/archive/tags/powershell/">powershell</category><category domain="http://blogs.technet.com/b/cloud_no_10/archive/tags/cross_2D00_forest/">cross-forest</category><category domain="http://blogs.technet.com/b/cloud_no_10/archive/tags/LegacyExchangeDN/">LegacyExchangeDN</category><category domain="http://blogs.technet.com/b/cloud_no_10/archive/tags/Exchange+2010/">Exchange 2010</category><category domain="http://blogs.technet.com/b/cloud_no_10/archive/tags/FIM/">FIM</category><category domain="http://blogs.technet.com/b/cloud_no_10/archive/tags/Migration/">Migration</category><category domain="http://blogs.technet.com/b/cloud_no_10/archive/tags/multi+domain/">multi domain</category><category domain="http://blogs.technet.com/b/cloud_no_10/archive/tags/PrepareMoveRequest-ps1/">PrepareMoveRequest.ps1</category></item><item><title>Script to migrate user accounts from Office Communications Server 2007/R2 to Lync Server 2010</title><link>http://blogs.technet.com/b/cloud_no_10/archive/2011/08/19/script-to-migrate-user-accounts-office-communications-server-2007-r2-to-lync-server-2010.aspx</link><pubDate>Fri, 19 Aug 2011 09:59:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3448047</guid><dc:creator>Faddal</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/cloud_no_10/rsscomments.aspx?WeblogPostID=3448047</wfw:commentRss><comments>http://blogs.technet.com/b/cloud_no_10/archive/2011/08/19/script-to-migrate-user-accounts-office-communications-server-2007-r2-to-lync-server-2010.aspx#comments</comments><description>&lt;p&gt;There have been a lot of questions around is there a readily available powershell script to migrate user accounts from OCS 2007 R2 or OCS 2007 to Lync 2010.&amp;nbsp; So I thought of writing one as there was none existing (atleast I couldnt find any :) ).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;Script Funtionality:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;a) Reads the SIP URI from a text file.&lt;/p&gt;
&lt;p&gt;b) Moves the Legacy OCS User to Lync 2010&lt;/p&gt;
&lt;p&gt;c)&amp;nbsp; Logs the migration details in a log file.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;How to run the script:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Step1 -&amp;nbsp; Copy the below script text starting with BEGIN till END and save it&amp;nbsp;in a text file. You can name the text file with whatever name you like. &lt;strong&gt;LyncMigration.txt&lt;/strong&gt; in this case.&lt;/p&gt;
&lt;p&gt;Step2 &amp;ndash; Copy &lt;strong&gt;LyncMigration.txt&lt;/strong&gt; on the Lync 2010 Server.&lt;/p&gt;
&lt;p&gt;Step3 &amp;ndash; Rename &lt;strong&gt;LyncMigration.txt&lt;/strong&gt; to &lt;strong&gt;LyncMigration.ps1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Step4 -&amp;nbsp; Create a folder named &lt;strong&gt;Logs&lt;/strong&gt; in the same location where the script resides.&lt;/p&gt;
&lt;p&gt;Step5 &amp;ndash;&amp;nbsp; Copy the SIP URI of the users to be migrated into a text file named &lt;strong&gt;OCSUsers.txt&lt;/strong&gt;. Copy &lt;strong&gt;OCSUsers.txt &lt;/strong&gt;in the same location where the script resides. The SIP URI should be in the format &lt;a href="http://mce_host/controlpanel/blogs/posteditor.aspx/sip:seeuser11@p10.ca"&gt;sip:user1@contoso.com.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt;NOTE:&lt;/strong&gt; User identities can be specified in the below 4 formats&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) the user's SIP address;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) the user's user principal name (UPN);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4) the user's Active Directory Domain Services display name (for example, Ken Myer). User Identities can also be reference by using the user&amp;rsquo;s Active Directory distinguished name.&lt;/p&gt;
&lt;p&gt;Step5 &amp;ndash;&amp;nbsp; Replace the target with the actual FQDN of the Registrar pool where the user account should be homed. For example: -Target:pool01.contoso.com. This should be done in the below line in the script.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Move-CsLegacyUser -Identity:$OCSUsers[$Start] -Target:&amp;lt;FQDN of the Registrar pool&amp;gt;&lt;/p&gt;
&lt;p&gt;Step6 -&amp;nbsp; Start Lync Server Management Shell.&lt;/p&gt;
&lt;p&gt;Step7 &amp;ndash; Browse to the location of the script&lt;/p&gt;
&lt;p&gt;Step8 &amp;ndash; Run &lt;strong&gt;LyncMigration.ps1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;Script Text:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;#################################################################&amp;nbsp;BEGIN #################################################################################################&lt;br /&gt;#########################################################################################################################################################################&lt;br /&gt;##&lt;br /&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Lync Migration Script&lt;br /&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ============================================&lt;br /&gt;##&lt;br /&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Purpose:&lt;br /&gt;##&lt;br /&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Migration of Legacy Office Communication Server users to Lync 2010&lt;br /&gt;##&lt;br /&gt;##&lt;br /&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Funtionality Overview:&lt;br /&gt;##&lt;br /&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) Reads the SIP URI from the OCSUsers.txt file.&lt;br /&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) Moves the Legacy OCS User to Lync 2010&lt;/p&gt;
&lt;p&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c) Logs the migration details in a log file.&lt;br /&gt;##&lt;br /&gt;##&lt;br /&gt;###########################################################################################################################################################################&lt;br /&gt;###########################################################################################################################################################################&lt;/p&gt;
&lt;p&gt;$Date=Get-Date&lt;br /&gt;$Logfilepath= "logs\ProgressLog_{0}{1:d2}{2:d2}-{3:d2}{4:d2}{5:d2}" -f $date.year,$date.month,$date.day,$date.hour,$date.minute,$date.second + ".log"&lt;/p&gt;
&lt;p&gt;################################################################################################################################&lt;br /&gt;#&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Function:&amp;nbsp;Logging&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=============&lt;br /&gt;#&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Input Parameters: &lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $logtext: The text string to be written to the console or to a log file&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $logtype: The type of message to be written: normal, error, or debug&lt;br /&gt;#&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Purpose: &lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Writes a text string to the console and/or to log files depending on the type.&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type=cINFO: output goes to console and the normal log file&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type=cERROR: Output goes to Console, normal log file, and error log file&lt;br /&gt;#&amp;nbsp;&amp;nbsp; &lt;br /&gt;#&lt;br /&gt;###############################################################################################################################&lt;/p&gt;
&lt;p&gt;function logger( $logtext, $logtype )&lt;br /&gt;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;switch($logtype)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;cINFO&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;write-host $logtext -b black -f green&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;$logtext | Out-file $Logfilepath -append&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;cERROR&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;write-host "ERROR: " $logtext -b black -f red&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;"ERROR: " + $logtext | Out-file $logfilepath -append&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;csv&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;write-host $logtext -b black -f green&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;$logtext | Out-file $csvfilepath -append&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;## ----------------------------------------- End of Function "Logging" ---------------------------------------------------------&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;##################### Script Start ###################################&lt;/p&gt;
&lt;p&gt;$OCSUsers = Get-Content ./OCSUsers.txt &lt;br /&gt;for ($start = 0; $start -lt $OCSUsers.length; $start++)&lt;br /&gt;{&lt;br /&gt;write-host $OCSUsers[$Start]&lt;br /&gt;$error.clear()&lt;br /&gt;Move-CsLegacyUser -Identity:$OCSUsers[$Start] -Target:&amp;lt;FQDN of the Registrar pool&amp;gt; -Confirm:$False&lt;br /&gt;if($error.count -gt 0)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger ( "ERROR MOVING THE LEGACY OCS USER: " + $OCSUsers[$Start] + " : " + $error ) cERROR&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger ("LEGACY OCS USER MOVED SUCCESSFULLY : " + $OCSUsers[$Start] ) CINFO&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;##################### Script End ######################################&lt;/p&gt;
&lt;p&gt;################################################################# END #################################################################################################&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;-Confirm:$False&lt;/strong&gt; switch can be removed if you want a promt before you migrate every account.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For any question you can reach out to us on the below information&lt;/p&gt;
&lt;p&gt;Fahad Shaikh [MSFT] - &lt;a href="mailto:fashaik@microsoft.com"&gt;fashaik@microsoft.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Rajeev Krishnan [MSFT] - &lt;a href="mailto:rajeevkr@microsoft.com"&gt;rajeevkr@microsoft.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the &lt;/strong&gt;&lt;a href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;strong&gt;Terms of Use&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3448047" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/cloud_no_10/archive/tags/script/">script</category><category domain="http://blogs.technet.com/b/cloud_no_10/archive/tags/powershell/">powershell</category><category domain="http://blogs.technet.com/b/cloud_no_10/archive/tags/migrate/">migrate</category><category domain="http://blogs.technet.com/b/cloud_no_10/archive/tags/lync+2010/">lync 2010</category><category domain="http://blogs.technet.com/b/cloud_no_10/archive/tags/Move_2D00_CsLegacyUser/">Move-CsLegacyUser</category></item></channel></rss>