使用 Hyper-V 在 Windows 10 上出现流浪错误

Vagrant Error on Windows 10 with Hyper-V

升级到windows10后运行:

$ vagrant up

我们收到以下错误消息

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: get_vm_status.ps1
Error:

C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.7.4\plugins\providers\hyperv\scripts\get_vm_status.ps1 : Unable to
find type [Microsoft.HyperV.PowerShell.VirtualizationOperationFailedException].
At line:1 char:1
+ &('C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.7.4\plugins\prov ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Microsoft.Hyper...FailedException:TypeName) [get_vm_status.ps1], Ru
   ntimeException
    + FullyQualifiedErrorId : TypeNotFound,get_vm_status.ps1

使用 Vagrant 1.7.4.

有什么想法吗?

我在 Windows 10 Enteprise(第一次使用 Vagrant)上全新安装 Vagrant 1.7.4 时遇到了同样的问题。

在最新版本的 PowerShell 中,VirtualizationOperationFailedException 类型似乎已被替换为 VirtualizationException

我将 C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.7.4\plugins\providers\hyperv\scripts\get_vm_status.ps1 的第 15 行从:

更改为
} catch [Microsoft.HyperV.PowerShell.VirtualizationOperationFailedException] {

} catch [Microsoft.HyperV.PowerShell.VirtualizationException] {

现在我可以无误地使用 vagrant up 和 vagrant status 了。这显然不是一个长期的解决方案,但可以让事情重新开始。可能还有其他损坏的脚本,但我还没有 运行 了解它们。

如果@jeff-r 的解决方案不适合您,您可以尝试更改:

} catch [Microsoft.HyperV.PowerShell.VirtualizationOperationFailedException] {

至:

} catch [Exception] {

小心,它也可能会引起一些副作用。

我在销毁然后重新创建 VM 后遇到了同样的错误。

我删除了 .vagrant/machines/hyperv 文件夹,一切正常。

在 win 10 上你必须禁用 "Hyper-V" 到 运行 vagrant/virtualbox