Windows10 Pro + Hyper-V で Vagrant 2.1.1 switchidエラー対応

windows 10 Pro + hyper-v で、

vagrant up –provider=hyperv

としたところ、以下のエラー

PS C:\workspaces\vm\centos7> vagrant up --provider=hyperv
Bringing machine 'default' up with 'hyperv' provider...
==> default: Verifying Hyper-V is enabled...
==> default: Importing a Hyper-V instance
    default: Cloning virtual hard drive...
    default: Creating and registering the VM...
An error occurred while executing a PowerShell script. This error
is shown below. Please read the error message and see if this is
a configuration error with your system. If it is not, then please
report a bug.

Script: import_vm_xml.ps1
Error:

C:\Programs\Vagrant\embedded\gems\2.1.1\gems\vagrant-2.1.1\plugins\providers\hyperv\scripts\import_vm_xml.ps1 : パラメ
ーター名 'switchid' に一致するパラメーターが見つかりません。
発生場所 行:1 文字:327
+ ... achines/default/hyperv/Virtual Hard Disks/disk.vhd' -switchid 'c08cb7 ...
+                                                         ~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [import_vm_xml.ps1]、ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,import_vm_xml.ps1

Hyper-VでVagrant upできない人はこれを見てみて (Vagrant 2.1.1対応方法更新しました)

の対応方法に従い、レジストリを修正

コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\vmsmp\parameters\SwitchList

vagrant_regedit

するも、エラー修正されず。。。

https://github.com/hashicorp/vagrant/issues/9774

上記スレッドに解決しそうなコメントがあったので、試す。

以下のスクリプトを編集

{インストールディレクトリ}Vagrant\embedded\gems\2.1.1\gems\vagrant-2.1.1\plugins\providers\hyperv\scripts\import_vm_xml.ps1

ダミーパラメーターを追加

[string]$switchid

スイッチ名を先頭行に指定(値は、上記レジストリエディタで指定した値)

$switchname = "DefaultSwitch"

Param(
          :
    [string]$enable_virtualization_extensions=$False,
    [string]$switchid
)
$switchname = "DefaultSwitch"

再度 vagrant up –provider=hyperv

vagrant_success

成功した!

vagrant_hyperv

SSHでの接続もOK