XP Mode と Active Directory ドメインの関係 その5 - 複数のドメインユーザーでXP Modeを共有する手順

2010年01月19日 追記 XP Mode は、デスクトップをデスクトップを個人で管理するような小規模な環境で利用することを目的に提供されています。この為、XP Mode はOSイメージを複製したり、共有する利用方法はライセンス上許諾されておりません。複製された XP Mode を共有する場合には、 「仮想OSインスタンスの実行権」が含まれている「Windows ソフトウェア アシュアランスの特典」 をご検討ください。なお、XP Mode で許諾される内容の詳細については、XP Mode の EULA を参照してください。

詳しくは 「製品使用権説明書」の p.123 「Windows 7 仮想化の権利 - a)ソフトウェアインスタンスの実行」をご覧ください

複数のドメインユーザーでWindows 7のXP Modeを共有することができるか?というテーマで進めてきましたが、なんとか解決に近づくことができそうです。これまでの投稿は以下の通りですが、 「複数のドメインユーザーでXP Modeを共有する手順」が目的なのであれば、この記事だけ読んでください。 必要に応じて参照先を示します。

XP Mode と Active Directory ドメインの関係 その1 ー 仮想XPのユーザープロファイル

XP Mode と Active Directory ドメインの関係 その2 - ドメインへの参加方法と差分ディスクの結合

XP Mode と Active Directory ドメインの関係 その3 - 差分ディスクをファイルサーバーに置いてみた

XP Mode と Active Directory ドメインの関係 その4 - Win7とXPの移動ユーザープロファイル

本記事の執筆に当たり、Virtualization MVP の山内さんからアドバイスをいただきました。山内さん、ありがとうございました!ちなみに、山内さんは「Windows Server 2008 R2 テクノロジ入門」の著者です。他にも、IT技術全般にわたって広く執筆活動をされている方です。

簡単に書くと、デフォルトプロファイルなんぞに環境を埋め込んだり、差分ディスクを使ったりせず、「XP Modeのイメージ」と「XP Modeの環境ファイル」自体を共有すればうまくいきます。

以下に設定手順を示します。

1.XP Mode と Virtual PC 2007 をインストール

2.Windows 7 に管理者ユーザーでログオン

今回の目的は、ドメインに参加している複数のユーザーで1台のWindows 7とXP Modeを共有することなので、ホストであるWindows 7 はドメインに参加しているものとします。

3.Windows XP Base.vhd を別のフォルダにコピーする

デフォルトの親ディスクである C:\Program Files\Windows XP Mode\Windows XP Base.vhd を直接いじるのではなく、vhdファイルを別のフォルダにコピーしてください。ここでは、以下のように C:\XPMODE というフォルダを新たに作成し、コピーしたと仮定します。

C:\XPMODE\Winodws XP Base.vhd 

くれぐれも C:\Program Files\Windows XP Mode 内に別の名前でコピーする..といった方法は選択しないでください。なぜならば、Windows XP Base.vhd ファイルには XP Mode を使用する一般ユーザーにも書き込み権限が必要になるからです。ご存じのとおり C:\Program Files\Windows XP Mode には一般ユーザーに対する書き込み権限はありませんし、アクセス権を与えてしまうことは他のアプリケーションにも影響を与えることになります。

4.C:\XPMODE フォルダ と Windows XP Base.vhd ファイルのアクセス権を変更する

既定では、Windows XP Base.vhdファイルは以下のアクセス権が設定されています。

  • Everyone:[読み取りと実行][読み取り]
  • SYSTEM:フルコントロール
  • Administrators:[読み取りと実行][読み取り]

このままではVHDファイルに書き込むことができません。

よって、C:\XPMode および Windows XP Base.vhd ファイル には以下のアクセス権が必要です。以下では、Everyone の代わりに Authenticated Users にアクセス権を与えています。

  • Authenticated Users:[読み取りと実行][読み取り] [変更][書き込み]
    ※[削除]権限は外しておくことをお勧めします
  • SYSTEM:フルコントロール
  • Administrators:フルコントロール

Windows XP Base.vhd  には、事前に Administratorsに所有者権限を与えておかないとアクセス権を変更することはできないので注意してください。

 image image

5.Windows XP Base.vhdファイルの[読み取り専用]属性を解除する

