デスクトップ ファイルWindows PE を使用した PC の復旧

Wes Miller

以前のコラムで、Windows PE の最初の構想は、それを展開環境にすることだったと説明したことがあります。すべての優れた製品と同じように、Windows PE も単なる展開環境を超えて進化しました。顧客 (当初は OEM) は、製造用とユーザー自己復旧用のソリューション構築に意欲を燃やし、数社は

その両方の目的で機能する Windows® PE ソリューションを開発しました。

今日存在する復旧ツールのほとんどは、展開プロセスのミラーリングによって、システムを正常と確認されていた状態に戻すことを前提としています。Windows Vista® では、Windows XP よりも復旧作業がずっと簡単になっており、イメージングのサポートも組み込まれています (今月の TechNet Magazine に掲載されている Windows Vista バックアップ テクノロジについての Christine Fok の記事を参照してください)。

今月のコラムでは、Windows PE を基にした独自の復旧ソリューションの構築について説明します。Windows PE 2.0 は、すべての Windows ライセンスで無料で入手できる Windows 自動インストール キット (AIK) のコンポーネントです。このライセンスは、展開だけでなく、復旧およびトラブルシューティングのための Windows PE の使用にも適用されます。

独自のカスタマイズや調整の考慮はもちろん必要ですが、ここでは、Windows XP と Windows Vista のどちらを展開する場合であっても留意すべき一般的なポイントについて説明します。イメージングについての知識がある方は、既にご存知のことばかりです。

Windows PE 復旧ソリューションの主要コンポーネントは次のとおりです。

  • Windows PE
  • イメージング ユーティリティ
  • それらをまとめるスクリプト (または正規のアプリケーション)

オプションで、SQL サポートおよび Active Directory® Service Interfaces (ADSI) サポートを含めることもできます。SQL 接続を使用すると、インストールに何が必要かを定義する "部品表" のようなものをシステムに持たせることができるソリューションを間接的に構築できます。同様に、Active Directory に接続すると、マシン アカウント オブジェクト (MAO) プロパティごとの処理に役立ちます。

Windows PE に ADSI を含めることはマイクロソフトのサポート対象外ですが、この方法を説明するオンラインの記事は多数あります。正しく設定できれば、これは非常にうまく機能します。そのような裏技を使いたくない場合は、SQL サポートを追加して、Windows PE 復旧ツール用のワークフローをそこに組み込むことができます。ADSI プロパティが必要な場合は、同じ SQL Server™ に対してクエリを実行し、次に、実質的にパススルーとして機能する ADSI を経由して Active Directory に対してクエリを実行するスケジュール タスクをサーバー システムに設定できます。

これは、完全なソリューションではなく、スクリプトを作成したりその他の自動化を行ったりする必要がありますが、この設計によって Windows PE から Active Directory と対話できるようになります。

LDIFDE ユーティリティを使用して Windows PE 内から Active Directory 情報を読み取ることもできます。詳細については、このトピックについてのサポート技術情報の記事 support.microsoft.com/kb/237677 を参照してください。たとえば、次のようなコマンドを使用できます。

ldifde -m -f x:\output.ldf -b <username> <domain netbiosname> <accountPassword> -s 
<DC or domain name> -d "DC=contoso,DC=com" -r "(&(objectclass=<computerclassname>)
(netbuisname=<mycomputername>))" - l "<attributename>"

このコマンドを入力すると、指定したコンピュータ オブジェクトから x:\output.ldf に属性が取得されます。これで出力を解析できます。

SKU、プログラム ファイル、および言語

展開する必要がある Windows のバージョン、アーキテクチャ、および言語を考慮する必要があります。小規模でロケールが特定された組織であれば、1 種類の OS (Windows XP または Windows Vista) だけを展開したり、何であれ新しい PC に既にインストールされているものを使用すると考えられます。おそらく、x64 Windows システムを展開することは、たとえあったとしてもそれほど多くはないでしょう。また、サポートが必要な言語は 1 つだけのはずです。しかし、もっと規模が大きくグローバルな組織であれば、扱うアーキテクチャ、バージョン、構成は多くなるのが普通です。

以前のコラムで書いたように、x64 および x86 のボリューム イメージを同じ Windows Imaging (WIM) 形式のファイルに格納することはできますが、領域の節約にはなりません。復旧ソリューションを構築し、両方のアーキテクチャを対象にする必要がある場合は、それぞれを別の WIM に保存する必要があります。Windows XP と Windows Vista の両方を展開およびサポートする場合も、同じイメージに両方のオペレーティング システムを保存しても節約になりません。領域の節約を実現できるのは、同一アプリケーション (たとえば 2007 Microsoft® Office system) の多数のインスタンスを両方の展開に含める場合だけです。この場合はアプリケーション ファイルを複数回保存する必要はありませんが、それでも領域の著しい節約にはならないでしょう。

