web-dev-qa-db-ja.com

PowerShellを使用してHyper-Vが有効になっているかどうかを確認するにはどうすればよいですか?

Windowsのオプション機能をチェックして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."
}

コードを実行してもエラーは発生しません。

7
Evan Amara

あなたのif状態に関係していると思います、これを試してください:

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

=記号は機能しません。PowerShellで行う必要があります

6
Andrey Marchuk

これが私のために働く完全なPowerShellスクリプトです。コピーして、昇格したPowerShellに貼り付け、Enterキーを押します。

$hyperv = Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online
# Check if Hyper-V is enabled
if($hyperv.State -eq "Enabled") {
    Write-Host "Hyper-V is enabled."
} else {
    Write-Host "Hyper-V is disabled."
}
13
Jon