<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Random Technical Artices By Sachin Filinto</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/sachinf/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/sachinf/feed.xml</link>
    <description>Random Technical Artices By Sachin Filinto</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:47:19 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Hosting Virtual Machines in Azure IaaS - Part 2 Prepare the session</title>
      <link>https://docs.microsoft.com/archive/blogs/sachinf/hosting-virtual-machines-in-azure-iaas-part-2-prepare-the-session</link>
      <pubDate>Thu, 26 Jun 2014 20:41:00 GMT</pubDate>
      <dc:creator><![CDATA[Sachin Filinto]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sachinf/2014/06/26/hosting-virtual-machines-in-azure-iaas-part-2-prepare-the-session/</guid>
      <description><![CDATA[###########################################################################
# Prepare the session...]]></description>
      <content:encoded><![CDATA[<p><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;"><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;"><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;">###########################################################################</span></span></span></p>
<p># Prepare the session #</p>
<p><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;"><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;"><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;">###########################################################################</span></span></span></p>
<p># Reference https://msdn.microsoft.com/en-us/library/windowsazure/jj152841.aspx</p>
<p># Get Subscription GUID &amp; Certificate hash from the Management portal.</p>
<p># Management Portal &gt; Settings &gt; Subscriptions &gt; Subscription ID</p>
<p># Management Portal &gt; Settings &gt; Management certificates &gt; Thumbprint ( This should match the publish file used in the earler command )</p>
<p><span style="color:#ff4500;font-family:Lucida Console;font-size:xx-small;"><span style="color:#ff4500;font-family:Lucida Console;font-size:xx-small;"><span style="color:#ff4500;font-family:Lucida Console;font-size:xx-small;">$subid</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#a9a9a9;font-family:Lucida Console;font-size:xx-small;"><span style="color:#a9a9a9;font-family:Lucida Console;font-size:xx-small;"><span style="color:#a9a9a9;font-family:Lucida Console;font-size:xx-small;">=</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#8b0000;font-family:Lucida Console;font-size:xx-small;"><span style="color:#8b0000;font-family:Lucida Console;font-size:xx-small;"><span style="color:#8b0000;font-family:Lucida Console;font-size:xx-small;">&quot;<span style="background-color:#ffff00;">xxxxxxxxxxxxxxxxxxxxxx</span>&quot;</span></span></span></p>
<p><span style="color:#ff4500;font-family:Lucida Console;font-size:xx-small;"><span style="color:#ff4500;font-family:Lucida Console;font-size:xx-small;"><span style="color:#ff4500;font-family:Lucida Console;font-size:xx-small;">$cert</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#a9a9a9;font-family:Lucida Console;font-size:xx-small;"><span style="color:#a9a9a9;font-family:Lucida Console;font-size:xx-small;"><span style="color:#a9a9a9;font-family:Lucida Console;font-size:xx-small;">=</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;"><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;"><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;">Get-Item</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#8a2be2;font-family:Lucida Console;font-size:xx-small;"><span style="color:#8a2be2;font-family:Lucida Console;font-size:xx-small;"><span style="color:#8a2be2;font-family:Lucida Console;font-size:xx-small;">Cert:\CurrentUser\My\<span style="background-color:#ffff00;">xxxxxxxxxxxxxxxxxx</span></span></span></span></p>
<p><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;"><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;"><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;">Set-AzureSubscription</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#000080;font-family:Lucida Console;font-size:xx-small;"><span style="color:#000080;font-family:Lucida Console;font-size:xx-small;"><span style="color:#000080;font-family:Lucida Console;font-size:xx-small;">-SubscriptionName</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#8b0000;font-family:Lucida Console;font-size:xx-small;background-color:#ffff00;"><span style="color:#8b0000;font-family:Lucida Console;font-size:xx-small;"><span style="color:#8b0000;font-family:Lucida Console;font-size:xx-small;">&quot;contosotestlab&quot;</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#000080;font-family:Lucida Console;font-size:xx-small;"><span style="color:#000080;font-family:Lucida Console;font-size:xx-small;"><span style="color:#000080;font-family:Lucida Console;font-size:xx-small;">-SubscriptionId</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#ff4500;font-family:Lucida Console;font-size:xx-small;"><span style="color:#ff4500;font-family:Lucida Console;font-size:xx-small;"><span style="color:#ff4500;font-family:Lucida Console;font-size:xx-small;">$subid</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#000080;font-family:Lucida Console;font-size:xx-small;"><span style="color:#000080;font-family:Lucida Console;font-size:xx-small;"><span style="color:#000080;font-family:Lucida Console;font-size:xx-small;">-Certificate</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#ff4500;font-family:Lucida Console;font-size:xx-small;"><span style="color:#ff4500;font-family:Lucida Console;font-size:xx-small;"><span style="color:#ff4500;font-family:Lucida Console;font-size:xx-small;">$cert</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span></p>
<p><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;"><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;"><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;">Select-AzureSubscription</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#000080;font-family:Lucida Console;font-size:xx-small;"><span style="color:#000080;font-family:Lucida Console;font-size:xx-small;"><span style="color:#000080;font-family:Lucida Console;font-size:xx-small;">-SubscriptionName</span></span></span><span style="background-color:#ffff00;"><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> contoso</span></span><span style="color:#8a2be2;font-family:Lucida Console;font-size:xx-small;"><span style="color:#8a2be2;font-family:Lucida Console;font-size:xx-small;"><span style="color:#8a2be2;font-family:Lucida Console;font-size:xx-small;">testlab</span></span></span></span></p>
<p></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Spelunking with the Key Management Server (KMS) to activate office 2013.</title>
      <link>https://docs.microsoft.com/archive/blogs/sachinf/spelunking-with-the-key-management-server-kms-to-activate-office-2013</link>
      <pubDate>Wed, 25 Jun 2014 23:56:45 GMT</pubDate>
      <dc:creator><![CDATA[Sachin Filinto]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sachinf/2014/06/25/spelunking-with-the-key-management-server-kms-to-activate-office-2013/</guid>
      <description><![CDATA[Some learnings of the week gone by&hellip;
Methods of activating Office...]]></description>
      <content:encoded><![CDATA[<h1><span style="font-family:Calibri;font-size:medium;">Some learnings of the week gone by&hellip;</span></h1>
<h1><span style="color:#2e74b5;font-family:Calibri Light;">Methods of activating Office 2013</span></h1>
<h2><span style="color:#2e74b5;"><span style="font-family:Calibri Light;font-size:large;">1.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family:Calibri Light;font-size:large;">Multiple Activation Key (MAK)</span></span></h2>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">MAK activates systems on a one-time basis, using Microsoft&#39;s hosted activation services, either via the Internet or by telephone. This is the traditional way we know of activating office.</span></span></p>
<p><span style="font-size:medium;"><span style="font-family:Calibri;">Sub divided into </span>MAK Independent activation &amp;<span style="font-family:Calibri;"> </span>MAK proxy activation.</span></p>
<h2><span style="color:#2e74b5;"><span style="font-family:Calibri Light;font-size:large;">2.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family:Calibri Light;font-size:large;">Key Management Service (KMS).</span></span></h2>
<p><span style="font-family:Calibri;font-size:medium;">A client-server model in which you must install and activate a KMS host activation key on a KMS host computer. This establishes a local activation service in your environment. Office 2013 client computers connect to the local Office 2013 KMS host for activation on an on-going basis. </span></p>
<h2><span style="color:#2e74b5;"><span style="font-family:Calibri Light;font-size:large;">3.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family:Calibri Light;font-size:large;">Active Directory-based activation of Office 2013</span></span></h2>
<p><span style="font-size:medium;"><span style="font-family:Calibri;">Active Directory-based activation can activate all Office 2013 volume license clients throughout a domain. </span>Active Directory-based activation is a<span style="font-family:Calibri;">vailable only for Office 2013 on Windows&nbsp;8 and Windows Server 2012.</span></span></p>
<h1><span style="color:#2e74b5;font-family:Calibri Light;">Types of Serial keys involved</span></h1>
<h2><span style="color:#2e74b5;"><span style="font-family:Calibri Light;font-size:large;">1.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size:large;"><span style="font-family:Calibri Light;">Office 2013 Multiple Activation Key (MAK)</span></span></span></h2>
<p><span style="font-family:Calibri;font-size:medium;">The MAK activation is used for one-time activation through Microsoft hosted activation services, either via the Internet or by telephone.</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Get this key from the Volume Licensing Service Center Portal</span></p>
<h2><span style="color:#2e74b5;"><span style="font-family:Calibri Light;font-size:large;">2.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size:large;"><span style="font-family:Calibri Light;">Office 2013 Generic Volume License Key (GVLK). </span></span></span></h2>
<p><span style="font-family:Calibri;font-size:medium;">The GVLK enables Office 2013 to automatically discover and activate against your KMS host or Active Directory infrastructure.</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Get this key from </span><a href="https://technet.microsoft.com/en-us/library/dn385360(v=office.15).aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">https://technet.microsoft.com/en-us/library/dn385360(v=office.15).aspx</span></a></p>
<h2><span style="color:#2e74b5;"><span style="font-family:Calibri Light;font-size:large;">3.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family:Calibri Light;font-size:large;">KMS Host Key</span></span></h2>
<p><span style="font-family:Calibri;font-size:medium;">A KMS Host Key is used to activate the KMS host with a Microsoft activation server. Get this key from the Volume Licensing Service Center Portal.</span></p>
<h1><span style="color:#2e74b5;font-family:Calibri Light;">KMS in a Non-Domain environment.</span></h1>
<p><span style="font-family:Calibri;font-size:medium;">This works, but needs additional effort. After considerable trolling on the internet I have not found this documented anywhere so here it is:</span></p>
<ol>
<li>
<p>Clients might not be able to resolve the FQDN of the KMS server.</p>
<p>Workaround: Ensure the DNS server &amp; DNS suffix is configured on the workstation.</p>
<p>&nbsp;</p>
</li>
<li>
<p>KMS server does not have permissions to query the workstation for a report.</p>
<p>Workaround: Ensure the workstation has an admin account with a known password which the KMS server can use for querying.</p>
<p>&nbsp;</p>
</li>
<li>
<p>Local firewall on the workstation blocks the KMS server query</p>
<p>Workaround: Enable firewall exception for WMI. (Guidance available on TechNet)</p>
<p>&nbsp;</p>
</li>
<li>
<p>Grossly mismatched time between server &amp; client might result in authentication failures between the KMS server &amp; the workstation.</p>
<p>Command to Sync the time on the Client with the time on the KMS server.</p>
<p>net time \\&lt;kmsserver&gt; /set /y</p>
<p>&nbsp;</p>
</li>
</ol>
<h1><span style="color:#2e74b5;font-family:Calibri Light;">Additional Learnings which I have not found documented.</span></h1>
<ol>
<li>
<p>KMS binaries can be downloaded from the Volume Licensing Service Center Portal as an .iso image or from the public Microsoft download center. I used the one from the Volume Licensing Service Center Portal.</p>
<p>Yet to figure out the difference between the two.</p>
</li>
<li>
<p>Volume Activation Management Tool (VAMT) is purely an optional tool &amp; not needed for KMS functionality. However I would recommend this to be installed.</p>
<p>In case it does not work properly make sure you upgrade to the latest version whatever the prerequisites.</p>
</li>
<li>
<p>The Help section has a laundry list of commands. The only ones I used were on the client side.</p>
<p>To Force activation:</p>
<p>cscript &quot;C:\Program Files\Microsoft Office\Office15\ospp.vbs&quot; /act</p>
<p>&nbsp;</p>
<p>To Display the failure history for MAK/retail activation:</p>
<p>cscript &quot;C:\Program Files\Microsoft Office\Office15\ospp.vbs&quot; /dhistorykms</p>
<p>&nbsp;</p>
<p>Note: ospp.vbs is installed as part of the default office 2013 setup.</p>
<p>&nbsp;</p>
</li>
<li>
<p>VAMT provides a point-in-time view of the computers and products that it manages. It cannot provide an ongoing view of your environment. You should refresh the status from time to time. You can easily get an update license status.&nbsp;&nbsp; Documented &amp; Reproduced from <a href="https://technet.microsoft.com/en-us/library/ff686879.aspx"><span style="color:#0563c1;">Here</span></a></p>
</li>
<li>
<p>I have not found any way to query the KMS server to know which and how many clients it has activated. The current method of reporting is via the VAMT which connects to the client for a report. If the client is unavailable on the network it will not be reported on.</p>
<p>&nbsp;</p>
</li>
<li>
<p>Useful Links</p>
<p>Download: Microsoft Office 2013 Volume License Pack</p>
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=35584"><span style="color:#0563c1;">https://www.microsoft.com/en-us/download/details.aspx?id=35584</span></a></p>
<p>&nbsp;</p>
<p>Volume Licensing Service Center Portal</p>
<p><a href="https://www.microsoft.com/Licensing/servicecenter/default.aspx"><span style="color:#0563c1;">https://www.microsoft.com/Licensing/servicecenter/default.aspx</span></a></p>
<p>&nbsp;</p>
<p>Understanding KMS</p>
<p><a href="https://technet.microsoft.com/en-us/library/ff793434.aspx"><span style="color:#0563c1;">https://technet.microsoft.com/en-us/library/ff793434.aspx</span></a></p>
<p>&nbsp;</p>
<p>KMS activation of Office 2013</p>
<p><a href="https://technet.microsoft.com/en-us/library/ee624357(v=office.15).aspx"><span style="color:#0563c1;">https://technet.microsoft.com/en-us/library/ee624357(v=office.15).aspx</span></a></p>
<p>&nbsp;</p>
<p>Manage Product Keys Using Volume Activation Management Tool 2.0</p>
<p><a href="https://technet.microsoft.com/en-in/library/ff686877.aspx"><span style="color:#0563c1;">https://technet.microsoft.com/en-in/library/ff686877.aspx</span></a></p>
</li>
</ol>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Hosting Virtual Machines in Azure IaaS - Part 1 Prepare the Workstation for connecting to the azure subscription</title>
      <link>https://docs.microsoft.com/archive/blogs/sachinf/hosting-virtual-machines-in-azure-iaas-part-1-prepare-the-workstation-for-connecting-to-the-azure-subscription</link>
      <pubDate>Thu, 19 Jun 2014 23:14:00 GMT</pubDate>
      <dc:creator><![CDATA[Sachin Filinto]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sachinf/2014/06/19/hosting-virtual-machines-in-azure-iaas-part-1-prepare-the-workstation-for-connecting-to-the-azure-subscription/</guid>
      <description><![CDATA[I have been using azure for hosting my virtual machines for several months. I will not list the...]]></description>
      <content:encoded><![CDATA[<p><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;"><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;"><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;"></span></span></span></p>
<p><span style="color:black;font-family:&#39;Arial&#39;,&#39;sans-serif&#39;;font-size:9pt;">I have been using azure for hosting my virtual machines for several months. I will not list the advantages it gives me in this blob, but since i did not find any blog listing out the steps for an ITpro to simply follow, i am putting the steps i personally follow in a multi-part series.</span></p>
<p><span><span style="font-family:Times New Roman;font-size:medium;">I am aware that there are enhancements &amp; added features to the PowerShell commands since the time i put together these steps. I plan to cover them at a later stage possibly as a version 2.0</span></span></p>
<p><span style="font-family:Times New Roman;font-size:medium;"> </span><span><span><span></span></span></span></p>
<p><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;"><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;"><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;">&nbsp;</span></span></span></p>
<p><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;"><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;"><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;">###########################################################################</span></span></span></p>
<p># Prepare the Workstation for connecting to the azure subscription #</p>
<p><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;"><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;"><span style="color:#006400;font-family:Lucida Console;font-size:xx-small;">###########################################################################</span></span></span></p>
<p># Download &amp; install the Windows Azure PowerShell Cmdlets from https://go.microsoft.com/?linkid=9811175&amp;clcid=0x409</p>
<p># Import the module with the below command:</p>
<p><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;"><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;"><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;">Import-Module</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#8b0000;font-family:Lucida Console;font-size:xx-small;"><span style="color:#8b0000;font-family:Lucida Console;font-size:xx-small;"><span style="color:#8b0000;font-family:Lucida Console;font-size:xx-small;">&#39;C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\Azure\Azure.psd1&#39;</span></span></span></p>
<p># Download the Publish setting file from https://windows.azure.com/download/publishprofile.aspx?wa=wsignin1.0</p>
<p># This file contains your secure credentials and additional information about your subscriptions for use in your development environment.</p>
<p># Security Note: This file contains an encoded management certificate that will serve as your credentials to administer all aspects of your subscriptions and related services.</p>
<p># Store this file in a secure location, or delete it after you use it.</p>
<p># Import the Publish File using the below command:</p>
<p><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;"><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;"><span style="color:#0000ff;font-family:Lucida Console;font-size:xx-small;">Import-AzurePublishSettingsFile</span></span></span><span style="font-family:Lucida Console;font-size:xx-small;"><span style="font-family:Lucida Console;font-size:xx-small;"> </span></span><span style="color:#8b0000;font-family:Lucida Console;font-size:xx-small;background-color:#ffff00;"><span style="color:#8b0000;font-family:Lucida Console;font-size:xx-small;"><span style="color:#8b0000;font-family:Lucida Console;font-size:xx-small;">&#39;C:\azure\xxx.publishsettings&#39;</span></span></span></p>
<p></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>How to Migrate Distribution Groups Across a Forest</title>
      <link>https://docs.microsoft.com/archive/blogs/sachinf/how-to-migrate-distribution-groups-across-a-forest</link>
      <pubDate>Mon, 17 Mar 2014 02:31:06 GMT</pubDate>
      <dc:creator><![CDATA[Sachin Filinto]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sachinf/2014/03/17/how-to-migrate-distribution-groups-across-a-forest/</guid>
      <description><![CDATA[Building on my previous couple of blogs on Cross-Forest Migration, in this blog&nbsp;I will describe...]]></description>
      <content:encoded><![CDATA[<p>Building on my previous couple of blogs on Cross-Forest Migration, in this blog&nbsp;I will describe how Groups can be successfully migrated across a forest. I will also list out some gotchas &amp; how they can be addressed.<br /><span style="background-color:#ffffff;"></span></p>
<p><span style="background-color:#ffffff;">Migrating groups is something I&#39;ve seen customers&nbsp;assume are not important however when the&nbsp;groups are actually moved, customers experience the pain point some of which could have been mitigated.</span></p>
<p>&nbsp;</p>
<h4>1. Detect &amp; fix any corruption in the groups attributes ( if any ).</h4>
<p>Common corruption we see is invalid characters in critical attributes like alias &amp; display name. (space, period, special characters, etc.)</p>
<p>There are several ways to detect this corruption. The most simple &amp; crude way would be to do <span style="background-color:#ffffff;">a Get-Group to list all the mailboxes. Any&nbsp;group</span> with invalid attributes would show up in yellow. Besides this you can also use the Office 365 readiness tool to report on invalid attributes ( highly recommended ).</p>
<p>The only reliable fix to detected corruption would be to manually correct the attributes either from ADUC or from ADSI Edit or a similar tool.</p>
<p><span style="background-color:#ffffff;">Note the difference between Detect &amp; fix above. </span></p>
<p><span style="background-color:#ffffff;">I&rsquo;ve seen customer attempt to fix this corruption via a script to disastrous effect. ( what logic do you use&nbsp;? )</span></p>
<p>Tip: If any attributes were changed &amp; you are using Exchange 2003, you should update the RUS &amp; also replicate across the domain controllers.</p>
<h4>2. Execute ADMT to copy groups along with the SID.</h4>
<p>when executing ADMT, Fix the group membership in the new forest. This could be in one pass or multiple passes depending on your requirements.</p>
<p>A point of significance here is that ADMT does NOT copy all Exchange attributes from the source to target forest.</p>
<h4>3. Convert Groups to Universal.</h4>
<p>Exchange 2010 requires a local Global Catalog server in the Active Directory site where Exchange resides to query for group expansion. A Global catalog can expand domain local, global, and universal groups. However, domain local groups (and sometimes global groups) can only be expanded within the domain. Hence the GC will be unable to expand a domain local group in a subdomain.</p>
<p><br />Thus Exchange Server 2007 &amp; 2010 force you to create all new distribution groups as universal distribution groups even if you have a single domain in the forest.</p>
<p>To convert groups to universal&nbsp;using PowerShell run this command:</p>
<p><span style="background-color:#999999;">Get-Group | where { ($_.RecipientTypeDetails -eq &quot;NonUniversalGroup&quot; -or&nbsp; $_.RecipientType -eq &quot;MailNonUniversalGroup&quot;) -and ($_.GroupType -notlike &quot;*DomainLocal*&quot;)} |Set-Group &ndash;Universal</span></p>
<p>Iterate by running this command till all groups are converted to universal.</p>
<p>Tip: There are other methods to accomplish this, e.g. with the dsmod command, however the method listed above is what&nbsp;I chose &amp; it works like a charm.</p>
<p>&nbsp;</p>
<h4>4. Mail enable the groups with source Primary, Secondary (if any) SMTP &amp; legacyExchangeDN.</h4>
<p>Given that prepare-moverequest.ps1 cannot be used to prepare groups we need to use another tool for copying the SMTP addresses ( note the plural ) from the source to target forest (both Primary &amp; secondary addresses) along with the LegacyExchangeDN stamped as a x.500 address, reasons for which have been explained in earlier posts.</p>
<p>The tool in question is one which was released for migrating an Exchange 2010 sp1 hosted tenant (/hosting mode ) to another forest which is running Exchange 2010 sp2 ( Non-Hosting mode )</p>
<p>The entire archive of scripts &amp; documentation can can be downloaded from <a title="https://blogs.technet.com/b/exchange/archive/2012/02/03/released-migrating-from-exchange-server-2010-in-hosting-mode-to-exchange-server-2010-sp2-whitepaper.aspx" href="/b/exchange/archive/2012/02/03/released-migrating-from-exchange-server-2010-in-hosting-mode-to-exchange-server-2010-sp2-whitepaper.aspx">https://blogs.technet.com/b/exchange/archive/2012/02/03/released-migrating-from-exchange-server-2010-in-hosting-mode-to-exchange-server-2010-sp2-whitepaper.aspx</a></p>
<p>Once un-compressed, we need to run two scripts. One to Create an .xml file with the group details &amp; the second to import the same .xml into the target Forest which will restore the group attributes.</p>
<p>&nbsp;</p>
<ul>
<li>CreateADMTGroupList.ps1 to Create an .xml file of the group details.</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>Copy this xml file to the target forest &amp; import it using the next command.</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>RestoreGroupAttributes.ps1 to restore the group attributes to the groups which would have already been copied to the target forest using ADMT.</li>
</ul>
<h4>5. Export list of groups having &ldquo;exception to e-mail address policy&rdquo; in source forest &amp; Set the same &ldquo;policy exception&rdquo; for the groups copied into the target forest.</h4>
<p>&nbsp;Since hosting environments have the &quot;Automatically update e-mail addresses based on e-mail address policy&quot; unchecked, One un-needed thing the above script does it set an the &quot;Automatically update e-mail addresses based on e-mail address policy&quot; to be unchecked. ( thus the Recipient Policy will not be applied. )</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/6746.2_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/6746.2_5F00_2.jpg"><img width="541" height="149" title="2" style="display:inline;background-image:none;" alt="2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/3480.2_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/3480.2_5F00_thumb.jpg" border="0" /></a></p>
<p>Command to Export ( source forest )</p>
<p><span style="background-color:#ffff00;"></span>&nbsp;<span style="background-color:#c0c0c0;">Get-mailbox | where {$_.policiesexcluded -eq &quot;{26491CFC-9E50-4857-861B-0CB8DF22B5D7}&quot;}</span></p>
<p>Command to Import ( target forest )</p>
<p><span style="background-color:#c0c0c0;">set-mailbox -emailaddresspolicyenabled $false</span></p>
<p>&nbsp;</p>
<h4>6. Export List the groups hidden in the source forest &amp; hide the same in the target forest.</h4>
<p>for whatever reason they may have been hidden in the source forest, the same would have to be set in the target forest.</p>
<p>Command to Export ( source forest )</p>
<p><span style="background-color:#999999;">Get-mailbox | where {$_.HiddenFromAddressListsEnabled -eq &quot;true&quot;}</span></p>
<p>Command to Import ( target forest )</p>
<p><span style="background-color:#999999;">Set-mailbox -HiddenFromAddressListsEnabled $true</span></p>
<p>&nbsp;&nbsp;</p>
<h4>7. Identify which groups have another group as manager &amp; fix managed-by issue</h4>
<p><span style="background-color:#ffffff;">In Exchange 2010, Unlike earlier versions, distribution groups &amp; mailboxes cannot be managed by groups - only individual users. So it&#39;s possible that prior to migration, some groups were used to manage the distribution group.&nbsp; Now, members of these groups cannot modify the group.</span></p>
<p><span style="background-color:#ffffff;">To resolve this, a script Set-DistributionGroupOwners.ps1 can be used. This script replaces a distribution group or security group, which is specified in the &ldquo;ManagedBy&rdquo; attribute of a distribution group, with members of the group.</span></p>
<p>&nbsp;The script ( Set-DistributionGroupOwners.ps1 ) can be downloaded from here :&nbsp;<a title="https://gallery.technet.microsoft.com/scriptcenter/756b02bd-fb8c-4071-b7b3-3e9022831678" href="https://gallery.technet.microsoft.com/scriptcenter/756b02bd-fb8c-4071-b7b3-3e9022831678">https://gallery.technet.microsoft.com/scriptcenter/756b02bd-fb8c-4071-b7b3-3e9022831678</a></p>
<p>additional details can be found here : <a href="/b/exchange/archive/2011/05/04/how-to-manage-groups-with-groups-in-exchange-2010.aspx">https://blogs.technet.com/b/exchange/archive/2011/05/04/how-to-manage-groups-with-groups-in-exchange-2010.aspx</a></p>
<p>&nbsp;</p>
<h4>8. Enabling users&nbsp;to manage distribution groups but not create or remove them.</h4>
<p>&nbsp;</p>
<p>The script ( Manage-GroupManagementRole.ps1 ) can be downloaded from here :</p>
<p>additional details can be found here : <a href="/b/exchange/archive/2009/11/18/how-to-manage-groups-that-i-already-own-in-exchange-2010.aspx">https://blogs.technet.com/b/exchange/archive/2009/11/18/how-to-manage-groups-that-i-already-own-in-exchange-2010.aspx</a></p>
<p>&nbsp;</p>
<h4>9. Upgrade distribution group version.</h4>
<p>Distribution groups ( AD objects ) have a version which determine which features are enabled. for example, if the version is E2003, features which are available in later version like E2010 remain greyed out. (e.g. DL moderation ).</p>
<p>In order to get all the features of Exchange 2010, we need to upgrade the version with the below commands.</p>
<p>Command to Upgrade the groups:</p>
<p><span style="background-color:#c0c0c0;">Get-DistributionGroup | Set-DistributionGroup -ForceUpgrade</span></p>
<p><br />Command to Report the version:</p>
<p><span style="background-color:#c0c0c0;">Get-DistributionGroup | ft Name,Exchangeversion</span></p>
<p>&nbsp;</p>
<h4>10. Upgrading the E-mail Address Policy</h4>
<p>If the email address policy is not upgraded, we will not be able to open the object in EMC</p>
<p>The below command will report which of the e-mail address policies ( aka Recipient Policies ) are legacy.</p>
<p><span style="background-color:#c0c0c0;">Get-EmailAddressPolicy | where { $_.RecipientFilterType -eq &quot;Legacy&quot; } | Format-List Name,RecipientFilter*,ExchangeVersion</span></p>
<p>The below command will upgrade them.</p>
<p><span style="background-color:#c0c0c0;">Get-EmailAddressPolicy | where {$_.RecipientFilterType &ndash;eq &ldquo;Legacy&rdquo;} | Set-EmailAddressPolicy &ndash;IncludedRecipients AllRecipients</span></p>
<p><span style="background-color:#c0c0c0;"></span></p>
<p><span style="background-color:#c0c0c0;"></span></p>
<p>Note 1&nbsp;: If you have complex email addressing policies please test before executing the above command.</p>
<p>Note 2 : Mailbox Manager policies are no longer available in 2010 &amp; thus have to be removed.</p>
<p>&nbsp;</p>
<h4>11. QBDG</h4>
<p>Query Based Distribution Groups are best re-created from scratch as the actual query parameters could have changed significantly.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Flesch Reading Ease</title>
      <link>https://docs.microsoft.com/archive/blogs/sachinf/flesch-reading-ease</link>
      <pubDate>Thu, 23 May 2013 21:21:00 GMT</pubDate>
      <dc:creator><![CDATA[Sachin Filinto]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sachinf/2013/05/23/flesch-reading-ease/</guid>
      <description><![CDATA[&#160;  Thanks to an internal communiqué, I recently came across a Readability test of word...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>Thanks to an internal communiqué, I recently came across a Readability test of word documents. Surely made for some interesting reading.</p>  <p>To Enable it, you need to enable readability statistics from the options.</p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/7215.image_4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/7215.image_5F00_4.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/0160.image_thumb_1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/0160.image_5F00_thumb_5F00_1.png" width="736" height="605" /></a></p>  <p>Once done, on completing a spell check you will see the following:</p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/2021.image_6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/2021.image_5F00_6.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/4062.image_thumb_2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/4062.image_5F00_thumb_5F00_2.png" width="356" height="326" /></a></p>  <p>&#160;</p>  <p>The higher the score, the easier it is to understand the document. There are several sources on the internet which explain how to interpret the score.</p>  <p>Further reading can be found here.</p>  <p><a title="https://office.microsoft.com/en-in/word-help/test-your-document-s-readability-HP010148506.aspx#BM2" href="https://office.microsoft.com/en-in/word-help/test-your-document-s-readability-HP010148506.aspx#BM2">https://office.microsoft.com/en-in/word-help/test-your-document-s-readability-HP010148506.aspx#BM2</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Patching Exchange 2010 Servers</title>
      <link>https://docs.microsoft.com/archive/blogs/sachinf/patching-exchange-2010-servers</link>
      <pubDate>Mon, 29 Apr 2013 09:10:18 GMT</pubDate>
      <dc:creator><![CDATA[Sachin Filinto]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sachinf/2013/04/29/patching-exchange-2010-servers/</guid>
      <description><![CDATA[&#160;  I Often get questions around how best to install Exchange updates or service packs. This...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>I Often get questions around how best to install Exchange updates or service packs. This Blog Post attempts to answer that Question.</p>  <p>To start with, I recommend having a Patch management Policy. A Good Patch management policy document should have the following listed:</p>  <p>&#160;</p>  <p>1. How often should the updates / service pack be installed. ( e.g. Service Pack - once every quarter / critical updates - ASAP)</p>  <p>&#160;</p>  <p>2. Applications which would possibly have a dependency on the Patch / Service pack. ( BB, Backup, antivirus , archiving, other 3<sup>rd</sup> party products ). </p>  <p>These 3<sup>rd</sup> party products should be tested for any dependencies on the Update / Service pack. </p>  <p>&#160;</p>  <p>3. Sequence of server roles to install the Patches on.</p>  <p>Internet facing servers / sites should patched first</p>  <p>Non-internet facing should be after all internet facing sites are updated.</p>  <p>&#160;</p>  <p>4. AV should be disabled for the time of installation.</p>  <p>&#160;</p>  <p>5. StartDagServerMaintenance.ps1 before install &amp; StopDagServerMaintenance.ps1 after success to disable replication &amp; re-enable it after SP installation is complete</p>  <p>Additional Reading : <a href="https://technet.microsoft.com/en-us/library/bb629560.aspx">https://technet.microsoft.com/en-us/library/bb629560.aspx</a></p>  <p>&#160;</p>  <p>6. The Servers must be re-started if the installation of an update / Service pack prompts for a restart.</p>  <p>&#160;</p>  <p>7. Tests which need to performed to validate services are up &amp; running as expected.</p>  <p>&#160;</p>  <p>8. Tests which need to be performed to validate the Updates / Service Pack is installed correctly.</p>]]></content:encoded>
    </item>
    <item>
      <title>Some Quick Leanings of Exchange 2013</title>
      <link>https://docs.microsoft.com/archive/blogs/sachinf/some-quick-leanings-of-exchange-2013</link>
      <pubDate>Fri, 22 Mar 2013 17:40:00 GMT</pubDate>
      <dc:creator><![CDATA[Sachin Filinto]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sachinf/2013/03/22/some-quick-leanings-of-exchange-2013/</guid>
      <description><![CDATA[&#160;  *Features  ~95.5% reduction in IOPS  Exchange 2013 is capable of being deployed in a...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>*Features</p>  <p>~95.5% reduction in IOPS</p>  <p>Exchange 2013 is capable of being deployed in a multi-site worldwide architecture with a single namespace. ( using multiple technologies )</p>  <p>Auto re-seed to spare disk. ( but needs operational maturity )</p>  <p>&#160;</p>  <p>&#160;</p>  <p>*Good to know</p>  <p>CAS is now a protocol proxy only. (2 layers V/S 5 layers)</p>  <p>No longer supports MAPI Clients ( only outlook anywhere )</p>  <p>No MAPI on CAS only RPC-over-HTTP</p>  <p>ECP is now EAC</p>  <p>Notification to admin when certificate is expiring ( EAC )</p>  <p>Maximum DB per server; Enterprise Edition- 50, Standard Edition - 5</p>  <p>one thread per DB</p>  <p>Hard block on 2003 to 2013 migration. (even cross forest )</p>  <p>New server gets into maintenance mode once it is installed</p>  <p>Quota notification e-mail is generated during users login ( V/S every day at midnight in Exchange 2010 )</p>]]></content:encoded>
    </item>
    <item>
      <title>Executing Exchange PowerShell commands from a CMD Prompt</title>
      <link>https://docs.microsoft.com/archive/blogs/sachinf/executing-exchange-powershell-commands-from-a-cmd-prompt</link>
      <pubDate>Wed, 20 Mar 2013 04:42:07 GMT</pubDate>
      <dc:creator><![CDATA[Sachin Filinto]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sachinf/2013/03/20/executing-exchange-powershell-commands-from-a-cmd-prompt/</guid>
      <description><![CDATA[A Quick blog on how to execute an Exchange PowerShell script (.ps1 extension) from a command prompt....]]></description>
      <content:encoded><![CDATA[<p>A Quick blog on how to execute an Exchange PowerShell script (.ps1 extension) from a command prompt.</p>  <p>A .ps1 cannot be executed from a Command prompt. to execute it one needs to use a PowerShell shell. Further if this script calls any exchange cmdlet, it would require to be executed in an Exchange Management Shell.</p>  <p>&#160;</p>  <p>The following command does all three in one line. i.e. run the script from c:\script\script.ps1 ( which is an exchange script ) from a command prompt.</p>  <p>&#160;</p>  <p>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -psconsolefile &quot;C:\Program Files\Microsoft\Exchange Server\V14\Bin\exshell.psc1&quot; -file &quot;C:\script\script.ps1&quot;</p>]]></content:encoded>
    </item>
    <item>
      <title>A Quick Note on ADMT Versions &amp; Pre-requisites.</title>
      <link>https://docs.microsoft.com/archive/blogs/sachinf/a-quick-note-on-admt-versions-pre-requisites</link>
      <pubDate>Sun, 13 Jan 2013 20:26:16 GMT</pubDate>
      <dc:creator><![CDATA[Sachin Filinto]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sachinf/2013/01/13/a-quick-note-on-admt-versions-pre-requisites/</guid>
      <description><![CDATA[ADMT      At the time of writing this Blog;         ADMT 3.1 - 32 Bit version. ( Will not install on...]]></description>
      <content:encoded><![CDATA[<p><strong>ADMT      <br /></strong>At the time of writing this Blog;     <br />    <br />ADMT 3.1 - 32 Bit version. ( Will not install on Windows 2008R2 )     <br />This installer has SQL 2005 Express Edition ( with necessary service pack integrated into the installer )</p>  <p>ADMT 3.2 - 64 Bit Version. ( The first &amp; only version which will install on Windows 2008R2 )    <br />    <br /></p>  <p><strong>SQL 2008 </strong><b>     <br /></b>There are many download options available on the Microsoft website,     <br />* Express Edition &amp; Enterprise Edition     <br />* 32 Bit &amp; 64 Bit     <br />* With &amp; Without Service pack integrated.</p>  <p>Your mileage will vary depending on what version of SQL, Windows &amp; ADMT you use.</p>  <p>For the purpose this migration, I used ADMT 3.2 on a windows 2008 R2, member server with SQL 2008 sp3 Express Edition ( x64 )    <br />This was installed in the target forest.     <br />Password Export Server was installed on a Domain Controller in the source forest.</p>  <p>How to Check the version of SQL ?    <br />    <br />Type these commands in a cmd prompt:     <br />    <br /><strong>sqlcmd -S.      <br />select @@version       <br />go</strong></p>  <p>Additional Reading: <a href="https://technet.microsoft.com/en-us/library/cc974457(WS.10).aspx">Link</a>, <a href="https://technet.microsoft.com/en-us/library/cc974370(WS.10).aspx#BKMK_32Prereqs">Link</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Moving to a new forest and retaining the same SMTP domain ( with native scripts ) - Part II</title>
      <link>https://docs.microsoft.com/archive/blogs/sachinf/moving-to-a-new-forest-and-retaining-the-same-smtp-domain-with-native-scripts-part-ii</link>
      <pubDate>Tue, 08 Jan 2013 22:32:32 GMT</pubDate>
      <dc:creator><![CDATA[Sachin Filinto]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sachinf/2013/01/08/moving-to-a-new-forest-and-retaining-the-same-smtp-domain-with-native-scripts-part-ii/</guid>
      <description><![CDATA[&#160;  3. Moving the Active Directory account using ADMT      ADMT is a great tool for Migrating...]]></description>
      <content:encoded><![CDATA[<h2>&#160;</h2>  <h2>3. Moving the Active Directory account using ADMT </h2>  <ul>   <p>ADMT is a great tool for Migrating and Restructuring Active Directory Domains ( user accounts, passwords, groups &amp; group membership, computer accounts &amp; much more.)</p>    <p>However It is very important to note that ADMT <b>DOES NOT </b>touch Exchange attributes.</p>    <p>ADMT can be executed before prepare-move request, after prepare-move request or skipped if we want to use a linked account. </p>    <p>Assuming Prepare-move request was executed first, when executing ADMT we need to merge the account with an existing MEU.</p>    <p>Below are screen grabs of the ADMT wizard. the critical options are highlighted.</p>    <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/0083.ADMT1_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/0083.ADMT1_5F00_2.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ADMT1" border="0" alt="ADMT1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/5282.ADMT1_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/5282.ADMT1_5F00_thumb.jpg" width="718" height="558" /></a></p>    <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/7851.ADMT2_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/7851.ADMT2_5F00_2.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ADMT2" border="0" alt="ADMT2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/5466.ADMT2_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/5466.ADMT2_5F00_thumb.jpg" width="719" height="561" /></a></p>    <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/0576.ADMT3_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/0576.ADMT3_5F00_2.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ADMT3" border="0" alt="ADMT3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/1256.ADMT3_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/1256.ADMT3_5F00_thumb.jpg" width="722" height="563" /></a></p>    <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/7838.ADMT4_6.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/7838.ADMT4_5F00_6.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ADMT4" border="0" alt="ADMT4" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/3113.ADMT4_thumb_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/3113.ADMT4_5F00_thumb_5F00_2.jpg" width="723" height="565" /></a></p>    <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/6837.ADMT5_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/6837.ADMT5_5F00_2.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ADMT5" border="0" alt="ADMT5" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/2630.ADMT5_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/2630.ADMT5_5F00_thumb.jpg" width="728" height="571" /></a></p>    <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/5857.ADMT6_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/5857.ADMT6_5F00_2.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ADMT6" border="0" alt="ADMT6" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/1145.ADMT6_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/1145.ADMT6_5F00_thumb.jpg" width="727" height="564" /></a></p>    <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/5861.ADMT7_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/5861.ADMT7_5F00_2.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ADMT7" border="0" alt="ADMT7" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/3201.ADMT7_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/3201.ADMT7_5F00_thumb.jpg" width="732" height="704" /></a></p>    <p>&#160;</p>    <p>If ADMT is run prior to the Prepare-MoveRequest.ps1 script is executed, we would need to execute Prepare-MoveRequest.ps1 with the -OverWriteLocalObject Switch.</p>    <p>Further reading <a href="https://technet.microsoft.com/en-us/library/cc974332(v=WS.10).aspx">Link</a></p> </ul>  <h2>4. The Actual Move of Mailboxes. </h2>  <ol>   <p>Having prepared the environment, moving the mailbox should now be a breeze. Given that Moving mailbox is a large topic, so In order to keep this blog concise, I shall jump straight to the command &amp; explain only what is relevant.</p>    <li>     <h4>MRSProxy or NO MRSProxy </h4>      <p>MRSProxy encapsulates all communication between the organizations in HTTPS packets thus making the move seamless.</p>      <p>Assuming the source forest has Exchange 2010 SP2 or above, enable MRSProxy in the source forest.</p>      <p>Set-WebServicesVirtualDirectory -Identity &quot;EWS (Default Web Site)&quot; -MRSProxyEnabled $true -MRSProxyMaxConnections 50</p>      <p>Details can be found <a href="https://technet.microsoft.com/en-us/library/ee732395.aspx">Here</a></p>      <p>In the event that the source forest does NOT have an Exchange 2010 server, we cannot use the MRSProxy. So we skip the above step &amp; use the -remotelegacy in lieu of -remote switch in the move command.</p>   </li>    <li>     <h4>Command to Move the Mailbox across the forests ( pull the mailbox from source forest to the target forest ) </h4>      <p>First save the credentials in two variables:</p>      <p>( target forest )</p>      <p>$LocalCredentials = Get-Credential</p>      <p>( source forest )</p>      <p>$RemoteCredentials = Get-Credential</p>      <p>Then execute the command based on whether the source forest has MRSProxy enabled or not.</p>      <ul>       <li>With MRSProxy DISABLED in the source ( even if there is a E2010 server in the source ) </li>     </ul>      <p>New-MoveRequest </p>      <p>-Identity johndoe@tailspintoys.com </p>      <p>-RemoteCredential $RemoteCredentials </p>      <p>-TargetDeliveryDomain 'tailspintoys.com' </p>      <p>-RemoteGlobalCatalog dcx01.contoso.com </p>      <p>-RemoteLegacy</p>      <ul>       <li>With MRSProxy enabled in the source (on a server e2010.contoso.com ) </li>     </ul>      <p>New-MoveRequest </p>      <p>-Identity johndoe@tailspintoys.com </p>      <p>-RemoteCredential $RemoteCredentials </p>      <p>-TargetDeliveryDomain 'tailspintoys.com' </p>      <p>-RemoteGlobalCatalog dcx01.contoso.com </p>      <p>-Remote </p>      <p>-RemoteHostName E2010.contoso.com</p>      <p>Note: -RemoteHostName is the E2010 servers where we have enabled the MRSProxy</p>      <p>When the above commands are executed, it will result in the source mailbox turning into a Mail User ( MEU) &amp; the Target Mail User (MEU) into a user mailbox.</p>      <p><strong>Source forest:</strong></p>      <p>User Mailbox&gt; Mail User ( MEU )</p>      <p><strong>Target forest:</strong></p>      <p>Mail User (MEU) &gt; User Mailbox</p>      <p>Before Move:</p>      <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/2625.21%20Pre%20Mailbox%20Move_4.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/2625.21-Pre-Mailbox-Move_5F00_4.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="21 Pre Mailbox Move" border="0" alt="21 Pre Mailbox Move" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/2605.21%20Pre%20Mailbox%20Move_thumb_1.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/2605.21-Pre-Mailbox-Move_5F00_thumb_5F00_1.jpg" width="1184" height="254" /></a></p>      <p>Move Command:</p>   </li> </ol>  <blockquote>   <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/1145.22%20mailbox%20move_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/1145.22-mailbox-move_5F00_2.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="22 mailbox move" border="0" alt="22 mailbox move" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/2100.22%20mailbox%20move_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/2100.22-mailbox-move_5F00_thumb.jpg" width="1202" height="114" /></a></p>    <p>After Move:</p> </blockquote>  <ol>   <li>     <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/7418.23%20Post%20mailbox%20Move_4.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/7418.23-Post-mailbox-Move_5F00_4.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="23 Post mailbox Move" border="0" alt="23 Post mailbox Move" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/70/70/metablogapi/7802.23%20Post%20mailbox%20Move_thumb_1.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-70-70-metablogapi/7802.23-Post-mailbox-Move_5F00_thumb_5F00_1.jpg" width="1189" height="275" /></a></p>      <p>Note: Issues to be aware of when moving across forests</p>      <ol>       <li>Outlook nickname cache is best cleared ( from the client side ) </li>     </ol>      <ol>       <li>Update OAB &amp; replicate to the CAS servers. Have the users wait till it downloads or ask them to manually download the OAB. </li>     </ol>      <ol>       <li>Depending on how end-users have created their outlook rules, it could break. You might need to re-create the outlook rules. </li>     </ol>      <ol>       <li>Shared mailboxes + their users &amp; manager + delegate sets should be moved together. you cannot have a manager in one forest &amp; delegate in a different forest </li>        <li>This Mailbox pull will result in the source mailboxes being hard deleted. Ensure you have a backup in case you need to retrieve the mailbox </li>     </ol>      <ol>       <li>&quot;Suspend this move when it is ready to complete&quot; option is not available when moving across forest. </li>     </ol>      <p>Additional Reading.</p>      <p><a href="https://technet.microsoft.com/en-us/library/dd351123.aspx">https://technet.microsoft.com/en-us/library/dd351123.aspx</a></p>      <p><a href="https://blogs.technet.com/b/exchange/archive/2010/08/10/3410619.aspx">https://blogs.technet.com/b/exchange/archive/2010/08/10/3410619.aspx</a></p>   </li> </ol>  <h2>5. Ensuring Mail flow between source &amp; target during the co-existence phase. </h2>  <ul>   <p>The Method described below would work fine if we have to migrate all the mailboxes from the source forest to the target forest rapidly &amp; in one scheduled activity. This is because both the source &amp; target forest are authoritative for the same SMTP domain.</p>    <p>This drawback ( of having to move all the mailboxes in one scheduled outage ) would be acceptable if the number of mailboxes is small or the actual move would happen in a short span of time. However this is not a common scenario as most migrations would take several hours if not days or weeks.</p>    <p>In the event that the move of mailbox takes several hours, days or weeks, we would need to have e-mail flowing between the source forest, ( mailboxes which are going to be migrated ) &amp; the target forest ( mailboxes which have already been migrated ) Thus a migrated user can send an e-mail to a user who is yet to be migrated &amp; vice-versa. </p>    <p>The additional steps to achieve this would involve:</p> </ul>  <blockquote>   <p>&#160;</p>    <p>1. Add a <strong>new accepted domain</strong> e.g. @tailspintoys.local in the target forest and also add this domain as a secondary SMTP address to the target forest objects. </p> </blockquote>  <ul>   <p>Thus we have an additional secondary SMTP e-mail address of johndoe@tailspintoys.local</p>    <p>set-emailaddresspolicy -id &quot;Default Policy&quot; -enabledemailaddresstemplates SMTP:@tailspintoys.com,smtp:@tailspintoys.local</p>    <p>update-emailaddresspolicy -id &quot;Default Policy&quot;</p> </ul>  <blockquote>   <p>&#160;</p>    <p>2. Modify the move command used earlier. Change the <strong>TargetDeliveryDomain</strong> to tailspintoys.local </p> </blockquote>  <ul>   <p>e.g. New-MoveRequest -Identity johndoe@tailspintoys.com -RemoteCredential $RemoteCredentials -TargetDeliveryDomain 'tailspintoys.local' -RemoteGlobalCatalog dcx01.contoso.com -RemoteLegacy</p>    <p>Thus the Target address on the MEU in the source forest after the mailbox is moved will be johndoe@fabrikam.local besides the expected proxy addresses.</p>    <p>Once Executed, we will now have the MEU in the source having a target address of tailspintoys.local</p> </ul>  <blockquote>   <p>&#160;</p>    <p>3. Create appropriate connectors for mail flow.</p>    <p>In order to have e-mail flowing between the two forests we would need to configure connectors in both the forests. This procedure could vary depending on how the existing mail flow is configured.</p> </blockquote>  <ul>   <p>Here are the PowerShell commands used in my lab:</p>    <p><strong>source_to_target mail flow</strong></p>    <p><strong>Source send connector</strong></p>    <blockquote>     <p>new-SendConnector </p>   </blockquote>    <blockquote>     <p>-Name 'source_to_target' </p>   </blockquote>    <blockquote>     <p>-Usage 'Internet' </p>   </blockquote>    <blockquote>     <p>-AddressSpaces 'SMTP:*.tailspintoys.local;1'</p>   </blockquote>    <blockquote>     <p>-IsScopedConnector $false </p>   </blockquote>    <blockquote>     <p>-DNSRoutingEnabled $false </p>   </blockquote>    <blockquote>     <p>-SmartHosts 'ex01.fabrikam.com' </p>   </blockquote>    <blockquote>     <p>-SmartHostAuthMechanism 'None' </p>   </blockquote>    <blockquote>     <p>-UseExternalDNSServersEnabled $false </p>   </blockquote>    <blockquote>     <p>-SourceTransportServers 'ex01.contoso.com'</p>   </blockquote>    <p><strong>Target receive connector</strong></p>    <blockquote>     <p>new-ReceiveConnector</p>   </blockquote>    <blockquote>     <p>-Name 'source_to_target' </p>   </blockquote>    <blockquote>     <p>-Usage 'Internet' </p>   </blockquote>    <blockquote>     <p>-Server 'EX01.fabrikam.com'</p>   </blockquote>    <blockquote>     <p>-Bindings '0.0.0.0:25' </p>   </blockquote>    <blockquote>     <p>-RemoteIPRanges '10.10.10.103' </p>   </blockquote>    <p><strong>target_to_source_and_internet mailflow</strong></p>    <p><strong>target send connector</strong></p>    <blockquote>     <p>new-SendConnector </p>   </blockquote>    <blockquote>     <p>-Name 'target_to_source_and_internet' </p>   </blockquote>    <blockquote>     <p>-Usage 'Internet' </p>   </blockquote>    <blockquote>     <p>-AddressSpaces 'SMTP:*;1' </p>   </blockquote>    <blockquote>     <p>-IsScopedConnector $false </p>   </blockquote>    <blockquote>     <p>-DNSRoutingEnabled $false </p>   </blockquote>    <blockquote>     <p>-SmartHosts 'ex01.contoso.com'</p>   </blockquote>    <blockquote>     <p>-SmartHostAuthMechanism 'None' </p>   </blockquote>    <blockquote>     <p>-UseExternalDNSServersEnabled $false </p>   </blockquote>    <blockquote>     <p>-SourceTransportServers 'EX01.fabrikam.com'</p>   </blockquote>    <p><strong>source receive connector</strong></p>    <blockquote>     <p>new-ReceiveConnector </p>   </blockquote>    <blockquote>     <p>-Name 'target_to_source_and_internet' </p>   </blockquote>    <blockquote>     <p>-Usage 'Custom'</p>   </blockquote>    <blockquote>     <p>-Server 'Ex01.contoso.com'</p>   </blockquote>    <blockquote>     <p>-Bindings '0.0.0.0:25' </p>   </blockquote>    <blockquote>     <p>-RemoteIPRanges '10.10.10.11' </p>   </blockquote>    <blockquote>     <p>-AuthMechanism 'Tls, ExternalAuthoritative' </p>   </blockquote>    <blockquote>     <p>-PermissionGroups 'AnonymousUsers, ExchangeServers'</p>   </blockquote>    <p>Note1: usage = internet as this would not require authentication.</p>    <p>Note2: RemoteIPRanges is the IP address of the server used in the send connector matching this receive connector. This will result in only the identified server being able to send e-mail over this receive connector.</p>    <p>Note3: For this example I have chosen to create a separate send &amp; receive connector in both the forests. However you could also achieve this by modifying the existing receive connectors instead of creating new receive connectors.</p> </ul>  <h2>6. Additional configuration needed. </h2>  <blockquote>   <ul>     <li>AutoDiscovery for outlook clients ( also used by free-busy )&#160; Reference <a href="https://blogs.technet.com/b/mhass/archive/2010/06/16/autodiscover-using-targetaddress.aspx">link</a> </li>      <li>Free-busy / Availability information. </li>      <li>Redirecting OWA across forests </li>      <li>Linked mailboxes </li>      <li>Shared / Resource mailboxes </li>   </ul> </blockquote>  <ul>   <p>I hope to cover these in future blogs, time permitting.</p>    <p>Additional Reading <a href="https://blogs.technet.com/b/cloud_no_10/archive/2012/05/15/preparemoverequest-ps1-in-a-multi-domain-scenario.aspx">Link1</a>&#160;<a href="https://blogs.technet.com/b/schadinio/archive/2010/08/11/exchange-2010-cross-forest-mailbox-moves.aspx">Link2</a>&#160;<a href="https://blogs.technet.com/b/meamcs/archive/2011/06/10/exchange-2010-cross-forest-migration-step-by-step-guide-part-i.aspx">Link3</a></p>    <p>Thank you for reading this far &amp; I hope this blog was useful for your cross-forest migration.</p>    <p>Next Blog: How Groups can be migrated across forests &amp; what kind of issues can crop up.</p> </ul>]]></content:encoded>
    </item>
  </channel>
</rss>