Windows PE のブート方法

Windows PE 1.6

リモート インストール サービス (RIS) からの

PXE ブート (RAMDisk なし)

ハード ディスク ドライブ

USB フラッシュ ドライブ

RAMDisk PXE

RAMDisk CD/DVD

RAMDisk USB フラッシュ ドライブ

RAMDisk ハード ディスク ドライブ

Windows PE 2.0

RAMDisk PXE

RAMDisk CD/DVD

RAMDisk USB フラッシュ ドライブ

RAMDisk ハード ディスク ドライブ

RIS からの PXE ブート は、PXE が必要な場合には最適ですが、この方法では PXE RAMDisk よりも起動に時間がかかり、消費するネットワーク リソースも多くなることに注意する必要があります。

ハード ディスク ドライブ は、使用メモリは最小ですが、ドライブをロックします。この方法は、デュアル パーティションを交互に切り替える復旧シナリオを使用する場合は理想的です。

USB フラッシュ ドライブ は、起動は簡単ですが、起動するシステムが OEM によって UFD ブート可能であると確認されず、Windows Vista Capable ロゴ (UFD ブート サポートをロゴの要件として保証している) がない場合、(RAMDisk と RAMDisk なしのどちらのシナリオでも) UFD の動作は予測できません。UFD ブートには、(読み書きの両方で) 高パフォーマンスのフラッシュ ドライブ、および USB コントローラおよび BIOS による Hi-Speed USB サポートが必要です。

RAMDisk ブート (すべてのバリエーションを含む) には、より多くのメモリが必要ですが、最適なパフォーマンスを実現できます。また、Windows PE をメモリ内の RAMDisk に入れておくことができます。Windows PE 1.6 の RAMDisk ブートは、一般に最低でも 256 MB の RAM があるシステムでのみ使用すべきです。Windows PE 2.0 (常に RAMDisk WIM ブートが行われます) では、一般に最低でも 384 MB の RAM があるシステムでのみ実行すべきです。

特定バージョンの Windows の複数の SKU を同じ WIM に格納すると、領域を大幅に節約できることに注意してください。たとえば、Windows XP Professional と Windows XP Tablet PC Edition、または Windows Vista Business Edition と Windows Vista Ultimate Edition を組み合わせるとします。同じリリースおよびサービス パック レベルの 2 つの SKU は、いずれもほぼ同じコードおよびファイルを使用するので、これらの組み合わせでは領域を効率的に使用できます。

最後は、言語です。組織が大きいほど、対応が必要な言語数が増えます。Windows XP では、ローカライズされたビルドと複数言語ユーザー インターフェイス (MUI) のどちらを使用するかを選択できます。完全にローカライズされた Windows XP のビルドでは、短い文字列までほとんどすべてが対象の言語にローカライズされています。一方、MUI では、基本言語は英語ですが、MUI 言語パック (後の Language Interface Pack) では、可能な限り多くの文字列が変更されます (MUI は Windows 2000 である程度成功していましたが、Windows XP および Windows Server 2003 ではさらによい結果を残しています)。

組織で MUI を使用する場合は、さまざまな言語のバージョンを同じ WIM に組み合わせると非常に効果的です。これは、それらがすべてコア レベルでは英語のバイナリを使用するからです。ただし、これは Windows Vista より前に発売されたローカライズ バージョンには該当しません。バイナリ自体がローカライズされているので、複数の言語間ではバイナリが一致しません。これは、各言語のオペレーティング システムのほぼ全体 (およびローカライズされたアプリケーション) を格納する必要があることを意味します。

Windows Vista では、ローカライズ バージョン (単一のバイナリの一部としてその内部のリソースをローカライズしたもの) は廃止されたと考えることができます。Windows Vista は、英語を含む各言語の .mui リソース ファイルを使用します。基本的に、Windows Vista は言語に依存せず、ほとんどすべての言語情報は MUI ファイルに存在します。したがって、複数の言語バージョンの Windows Vista を同じ WIM に格納すると、領域を大幅に節約できます。2 ~ 4 またはそれ以上の数の言語を 1 つの WIM として保存しても、イメージが劇的に増加することはありません。また、後で変更が必要になった場合は、言語を切り替えたり追加したりできます。

つまり、ソリューションを構築する場合は、使用する Windows のバージョンを、他のアプリケーションのバージョン同様に考慮し、同一バイナリを共有して、ファイルのインスタンスを 1 つだけ保存すれば済むようにします。これは、組織全体で必要な WIM ファイルの数を特定するのに役立ちます。

