web-dev-qa-db-ja.com

VMware WorkstationとDevice / Credential Guardは互換性がありません

私は昨年問題なくVMwareを実行していました、今日私は自分のVMの1つを起動してエラーメッセージを取得するためにそれを開きました。スクリーンショットを見てください。

enter image description here

私はリンクをたどり、手順4を実行しました。「mountvol」を使用してボリュームをマウントする必要があります。 mountvol X: \\?\Volume{5593b5bd-0000-0000-0000-c0f373000000}\を使ってボリュームをマウントしようとすると、The directory is not empty.と言い続けますが、2GBのパーティションを作成したが、それでも同じメッセージが表示されます。

私の質問:

空ではないボリュームをマウントするにはどうすればよいですか。

なぜこのDevice/Credential Guardが自動的に有効になったのですか。また、無効にしたり無効にしたりすることができます。

CMD:enter image description here

75
Gman

Device/Credential GuardはHyper-Vベースの仮想マシン/仮想セキュアモード で、Windows 10をより安全にするためにセキュアカーネルをホストします。

enter image description here

... VSMインスタンスは、通常のオペレーティングシステム機能から分離されており、そのモードで情報を読み込もうとする試みによって保護されています。ハイパーバイザーがハードウェアにそれらのメモリページの扱いを異なるように要求しているので、保護はハードウェア支援です。これは、同じホスト上の2つの仮想マシンが互いに対話できないのと同じ方法です。それらのメモリは独立しており、各VMが自分のデータにしかアクセスできないようにハードウェアで規制されています。

ここから、セキュリティを重視した操作を実行できる保護モードになりました。これを書いている時点で、私たちはここに常駐することができる3つの機能をサポートします:Local Security Authority(LSA)、およびカーネルモードコードインテグリティ(KMCI)の形式のコードインテグリティ制御機能と呼ばれるハイパーバイザーコード整合性(HVCI)。

enter image description here

これらの機能がVSMのトラストレットによって処理されると、ホストOSはOS内部の標準チャネルと機能を介してそれらと通信します。このトラストレット固有の通信は許可されていますが、ホストOSの悪意のあるコードやユーザーがVSMのデータを読み取ったり操作したりしようとすることは、これが構成されていないシステムよりはるかに困難です。

VSMでLSAを実行すると、LSAプロセス自体(LSASS)がホストOSに残り、LSAの特別な追加インスタンス(LSAIsoと呼ばれます - これはLSA Isolatedを表します)が作成されます。これは、LSAとの直接通信を必要とするサービスや機能であっても、LSAへの標準的な呼び出しをすべて成功させることを可能にするためのものです。この点で、ホストOSに残っているLSAインスタンスは、隔離されたバージョンと規定の方法で単純に通信する「プロキシ」インスタンスまたは「スタブ」インスタンスと考えることができます。





そして、Hyper-VとVMwareは同じ時間には動作できません。 VMをHyper-Vに移行するか、機能を無効にする必要があります。 [コントロールパネル] - > [プログラムと機能] - > [機能の有効化または無効化]で、Hyper-Vと分離ユーザーモードの機能を選択するだけで十分です。

enter image description here

再起動を忘れないでください。

60
magicandre1981

この問題を処理するためのもっと良い方法があります。 Hyper-Vを完全に削除するのではなく、VMWareを使用する必要があるときに一時的に無効にする代替ブートを実行するだけです。ここに示すように...

http://www.hanselman.com/blog/SwitchEasilyBetweenVirtualBoxAndHyperVWithABCDEditBootEntryInWindows81.aspx

C:\>bcdedit /copy {current} /d "No Hyper-V" 
The entry was successfully copied to {ff-23-113-824e-5c5144ea}. 

C:\>bcdedit /set {ff-23-113-824e-5c5144ea} hypervisorlaunchtype off 
The operation completed successfully.

注:最初のコマンドから生成されたIDは、2番目のコマンドで使用したものです。そのまま実行しないでください。

再起動すると、2つのオプションを含むメニューが表示されます。

  • ウィンドウズ10
  • Hyper-Vなし

そのため、VMWareを使用することは、再起動してNo Hyper-Vオプションを選択するだけの問題です。

ブートエントリをもう一度削除したい場合。 bcdeditに/ deleteオプションを使用できます。

まず、現在のブートエントリの一覧を取得します。

C:\>bcdedit /v

これはすべてのエントリをそれらのIDとともに一覧表示します。該当するIDをコピーして、削除してください。

C:\>bcdedit /delete {ff-23-113-824e-5c5144ea}

コメントで述べたように、これはPowerShellではなく、昇格したコマンドプロンプトから行う必要があります。 PowerShellでは、コマンドはエラーになります。

54
user1751825

