2013/08/21

Windows Server 2012 R2 Preview > Copy-VMFile って怖い!?

先月の投稿『Windows Server 2012 R2 Preview > Copy-VMFile って何だ!? 』(2013/07/06)のフォローアップです。

Windows Server 2012 R2 Preview Hyper-V では、Windows ゲストの統合サービスに[ゲスト サービス]が追加され、ホスト側から Copy-VMFile コマンドレットを使用してゲストにファイルをコピーする機能が提供されます。この機能は Windows 7 SP1 ゲストでも使えたと書きましたが、もっと以前のバージョンの Windows でも試してみました。その結果、サポート対象 (になる予定) の Windows ゲストすべてで利用できることがわかりました。Windows XP SP3 と Windows Server 2003 R2 でも試してみましたが、利用できちゃいました。さらにこんなこと、あんなことも...
Windows 8.1 Preview や Windows Server 2012 R2 Preview 以前の Windows ゲストを実行している仮想マシンには、ゲスト サービスのコンポーネントである[Hyper-V ゲスト サービス インターフェイス]サービスが既定では存在しません。ホスト側から仮想マシンのプロパティで[ゲスト サービス]を有効 (既定は無効) にすると、[Microsoft Hyper-V Guest Service Interface (Microsoft Hyper-V ゲスト サービス インターフェイス)]デバイスとともに初めてインストールされ、サービスが開始するようになっていました。

仮想マシンのプロパティで[ゲスト サービス]にチェックが入っていて、ゲスト側で[Hyper-V ゲスト サービス インターフェイス]が実行中になっていれば、ホスト側から Copy-VMFile コマンドレットを利用できるようになります。

こんな感じで、Windows Server 2003 R2 ゲストに対してもファイルをコピーできました。Copy-VMFile コマンドレットの -FileSource オプションはコピー方向を指示しているように見えますが、実際にはパラメーターとして Host しか受け付けてくれません。 そのため、ゲストからホストの方向にコピーすることはできないようです。-FileSource オプションが用意されているということから、将来的に逆方向のコピーにも対応しそうな気がします。
この機能は、仮想マシンのネットワーク接続を使用しません。ホストと仮想マシン間のファイルのやり取りに苦労していた管理者には便利に思えるかもしれません。でも、次のような操作はどうでしょうか?



重要なシステム ファイル (この場合は hosts ファイル) を認証なしで強制的に上書きコピーできてしまいました。

仮想化ホストの管理者 (組織) とゲストの管理者 (組織) が同一の場合はこんな使い方がされることはないと思いますが、マルチテナントな環境だとちょっとちょっとちょっとですよね。

以下のページには、無効化する方法として [Hyper-V ゲスト サービス インターフェイス]のスタートアップの種類を[無効]にする方法が紹介されていますが、最初に言いましたが、"Windows 8.1 Preview や Windows Server 2012 R2 Preview 以前の Windows ゲストを実行している仮想マシンには、ゲスト サービスのコンポーネントである[Hyper-V ゲスト サービス インターフェイス]サービスが既定では存在しません。"なので、事前に無効化する方法が無いんです。

What’s New in Hyper-V in Windows Server 2012 R2
[URL] http://technet.microsoft.com/en-us/library/dn282278.aspx

"Note: The Hyper-V Guest Service Interface service enters a running state when the Guest services service is selected on the Integration Services property page of the virtual machine. To disable this feature in the guest operating system, the guest operating system administrator can set the Hyper-V Guest Service Interface service startup type to Disabled."

ゲスト側のレジストリで HKLM\SYSTEM\CurrentControlSet\Services\vmicguestinterface キーを作成してスタートアップを無効 (Start:4) にしたり、[Microsoft Hyper-V Guest Service Interface] デバイスを先にインストールして、デバイスを無効にしてみたりしてみましたが、ホスト側から[ゲスト サービス]を有効化すると、残念ながら上書きされてしまいました。

Windows Server 2012 R2 RTM が出るまでには、何かした対応策を用意してくるのかしらん。

ちなみに、Linux ゲストについては最新のゲスト コンポーネントをビルトインしている SLES 11 SP3 で試してみましたが、もちろんゲスト サービスには対応していません。

0 件のコメント: