2016-06-01 71 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." 
}