2016-06-01 41 views
3

我正在尝试编写一个PowerShell脚本来检查Windows可选功能以查看是否安装了Hyper-V。但是,我的代码不起作用。即使禁用了Hyper-V,脚本也会输出它已启用。如何检查是否使用PowerShell启用了Hyper-V?

#Requires -RunAsAdministrator 

# Get the Hyper-V feature and store it in $hyperv 
$hyperv = Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online 

# Check if Hyper-V is already enabled. 
if($hyperv.State = "Enabled") { 
    Write-Host "Hyper-V is already enabled." 
} else { 
    Write-Host "Hyper-V is disabled." 
} 

代码运行时没有错误。

+0

总是很好地发布你得到的错误 – Paolof76

+0

代码运行时没有错误。 –

回答

4

我相信这与你的if条件做,试试这个:

if($hyperv.State -eq "Enabled") 

=标志是行不通的,你需要做的PowerShell的方式

+0

修复它,谢谢。这似乎是=重新设置$ hyperv的值。 –

+0

@EvanAmara在大多数编程语言中,一个等号(=)分配一个值和两个等号(==)比较值。在powershell -eq(意思相同)比较两个值是否相等。如果你需要知道值是否不同,你可以使用-ne(不等于)。查看本网站以获取有关比较值的更多信息https://ss64.com/ps/syntax-compare.html –

2

以下是完整的PowerShell脚本这对我行得通。只需将其复制并粘贴到PowerShell中,然后按Enter即可。

# Check if Hyper-V is enabled 
if($hyperv.State -eq "Enabled") { 
    Write-Host "Hyper-V is enabled." 
} else { 
    Write-Host "Hyper-V is disabled." 
}