何でも屋: USMT は味方です

ユーザー状態移行ツールがお好きでない方も、OS の移行処理を自動化して、すべてのユーザー設定をまとめるツールとして、この便利なソリューションの使用を再度検討することをお勧めします。

Greg Shields

前回または前々回の OS 移行時に行った手順を覚えていますか。以前、OS の移行は、今よりも単純で、今ほど要件が多くありませんでした。"自動化" は、一連の手順を紙に書いて、各手順を完了するごとにチェックを付けることでした。当時、ユーザーの移行は、手動による面倒な作業でしたが、シームレスに行われていました。

実際、手動による移行では、データの配置を間違えたり、ユーザーが不快な思いをすることが日常茶飯事でした。当時、"ユーザー データの移行" は、"覚えておくべきこと" のチェックリストに過ぎませんでした。このリストには、マイ ドキュメント フォルダー、デスクトップの背景、Internet Explorer のお気に入りなど、IT には何の意味も持たないが、ユーザーにとって重要なものが含まれていました。

ユーザー状態移行ツール (USMT) は、この手動による移行のチェックリストを適切に自動化する無料のソリューションです。USMT は、Microsoft Deployment Toolkit (MDT) に直接組み込まれており、MDT は Microsoft Web サイトからダウンロードできます。USMT では、ユーザーのデータを新しい OS に再設定する目的でユーザーのデータを自動的に収集します。

USMT を使用するには、MDT を使用して展開共有を作成してデータを設定する必要があります。OS イメージの準備が完了し、アプリケーションをパッケージ化し、タスク シーケンスを展開する準備ができたら、USMT による OS の移行またはリフレッシュを開始できます。USMT を実行するには、ユーザーのコンピューターにログオンし、展開共有の Scripts フォルダーから LiteTouch.vbs を実行します。

USMT は、とても簡単に実行できますが、既定の設定に含まれていないデータを収集するように USMT をカスタマイズするのは簡単ではありません。設定をカスタマイズするには、XML ファイルを操作する必要があり、収集する必要のあるデータを特定するには多くの試行錯誤が必要になります。

Mig*.XML と奮闘する

MDT による OS 展開の自動化は、大きなトピックです。説明を簡略化するため、ここでは、MDT を既にダウンロードし、展開共有の作成が完了している前提で話を進めます。また、OS イメージと他のカスタマイズの準備も完了し、必要な作業は、キャプチャする必要があるユーザー状態データのカスタマイズだけだとします。

USMT は、一般的なユーザー設定のデータを収集するように構成されています。これには、先ほど言及したお気に入り、画像、ドキュメントなどが含まれます。収集するユーザー データを定義する XML ファイルは 3 つあります。

  • MigApp.XML: アプリケーションの設定に関する情報が含まれています。
  • MigUser.XML: ユーザー プロファイルのデータに関する大まかな制御を行います。
  • MigDocs.XML: ドキュメントの移行を詳細に制御する必要がある場合、MigUser.XML の代わりに使用できます。ただし、MigUser.XML と MigDocs.XML は同時に使用しないでください。

この 3 つの XML ファイルは、MDT 展開共有にあります (図 1 参照)。これらのファイルを確認すると、その内容を理解するのが困難だと感じるかもしれません。ですが、これらのファイルは編集することを目的としていないので心配無用です。これらのファイルを編集するには、まず、別の XML ファイル (Config.XML など) を作成する必要があります。

図 1 MigApp.XML では、ユーザーのアプリケーション設定を確認できる

この Config.XML ファイルの詳細を確認する前に、USMT で収集するデータをカスタマイズするには 2 段階の手順を実行することを理解しておく必要があります。まず、USMT の既定の設定から除外するデータを特定し、それから追加するデータを指定します。

移行対象からデータを除外する

USMT による移行の対象からデータを除外するのは簡単です。MigApp.XML と MigUser.XML を既定の設定として使用すると仮定し、次のコマンドを実行して、USMT の ScanState 関数を使用し、新しい Config.XML ファイルを作成します。

Scanstate.exe /genconfig:Config.XML /i:MigApp.xml /i:MigUser.xml

この構成ファイルは、先ほどの XML ファイルより随分理解しやすい状態になっています (図 2 参照)。各要素には migrate=yes というテキストが含まれており、migrate=yes を migrate=no に変更することで、ユーザーのコンピューターから USMT が収集する項目の一覧から、その項目を除外できます。

図 2 移行する項目を特定するために生成する Config.XML の例

先ほど作成した Config.XML ファイルは、USMT で移行できる項目の一覧と見なすことができます。このファイルのコンテンツは、MigApp.XML と MigUser.XML で定義されている命令に基づいて生成されています。この時点の Config.XML ファイルでは、USMT で移行しない項目を割り出したに過ぎません。

移行の対象にデータを追加する

移行対象となる項目を追加するには、まず、追加するデータを個別に特定する必要があるため、移行対象からデータを除外するよりも少し困難です。対象のデータはシステム ファイルとして存在することもあれば、レジストリの項目として存在することもあります。まず、既定の設定で収集されないデータと特定し、必要なデータを収集するように収集対象の項目を絞り込む必要があります。