Windows XP Base.vhdファイルは既定で[読み取り専用]属性が設定されています。これでは編集することができないので、[読み取り専用]属性を解除しておいてください。

image

6.XP Mode の初期設定

既定で用意されている [スタート]-[Windows Virtual PC]-[Windows XP Mode] は、以下のコマンドへのショートカットです。これを実行するとWindows XP Modeの初期設定が自動的に行われますが、ひとまずこれは使用しません。

%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\VMCPropertyHandler.dll,LaunchDefaultVM

そのかわり、以下の手順でWindows XP Modeの初期設定を行います。

① [スタート] - [Windows Virtual PC] - [Windows  Virtual PC] を起動

image

② [仮想マシンの作成]をクリック

image

③ 仮想マシンの名前と保存場所を指定する

仮想マシンの名前は何でもかまいません。場所には注意してください。既定ではユーザーのプロファイルパスが指定されていますが、それでは共有できなくなるので、すべてのユーザーが参照可能な場所を指定します。ここでは 親ディスクである Windows XP Base.vhd ファイルが置いてある場所(C:\XPMODE\Windows XP Mode)を指定しています。

image

④  仮想イメージが使用するメモリを指定

Windows XP Modeが使用するメモリと、ネットワーク利用の有無を指定します。この部分は後からでも変更できるのでパスしても構いません。

 image

⑤ 仮想ハードディスクの設定

既定では、[容量可変の拡張仮想ハードディスクの作成]が選択されていますが、このオプションを使用すると「空のディスク」が作成されてしまいます。よって、既存の Windows XP Base.vhd を使用するために、[既存の仮想ハードディスクを使用する]を選択し、「C:\XPMode\Windows XP Base.vhd] を選択します。

その後、[作成]ボタンをクリックすれば仮想ディスクの作成は完了です。

image

⑥  Windows XP Mode の環境を確認する

[スタート] - [Windows Virtual PC]を開き、いま作成した [Windows XP Mode(Customized).vmcx]の[設定]を開きます。

image 

注意して確認していただきたいのは、以下の2点です。

  • ディスクが Windows XP Base.vhd ファイルを指しており、差分ディスクの設定がされていないこと
  • ネットワークが「共有ネットワーク(NAT)」になっていないこと

 image image

⑦ Windows XP Mode を起動する

作成した Windows XP Mode(Customized).vmcx をダブルクリックしてWindows XP Modeを起動します。最初の起動はSysprepが仕掛けられた状態から始まるので、若干の手間がかかります。

image image image image image

手動で初期設定を行うと、以下のようにコンピュータ名を指定することができます。また、自動ログオンのIDは XPMUser ではなく、administrator が使用されます。

image image image image image

最終的に、administrator で自動ログオンされ、以下のデスクトップが表示されます。

image

⑧ Windows Update を実行する

Windows XP mode の既定のイメージには Service Pack 3が適用されていますが、それ以降のパッチもリリースされているので適用しておきましょう。

image

2009年11月11日時点でリリースされているパッチを全て適用した場合、Windows XP Base.vhd ファイルの容量は 2.2GB 程度です。

パッチ適用後に再起動を求められると思いますが、このときバーチャルマシンの統合機能が自動的に有効になります。そのため、シングルサインオンで使用するユーザーIDとパスワードを聞かれますが、既定ではWindows 7にログオンしているユーザーID(ドメインユーザー)が表示されています。しかし、ドメインに参加していない状態でWindows XP Modeにドメインユーザーでログオンすることはできませんので、ひとまずキャンセルしてしまいましょう。

⑨ ドメインに参加する

ドメインへの参加は、いつも通りに行えばOKです。

image

⑩ シングルサインオン用のユーザーIDを指定する

Windows XP Modeへのログオン時、以下のエラーが表示されるはずです。

image 
このシステムのローカルポリシーは、このユーザーが対話的にログオンする許可をしていません。

これについては、以下の投稿の中で詳しく書きましたが、上記投稿からの抜粋を以下に記します。

XP Mode と Active Directory ドメインの関係 その2 - ドメインへの参加方法と差分ディスクの結合
https://blogs.technet.com/junichia/archive/2009/11/06/3291888.aspx


XP Modeにログオンするには、「ローカルログオン」権限を持っているだけではだめです。「ターミナルサービスを通したログオン」権限が必要です。権限が無い場合、監査ログには以下のイベントが残されます。「ログオンの種類:10」とは「ターミナルサービスへのログオン」のことです。

image

以下の画面ショットは、XP Mode の ローカルグループポリシー(デフォルトの状態)です。デフォルトでは、Domain Users が、「ターミナルサービスを通したログオン」権限を持っていないことがわかります。

image

よって、以下のいずれかの方法で「ターミナルサービスを通したログオン」権限を与える必要があります。

  • XP Modeの「Remote Desktop Users」グループに、Domain Users を含める
  • ローカルグループポリシーで、Domain UsersまたはUsers に対するターミナルサービスを通したログオン権限を与える
  • ドメインのポリシーで、Domain Users に対するターミナルサービスを通したログオン権限を与える

ここでは「Domain Users」と書いてますが、もちろん別のグループでも構いません。要は、XP Modeにログオンさせたいドメインユーザーに対して「ターミナルサービスを通したログオン」権限を与えればよいのです。


リモートデスクトップを通した権限を与えた後、XP Modeを再起動すれば、Windows 7にログオンしているユーザーで自動的にログオンできるはずです。もちろん、手動でもログオンできます。

8.メニューの編集

いま作成したXP Modeの設定ファイルを全てのユーザーが使用できるようしておく必要があります。同時に、既定の 「Windows XP Mode」というメニューは削除しておかなければなりません。

① エクスプローラーで以下のパスを開く

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Virtual PC

② 既存の 「Winodws XP Mode」を削除

6.の冒頭でも書いたように、既存の「Windows XP Mode」では、以下のコマンドが実行されますが、初期設定はすでに完了しているので、この操作は他のユーザーに行わせないようにします。

%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\VMCPropertyHandler.dll,LaunchDefaultVM

image

③ C:\XPMODE\Winodws XP Mode(Customized).vmc のショートカットを①のパスに保存

XP Modeの動作環境は、拡張子 VMC という環境ファイルに保存されます。この環境ファイルへのショートカットを作成してメニューとして保存しておきましょう。

くれぐれも、VMCXファイルではなく、VMCファイルですのでご注意ください。

④VMCXファイルを移動する

6.の①で書いたように、はじめて[スタート]-[Windows Virtual PC]-[Winodws Virtual PC] を開くと中身は空っぽです。ここに、はじめて起動したユーザーにも Windows XP Mode(Customized).vmcx が表示されるようにするには、デフォルトユーザーのプロファイル(C:\ユーザー\Default\仮想マシン)に、C:\ユーザー\<XP Modeを初期設定しているユーザー>\仮想マシン フォルダをコピーします。

9.VMCファイルのアクセス権を変更

4.と同様、VMCファイルにも、Authenticated Users に対して「書き込み」「変更」権限を与えてください([削除]権限ははずしておくことをお勧めします)。

以上で、ひとまず設定は完了です。 これで、1台のWindows 7にログオンする複数のユーザーでWindows XP Mode を共有できます。

Windows 7にログオンしてから、はじめて XP Mode を起動した際に、ドメインにログオンするためのパスワードを聞かれますが、一度保存してしまえば次回からは自動的にログオンできます。

が…例によって残された課題があります。それを以下に挙げておきます。

  • ユーザーごとにシャットダウンする必要がある

    既定では、ユーザーがXP Modeを閉じる際には 「休止モード」になります。が、休止モードではユーザーがログオンしたままになるため、次に別のユーザーでログオンすることができません。よって、[設定] 画面の [閉じる]で、閉じるときの動作を[シャットダウン]または[オフ]にしておく必要があります。

image 

問題は、XP Modeのアプリを起動する際に XP Modeの「起動」が入ることです。若干時間がかかるので、ちょっと運用としては厳しいのかなと…。うーむ..。

また、この設定、ユーザーが変えられるんですよね…何か良い手がないですかね…情報募集中です..。

  • 大量の Winodws 7 PCの展開

    今回の手順は 1台のWindows 7にしか使えません。なぜならば、このままWindows 7を展開してしまうと、XP Mode のSIDやコンピュータ名が同じになってしまうからです。大量のPCにWinodws 7 +XP Mode を展開するには、XP Modeには sysprep または netdom コマンドを仕掛けておく必要があります。
    今回はその検証は行っておりません…。

    どなたか..検証された方はご連絡ください