LoginSignup
3

More than 5 years have passed since last update.

Hyper-V の外部仮想スイッチを追加するコマンド (と、それが失敗する件)

Last updated at Posted at 2017-02-12

Windows で Hyper-V を使って仮想マシンを動かして、その仮想マシンを外部ネットワークに接続させたい。 最近は NAT の仕組みもできたりしてるっぽい (まだ詳しく調べてない) けど、従来の方法としては 「外部仮想スイッチを作成」 して、仮想マシンの NIC から外部仮想スイッチを経由して外部ネットワークに接続する。

Hyper-V マネージャの仮想スイッチマネージャを使って GUI 上で追加することもできるのだけど、コマンドを使う方法を書いておく。

PowerShell 上でコマンドを使用して外部仮想スイッチを追加

まずは Get-NetAdapter コマンドで Windows 10 システムに接続されているネットワーク アダプターの一覧を取得。

PS C:\Users\nobuoka> Get-NetAdapter

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Bluetooth ネットワーク...  Bluetooth Device (Personal Area Netw...       8 Disconnected XX-XX-XX-XX-XX-XX         3 Mbps
Wi-Fi                     Intel(R) Dual Band Wireless-AC 7265          13 Up           XX-XX-XX-XX-XX-XX     866.7 Mbps

外部仮想スイッチの接続先として、このうちのどれか 1 つを選ぶ。 今回の場合は 「Wi-Fi」 しかないので、「Wi-Fi」 にする。

あとは New-VMSwitch コマンドを使って作成する。 名前と、管理 OS 側に共有するかどうか (-AllowManagementOS) と、接続先のネットワークアダプタを指定する。

PS C:\Users\nobuoka> New-VMSwitch -Name "Wi-Fi VM Switch" -AllowManagementOS $True -NetAdapterName "Wi-Fi"

物理的なネットワークアダプタが 1 つしかないのであれば、管理 OS 側に共有しないと管理 OS 側からネットワーク接続ができなくなってしまう。 物理ネットワークアダプタが 1 つの環境ならほぼ $True 一択だと思う。

なぜかうまくいかない

という上記手順で作成できるはずなのだけど、うちの環境ではうまくいかない。 Windows 10 Pro IP Build 14986 な環境。

PS C:\Users\nobuoka> New-VMSwitch -Name "Wi-Fi VM Switch" -AllowManagementOS $True -NetAdapterName "Wi-Fi"
New-VMSwitch : 仮想イーサネット スイッチの接続の追加中にエラーが発生しました。
イーサネット ポート '{D68B5B04-9606-4A68-9F3E-E15DFE8E1635}' のバインドに失敗しました: ポインターが無効です (0x80004003)。
発生場所 行:1 文字:1
+ New-VMSwitch -Name "Wi-Fi VM Switch" -AllowManagementOS $True -NetAda ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [New-VMSwitch]、VirtualizationException
    + FullyQualifiedErrorId : InvalidParameter,Microsoft.HyperV.PowerShell.Commands.NewVMSwitch

英語だとこんな感じ。

PS C:\Users\nobuoka> New-VMSwitch -Name "Wi-Fi VM Switch" -AllowManagementOS $True -NetAdapterName "Wi-Fi"
New-VMSwitch : Failed while adding virtual Ethernet switch connections.
Ethernet port '{7B47F169-98C7-4306-B150-0B75D1E5EB62}' bind failed: Invalid pointer (0x80004003).
At line:1 char:1
+ New-VMSwitch -Name "Wi-Fi VM Switch" -AllowManagementOS $True -NetAda ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [New-VMSwitch], VirtualizationException
    + FullyQualifiedErrorId : InvalidParameter,Microsoft.HyperV.PowerShell.Commands.NewVMSwitch

Windows の初期化をした直後には成功したのだけど、ネットワーク周りをいじってるうちにおかしくなったっぽい? Insider Preview だからなのか正式リリース版でもダメなのかとか、調査が面倒なのでまだそこまで調べられてない。 備忘録として残しておく。

どうやって調査していけばいいのかもわからないので、知見ある方いらっしゃいましたら教えてください :bow:

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3