Hyper-VでRemoteFXvGPUサポートを有効にする方法

少し前にWindows10に導入された便利な機能が、無効になりました。 RemoteFX vGPU機能を使用すると、Windows Server 2008 R2、Server 2012、Server 2016、およびHyper-Vで実行されているWindows 10を実行している仮想マシン(VM)のユーザーは、ホストマシンの物理グラフィックスプロセッシングユニット(GPU)を使用してグラフィックをレンダリングできます。出力。

MicrosoftによるWindows10、KB4571757の最新の更新の時点で、Microsoftは、リモートコード実行で発見された重大な脆弱性のため、この機能を中止することを決定しました。

機能の詳細、廃止された理由、および機能を引き続き機能させる方法を見つけることができるかどうかを調べてみましょう。 クイックサマリー 隠れる 1 RemoteFX vGPUとは何ですか? 2 MicrosoftがRemoteFXvGPU機能を削除したのはなぜですか? 3 Windows10で実行されているHyper-VでRemoteFXvGPUを有効にする方法 4 RemoteFXvGPUの代替 4.1 DDA用にVMを構成する 4.2 ホストコンピューターからGPUを取り外します 4.3 GPUをVMに割り当てます 5 締めくくりの言葉

RemoteFX vGPUとは何ですか?

Hyper-Vで実行されているVMは、ホストコンピューター上の物理GPUを使用して、RemoteFX vGPU機能を使用して、ビデオレンダリングと画像処理に関するタスクを実行できます。これにより、ユーザーはCPUの負荷を軽減し、共有GPUを使用してVMで大量の画像処理を実行できます。

この機能を使用すると、VMごとに専用のGPUが不要になると同時に、GPUとVMのスケーラビリティと使いやすさが向上します。に向かう MicrosoftのWebページ 機能の詳細については、こちらをご覧ください。

MicrosoftがRemoteFXvGPU機能を削除したのはなぜですか?

RemoteFX vGPU機能は、Windows 7で導入されたため古いものですが、現在、ハッカーによって悪用されて、ホストマシンでリモートコマンドを実行しています。この機能は、VM上の有効なユーザーの入力を認証することはできません。ハッカーはこの脆弱性を悪用してVM上で変更されたアプリケーションを実行し、ホストGPUのドライバーを悪用してアクセスを取得する可能性があります。ホストマシンにアクセスできるようになると、リモートコマンドとスクリプトを実行できるようになります。

マイクロソフトは定期的な更新を通じてこのような脆弱性に対処していますが、欠陥がアーキテクチャ上のものであるため、対処できませんでした。

マイクロソフトは、2020年7月にOSのさまざまなバージョンでこの機能の削除を開始しました。ただし、2020年9月のWindows 10累積更新プログラムでは、Windows10バージョン2004のすべてのエディションでこの機能が無効になりました。

Microsoftは、ユーザーは特別なコマンドを使用して2021年2月までこの機能を再度有効にできると述べていますが、記事の後半で説明する代替方法の作業を開始する必要があります。がここにあります RemoteFXvGPUの無効化に関するMicrosoftからの通知

Windows10で実行されているHyper-VでRemoteFXvGPUを有効にする方法

Microsoftは、Windows10のHyper-Vを介してRemoteFXvGPUを有効にする機能をグレー表示していますが、PowerShellを使用したコマンドを使用して有効にすることもできます。さらに、グループポリシー設定は、以前と同じようにVMで機能を有効にするために使用できるゲストオペレーティングシステム(VM)内に引き続き存在します。

グレー表示

  1. まず、この機能を構成するVMをオンにし、次のように入力してグループポリシーエディターを開きます。 gpedit.msc 実行中。
  2. の中に グループポリシーエディター 、左側のペインから次の場所に移動します。
  3. コンピューターの構成->管理用テンプレート-> Windowsコンポーネント->リモートデスクトップサービス->リモートデスクトップセッションホスト->リモートセッション環境-> WindowsServer用RemoteFX
  4. 右ペインで、をダブルクリックします RemoteFXを構成する
  5. の中に RemoteFXを構成する プロパティウィンドウで、 有効 、をクリックします 申し込みOk
  6. コマンドプロンプトを開き、次のように入力します gpupdate / force グループポリシーを更新します。
  7. 物理GPUに応じて、推奨されるGPUドライバーをダウンロードしてインストールします。これがの詳細なレビューです GPUとその管理方法
  8. 次に、VMをシャットダウンし、Hyper-Vを実行しているホスティングコンピューターに戻ります。
  9. 以来 RemoteFX3Dビデオアダプター VMの設定でオプションがグレー表示されている場合は、PowerShellを使用して有効にします。管理者権限でPowerShellを実行します。これは、PowerShellを常に管理モードで実行する方法に関する完全なガイドです。
  10. (name)を仮想マシンの名前に置き換えながら、次のコマンドを入力します。
    Add-VMRemoteFX3dVideoAdapter -VMName (name)
  11. ここで、Hyper-VコントロールパネルからVM設定を開くと、 RemoteFXEDビデオアダプタープロセッサー タブ。それをクリックして、必要に応じて構成を行います。
    vm設定remotefx