ユーザーのシナリオ

一般に、組織が大きくなればなるほど、複雑さも増します。これは、単にサイズの問題ではなく、導入されるすべての不確定要素によるものです。ユーザーや部署の増加に伴い、特定のニーズも多くなります。

以前、ある多国籍企業の仕事をしたことがありました。この会社は、何万人ものユーザーを抱え、地理的および組織的に 1 か所からすべてを管理する展開プロセスを採用していました。この組織の経営者は、いつも非常に難しい質問を投げかけてきました。たとえば、彼にとってアフリカのある地域に駐在しているリモート ユーザーが懸念材料でした。彼らには安定したネットワーク接続手段がなく、事実、その多くは電話回線から数百マイル離れたところで活動していました。彼は、このようなユーザーが、何日もシステムを停止させたり長距離を移動したりしなくても自分でシステムを復旧できるようにするにはどうすればいいかを知る必要がありました。

製品を開発する場合は (ここでは、復旧ソリューションを製品として考えてください)、ユーザーのことを考える必要があります。特定のビジネス ニーズについて考慮するのは当然ですが、同様に、さまざまなタイプのユーザーにはそれぞれ異なる複雑な要素があることも考慮します。ユース ケースを導入し、短い説明を使って、サポートが必要な各タイプのエンド ユーザーについて記述する必要があります。これによって、うっかり復旧ソリューションから除外していたユーザーに気付いたり、各タイプのユーザーのニーズを確実にすくい上げたりすることができます。

適切な Windows PE のバージョン

もう 1 つの重要な決定事項は、自分のニーズに合っているのはどのバージョンの Windows PE であるかの判断です。それには、このコラムの以前の連載記事が役に立ちますが、ここではもう少し明確な判断をしてみましょう。次のいずれかに該当する場合は、Windows PE 1.6 を使用する必要があります。

  • Windows XP (または Windows Server 2003) だけを復旧する。
  • ACPI (Advanced Configuration and Power Interface) 準拠ではないシステムを復旧する。
  • RAM が 512 MB 未満のシステムを復旧する。
  • RAM が 256 MB 未満で、PXE (Pre-Boot eXecution) ブートを必要とするシステムを復旧する。

次のいずれかに該当する場合は、Windows PE 2.0 を使用する必要があります。

  • Windows Vista (または Windows Server 2008) だけを復旧する。
  • Windows Vista および Windows XP を復旧する。
  • BitLocker™ を使用している。

ImageX (「作成、更新、および保存」を参照) およびほとんどのサードパーティ製のイメージング ソリューションは、どちらのバージョンの Windows PE でも適切に機能します。

Windows PE をブートする

次に考慮すべきことは、Windows PE のブート方法です。ここで主要な役割を果たすのがユーザー シナリオです。ユーザーが復旧用に CD-ROM や DVD を持ち歩くことは現実的でしょうか。旅行中に CD-ROM や DVD をノートパソコンに挿入できるでしょうか。そして、この復旧メディアをどのようにして更新すればいいでしょうか。リムーバブル メディア上の復旧イメージは、すぐに古くなります。

私が見た中で最も一般的なシナリオとして群を抜いていたのは、セカンダリ ハード ディスク パーティションです。そしてもう 1 つの方法は PXE ブートです。また、その他にも外部 USB ドライブや、USB フラッシュ ドライブ (UFD) の使用も検討できますが、対象のハードウェアが UFD デバイスからのブートを明示的にサポートしている必要がある点に注意してください。

補足記事の「Windows PE のブート方法」で、各バージョンの Windows PE のブートでサポートされている方法と、それぞれの方法についての重要な考慮事項を確認できます。

Windows PE のブートでの目標は、次のような特定の条件を満たしつつ復旧プロセスを開始できるようにすることです。

  • ユーザーの操作を最小限にする。
  • 携帯するパーツ (リムーバブル メディアまたはリムーバブル デバイス) を最小限にする。
  • PC がネットワークに接続できない可能性がある。
  • PC をローカルで起動できない (Windows の起動に失敗する) 可能性がある。

たいていの場合、管理者は、ドライブ障害のことも考えて、Windows PE をハード ディスクに (フラットに、または RAMDisk に) 配置するオプションを選択肢から除外します。しかし実際のところ、今日のディスクの信頼性と、物理ドライブで実際に障害が発生した場合はいずれにしてもユーザー自身でそのシステムを復旧することはできないという事実を考えれば、これは有効なオプションです。

