Eu configurei o vagrant conforme descrito nos documentos .
Ao executar vagrant up
recebo a seguinte mensagem:
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.
Embora eu entenda a mensagem, sinto que esse não é o problema subjacente. Eu fiz
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
e a seguinte reinicialização.
Get-VM
lista todas as minhas máquinas. Portanto, sinto que os cmdlets do Hyper-V devem ser instalados e utilizáveis.
Isso está sendo executado no Windows 10 20H2, a versão do Vagrant é 2.2.14, a versão do módulo Hyper-V PowerShell é 2.0.0.0
O que estou perdendo aqui?
Editar:
Os recursos do Hyper-V instalados são:
Versão do 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
Eu também fiz uma postagem cruzada para discutir.hashicorp.com
Editar 2
O erro está vindo do \Vagrant\embedded\gems\2.2.14\gems\vagrant-2.2.14\plugins\providers\hyperv\scripts\check_hyperv.ps1
qual essencialmente vem Get-Command "Hyper-V\Get-VMSwitch"
e se isso falhar, relata o erro.
Agora, meu sistema parece não conseguir carregar Hyper-V\Get-VMSwitch
sem alguma "ajuda":
❯ 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**