Инструкция 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)
Другие вопросы по тегам