Hyper-Vの古いVMスイッチは使用されなくなり、削除しようとすると常に失敗して次のメッセージが表示されます。
PS C:\> Get-VMSwitch nat
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
nat Private
PS C:\> Get-VMSwitch nat | Remove-VMSwitch -Force
Remove-VMSwitch : Failed while removing virtual Ethernet switch.
Switch delete failed, switch = 'acf82f05-c07c-4b35-8588-921498456027': General access denied error (0x80070005).
At line:1 char:20
+ Get-VMSwitch nat | Remove-VMSwitch -Force
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (:) [Remove-VMSwitch], VirtualizationException
+ FullyQualifiedErrorId : AccessDenied,Microsoft.HyperV.PowerShell.Commands.RemoveVMSwitch
GUI内で削除しようとしても機能しません。
同様の問題がマイクロソフトのTechNetフォーラムで解決されました。
仮想スイッチマネージャで仮想スイッチを設定しましたが、ネットワークと共有センターの[アダプタ設定の変更...]を使って誤ってアダプタが削除されました。今、明らかにスイッチは失敗状態にあり、私達はただリストからそれを削除したいと思います。
最終的に、OPはレジストリ内で詳細な検索を実行し、次のキーに格納されている仮想スイッチ構成を見つけました。
HKLM¥SYSTEM¥CurrentControlSet¥Services¥VMSMP¥Parameters¥SwitchList
そのキー内の対応する値を削除して再起動した後、仮想スイッチはなくなりました。
いつものように、私はあなたが現在の設定を.reg
ファイルにエクスポートして同様の変更を試みる前に適切なバックアップをとることをお勧めします。
Azure Powershellツールをインストールしたくなかったので、このビデオの手順に従っただけです。 https://www.youtube.com/watch?v=V5Gb342gSGg
基本的には、ネットワーク接続 - >削除したい仮想スイッチのプロパティを開く - >設定をクリック - >ドライバタブ - >デバイスのアンインストールへと進みます。
Hyper-Vサービスを無効にせずに次回コンピュータを再起動したときにHyper-Vサービスが新しいサービスを作成しないようにするために、各Hyper-Vサービスの[スタートアップの種類]を[手動]に変更しました。
BEGIN EDIT
Windows 10の新しいバージョンでは、 "デフォルトネットワーク"仮想スイッチが導入されました。
この方法でうまくいかない場合は、@ bradlis7からの回答をご覧ください。
編集終了
これはWindows 10 1607でテストされました。
Dockerを使用している場合の簡単な回答:
PS> Stop-Service com.docker.service
PS> Remove-ContainerNetwork -Name nat
長い答え:
このような状況に遭遇し、コンテナが有効になっているかDockerがインストールされている場合は、VMSwitchを削除する前にDockerを停止する必要があります。
PS> Get-VMSwitch
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
DockerNAT Internal
nat Internal
Windows Phone Emulator Internal Switch Private
Primary Virtual Switch External Intel(R) Wireless
ご覧のとおり、nat
という名前のVMSwitchがあります。それを消してほしいのです。
PS> Remove-VMSwitch -Name nat
Confirm
Are you sure you want to remove the virtual switch "nat"?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
Remove-VMSwitch : Failed while removing virtual Ethernet switch.
Switch delete failed, switch = '<guid>': General access denied error (0x80070005).
At line:1 char:1
+ Remove-VMSwitch -Name nat
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (:) [Remove-VMSwitch], VirtualizationException
+ FullyQualifiedErrorId : AccessDenied,Microsoft.HyperV.PowerShell.Commands.RemoveVMSwitch
答えはかなり単純であることがわかりました。 NetNatでnat
VMSwitchを構成したので、NetNatを削除しました。これが必要なステップかどうかはわかりませんが、とにかくやりました。
PS> Get-NetNat -Name '<name>' | Remove-NetNat
それから私はDockerを止めました。
PS> Stop-Service com.docker.service
そして最後に
PS> Remove-ContainerNetwork -Name nat
Confirm
Remove-ContainerNetwork will remove the container network "nat".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
それがなくなったことを確認するには:
PS> Get-VMSwitch
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
DockerNAT Internal
Windows Phone Emulator Internal Switch Private
Primary Virtual Switch External Intel(R) Wireless
私はDockerを使用していませんが、regedit
を使用せずに解決策を見つけたかったので、 RobV8R からの回答を試みた後、 thisに関する指示を見つけました。 MS Technet に関する質問。
Get-HNSNetwork | Remove-HNSNetwork
あるいは、もっとフィルターされたオプトインのために、これは私が必要としたものです。
Get-HNSNetwork | ? Name -Like "Default Switch" | Remove-HNSNetwork
また、@ mxgg250のアドバイスに従い、すべてのhyper-vサービスを手動で開始するように設定します。そうしないと、再起動時にスイッチが再作成されます。
私はこれが正しいかどうかわからないが私のために働いた: https://www.online-tech-tips.com/computer-tips/unable-delete-network-adapter-windows- 10 /
最初に試すことができるのは、[デバイスマネージャ]を開き([スタート]ボタンをクリックし、[デバイスマネージャ]と入力します)、[ネットワークアダプタ]を展開し、削除するネットワークアダプタを右クリックすることです。
ここに、Uninstall deviceというオプションが表示されます。うまくいけば、これはグレーアウトされてはいけません。そうであれば、次の方法に進みます。デバイスのアンインストールを選択すると、アンインストールの確認を求める別のウィンドウが表示されます。
デバイスのドライバソフトウェアを削除するオプションも表示されます。ネットワークアダプタを完全に削除したい場合は、このオプションを選択してドライバも削除することをお勧めします。すべてうまくいけば、デバイスマネージャとコントロールパネルのネットワークアダプタの一覧の両方からアダプタが削除されたことがわかります。
ここにデバイスが表示されていない場合は、表示をクリックしてから非表示デバイスを表示をクリックしてみてください。
コマンドラインからネットワークプロファイルを削除してから、方法1をもう一度試すこともできます。まず、[スタート]ボタンをクリックし、[CMD]と入力して[コマンドプロンプト]を右クリックし、 [管理者として実行] を選択して昇格したコマンドプロンプトを開く必要があります。
次のコマンドを入力して、すべての有線(イーサネット)アダプタを確認します。
netsh lan show profiles
ワイヤレスアダプタを取り外す必要がある場合は、次のコマンドを入力してください。
netsh wlan show profiles
Wired または WLAN AutoConfigサービスが実行されていないというエラーメッセージが表示された場合は、[スタート]ボタンをクリックし、「services.msc」と入力します。適切なサービスをクリックして Start を選択します。
これでコマンドを実行すると、プロファイルのリストが表示されます。私の場合は、このコンピュータには1つのプロファイルしかありません。
次に、次のコマンドを入力すると、目的のインタフェースが削除されます。
netsh lan delete profile interface="InterfaceName"
繰り返しますが、それがワイヤレスインターフェースの場合は、 lan の代わりに wlan を使用します。 show profilesコマンドを実行したときに、インターフェイス名は各見出しの上に表示されます( Profile on interface name )。プロファイルが削除されたら、コンピュータを再起動して方法1をもう一度試してください。
重要
レジストリを編集する必要がある場合は、必ずレジストリを最初にバックアップ してください 。
ネットワークプロファイルを削除するだけでなく、レジストリからアダプタ設定を削除することもできます。設定を削除したら、方法1に戻って、アダプタを削除しようとします。設定を削除するには、レジストリエディタを開き([スタート]ボタンをクリックしてregedit.mscと入力)、次のキーに移動します。
HKEY_LOCAL_MACHINE - SYSTEM - CurrentControlSet - Services - Tcpip - Parameters - Interfaces
いくつかの項目が長い一連の乱数でリストされているのがわかります。それぞれをクリックすると、そのネットワークアダプタに割り当てられているIPアドレスが表示されます。
どのネットワークアダプタがそのレジストリキーに対応しているかを確認するには、コマンドプロンプトを開き(cmdを入力します)、 ipconfig と入力します。
ご覧のとおり、イーサネットアダプタは192.168.1.233のIPアドレスを持つものです。そのため、 {73123f2a-ad10-4f4b-900e…} で始まるインタフェースの下のキーを削除します。別のインターフェースをクリックすると、そのうちの1つにIP 192.168.247.1が表示されます。これは、コンピューターのVMWareネットワークアダプターに対応しています。繰り返しますが、これはアダプタの設定のみを削除し、アダプタ自体は削除しません。コンピュータを再起動して方法1をもう一度試してください。
詳細については、次のリンクを参照してください。
https://www.online-tech-tips.com/computer-tips/unable-delete-network-adapter-windows-10/
上記の解決策を試す前に、エラーメッセージの「詳細」ペインを確認してください。私の場合は、他の仮想マシンがまだスイッチを使用しているために障害が発生したことがわかります。
VMをオフにしてもう一度やり直すと、スイッチは削除されました。
MicrosoftのTechNetフォーラムで問題を解決するためのもっと簡単な方法があります。
ブリッジアダプタ を「 コントロールパネル > ネットワークとインターネットから削除してみます > ネットワーク接続