我已经按照说明设置了 vagrant文档。
运行时vagrant up
我收到以下消息:
Bringing machine 'default' up with 'hyperv' provider...
==> default: Verifying Hyper-V is enabled...
The Hyper-V cmdlets for PowerShell are not available! Vagrant
requires these to control Hyper-V. Please enable them in the
"Windows Features" control panel and try again.
虽然我理解这个信息,但我觉得这不是根本问题。我确实
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
然后重新启动。
Get-VM
列出了我的所有机器。所以我觉得 Hyper-V cmdlet 应该已经安装并可以使用了。
这是在 Windows 10 20H2 上运行的,Vagrant 版本是 2.2.14,Hyper-V PowerShell 模块版本是 2.0.0.0
我在这里遗漏了什么?
编辑:
已安装的 Hyper-V 功能包括:
PowerShell 版本:
> $psversiontable
Name Value
---- -----
PSVersion 5.1.19041.610
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.610
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
我也转发到了discuss.hashicorp.com
编辑2
错误来自\Vagrant\embedded\gems\2.2.14\gems\vagrant-2.2.14\plugins\providers\hyperv\scripts\check_hyperv.ps1
本质上就是这样的Get-Command "Hyper-V\Get-VMSwitch"
,如果失败就会报告错误。
现在,我的系统似乎无法Hyper-V\Get-VMSwitch
在没有一些“帮助”的情况下加载:
❯ get-command "Hyper-V\Get-VMSwitch"
get-command : The term 'Hyper-V\Get-VMSwitch' is not recognized as the name of a cmdlet, function, script file, or
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
again.
At line:1 char:1
+ get-command "Hyper-V\Get-VMSwitch"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Hyper-V\Get-VMSwitch:String) [Get-Command], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException,Microsoft.PowerShell.Commands.GetCommandCommand
❯ get-command "Get-VMSwitch"
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-VMSwitch 2.0.0.0 Hyper-V
❯ get-command "Hyper-V\Get-VMSwitch"
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-VMSwitch 2.0.0.0 Hyper-V
**strong text**
答案1
据我所知,Vagrant 安装正确,且符合文档要求。我没有发现任何问题,所有评论都得到了发帖者的回复。
我的结论是,带有 Hyper-V 的 Vagrant 在最新的 Windows 10 升级下出现了问题。
我看到的选项是:
- 等待 Vagrant 发布修正版本
- 解决问题 HashiCorp 支持 (不太可能得到答案),或者 流浪者社区
- Vagrant 先与 VirtualBox 合作,之后才与 Hyper-V 合作,而且很可能仍能很好地运行。您可能需要在等待 Hyper-V 解决方案(性能可能更高)时暂时回退到 VirtualBox。