これで、仮想マシンを起動して接続できるようになり、ホストマシンのGPUを使用してワークロードを処理できるようになります。共有物理GPUで実行するように複数のVMを構成することもできます。

RemoteFXvGPUの代替

Microsoftは、2021年2月までにこの機能を完全に削除することを計画しています。ただし、ユーザーを立ち往生させたわけではありません。 Microsoftは、PCIeポート上の物理GPUをVMを介してVMに直接マウントする代替ソリューションも提案しています。 個別のデバイス割り当て (DDA)。

この方法には、VMに専用GPUを提供するために完了する必要のある3つのフェーズがあります。

  1. DDA用にVMを構成する
  2. ホストコンピューターからGPUを取り外します
  3. GPUをVMに割り当てます

DDA用にVMを構成する

ホストコンピューターで、次のコマンドを次々に実行して設定を構成します。 (name)をVMの名前に置き換えます。

  1. Set-VM -Name (name) -AutomaticStopAction TurnOff
  2. Set-VM -GuestControlledCacheTypes $true -VMName (name)
  3. Set-VM -LowMemoryMappedIoSpace 3Gb -VMName (name)
  4. Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName (name)

ホストコンピューターからGPUを取り外します

まず、PCIeポートでGPUを無効にしてから、マウントを解除する必要があります。ただし、その前に、ポートの物理アドレスが必要になります。これは、以下を実行することで判別できます。

  1. [実行]にdevmgmt.mscと入力して、デバイスマネージャーに移動します。
  2. 次に、[ディスプレイアダプター]を展開し、GPUを右クリックします。コンテキストメニューから[プロパティ]を選択します。
  3. [詳細]タブに移動し、[プロパティ]の下のドロップダウンメニューから[ロケーションパス]を選択します。
  4. ホストデバイスからGPUをマウント解除するときに必要になるため、エントリはPCIROOTで始まることに注意してください。

次に、以下を実行してデバイスをマウント解除します。

  1. に向かう プロパティ からのGPUのウィンドウ デバイスマネージャ
  2. に移動します 運転者 タブをクリックしてからクリックします 無効にする 端末

デバイスが無効になっているので、マウントを解除する必要があります。

コマンドプロンプトで次のコマンドを入力します。
Dismount-VMHostAssignableDevice -force -LocationPath $(LocationPath)
(LocationPath)を前にメモしたPCIeパスに置き換えます。

完了したら、次のフェーズに進むことができます。

GPUをVMに割り当てます

これで、指定したVMが物理GPUを使用できるようにHyper-Vをプログラムするだけで済みます。これは、コマンドプロンプトで以下のコマンドを実行することで実行できます。
Add-VMAssignableDevice -LocationPath $locationPath -VMName (name)
(name)をVMの名前に置き換えます。

これで、ゲストオペレーティングシステムを起動して、現在使用しているビデオアダプターがホストコンピューター上の物理アダプターになることを確認できます。

GPUをホストデバイスに戻したい場合は、コマンドプロンプトで次の2つのコマンドを同じ順序で次々に実行し、(name)をVMの名前に置き換えます。
Remove-VMAssignableDevice -LocationPath $locationPath -VMName VMName
Mount-VMHostAssignableDevice -LocationPath $locationPath

締めくくりの言葉

RemoteFX vGPUは、バージョン2004ではあまり使用されていません。しかし、人々はそのアイデアを気に入りました。コスト要因を入れない限り、それがうまくいくのを見るのは予想されるほど面倒ではないかもしれません。

Microsoftは、仮想マシンごとに指定されたGPUを使用する代替手段を提供していますが、ホストコンピューターのマザーボードに仮想マシンと同じ数のGPUを配置することは理想的ではありません。コストが高すぎて、消費電力は理想的ではありません。

提供された解決策はほとんどのユーザーにとって実行可能ではないため、Microsoftはこの問題の回避策を見つける必要があります。