Windows Server 2016のHyper-Vで仮想マシンを動作させ、その画面のコピーを取ろうとすると失敗する場合があります。
ここではその対処方法について説明します。
Hyper-V Server 2016
2015年7月末にWindows 10がリリースされ、随分と遅れましたが2016年秋に同世代のServerであるWindows Server 2016がリリースされました。
従来と同様に、Server CoreにHyper-Vを組み合わせたHyper-V Server 2016も同時にリリースされました。
無償のはずなのですがどこにも明確に価格が記されたページは見つかりません。
Windows 10で使っているNUCを新しいものに変えたので、順繰りで古くなったHyper-V Server 2012に転用することにしました。
ついでなのでHyper-V Server 2012もHyper-V Server 2016に変更しました。
バージョンが新しくなったことでいろいろと違いがありますが、何故か初期設定では使えなくなった機能がありました。
それが仮想マシンの「画面のキャプチャ」です。
仮想マシンのスクリーンキャプチャー
仮想マシンの操作は管理用パソコンとなるWindows 10に「Hyper-Vマネージャー」を追加して行います。
「Hyper-Vマネージャー」から「仮想マシン接続」を起動して仮想マシンを操作していて画面のコピーを取りたい場合があります。
「仮想マシン接続」で画面のコピーを取る場合はメニューの「クリップボード」から「画面のキャプチャ」で行います。
Hyper-V Server 2016での仕様変更
Hyper-V Server 2012ではこの操作で画面のコピーを取ることができましたが、Hyper-V Server 2016では、このようなエラーが発生して画面のコピーを取ることができません。
メッセージを頼りに検索してみても日本語のサイトには情報が無く、英語に訳して検索するといくつか情報が見つかりました。
要は、WinRMの「MaxEnvelopeSizekb」が不足しているとのことです。
「最大エンベロープサイズ」を変更
以下の操作は仮想マシンが動作しているHyper-V Server 2016と、「仮想マシン接続」を実行する管理用パソコンの両方で行う必要があります。
管理者権限の「コマンドプロンプト」を開いて次のコマンドを実行します。
winrm get rinrm/config
実行結果を見ると「MaxEnvelopeSizekb」が 500 に設定されています。
500 はKB単位なのでByteに直すと 500 × 1,024 = 512,000 となりメッセージの数値と合っていることが分かります。
この値を 2,098,380Byte 以上にする必要があるのですが「仮想マシン接続」の画面解像度で値が変わるため、ここでは 4,000KB を設定します。
winrm set winrm/config @{MaxEnvelopeSizekb="4000"}
を実行すると「MaxEnvelopeSizekb」に4000が設定されます。
最後に値を反映させるために「Windows Remote Management」サービスを再起動させます。
面倒な場合はパソコンを再起動させてください。
Hyper-V Server 2016と管理用パソコンとで設定が終われば画面のコピーが取れるはずです。
まだ不足する場合は値を増やしてください。
まとめ
Hyper-V Server 2016ではいろいろと変わっており従来のやり方が通用しません。
しかし、Dockerのサポートなど期待できる機能もありますので、少しずつ頭を切り替えていく必要があるようです。
コメント