前回の投稿で、XP Mode を使用したときのユーザープロファイルについて書きかけました…。
実は、いま、自分の不勉強に愕然としています。現場を離れて3年…おそらく多くの方がご存じのことを、自分は把握していませんでした..超恥ずかしい…orz
…というのは、Windows Vista で変更された移動プロファイルフォルダの命名仕様についてです。
もしかしたらお仲間がいらっしゃるかもしれないと思うので、念のために書いておきます。
Windows VistaとWindows 7では、移動ユーザープロファイルを使用するように設定すると、以下のように 拡張子 .V2 が付加されたフォルダが作成され、Windows XP以前のプロファイルとは明確に区別されるようになっています。
これは、Windows XP に先立って Windows Vista(またはWindows 7)でログオンしたときも同様です。
つまり、Windows 7 と Windows XP Mode でプロファイルを区別する際に特別な考慮は必要ないということになります。
以下に、本仕様について書かれているドキュメントと、その箇所を示します。
移動ユーザー データ管理の展開ガイド(日本語) http://technet.microsoft.com/ja-jp/library/cc766489(WS.10).aspx ユーザー プロファイルの互換性 Windows XP で使用されているユーザー プロファイルの名前空間は、Windows 2000 で使用されているものと同一であり、オペレーティング システム間で透過的な相互運用性を実現しています。ただし、Windows Vista のプロファイルの名前空間は大幅に変更されているため、1 つ問題が生じます。この大幅な変更のために、Windows Vista では以前のバージョンの Windows からユーザー プロファイルを読み込むことができません。また、以前のバージョンの Windows でも Windows Vista のユーザー プロファイルを読み込むことができません。この問題に対処するため、Windows Vista の移動ユーザー プロファイルでは、プロファイル フォルダの最後に "v2" が追加されます。この "v2" を使用して、Windows Vista の移動ユーザー プロファイルは、以前のオペレーティング システムで作成された移動ユーザー プロファイルと区分されます。
移動ユーザー データ管理の展開ガイド(日本語) http://technet.microsoft.com/ja-jp/library/cc766489(WS.10).aspx
Windows XP で使用されているユーザー プロファイルの名前空間は、Windows 2000 で使用されているものと同一であり、オペレーティング システム間で透過的な相互運用性を実現しています。ただし、Windows Vista のプロファイルの名前空間は大幅に変更されているため、1 つ問題が生じます。この大幅な変更のために、Windows Vista では以前のバージョンの Windows からユーザー プロファイルを読み込むことができません。また、以前のバージョンの Windows でも Windows Vista のユーザー プロファイルを読み込むことができません。この問題に対処するため、Windows Vista の移動ユーザー プロファイルでは、プロファイル フォルダの最後に "v2" が追加されます。この "v2" を使用して、Windows Vista の移動ユーザー プロファイルは、以前のオペレーティング システムで作成された移動ユーザー プロファイルと区分されます。
以前、たとえば Windows XP と Windows 2000 の混在環境では、OSごとに環境変数を設定し、プロファイルパスとして以下のような指定をしたりしました。
\\Server\Profile\<UserID>\%OSName%
こうすることでログオンするOSごとに使用するプロファイルを切り替えることができましたが、ひとまずWindows 7とXP Modeでは、そうした工夫は必要ないということですね。うーん…不勉強でした。はずかしい…。
ちなみに、上記ドキュメントには Windows XPから Vista(Windows 7)へのプロファイル仕様の変更について詳細に書かれています。XPからWin7への移行を検討されている方も多いと思うので、是非ともご覧ください。XPからVista(Win7)へのプロファイルの移行および相互運用性についても書かれています。
2010年01月19日 追記 XP Mode は、デスクトップをデスクトップを個人で管理するような小規模な環境で利用することを目的に提供されています。この為、XP Mode はOSイメージを複製したり、共有する利用方法はライセンス上許諾されておりません。複製された XP Mode を共有する場合には、「仮想OSインスタンスの実行権」が含まれている「Windows ソフトウェア アシュアランスの特典」をご検討ください。なお、XP Mode で許諾される内容の詳細については、XP Mode の EULA を参照してください。 詳しくは 「製品使用権説明書」の p.123 「Windows 7 仮想化の権利 - a)ソフトウェアインスタンスの実行」をご覧ください
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 には一般ユーザーに対する書き込み権限はありませんし、アクセス権を与えてしまうことは他のアプリケーションにも影響を与えることになります。
デフォルトの親ディスクである 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 にアクセス権を与えています。
既定では、Windows XP Base.vhdファイルは以下のアクセス権が設定されています。
このままではVHDファイルに書き込むことができません。
よって、C:\XPMode および Windows XP Base.vhd ファイル には以下のアクセス権が必要です。以下では、Everyone の代わりに Authenticated Users にアクセス権を与えています。
Authenticated Users:[読み取りと実行][読み取り][変更][書き込み] ※[削除]権限は外しておくことをお勧めします SYSTEM:フルコントロール Administrators:フルコントロール
Windows XP Base.vhd には、事前に Administratorsに所有者権限を与えておかないとアクセス権を変更することはできないので注意してください。
5.Windows XP Base.vhdファイルの[読み取り専用]属性を解除する
Windows XP Base.vhdファイルは既定で[読み取り専用]属性が設定されています。これでは編集することができないので、[読み取り専用]属性を解除しておいてください。
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] を起動 ② [仮想マシンの作成]をクリック ③ 仮想マシンの名前と保存場所を指定する 仮想マシンの名前は何でもかまいません。場所には注意してください。既定ではユーザーのプロファイルパスが指定されていますが、それでは共有できなくなるので、すべてのユーザーが参照可能な場所を指定します。ここでは 親ディスクである Windows XP Base.vhd ファイルが置いてある場所(C:\XPMODE\Windows XP Mode)を指定しています。 ④ 仮想イメージが使用するメモリを指定 Windows 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] を起動
② [仮想マシンの作成]をクリック
③ 仮想マシンの名前と保存場所を指定する
仮想マシンの名前は何でもかまいません。場所には注意してください。既定ではユーザーのプロファイルパスが指定されていますが、それでは共有できなくなるので、すべてのユーザーが参照可能な場所を指定します。ここでは 親ディスクである Windows XP Base.vhd ファイルが置いてある場所(C:\XPMODE\Windows XP Mode)を指定しています。
④ 仮想イメージが使用するメモリを指定
Windows XP Modeが使用するメモリと、ネットワーク利用の有無を指定します。この部分は後からでも変更できるのでパスしても構いません。
⑤ 仮想ハードディスクの設定 既定では、[容量可変の拡張仮想ハードディスクの作成]が選択されていますが、このオプションを使用すると「空のディスク」が作成されてしまいます。よって、既存の Windows XP Base.vhd を使用するために、[既存の仮想ハードディスクを使用する]を選択し、「C:\XPMode\Windows XP Base.vhd] を選択します。 その後、[作成]ボタンをクリックすれば仮想ディスクの作成は完了です。 ⑥ Windows XP Mode の環境を確認する [スタート] - [Windows Virtual PC]を開き、いま作成した [Windows XP Mode(Customized).vmcx]の[設定]を開きます。 注意して確認していただきたいのは、以下の2点です。 ディスクが Windows XP Base.vhd ファイルを指しており、差分ディスクの設定がされていないこと ネットワークが「共有ネットワーク(NAT)」になっていないこと ⑦ Windows XP Mode を起動する 作成した Windows XP Mode(Customized).vmcx をダブルクリックしてWindows XP Modeを起動します。最初の起動はSysprepが仕掛けられた状態から始まるので、若干の手間がかかります。
⑤ 仮想ハードディスクの設定
既定では、[容量可変の拡張仮想ハードディスクの作成]が選択されていますが、このオプションを使用すると「空のディスク」が作成されてしまいます。よって、既存の Windows XP Base.vhd を使用するために、[既存の仮想ハードディスクを使用する]を選択し、「C:\XPMode\Windows XP Base.vhd] を選択します。
その後、[作成]ボタンをクリックすれば仮想ディスクの作成は完了です。
⑥ Windows XP Mode の環境を確認する
[スタート] - [Windows Virtual PC]を開き、いま作成した [Windows XP Mode(Customized).vmcx]の[設定]を開きます。
注意して確認していただきたいのは、以下の2点です。
⑦ Windows XP Mode を起動する
作成した Windows XP Mode(Customized).vmcx をダブルクリックしてWindows XP Modeを起動します。最初の起動はSysprepが仕掛けられた状態から始まるので、若干の手間がかかります。
手動で初期設定を行うと、以下のようにコンピュータ名を指定することができます。また、自動ログオンのIDは XPMUser ではなく、administrator が使用されます。 最終的に、administrator で自動ログオンされ、以下のデスクトップが表示されます。 ⑧ Windows Update を実行する Windows XP mode の既定のイメージには Service Pack 3が適用されていますが、それ以降のパッチもリリースされているので適用しておきましょう。 2009年11月11日時点でリリースされているパッチを全て適用した場合、Windows XP Base.vhd ファイルの容量は 2.2GB 程度です。 パッチ適用後に再起動を求められると思いますが、このときバーチャルマシンの統合機能が自動的に有効になります。そのため、シングルサインオンで使用するユーザーIDとパスワードを聞かれますが、既定ではWindows 7にログオンしているユーザーID(ドメインユーザー)が表示されています。しかし、ドメインに参加していない状態でWindows XP Modeにドメインユーザーでログオンすることはできませんので、ひとまずキャンセルしてしまいましょう。 ⑨ ドメインに参加する ドメインへの参加は、いつも通りに行えばOKです。 ⑩ シングルサインオン用のユーザーIDを指定する Windows XP Modeへのログオン時、以下のエラーが表示されるはずです。
手動で初期設定を行うと、以下のようにコンピュータ名を指定することができます。また、自動ログオンのIDは XPMUser ではなく、administrator が使用されます。
最終的に、administrator で自動ログオンされ、以下のデスクトップが表示されます。
⑧ Windows Update を実行する
Windows XP mode の既定のイメージには Service Pack 3が適用されていますが、それ以降のパッチもリリースされているので適用しておきましょう。
2009年11月11日時点でリリースされているパッチを全て適用した場合、Windows XP Base.vhd ファイルの容量は 2.2GB 程度です。
パッチ適用後に再起動を求められると思いますが、このときバーチャルマシンの統合機能が自動的に有効になります。そのため、シングルサインオンで使用するユーザーIDとパスワードを聞かれますが、既定ではWindows 7にログオンしているユーザーID(ドメインユーザー)が表示されています。しかし、ドメインに参加していない状態でWindows XP Modeにドメインユーザーでログオンすることはできませんので、ひとまずキャンセルしてしまいましょう。
⑨ ドメインに参加する
ドメインへの参加は、いつも通りに行えばOKです。
⑩ シングルサインオン用のユーザーIDを指定する
Windows XP Modeへのログオン時、以下のエラーが表示されるはずです。
このシステムのローカルポリシーは、このユーザーが対話的にログオンする許可をしていません。 これについては、以下の投稿の中で詳しく書きましたが、上記投稿からの抜粋を以下に記します。 XP Mode と Active Directory ドメインの関係 その2 - ドメインへの参加方法と差分ディスクの結合 http://blogs.technet.com/junichia/archive/2009/11/06/3291888.aspx XP Modeにログオンするには、「ローカルログオン」権限を持っているだけではだめです。「ターミナルサービスを通したログオン」権限が必要です。権限が無い場合、監査ログには以下のイベントが残されます。「ログオンの種類:10」とは「ターミナルサービスへのログオン」のことです。 以下の画面ショットは、XP Mode の ローカルグループポリシー(デフォルトの状態)です。デフォルトでは、Domain Users が、「ターミナルサービスを通したログオン」権限を持っていないことがわかります。 よって、以下のいずれかの方法で「ターミナルサービスを通したログオン」権限を与える必要があります。 XP Modeの「Remote Desktop Users」グループに、Domain Users を含める ローカルグループポリシーで、Domain UsersまたはUsers に対するターミナルサービスを通したログオン権限を与える ドメインのポリシーで、Domain Users に対するターミナルサービスを通したログオン権限を与える ここでは「Domain Users」と書いてますが、もちろん別のグループで���構いません。要は、XP Modeにログオンさせたいドメインユーザーに対して「ターミナルサービスを通したログオン」権限を与えればよいのです。
このシステムのローカルポリシーは、このユーザーが対話的にログオンする許可をしていません。
これについては、以下の投稿の中で詳しく書きましたが、上記投稿からの抜粋を以下に記します。
XP Mode と Active Directory ドメインの関係 その2 - ドメインへの参加方法と差分ディスクの結合 http://blogs.technet.com/junichia/archive/2009/11/06/3291888.aspx
XP Modeにログオンするには、「ローカルログオン」権限を持っているだけではだめです。「ターミナルサービスを通したログオン」権限が必要です。権限が無い場合、監査ログには以下のイベントが残されます。「ログオンの種類:10」とは「ターミナルサービスへのログオン」のことです。 以下の画面ショットは、XP Mode の ローカルグループポリシー(デフォルトの状態)です。デフォルトでは、Domain Users が、「ターミナルサービスを通したログオン」権限を持っていないことがわかります。 よって、以下のいずれかの方法で「ターミナルサービスを通したログオン」権限を与える必要があります。 XP Modeの「Remote Desktop Users」グループに、Domain Users を含める ローカルグループポリシーで、Domain UsersまたはUsers に対するターミナルサービスを通したログオン権限を与える ドメインのポリシーで、Domain Users に対するターミナルサービスを通したログオン権限を与える ここでは「Domain Users」と書いてますが、もちろん別のグループで���構いません。要は、XP Modeにログオンさせたいドメインユーザーに対して「ターミナルサービスを通したログオン」権限を与えればよいのです。
XP Modeにログオンするには、「ローカルログオン」権限を持っているだけではだめです。「ターミナルサービスを通したログオン」権限が必要です。権限が無い場合、監査ログには以下のイベントが残されます。「ログオンの種類:10」とは「ターミナルサービスへのログオン」のことです。
以下の画面ショットは、XP Mode の ローカルグループポリシー(デフォルトの状態)です。デフォルトでは、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 ③ 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を初期設定しているユーザー>\仮想マシン フォルダをコピーします。
いま作成したXP Modeの設定ファイルを全てのユーザーが使用できるようしておく必要があります。同時に、既定の 「Windows XP Mode」というメニューは削除しておかなければなりません。
① エクスプローラーで以下のパスを開く
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Virtual PC
② 既存の 「Winodws XP Mode」を削除
6.の冒頭でも書いたように、既存の「Windows XP Mode」では、以下のコマンドが実行されますが、初期設定はすでに完了しているので、この操作は他のユーザーに行わせないようにします。
③ 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のアプリを起動する際に XP Modeの「起動」が入ることです。若干時間がかかるので、ちょっと運用としては厳しいのかなと…。うーむ..。 また、この設定、ユーザーが変えられるんですよね…何か良い手がないですかね…情報募集中です..。
問題は、XP Modeのアプリを起動する際に XP Modeの「起動」が入ることです。若干時間がかかるので、ちょっと運用としては厳しいのかなと…。うーむ..。
また、この設定、ユーザーが変えられるんですよね…何か良い手がないですかね…情報募集中です..。
これまでの投稿で Windows 7 の XP Mode をドメインに参加させて使用することを前提に、さまざまな手順等を紹介してきました。
まとめサイト 「Windows 7 + VHD Boot + XP Mode に関する投稿」 http://blogs.technet.com/junichia/pages/3294054.aspx
ここまでの投稿をご覧いただいた方はおそらく私と同じお気持ちだと思います。XP Mode をドメインに参加させるのは、運用を含めて考えると、事実上難しいのではないかと考えています。
もちろん、エンドユーザーを信頼し、不測の事態(例えばXP Modeの各種設定を間違えて変更してしまった等)にも寛容にそして迅速に対応できるのであれば別です。
どうしても 「ドメインに参加した XP Mode を使わなければならない」シチュエーションは以下の通りかなと思います。
[アプリケーションがWindows XPでしか動作しない] AND
[アプリケーションがWindows XPでしか動作しない]
AND
[クライアントがActive Directoryドメインに参加していないと、アプリが正常に動作しない]
前者の問題を抱えている場合には、まずは、アプリケーション互換モードを検討してみてください。
英語版の画面ですみません
どうしても、互換モードでは無理な場合に、XP Mode に「逃げ」てください。いや、いろいろと事情があるとは思うのですが…(検証時間が取れないとか…)。
一方、後者の問題は、深刻かもしれません。
例えば、以下のように問題が考えられます。
などなど…。ADベッタリに開発されているアプリケーションの中には、XP Modeをドメインに参加させないと厳しいものがあるかもしれません。
特に、Windows XP にログオンしている資格情報を再利用するように設計されていると、ドメインユーザーの資格情報を入力するためのダイアログが頻繁に表示されてしまう可能性があります。これでは運用にならないですね…。
ちなみに、UNC名でなく、ネットワークドライブでファイルサーバー等に接続するタイプのアプリケーションであれば、Virtual PC のリダイレクト機能により、Windows 7 にログオンしているユーザーの資格情報でネットワークドライブに接続できます。
ここで明確な結論が出せず恐縮なのですが、まずは「本当にXP Modeが必要かどうか」を考慮していただき、どうしても XP Mode で「逃げたい」場合には、一連の投稿を参考にしてみてください。
いまさらながら、ADでは「ログオン可能なワークステーション(userWorkstation属性)」の設定が最大1024文字だと気づき、自分の無知に愕然としています。だって…NTのころは4台固定だったんだもの…。
http://support.microsoft.com/kb/938458
さて、話は変わりますが、VBScript を使用して Active Directory 内のユーザーを検索しようと思った時、面倒だなと感じるのが、以下のような条件です。
上の条件を見て、頭の中に使用する属性名が思い浮かんだ方は、完全にADマニアです。もちろんほめ言葉です。
Windows PowerShell のActive Directory Module には、上記のような特定条件検索専用のコマンドレットが用意されています。その名も、Search-ADAccount です。
上記の条件と、Search-ADAccount のパラメタとの対応を以下に示します。-UsersOnly パラメタを使用すると、ユーザーアカウントのみに限定して結果を表示してくれます。
例えば、ここ1年のあいだログオンしていないユーザーを検索するには、以下のように入力します。
PS C:\> Search-ADAccount -AccountInactive -TimeSpan 365
ただし!注意があります。
上記の検索結果には、1秒前に作ったユーザー(当然、一度もログオンしていない)も含まれてしまいます。よって、以下のように、Search-ADAccount の出力結果をベースに、アカウントの作成日時(WhenCreated)属性をチェックしたほうがよいです。
以下の例では、2009年11月18日 17時以前に作成したアカウントのみを検索結果として出力しています。
Search-ADAccount –AccountInactive –TimeSpan 365 | Foreach-Object {(Get-ADUser $_Name –Properties WhenCreated)} | Where-Object {$_.WhenCreated –lt “2009/11/18 17:00:00”}
(参考)
TechNet Sarch-ADAccount の解説 http://technet.microsoft.com/ja-jp/library/ee617247(en-us).aspx TechNet 最近ログオンしていないユーザーを検索する http://technet.microsoft.com/ja-jp/library/dd391899(WS.10).aspx
TechNet Sarch-ADAccount の解説 http://technet.microsoft.com/ja-jp/library/ee617247(en-us).aspx
TechNet 最近ログオンしていないユーザーを検索する http://technet.microsoft.com/ja-jp/library/dd391899(WS.10).aspx
2009年11月21日(土)は、MVP 瀬尾(せお)さんのコミュニティである、
技術ひろば.net http://hiroba-tech.net/tabid/106/Default.aspx
にて、「PowerShell で操作するActive Dirctory」のセッションを持たせていただきました。
Active Directory を意識してくださる開発者が少ないという現状を、なんとか変えたいという想いで登壇させていただいたものです。
私の前を担当された武田さんが「CLR Profilerの使い方」という、私にとっては???な内容でしたが、参加された方々からの矢継ぎ早の質問を見るにつけ、恐ろしいほどのアウェイ感に襲われながらの登壇でした。
当日使用した資料は以下に掲載しておりますので、よろしければご覧ください。
PowerShell の基本的な使い方から、Active Directory の触り方についてサンプルを交えて触れているので、スクリプトに興味のあるインフラ担当SEさんにも役に立てると思います。
※以下は SlideShare へのリンクです。
前回は、従来の Boot.ini にかわる新しいブート構成情報の格納庫である BCDストア について簡単に解説しました。
ブート構成データ(BCD)ストアを理解すれば VHDブート は簡単 http://blogs.technet.com/junichia/archive/2009/10/26/3289120.aspx
これを踏まえ、Hyper-V 上に作成してあるVHDファイルを、VHD Bootに移行してみます。何を行っているのかが理解しやすいように、ショートカット的な作業は一切行っていません。
1. VHD Boot 用の Boot Loader オブジェクトを作成する
前回の解説でも触れていますが、新しいOSをブートできるようにするには、Boot Loader オブジェクトを新たに作成し、BCDストアに保存してあげる必要があります。図にすれば、以下のようなイメージです。 Boot Loader オブジェクト を作成するには、コマンドプロンプトから以下のように入力します。 C:\> bcdedit /create /d “Winodws 7 – VHD Boot” /application OSLOADER エントリ {59a1b361-8694-11de-ba0c-ea7587cc7300} は正常に作成されました。 これでひとまず「空のオブジェクト」が出来ました。/d は description のことです。ここでは、"Winodws 7 - VHD Boot"という文字列を設定しました。/application は ApplicationタイプのBCDオブジェクトを作成することを示しており、そのあとに osloader と指定することで ブートローダーオブジェクトとなります。 /application には、osloader 以外にも、BOOTSECTOR/RESUME/STARTUP などを指定することができますが、ひとまず今回は説明しません。 コマンドの実行後に出力されるCLSID {59a1b361-8694-11de-ba0c-ea7587cc7300} は、このオブジェクトを識別するための IDとなります。他のオブジェクトのIDとものすごーく似ていますが、微妙に違うので注意してください。 ためしに、以下のコマンドで、いま作成した Boot Loaderオブジェクトを参照してみてください。/enum OSLOADER は、OSLOADERオブジェクトを全て表示するという意味です。 C:\> bcdedit /enum OSLOADER 出力されたエントリの中に、”Winodws 7 – VHD Boot “ と書かれたエントリがあることを確認してください。
前回の解説でも触れていますが、新しいOSをブートできるようにするには、Boot Loader オブジェクトを新たに作成し、BCDストアに保存してあげる必要があります。図にすれば、以下のようなイメージです。
Boot Loader オブジェクト を作成するには、コマンドプロンプトから以下のように入力します。
これでひとまず「空のオブジェクト」が出来ました。/d は description のことです。ここでは、"Winodws 7 - VHD Boot"という文字列を設定しました。/application は ApplicationタイプのBCDオブジェクトを作成することを示しており、そのあとに osloader と指定することで ブートローダーオブジェクトとなります。
/application には、osloader 以外にも、BOOTSECTOR/RESUME/STARTUP などを指定することができますが、ひとまず今回は説明しません。
コマンドの実行後に出力されるCLSID {59a1b361-8694-11de-ba0c-ea7587cc7300} は、このオブジェクトを識別するための IDとなります。他のオブジェクトのIDとものすごーく似ていますが、微妙に違うので注意してください。
ためしに、以下のコマンドで、いま作成した Boot Loaderオブジェクトを参照してみてください。/enum OSLOADER は、OSLOADERオブジェクトを全て表示するという意味です。
出力されたエントリの中に、”Winodws 7 – VHD Boot “ と書かれたエントリがあることを確認してください。
2. 起動に必要なパラメタを設定する
いま作成した Boot Loader オブジェクトには、identifier と description 以外のパラメタが何も設定されていません。そこで、OSの起動に必要な情報を埋め込んであげる必要があります。まずは、以下をご覧ください。これは上記画面ショットの中から既存のOSブートローダー情報を抜き出したものです。 Windows ブート ローダー -------------------------------- identifier {current} device partition=C: path \Windows\system32\winload.exe description Windows Server 2008 R2 locale ja-JP inherit {bootloadersettings} recoverysequence {9afda1cc-9772-11de-abb0-e0195a1514fa} recoveryenabled Yes osdevice partition=C: systemroot \Windows resumeobject {9afda1ca-9772-11de-abb0-e0195a1514fa} nx OptOut hypervisorlaunchtype Auto
いま作成した Boot Loader オブジェクトには、identifier と description 以外のパラメタが何も設定されていません。そこで、OSの起動に必要な情報を埋め込んであげる必要があります。まずは、以下をご覧ください。これは上記画面ショットの中から既存のOSブートローダー情報を抜き出したものです。
identifier や description 以外に、多くの情報が必要であることがわかります。 そこで、同じように必要なパラメタを埋め込んでいきましょう。 BCDオブジェクトにパラメタを設定するには、「BCDEDIT /Set {CLSID} <パラメタ名> <値> 」を使用します。 今回のCLSIDは {9afda1d7-9772-11de-abb0-e0195a1514fa} です。 ■ブートパーティションとシステムパーティションの指定 ブートパーティションとOSがインストールされているパーティションを指定します。通常は partition=C: などと指定しますが、VHD Boot を行う場合には、VHD=<VHDファイルのパス> を指定します。以下の例では、「C:\VHDBOOT\Win7_VHDBoot\Win7_VHDBoot.vhd」 がVHDファイルのパスです。 C:\>bcdedit /set {9afda1d7-9772-11de-abb0-e0195a1514fa} device VHD=[C:]\VHDBOOT\Win7_VHDBoot\Win7_VHDBoot.vhd C:\>bcdedit /set {9afda1d7-9772-11de-abb0-e0195a1514fa} osdevice VHD=[C:]\VHDBOOT\Win7_VHDBoot\Win7_VHDBoot.vhd 注意しなければならないのは、ドライブ名を [ ] でくくるという点です。 ■ブートローダーのパス ドライブを指定する必要はありません。 C:\>bcdedit /set {9afda1d7-9772-11de-abb0-e0195a1514fa} path \Windows\system32\winload.exe ■OSのシステムルートのパス C:\>bcdedit /set {9afda1d7-9772-11de-abb0-e0195a1514fa} systemroot \Windows ■ブートローダーのロケール C:\>bcdedit /set {9afda1d7-9772-11de-abb0-e0195a1514fa} locale ja-JP ■HALの再認識を有効にする ハードウェアが変わることになるので、念のために入れておいてください。 C:\>bcdedit /set {9afda1d7-9772-11de-abb0-e0195a1514fa} detecthal yes ■ブートメニューの編集 作成したエントリがブートメニューに表示されるように、以下のコマンドで設定します。/addlast はメニュー一覧の最後に追加することを表しています。 C:\>bcdedit /displayorder {9afda1d7-9772-11de-abb0-e0195a1514fa} /addlast コマンドプロンプトから bcdedit と入力すると、以下のように表示されていればOKです。
identifier や description 以外に、多くの情報が必要であることがわかります。
そこで、同じように必要なパラメタを埋め込んでいきましょう。
BCDオブジェクトにパラメタを設定するには、「BCDEDIT /Set {CLSID} <パラメタ名> <値> 」を使用します。
今回のCLSIDは {9afda1d7-9772-11de-abb0-e0195a1514fa} です。
■ブートパーティションとシステムパーティションの指定
ブートパーティションとOSがインストールされているパーティションを指定します。通常は partition=C: などと指定しますが、VHD Boot を行う場合には、VHD=<VHDファイルのパス> を指定します。以下の例では、「C:\VHDBOOT\Win7_VHDBoot\Win7_VHDBoot.vhd」 がVHDファイルのパスです。
注意しなければならないのは、ドライブ名を [ ] でくくるという点です。
■ブートローダーのパス
ドライブを指定する必要はありません。
■OSのシステムルートのパス
■ブートローダーのロケール
■HALの再認識を有効にする
ハードウェアが変わることになるので、念のために入れておいてください。
■ブートメニューの編集
作成したエントリがブートメニューに表示されるように、以下のコマンドで設定します。/addlast はメニュー一覧の最後に追加することを表しています。
コマンドプロンプトから bcdedit と入力すると、以下のように表示されていればOKです。
3.AHCIドライバ(Msahci.sys)を有効にする
全項までで、ひとまずVHDブートに関する設定は完了です。 が、このままOSを起動すると以下の STOPエラー が表示されることがあります(見ずらい画面ですいません)。 STOP 0x0000007B INACCESSABLE_BOOT_DEVICE 詳細はこちらをご覧ください。COMPUTERWORLDさんのサイトにも詳しく対処法が掲載されており、MSのKBよりもわかりやすいかもしれません。 COMPUTERWORLD Windows 7の仮想ハードディスクがスゴイ!─(4)http://www.computerworld.jp/topics/win7/151889-2.html 対処するには、Hyper-V上でWindows 7を立ち上げ、以下の通りレジストリを修正します。
全項までで、ひとまずVHDブートに関する設定は完了です。
が、このままOSを起動すると以下の STOPエラー が表示されることがあります(見ずらい画面ですいません)。
STOP 0x0000007B INACCESSABLE_BOOT_DEVICE
詳細はこちらをご覧ください。COMPUTERWORLDさんのサイトにも詳しく対処法が掲載されており、MSのKBよりもわかりやすいかもしれません。
COMPUTERWORLD Windows 7の仮想ハードディスクがスゴイ!─(4)http://www.computerworld.jp/topics/win7/151889-2.html
対処するには、Hyper-V上でWindows 7を立ち上げ、以下の通りレジストリを修正します。
キー:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci 値の名前:Start 値:0
4.Hyper-V上の仮想OSをシャットダウン
Hyper-V上で動作している仮想OSをシャットダウンしておきましょう。
以上で設定は完了です。
コンピューターを再起動すると、ブートメニューには先ほど追加したメニュー(今回は「Winodws 7 – VHD Boot 」)が追加され、これを選択するとこれまでHyper-Vで使用していたゲストOSをVHD Bootで起動することができます。
起動後はデバイスドライバのインストールが自動的に行われます。
前回、前々回と、以下の投稿をしました。
では、VHD Boot した Windows 7 で XP Mode が使えるかどうか?
※XP Modeについては以下のコラムが大変勉強になります Windows XP MODE (入門編) http://technet.microsoft.com/ja-jp/windows/dd920318.aspx Windows XP MODE (応用編) http://technet.microsoft.com/ja-jp/windows/ee230243.aspx Windows 7 コラム XP Mode (番外編) http://technet.microsoft.com/ja-jp/windows/ee410772.aspx
結論は Yes です。以下はXP Mode インストール直後のWindows 7(VHD Boot)です。
でかい画面ですいません
まだ XP Mode をインストールした直後ですが、恥ずかしながら今さら気が付いた機能があります。
それは、XPのデスクトップの解像度が自由自在に変わるってこと!以下をご覧ください。ウィンドウサイズを適当に変更しても、スクロールバーが出てこないんです(超気持ちいい)!
1924*480
640*480
640*1096
これを見て、「あぁ、なるほど」と思った方は勘の良い方です。
アプリケーションをXP Modeにインストールすると、Windows7上からはアプリケーションだけが起動しているかのように見えますが、裏ではこんな機能に支えられていたんですね。
ご注意 当BLOGにてご紹介する各種手順にはマイクロソフトのサポート対象外のものが含まれております。詳しくは「免責事項」をご覧くださいませ。ご理解いただけますと幸いです。なにとぞよろしくお願い申し上げます。
以下の投稿の続きです
XP Modeをインストールした方であればご存じのとおり、XP Mode をインストールして環境設定すると、自動ログオン用のアカウントを設定する必要があります。
既定では、以下のように XPMUser というユーザーIDが使用されます。VirtualXP-48949 は、仮想XPのコンピュータ名です。つまり、XPMUser はXPローカルに登録されているユーザーです。
一度保存したユーザーは、Windows 7に別のユーザーでログオンした場合にも使用されます。
ここでいくつかの疑問が生じます。
企業や大学の情報システム部門の方には、非常に重要な部分です。XPでしか動作しない業務アプリケーションの環境を、Windows7に引き継げるかどうかにかかわってきますから。
そこで、テストしながら1つずつ疑問を解消してきたいと思います。
まずは 仮想XPを使用する場合のユーザープロファイルについて。
以下の画面を見てください。これはWindows 7から見た XP Mode の環境設定画面です。
①と②の「パス」に注目してください。途中で切れているので補足すると、①と②はそれぞれ以下のように設定されています。
① C:\Users\junichia\AppData\Local\Microsoft\Windows Virtual PC\仮想マシン\Windows XP Mode.vhd ② C:\Program Files\Windows XP Mode\Winodws XP Mode Base.vhd
① C:\Users\junichia\AppData\Local\Microsoft\Windows Virtual PC\仮想マシン\Windows XP Mode.vhd
② C:\Program Files\Windows XP Mode\Winodws XP Mode Base.vhd
もうおわかりですよね。
後者② は仮想XPのベースとなるVHDファイルで、すべてのユーザーが共通で使用するファイルです。
前者① は②の差分VHDファイルであり、これがWindows7にログオンしているユーザーごとに作成されます。
つまり、Windows7にログオンしたユーザーごとに、仮想XPの環境は保存されるということです。図にすると、以下のような感じ。
仮想XPへのログオンは1種類のユーザー(XPMUser)で行われていますが、プロファイル自体はWindows7にログオンしているユーザー単位で完全に分かれているんですねぇ。
以下はエクスプローラーで仮想マシンフォルダを参照したところですが、仮想OSの環境設定ファイル(VMCファイル)もユーザーごとに保存されていることがわかります。
ちなみに、仮想XPの環境に手を加えて、それをデフォルトのプロファイルにしたい!場合にはどうしたらよいか。以下に答えが書かれています。
そうです。ベースとなるVHDと差分VHD(ユーザーごとのプロファイル)を「結合」してしまえばよいわけです。
うーん、差分VHDって使い勝手がよいですねぇ。ちょっと感動しました。
でも待ってください!ここで新たな疑問が…。
うーん、頭が痛くなってきました…。さすがに差分VHDをログオンのたびにダウンロードするわけにはいかないような…じゃ、ネットワーク上の差分VHDを使うのか??
現在思案中…。
XP Mode 記事の連載投稿中ですが、ちょっと休憩。
SEの林さんより、秋田県角館のご実家で「Windows7発売記念パーティ」を開催いただいたというご報告をいただきました。
Windows7 発売記念パーティーとは、公募によって選ばれたパーティ主催者の方々が、パーティに参加する皆さんとWinodws7をネタに盛り上がってください!という企画で、マイクロソフトからはパーティグッズやお菓子、Windows 7 Ultimate が送られてくるというものです。残念ながら、企画は10月末日で終了しています。
なんとご実家は角館で370年の歴史を誇る造り酒屋、五井酒造店。
角館 五井酒造店 http://www.mediacontents.co.jp/shiraume/
酒造でWindows7パーティーって…ちょっと(というかかなり)イイですね。あぁ、うまい日本酒が飲みたい…。
DOG と 老舗の日本酒(白梅)と Windows7ロゴ の Better Together。
林さんによれば、参加者にはXPやVistaを使い込んでいる方が多く、細かな質問が多かったとのこと。以下には林さんからいただいた質問と、林さんが提示されたWinodws7による解決策です。
おいしい日本酒が相当量体内に蓄積されているはずなのですが、絵に描いたようにポイントを抑えてますよねぇ。すばらしいです。
林さん、ありがとうございました!
いま初台のオペラシティタワーでは避難訓練が行われています。
私も、45F から延々900段の階段を黙々と降り続け、避難しました。
明日が怖いです。
前回に引き続き、XP Modeについて掘り下げていきたいと思います。前回の投稿は以下です。
XP ModeとActive Directoryドメインの関係…とタイトルに入れているのにとっても重要なことを書き忘れていました。
XP Modeはドメインに参加することはできるのか?
という点です。
答えから先に書いておきますと、YES です。
【参考 Virtual PC チームのBLOG】 Networking and Using Windows XP Mode http://blogs.technet.com/windows_vpc/archive/2009/09/26/networking-and-using-windows-xp-mode.aspx
ただ、ドメインに参加する前に以下の点を考慮しておきましょう。
この上記2点については後で振れるとして、XP Mode ��ドメインに参加させる手順について以下に書いておきます。
実は、XP Modeのドメイン参加って、ちょいと面倒なんです。参加させた後の処理が多くて…。
※くれぐれも早まって以下の操作を行わないでください!絶対に最後まで読んでください!
1.ネットワークアダプタの種類を変更する
既定では、XP Mode は仮想ネットワークアダプタとして「共有ネットワーク(NAT)」を使用します。 Virtual PC に詳しい方はご存じのとおり、このタイプの仮想ネットワークアダプタでは、Virtual PCに実装されたNATによってアドレス変換が行われ、ホスト側のインターフェースを通して外部との通信を行います。 XP Mode 自身の IPアドレスは Virtual PC の DHCP機能によって自動的に割り振られます。 このままでは、ドメインコントローラーとファイル共有やWEB等の通信を行うことは可能ですが、ドメインに参加することはできません。なぜならば、NATを介して通信しているため、ドメインコントローラーからXP Mode が1台のコンピューターとして参照できないからです。 そこで、ネットワークアダプタの種類を、共有ネットワーク(NAT)からブリッジモードへと変更します。ブリッジモードとは、ホストコンピュータに実装されているネットワークアダプターを、そのままゲストOSのアダプターとして使用するモードです。物理的には1枚のネットワークカードをホストコンピューターと共有することになりますが、外部から見ればホストコンピュータとは独立したコンピューターとして見えます。 ブリッジモードに変更するには、アダプターの種類を以下の赤枠で囲んだように<ネットワークカードの名前>に変更します。
既定では、XP Mode は仮想ネットワークアダプタとして「共有ネットワーク(NAT)」を使用します。
Virtual PC に詳しい方はご存じのとおり、このタイプの仮想ネットワークアダプタでは、Virtual PCに実装されたNATによってアドレス変換が行われ、ホスト側のインターフェースを通して外部との通信を行います。
XP Mode 自身の IPアドレスは Virtual PC の DHCP機能によって自動的に割り振られます。
このままでは、ドメインコントローラーとファイル共有やWEB等の通信を行うことは可能ですが、ドメインに参加することはできません。なぜならば、NATを介して通信しているため、ドメインコントローラーからXP Mode が1台のコンピューターとして参照できないからです。
そこで、ネットワークアダプタの種類を、共有ネットワーク(NAT)からブリッジモードへと変更します。ブリッジモードとは、ホストコンピュータに実装されているネットワークアダプターを、そのままゲストOSのアダプターとして使用するモードです。物理的には1枚のネットワークカードをホストコンピューターと共有することになりますが、外部から見ればホストコンピュータとは独立したコンピューターとして見えます。
ブリッジモードに変更するには、アダプターの種類を以下の赤枠で囲んだように<ネットワークカードの名前>に変更します。
2.IPアドレス等の設定
ネットワークカードの種類の変更はXP Modeの稼働中に行えますし、再起動の必要はありません。変更したら、いつものようにIPアドレスやデフォルトゲートウェイ、DNSサーバーのアドレスを変更してください。物理PCの設定を全く変わりません。
3.ドメインへの参加
ドメインへの参加も、物理PCの設定と変わりません。いつものように参加すればOKです。
以上でドメインに参加できました。 しかーし、これで終わりではありません!
以上でドメインに参加できました。
しかーし、これで終わりではありません!
4.Domain Users にXP Mode への「ターミナルサービスログオン権限」を与える
実は、ここで少しはまりました(恥)。 XP Modeにログオンするには、「ローカルログオン」権限を持っているだけではだめです。「ターミナルサービスを通したログオン」権限が必要です。権限が無い場合、監査ログには以下のイベントが残されます。「ログオンの種類:10」とは「ターミナルサービスへのログオン」のことです。 以下の画面ショットは、XP Mode の ローカルグループポリシー(デフォルトの状態)です。デフォルトでは、Domain Users が、「ターミナルサービスを通したログオン」権限を持っていないことがわかります。 よって、以下のいずれかの方法で「ターミナルサービスを通したログオン」権限を与える必要があります。 XP Modeの「Remote Desktop Users」グループに、Domain Users を含める ローカルグループポリシーで、Domain Users に対するターミナルサービスを通したログオン権限を与える ドメインのポリシーで、Domain Users に対するターミナルサービスを通したログオン権限を与える ここでは「Domain Users」と書いてますが、もちろん別のグループでも構いません。要は、XP Modeにログオンさせたいドメインユーザーに対して「ターミナルサービスを通したログオン」権限を与えればよいのです。
実は、ここで少しはまりました(恥)。
ここでは「Domain Users」と書いてますが、もちろん別のグループでも構いません。要は、XP Modeにログオンさせたいドメインユーザーに対して「ターミナルサービスを通したログオン」権限を与えればよいのです。
5.XPモードの差分ディスクを結合する
まだ終わりではありません! 以下の投稿でも書いたように、「ドメインに参加した」という事実は「差分ディスク」に保存されているからです。 XP Mode と Active Directory ドメインの関係 その1 ー 仮想XPのユーザープロファイル
まだ終わりではありません!
以下の投稿でも書いたように、「ドメインに参加した」という事実は「差分ディスク」に保存されているからです。
そうです。XP Modeに対する環境変更は、Windows7にログオンしているユーザー単位に「差分ディスク」として保存されています。よって、ドメインに参加したという事実を、Baseとなるディスクに埋め込む必要があります。絵にすると、以下のような感じです。 ↓ そのためには、ドメインに参加操作を行ったユーザーの差分ディスクを、ベースとなるディスクに結合します。具体的には以下の操作を行います。 ① XP Modeをシャットダウンします。ただし、スタートメニューには「シャットダウン」が出てこないので、XP Modeのウィンドウにある[Ctrl+Alt+Del] をクリックしてセキュリティウィンドウを開きましょう。表示されたセキュリティウィンドウに[シャットダウン]がありますので、これをクリックしてください ② [スタートメニュー]ー[すべてのプログラム]-[Winodws Virtual PC]-[Windows Virtual PC] を起動してください ③ [Windows XP Mode] が[電源切断]状態になっていることを確認して、[右クリック]-[設定]を選択 ④ [設定]ウィンドウが開くので、設定一覧から[ハードディスク1]を選択し、右側のペインの[変更]ボタンをクリック ⑤ [仮想ハードディスクの変更]画面で[仮想ハードディスクの結合]をクリック ⑥ 親ファイルと結合した結果を、どこに置くか選択します。選択肢は2つで、「既存の親ファイルを置き換える」か「別の新しいファイルとして保存するか」から選択できます。ひとまず「既存の親ファイル(Windows XP Mode Base.vhd)」は残しておきたいので、[新しいファイル]を選択して、別の場所に保存しましょう。 ちなみに、[親ファイル]を選択して結合を開始しようとすると、以下のように「読み取り専用である」旨のエラーが表示されます。もし、本当に親ファイルを直接置き換えるのであれば、事前に親ファイルへの書き込み権限を取得し、[読み取り専用]属性を解除しておく必要があります。 ⑦ 結合が完了すると、以下のメッセージが表示されます。
そうです。XP Modeに対する環境変更は、Windows7にログオンしているユーザー単位に「差分ディスク」として保存されています。よって、ドメインに参加したという事実を、Baseとなるディスクに埋め込む必要があります。絵にすると、以下のような感じです。
↓
そのためには、ドメインに参加操作を行ったユーザーの差分ディスクを、ベースとなるディスクに結合します。具体的には以下の操作を行います。
① XP Modeをシャットダウンします。ただし、スタートメニューには「シャットダウン」が出てこないので、XP Modeのウィンドウにある[Ctrl+Alt+Del] をクリックしてセキュリティウィンドウを開きましょう。表示されたセキュリティウィンドウに[シャットダウン]がありますので、これをクリックしてください
② [スタートメニュー]ー[すべてのプログラム]-[Winodws Virtual PC]-[Windows Virtual PC] を起動してください
③ [Windows XP Mode] が[電源切断]状態になっていることを確認して、[右クリック]-[設定]を選択
④ [設定]ウィンドウが開くので、設定一覧から[ハードディスク1]を選択し、右側のペインの[変更]ボタンをクリック
⑤ [仮想ハードディスクの変更]画面で[仮想ハードディスクの結合]をクリック
⑥ 親ファイルと結合した結果を、どこに置くか選択します。選択肢は2つで、「既存の親ファイルを置き換える」か「別の新しいファイルとして保存するか」から選択できます。ひとまず「既存の親ファイル(Windows XP Mode Base.vhd)」は残しておきたいので、[新しいファイル]を選択して、別の場所に保存しましょう。
ちなみに、[親ファイル]を選択して結合を開始しようとすると、以下のように「読み取り専用である」旨のエラーが表示されます。もし、本当に親ファイルを直接置き換えるのであれば、事前に親ファイルへの書き込み権限を取得し、[読み取り専用]属性を解除しておく必要があります。
⑦ 結合が完了すると、以下のメッセージが表示されます。
6.超重要!XP Modeのハードディスクの再設定と[読み取り属性]の付加
まだまだ終わりではありません! ハードディスクの結合を実行すると、この操作を実行したユーザーの環境は、以下のように設定されます。 差分ディスクの設定が無くなり、たったいま結合したディスクを直接使用するように設定されていることがわかります。 このままにしておくと、このユーザーがXP Modeを使用するたびに、親ディスクが更新されてしまうことになり、ほかのユーザーに影響が出ます。影響とは…XP Modeが使えなくなるということです。 それではまずいので、このユーザーのハードディスクの設定を、元のように差分ディスクを使用するように設定しなおします。 ① Windows XP Mode の設定画面から、[ハードディスク1]を選択します ② [作成]ボタンをクリック ③ [差分]をクリック ④ 差分ディスクのファイル名と、保存場所を指定します。名前は既定の「Windows XP Mode」としてもよいですし、変更しても構いません。保存場所は、規定値のままでよいです。 ⑤ [次へ]をクリックすると、「結合に使用した既存の差分ディスクがが存在する」旨のメッセージが表示されますが、上書きでよいでしょう。心配であれば、既存の差分ディスクをリネームしておきましょう。 ⑥ 親ディスクのパスを聞いてくるので、先ほど作成した親ディスクを指定しましょう。親ディスクをTMP等に保存した場合には、事前に「ちゃんとした場所」に移動しておきましょう。[作成]ボタンをクリックすれば、設定は完了です。 ⑦ ハードディスクの設定画面が、以下のようになっていればOKです。 ⑧ 新しい親ディスクを読み取り専用にする ⑨ 新しい親ディスクのアクセス権を変更する
まだまだ終わりではありません!
ハードディスクの結合を実行すると、この操作を実行したユーザーの環境は、以下のように設定されます。
差分ディスクの設定が無くなり、たったいま結合したディスクを直接使用するように設定されていることがわかります。
このままにしておくと、このユーザーがXP Modeを使用するたびに、親ディスクが更新されてしまうことになり、ほかのユーザーに影響が出ます。影響とは…XP Modeが使えなくなるということです。
それではまずいので、このユーザーのハードディスクの設定を、元のように差分ディスクを使用するように設定しなおします。
① Windows XP Mode の設定画面から、[ハードディスク1]を選択します
② [作成]ボタンをクリック
③ [差分]をクリック
④ 差分ディスクのファイル名と、保存場所を指定します。名前は既定の「Windows XP Mode」としてもよいですし、変更しても構いません。保存場所は、規定値のままでよいです。
⑤ [次へ]をクリックすると、「結合に使用した既存の差分ディスクがが存在する」旨のメッセージが表示されますが、上書きでよいでしょう。心配であれば、既存の差分ディスクをリネームしておきましょう。
⑥ 親ディスクのパスを聞いてくるので、先ほど作成した親ディスクを指定しましょう。親ディスクをTMP等に保存した場合には、事前に「ちゃんとした場所」に移動しておきましょう。[作成]ボタンをクリックすれば、設定は完了です。
⑦ ハードディスクの設定画面が、以下のようになっていればOKです。
⑧ 新しい親ディスクを読み取り専用にする
⑨ 新しい親ディスクのアクセス権を変更する
ひとまずこれで、ドメインに参加した状態の親ディスクを用意できました。
Windows XP Modeの設定をデフォルトプロファイルに埋め込めない 作成したWindows XP Modeの設定は、デフォルトプロファイルに埋め込むなどして、他のユーザーでも使用できるようにしておく必要があります。でないと、ユーザーごとに上記「6.」の操作を行う必要があります。これでは事実上、運用にならないですよね…。 3日間、かかりっきりで調べているのですが…なかなかうまくいかず… ちなみに、本件に関しては以下の2点をテストしました。 新しく作成した親ディスクを既存の親ディスク(Windows XP Mode Base.vhd)と入れ替え、新しくログオンしたユーザーでWindows XP Modeの初期設定を実施したが、正常に完了しなかった 正常に動作しているユーザーのプロファイルを、デフォルトプロファイルに複製。VMCXファイルとVMCファイルの中に書かれているパスには、%UserProfile% を使用して書き換えたが、うまく動作しない
作成したWindows XP Modeの設定は、デフォルトプロファイルに埋め込むなどして、他のユーザーでも使用できるようにしておく必要があります。でないと、ユーザーごとに上記「6.」の操作を行う必要があります。これでは事実上、運用にならないですよね…。
3日間、かかりっきりで調べているのですが…なかなかうまくいかず…
ちなみに、本件に関しては以下の2点をテストしました。
どなたか…うまくいったという方、ご連絡を!
ここのところ、XP Modeがインストールされた1台のWinodws7を、複数のユーザーで使いまわすことを前提に投稿を続けています。
前回の投稿では、XP Modeをドメインに参加させることができたものの、それをデフォルトプロファイルに埋め込んで他のユーザーが使えるようにする…というところで止まってしまいました。
その後の調査では、Sysprep を XP Mode に埋め込んでおき、ユーザーが最初にXP Modeを使うときに、その都度ドメイン参加(もちろん自動的に)を行わせる…といのが推奨の手順のようなのですが…(うーん、ちょっと面倒…そういえば、Windows 7 ではプロファイルの複製が出来なくなっているような気がしますが、これと関係があるのかな…)。まだ実際に試していないので、追って投稿したいと思います。
ご参考(英語ですみません) Deploying Windows XP Mode http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=9f142a1a-a7b7-4d0b-bd56-d9627f39c14f ※実はこのドキュメントがリリースされていることに気づいておらず、BLOGをご覧になった Nさんに教えてもらいました。Nさん、恐縮でございます。
で、ちょいと疲れたので、現実逃避な話題を。
※以下、ご参考ということで…実装の際にはくれぐれも検証をお忘れなく
大学などのように、利用者が複数のPC(1つのADドメインに参加しているものとする)にログインする可能性がある場合、はたしてXP Modeの利用環境を持ちまわることができるものだろうか?…と考えたとき、速攻で思いつくのが「移動ユーザープロファイル」です。
が…考えてみれば、Windows 7 と同じユーザーIDを使用する場合、プロファイルが保存されるパスも共通になってしまいます。
そこで、考えられる方法は2つです。
■XP Modeの差分ディスクをリモートに保存する
差分ディスクをファイルサーバー等に保存する場合、2つの方法が考えられます。 ー 差分ディスクを移動プロファイルに含め、ログオフのたびにサーバーに書き戻す ー 差分ディスクの保存先としてUNC名を指定する 前者はあきらかに運用に耐えられないことがわかります。ログオンやログオフのたびに何百メガ~数ギガのファイルをコピーされたんでは、いつになっても授業が始まりません。 後者はどうでしょう?ひとまず技術的には可能です。試すには、以下のように、差分ディスクと仮想マシンファイル(VMCファイル)の保存先をUNC名を使用して、ファイルサーバー上に設定してください。 差分ディスクだけをファイルサーバーに置いてもダメです。というのも、XP Modeを休止状態にした場合には、メモリの内容がVSVファイルに保存されるからです。でもって、VSV(Virtual Machine Saved State)ファイルは仮想マシンファイル(VMCファイル)と同じ場所に保存されるのです。 実際に、上記の設定をした場合、XP Modeを使用している間の書き込みは、すべてファイルサーバーに対して行われます。体感的にはどうか?といえば…ネットワークの帯域さえ確保できていれば、もたつくことなく極めて快適に使用できます。 ただし、それはクライアントがほんの少数である場合か、ファイルサーバーがこのような使い方を見越して最適化されている場合でしょう。大学のように100や200人が一斉にログオンする…といった状況で利用に耐えるとは、とても思えません。 また、仮に使用に耐えたとしても…ファイルサーバーのディスク容量が気になります。私がちょっとテストしただけで、差分ディスクの容量は1GBになりました。大きくなりすぎたVHDファイルを、夜間バッチ等で VhdResizerのようなツールを使って圧縮できればよいのですが、そうでなければファイルサーバー自身をリサイズしなければなりません。 ということで、差分ディスクをファイルサーバーに保存するというのは…現時点では現実的ではないのだろうと考えます。
差分ディスクをファイルサーバー等に保存する場合、2つの方法が考えられます。
ー 差分ディスクを移動プロファイルに含め、ログオフのたびにサーバーに書き戻す ー 差分ディスクの保存先としてUNC名を指定する
前者はあきらかに運用に耐えられないことがわかります。ログオンやログオフのたびに何百メガ~数ギガのファイルをコピーされたんでは、いつになっても授業が始まりません。
後者はどうでしょう?ひとまず技術的には可能です。試すには、以下のように、差分ディスクと仮想マシンファイル(VMCファイル)の保存先をUNC名を使用して、ファイルサーバー上に設定してください。
差分ディスクだけをファイルサーバーに置いてもダメです。というのも、XP Modeを休止状態にした場合には、メモリの内容がVSVファイルに保存されるからです。でもって、VSV(Virtual Machine Saved State)ファイルは仮想マシンファイル(VMCファイル)と同じ場所に保存されるのです。
実際に、上記の設定をした場合、XP Modeを使用している間の書き込みは、すべてファイルサーバーに対して行われます。体感的にはどうか?といえば…ネットワークの帯域さえ確保できていれば、もたつくことなく極めて快適に使用できます。
ただし、それはクライアントがほんの少数である場合か、ファイルサーバーがこのような使い方を見越して最適化されている場合でしょう。大学のように100や200人が一斉にログオンする…といった状況で利用に耐えるとは、とても思えません。
また、仮に使用に耐えたとしても…ファイルサーバーのディスク容量が気になります。私がちょっとテストしただけで、差分ディスクの容量は1GBになりました。大きくなりすぎたVHDファイルを、夜間バッチ等で VhdResizerのようなツールを使って圧縮できればよいのですが、そうでなければファイルサーバー自身をリサイズしなければなりません。
ということで、差分ディスクをファイルサーバーに保存するというのは…現時点では現実的ではないのだろうと考えます。
■移動ユーザープロファイルを、なんとかしてWin7とXPで分ける
長くなるので、これについては次回にまわします。 グループポリシーのロールバック適用、および環境変数の利用がキーになります。
長くなるので、これについては次回にまわします。
グループポリシーのロールバック適用、および環境変数の利用がキーになります。
モバイルPCとして使用しているVAIO ZもBIOS更新によってVTに対応し、私の中でのXP Mode利用率が高くなりそうな気配です。
実は自宅のPCにもXP Modeをインストールしました。理由は、Windows 7 x64 で使っている動画編集ソフト(64ビット版には正式対応していないのですが)がいまいち安定しないため、ためしにXP Modeで使ってみようかと…。
で、Windows XP Modeを起動してインストールを開始したところ、以下のエラーが。
Windows インストーラは、リモート デスクトップ接続からのインストールは許可していません。
ご存じのとおり、XP Modeには、ローカルのデバイスをリダイレクトできます。以下のように。
便利なので、ついマウントされているドライブから setup.exe を実行してしまいました。その結果が、上記のエラーです。
このエラーを回避するには、「XP Modeから見てローカル」のドライブにインストーラーが保存されている必要があります。
インストーラーがDVDやCDROMであれば、XP Modeの設定画面で、以下のように「XP ModeのDVDドライブ」に「ホストのDVDドライブ」をマウントすればOKです。それ以外の場合は、XP modeのローカルディスク(Cドライブ等)にコピーしてから Setupを実行しましょう。