Merge pull request #11933 from lyderX05/issue/powershell_feature

Vagrant is unable to execute Get-WindowsOptionalFeature Command #11932
This commit is contained in:
Sophia Castellarin 2023-02-21 17:14:03 -08:00 committed by GitHub
commit 8127334015
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -139,14 +139,20 @@ module Vagrant
return @_windows_hyperv_enabled if defined?(@_windows_hyperv_enabled)
@_windows_hyperv_enabled = -> {
["Get-WindowsOptionalFeature", "Get-WindowsFeature"].each do |cmd_name|
ps_cmd = "$(#{cmd_name} -FeatureName Microsoft-Hyper-V-Hypervisor).State"
check_commands = Array.new.tap do |c|
c << "(Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-Hypervisor -Online).State"
c << "(Get-WindowsFeature -FeatureName Microsoft-Hyper-V-Hypervisor).State"
end
check_commands.each do |ps_cmd|
begin
output = Vagrant::Util::PowerShell.execute_cmd(ps_cmd)
return true if output == "Enabled"
rescue Errors::PowerShellInvalidVersion
logger.warn("Invalid PowerShell version detected during Hyper-V enable check")
return false
rescue Errors::PowerShellError
logger.warn("Powershell command not found or error on execution of command")
return false
end
end
return false