私が気に入っているのは、セカンダリ パーティションを作成して、そこに復旧イメージを保存する方法です。パーティションを非表示にすることについては、あまりメリットはないと思います。単にユーザーを惑わせるだけです。アクセス制御リスト (ACL) をそこで使用することも、ユーザーがローカル管理者でない限り、有効ではありません。

Windows で使用されるパーティションを圧縮することによって (補足記事「復旧パーティションを作成する」を参照)、Windows PE と復旧イメージを保存するために十分な空き領域を捻出できることがあります。Windows PE をセカンダリ パーティションに配置するには、復旧パーティションに適切なブート セクタを作成し、Windows PE をそのパーティションに配置するだけです (Windows AIK および以前のバージョンの Windows PE のドキュメントにこのプロセスの説明があるので、ここでは詳細は割愛します)。覚えておくべき重要なポイントは、ブートに使用されるパーティションが、どちらのパーティションがアクティブとしてマークされているかによって決まることです。Diskpart には、アクティブ フラグと、それと同じくらい重要な非アクティブ フラグの機能があります。Windows 内から (または Windows PE のコピー内から) 復旧パーティションを起動するには、Diskpart を使用してアクティブ パーティションを切り替えます (図 1 を参照)。以下は、単一ディスクのデュアル パーティション システムの切り替えに使用される Diskpart スクリプトの例です (diskpart /s nameofscript.txt を使用)。

SEL DIS 0 
SEL PAR 1 
INACTIVE
SEL PAR 2
ACTIVE
EXIT 

図 1 Diskpart によるアクティブ パーティションの変更

図 1** Diskpart によるアクティブ パーティションの変更 **(画像を拡大するには、ここをクリックします)

これは、多数のコンシューマ復旧ツールでパーティションの交互切り替えに使用されているプロセスです。非表示の OEM パーティションなどの特定のパーティション タイプでは、これは Windows PE 内からのみ実行できます。これらのツールによって、非表示の OEM パーティション タイプが再表示されることもあります。

作成、更新、および保存

復旧パーティションを作成する

Windows には手を付けずに復旧パーティションを作成するプロセスは、手順さえわかれば、難しくはありません。何をすればいいかをざっと説明しましょう。このプロセスでは Windows PE 2.0 が必要であることに注意してください。展開または復旧に Windows PE 2.0 を使用しないかもしれませんが、このタスクではバージョン 2.0 を使用する必要があります。このプロセスは、Windows Vista の展開時にも使用できます。また、BitLocker ブート ファイル用のブート パーティションの作成にも使用できます。これは、BitLocker は少なくとも 2 つのパーティション (ブート ファイル用と Windows システムの残り部分のために 1 つずつ) を必要とするからです。

  1. デフラグを実行してディスクを最適化する (これによって非常に時間のかかる圧縮処理を高速化できます)。
  2. Windows PE 2.0 を起動する。
  3. Diskpart を実行する (必要な場合は、手順 4 ~ 9 のスクリプトを作成し、Diskpart に次の引数を渡すことも可能: /s 自分のスクリプト名)。
  4. SEL VOL 1 (または圧縮するボリューム名)
  5. SHRINK DESIRED=N MIN=N (メガバイト単位で指定。DESIRED は目標値、MIN は必要な絶対最小値)
  6. 圧縮完了後に、SEL DIS 0 を実行する。
  7. CRE PAR PRI (ディスクの残り領域以外のサイズを指定する場合は SIZE=N を指定できます)
  8. ASSIGN LETTER=N:(この文字は Windows PE でのみ使用)
  9. Diskpart を終了する。
  10. FORMAT N:/Q /Y /FS:NTFS (新しいパーティションを NTFS でフォーマットします)
  11. bootsect N を実行する (2.0 の場合は /nt60、1.x の場合は /nt52)。
  12. 必要な Windows PE ファイルを復旧パーティションにコピーする。
  13. システムをシャットダウンする。

ImageX は無料で入手できるソリューションですが、既に使用しているイメージング ツールがあるかもしれません。どれでも一番使いやすいものを使用してください。ImageX の使用を考えている方のために、(価格以外で) 私が気に入っている点を挙げておきます。ImageX は、特に圧縮において威力を発揮します。また、イメージの追加や編集が比較的簡単というのも長所です。

さらに、ImageX では、既存のデータを破壊しないで 1 つ以上のボリュームをイメージングできる点も気に入っています。これにより、ユーザー データを、邪魔にならないところに移動するだけで保存できます。つまり、Windows を復旧するときに、ボリューム全体を消去する必要はありません。