データを収集する必要がある項目を特定したら、その情報を USMT に追加するには、XML を記述する必要があります。通常、この追加の XML は、別の XML ファイル (ConfigAdd.XML など) に追加されます。

マイクロソフトでは、この XML ファイルの構成例を用意しています。このページでは、データを収集する必要がある特定の項目が含まれるように XML を調整する複数の例が紹介されています。1 つ目の例は、ある特定のレジストリ キーの移行に使用するテキストです。

<migration urlid="https://www.microsoft.com/migration/1.0/migxmlext/test"> <component type="Application" context="System"> <displayName>Component to migrate only registry value string</displayName> <role role="Settings"> <rules> <include> <objectSet> <pattern type="Registry">HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Cache [Persistent]</pattern> </objectSet> </include> </rules> </role> </component> </migration>

<pattern> と </pattern> で囲まれているコンテンツの大半は、レジストリ パスの単なるラッパー情報に過ぎません。この例では、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Cache のレジストリ キーが移行されます。

ファイルやフォルダーの情報を移行するには、上記の例で紹介したような XML コンテンツが必要になります。下記の例では、C:\EngineeringDrafts フォルダーとサブフォルダーにある、すべてのファイルとフォルダーを新しいコンピューターに移行します。

<migration urlid="https://www.microsoft.com/migration/1.0/migxmlext/test"> <component type="Documents" context="System"> <displayName>Component to migrate all Engineering Drafts Documents including subfolders</displayName> <role role="Data"> <rules> <include> <objectSet> <pattern type="File">C:\EngineeringDrafts\* [*]</pattern> </objectSet> </include> </rules> </role> </component> </migration>

この 2 つの例の違いに注目してください。重要なコンテンツがバインドされている場所が異なることが一目でわかります。コンテンツの移行先を表すアスタリスクにも注目してください。マイクロソフトでは、アスタリスクや他のスイッチを使用して、移行の対象に含める/含めないファイル、フォルダー、およびレジストリの項目を細かく制御する方法を紹介する 6 つの例を用意しています。

追加する必要のあるコンテンツを特定したら、このコンテンツから ConfigAdd.XML ファイルを作成します。XML ファイルに含める必要があるのは 1 組の <migration> </migration> タグのみです。このタグには、移行する 1 つまたは複数のコンポーネントを含めることができます。

作成した XML ファイルの評価では、XML ファイルが USMT で問題なく動作することを評価する必要があるため、困難な場合があります。XML Notepad ツールを USMT サーバーにある MigXML.XSD と組み合わせて使用することでエラーを特定できます。

Mig*.XML を USMT に統合する

この最後のプロセスでは、既定の XML ファイルと独自に作成した XML ファイルを MDT 展開共有に統合します。これらのファイルは、展開共有の [Rules] (規則) タブで作成します。このタブには、展開共有のプロパティ ビューからアクセスできます。

図 3 の [Default] のテキストを参照してください。このテキストは、展開共有経由で行われる任意の OS 展開が既定の XML ファイルと独自に作成した 2 つの XML ファイル (Presentations.XML と Config.XML) をポイントするようにしています。

図 3 MDT 展開共有の [Rules] (規則) タブでは既定の XML ファイルを作成できる

ScanStateArgs というタイトルの行では、移行するプロファイルを識別します。設定可能な引数の一覧については、この TechNet ライブラリの記事の「ユーザー オプション」で確認できます。

図 3 の例は一般的なシナリオです。このスイッチの組み合わせを使用すると、USMT では、60 日以内にログオンしたドメイン ユーザーのプロファイルのみを移行し、ローカル プロファイルは無視します。多くの状況において、移行するプロファイルの数を制限することは有益です。その主な理由は、移行するデータ量の削減です。移行するデータ量を削減すると、USMT で移行タスクを完了するのに必要な時間も短縮できます。

最後の項目である UserDataLocation には AUTO が設定されています。この設定により、USMT では、コンピューターのリフレッシュ時にハード リンクの移行と呼ばれる種類の移行を行います。コンピューターを置換する場合、ユーザー情報はネットワーク共有に格納されます。

次の 2 つのステートメントも便利です。これらのステートメントでは、コンピューターの置換処理中に使用するネットワーク共有を指定します。

UDShare=\\fileServer\fileShare UDDir=%OSDComputerName%

USMT を再度試してみる

USMT が誕生してから、しばらくになります。一方、使いづらいというマイナスの評価を受けているのも事実です。USMT をカスタマイズするには、XML ファイルの中を探るだけでなく、独自の XML ファイルを作成する必要もあります。USMT を使用する果敢な意欲があれば、USMT は、過去の産物となっている紙とペンを使用する移行のチェックリストを自動化する強力なソリューションになります。ユーザーのコンピューターをリフレッシュまたは移行するときにユーザーのお気に入りを移行し忘れるなどのトラブルにうんざりしている場合は、ぜひ、もう一度 USMT を使用することを検討してみてください。私だったら、もう一度試してみると思います。

Greg_Shields

Greg Shields (MVP) は、Concentrated Technology の共同経営者です。何でも屋である IT プロフェッショナル向けのヒントとテクニックについては、ConcentratedTech.com を参照してください。

関連コンテンツ