Migrating .pst Files with USMT custom MigUser

Posted on Updated on

A recent challenge I had with a USMT migration was to ensure that all .pst files could be migrated (or any file type for that matter).  You may be asking how that is “challenging”.  Well, a common best practice is to exclude unnecessary directory locations (such as C:\Drivers or C:\Temp), so what happens if the .pst file lives in that folder?  Furthermore, if USMT using MigApp + MigUser, then program/system directories are excluded (such as user’s temp folders or C:\Windows), so what happens if the .pst file lives in that folder?

In either situation, if the .pst is actively connected to a user’s Outlook profile being migrated, then the .pst will also migrate.  However, if the .pst is disconnected and lives in an excluded location, then it will not migrate.  So this brings the challenge of how to migrate .pst files.  The solution is to use a customized migration XML file, which in this example I am calling MigUserCustom.

MigUserCustom Code Snippet


  <!-- This component migrates .PSTs except for ones on the network-->
  <component type="Documents" context="UserAndSystem">
  <displayName>All PST files migrated from all fixed, no PST’s migrated from network, regardless of context or outlook registry catalog settings</displayName>
    <role role="Data">
      <rules>
        <unconditionalExclude>
          <objectSet>
            <script>MigXmlHelper.GenerateDrivePatterns ("* [*.pst]", "Remote")</script>
          </objectSet>
        </unconditionalExclude>
        <unconditionalExclude>
          <objectSet>
            <pattern type="File">\\* [*.pst]</pattern>
          </objectSet>
        </unconditionalExclude>
        <include>
          <objectSet>
            <script>MigXmlHelper.GenerateDrivePatterns ("* [*.pst]", "Fixed")</script>
          </objectSet>
        </include>
      </rules>
    </role>
  </component>

If you would like to have a copy of the full MigUserCustom.xml to use an example, you can get it from my SkyDrive at http://sdrv.ms/Nf2X6a. An example USMT command line to use MigUserCustom may look like:


ScanState.exe /o "%CAPTURE_STORE_PATH%" /vsc /i:MigApp.xml /i:MigUser.xml /i:MigUserCustom.xml
/config:Confiig.xml /localonly /l:"%CAPTURE_STORE_PATH%\scanstate.log"
/listfiles:"%CAPTURE_STORE_PATH%\scanstatefiles.log" /v:13 /uel:90

Or if you have defined in an SCCM task sequence, be sure to add it as one of Configuration Files.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s