それから、もちろんイメージの保存先を決める必要があります。ソリューションで復旧パーティションを使用している場合は、そこに WIM またはその他のイメージング ファイルを保存できます。標準の OS イメージを作成してそれをネットワーク上に保存する Windows 展開サービス (WDS) の使用も検討できます。これによって、インフラストラクチャ全体で利用できる共通の復旧ソリューションの構築が可能になります。もちろん、各地の現場にユーザーがいる (前に挙げた外国の辺ぴな場所にいる社員など) 場合は、彼らがネットワークに接続できないときに利用できる独自のソリューションを確保しておく必要があります。

既に述べたように、DVDなどのメディアも使用できますが、このオプションを一般的に使用することを個人的にお勧めしない理由はたくさんあります。たとえば、イメージのサイズはすぐに大きくなり、DVD のサイズを超えてしまいます。また、このようなディスクの更新は簡単ではありません。光学式メディアは問題外だという意味にはとらないでください。必要なのは、どのようなシナリオがどのようなタイプのユーザーに最適であるかを十分に検討することです。もうおわかりかもしれませんが、私のお気に入りを挙げておきましょう。それは、イメージを復旧パーティション、USB ハード ディスク、USB フラッシュ ドライブ、また可能な場合は WDS を使用してネットワークに保存する方法です。

WDS が選択肢として魅力的な理由の 1 つは、一元化されたイメージを簡単に更新できることです。Windows Update で毎月更新プログラムがリリースされ、その更新が通常重要であることはご承知だと思います。ソリューションは、可能な限り最新の復旧イメージを維持できるように設計してください。WDS を使用すると、各サーバーのイメージを更新でき、それですべて完了します。

ユーザー データおよび設定についての考慮事項

復旧ソリューションを設計する際に注意が必要な点があります。復旧ソリューションの計画で重要なのは、ユーザー データの安全性も確保することです。復旧を実行している現場のユーザーを、その過程で自分の重要なデータをすべて失うという目に合わせたくはありません。理想的なのは、システム復旧の処理方法に慎重である場合を除いて、ユーザーのデータを C: パーティション以外の別の場所に保存することです。

前述のように、ImageX はデータを破壊せずにディスクを復旧できます。たとえば、復旧完了後にユーザーまたはスクリプトが手動でファイルを復旧できるように、既存の Documents and Settings (または Users) ディレクトリ ツリーを別のディレクトリに移動します。自分のファイルをすべて自分のプロファイル内に保存しているユーザー、または移動プロファイルを使用しているユーザーは、ほとんどの場合、ユーザー データを失うことなくシステムを復旧できます。しかしそれでも、細心の注意を払って復旧ソリューションを設計している場合、または完璧なバックアップ ソリューションがある場合を除いて、ユーザー データを多少失う可能性があることを忘れないでください。

いくら設計が完全でも、情報を自分のプロファイル以外の場所に保存するユーザーは存在します。ソリューションでは、誤ってユーザー データを消去する可能性を必ず考慮して、事前にユーザーに警告する必要があります。

暗号化ファイル システム (EFS) を使用する場合は、キー復旧プランを実行していることを確認します。暗号化の復旧ができないせいでデータを失いたくはありません。同様に、BitLocker の場合は、暗号化されたボリュームの復旧についても必ず準備しておきます。これは、Windows PE 2.0 を使用することを意味します (1.x では BitLocker と対話できません)。BitLocker の復旧の詳細については、blogs.msdn.com/si_team を参照してください。

最後に、自分のカスタマイズやアプリケーションの一部が消えたときに混乱するユーザーがいるという事実への対処を考えておきます。(アプリケーションおよび Windows 自体の) カスタマイズの保存先は、ユーザー プロファイルには限られず、不規則です。OS パーティション全体を復旧するときに、「X はどこに行った?」とか「Word で Y が表示されなくなったのはなぜ?」といった問い合わせをしてくるユーザーがいます。ユーザーには事前に説明して、環境が以前とまったく同じになるとは限らないことを認識させてください。

Windows PE を使用した独自の復旧ソリューションの作成には時間がかかり、ソリューションの計画および設計時にはユーザーについて考慮する必要があります。復旧ソリューションは、あまり複雑にする必要はありません。限られた技術サポートと最小の時間でユーザーが元どおりに仕事ができるようになれば十分です。

Wes Miller は、テキサス州オースティンにある Pluck 社 (www.pluck.com) の開発マネージャです。以前は、オースティンにある Winternals Software に勤務しており、その前はマイクロソフトで Windows のプログラム マネージャとプロダクト マネージャを兼任していました。Wes の連絡先は、technet@getwired.com (英語のみ) です。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; 許可なしに一部または全体を複製することは禁止されています.