Проверка состояния выполнения команды с использованием условия if - PullRequest
0 голосов
/ 24 апреля 2019

Я использую Powershell 5.1 на Windows 10.

У меня есть код ниже, где я пытаюсь проверить статус выполнения, если он работает, то выводится как успех, иначе не удалось.

Когда я запускаю код, код работает, но выводит его как сбойный.

Ниже приведен код

if(Enable-LocalUser -Name TEST)
{
    Write-Host "Success"
}
else
{
    Write-Host "Failed"
}

Как получить правильное подтверждение выполнения команды? Пожалуйста, помогите

1 Ответ

1 голос
/ 24 апреля 2019

Вы можете использовать $?чтобы проверить, была ли последняя команда powershell выполнена успешно или нет:

Enable-LocalUser -Name TEST
if($?)
{
    Write-Host "Success"
}
else
{
    Write-Host "Failed"
}

Если вам нужны подробности исключений, то я бы предложил попробовать catch:

try{
    Enable-LocalUser -Name TEST2 -ErrorAction Stop
    #The below line will only run if enable-localuser did not generate any exception
    Write-Host "Success"
}
catch
{
    Write-Host "Failed,Due to :"
    $_.exception
}

$?Содержит статус выполнения последней операции.Он содержит ИСТИНА, если последняя операция прошла успешно, и ЛОЖЬ, если она не удалась. ( Выдержка из: Документация по автоматическим переменным Powershell)

...