昨年のDockerの試行錯誤でも、Hyper-Vが私にとってThe Thingであることをまだ確信していません。新しいブートを作成してブートのデフォルトを確認するよりも、頻繁に切り替えたくないと思います私は管理者モードでコンソールでオンデマンドに切り替えるたびにタイムアウトを待つ

bcdedit /set hypervisorlaunchtype off

この投稿のもう1つの理由 - 頭痛の種を省くため:Hyper-Vを再び "on"引数でオンにしたと思いましたか?いや。 MiRKoSには簡単すぎます。自動自動です。

楽しむ!
[...] G..

18
gue22

それを超簡単にするために:

  1. Microsoftから直接 このスクリプト をダウンロードしてください。

  2. Powershellを管理者として実行してから、次のコマンドを実行します。

    • DG/CGが有効になっているかどうかを確認するにはDG_Readiness.ps1 -Ready
    • DG/CGを無効にするDG_Readiness.ps1 -Disable
4
Sharpowski

私もこの問題に大変苦労しました。このスレッドの回答は役に立ちましたが、私のエラーを解決するのに十分ではありませんでした。他の回答が示唆しているように、Hyper-Vとデバイスガードを無効にする必要があります。その詳細については、 こちら をご覧ください。

上記の回答に加えて、必要な変更も含めています。ついに私を助けてくれたリンクはこれ です

私の答えは、残りの答え(Hyper-Vとデバイスガードの無効化)と次の手順の違いだけを要約することです。

  1. グループポリシーを使用した場合は、Windows Defender Credential Guardを有効にするために使用したグループポリシー設定を無効にします([コンピュータの構成] - > [管理用テンプレート] - > [システム] - > [デバイスガード] - > [仮想化ベースセキュリティを有効にする])。
  2. 次のレジストリ設定を削除します。

    HKEY_LOCAL_MACHINE¥System¥CurrentControlSet¥Control¥LSA¥LsaCfgFlagsHKEY_LOCAL_MACHINE¥Software¥Policies¥Microsoft¥Windows¥DeviceGuard¥EnableVirtualizationBasedSecurityHKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\DeviceGuard\RequirePlatformSecurityFeatures

    重要:これらのレジストリ設定を手動で削除する場合は、必ずすべて削除してください。それらすべてを削除しないと、デバイスはBitLockerの回復に入る可能性があります。

  3. Bcdeditを使用して、Windows Defender Credential Guard EFI変数を削除します。昇格したコマンドプロンプト(管理者モードで起動)から、次のコマンドを入力します。

     mountvol X: /s
    
     copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y
    
     bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader
    
     bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.efi"
    
     bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}
    
     bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO
    
     bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:
    
     mountvol X: /d
    
  4. PCを再起動してください。

  5. Windows Defender Credential Guardを無効にするためのプロンプトに同意します。

  6. または、仮想化ベースのセキュリティ機能を無効にして、Windows Defender Credential Guardを無効にすることもできます。

1
Nicholas K

あなたが開いたカスタマイズされた「管理者として実行」コマンドプロンプトまたはpowershellコマンドラインウィンドウを常に管理している人であれば、単にhyper-vハイパーバイザーを無効にするために@ gue22によって言及されるコマンドの実行を簡単にするために以下のエイリアス/マクロを設定できます。 VMware Playerまたはワークステーションを使用する必要があり、完了したら再度有効にする場合。

doskey hpvEnb = choice /c:yn /cs /d n /t 30 /m "Are you running from elevated command Prompt" ^& if not errorlevel 2 ( bcdedit /set hypervisorlaunchtype auto ^& echo.^&echo now reboot to enable hyper-v hypervisor )
doskey hpvDis = choice /c:yn /cs /d n /t 30 /m "Are you running from elevated command Prompt" ^& if not errorlevel 2 ( bcdedit /set hypervisorlaunchtype off ^& echo.^&echo now reboot to disable hyper-v hypervisor )
doskey bcdL = bcdedit /enum ^& echo.^&echo now see boot configuration data store {current} boot loader settings

上記の場所で、 "hpvenb" [起動時にハイパーバイザーを有効にする]、 "hpvdis" [起動時にハイパーバイザーを無効にする]、および "bcdl" [起動構成デバイスの一覧]コマンドを入力してon、off、listコマンドを実行します。

0
myusrn

まあボーイズアンドガールズは、ビルド17093のリリースノートを夜のほんの数時間で読んだ後、VMware Workstation VMに影響を与える変更ポイントを見つけて、動作しなくなりました設定のWindowsセキュリティ(Windowsディフェンダーページの新しい名前)の下のデバイスセキュリティの下にあるコア分離設定です。

デフォルトではオンになっていますが、オフにしてPCを再起動すると、すべてのVMware VMが正常に動作し始めました。おそらく、デバイスごとのオプションを次のビルドに組み込んで、個々のデバイス/アプリの応答をテストして、必要に応じてデバイスまたはアプリごとにコア分離をオンまたはオフにすることができます。

0
Devesh Sharma