Инструкция If / Else с использованием Get-WMIObject
Я пытаюсь использовать "Get-WMIObject".
Если я запускаю сценарий, он выводит красный текст, а не зеленый, как следует на основе оператора if / else. Кроме того, после запуска скрипта, если я наберу $PredictFailure, он показывает, что $PredictFailure имеет значение "False".
Скриншот, чтобы показать, что происходит.
$PredictFailure = Get-WmiObject -namespace root\wmi –class MSStorageDriver_FailurePredictStatus | Select-Object PredictFailure
Foreach ($D in $PredictFailure)
{
$PredictFailure = $D.PredictFailure
If ($D.PredictFailure -eq "False")
{Get-WmiObject -namespace root\wmi –class MSStorageDriver_FailurePredictStatus -ComputerName $env:computername | Select-Object PSComputerName, Active, PredictFailure, Reason | Format-Table -AutoSize | Out-String | Write-Host -ForegroundColor Green}
Else
{Get-WmiObject -namespace root\wmi –class MSStorageDriver_FailurePredictStatus -ComputerName $env:computername | Select-Object PSComputerName, Active, PredictFailure, Reason | Format-Table -AutoSize | Out-String | Write-Host -ForegroundColor Red}
}
1 ответ
Решение
Вы сравниваете со строкой "Ложь". использование $FALSE
для ссылки на логическую константу false:
If ($D.PredictFailure -eq $FALSE)
или использовать отрицание
If (-not $D.PredictFailure)