Пользователь
Сообщения: 136
Благодарности: 40
|
Профиль
|
Сайт
|
Отправить PM
| Цитировать
$status = 'Stopped'
[array]$srv = 'Spooler', 'MSExchangeHM'
Stop-Service -Name $srv
while (((Get-Service -Name $srv)|Where-Object {$PSItem.Status -ne "Stopped"})){
sleep 5
}
cls
write-host "finish" -ForegroundColor Green
По вашему коду.
1. while ($true) и выход по break, это считается плохой практикой, т.к. цикл может продолжаться вечно, если есть условие выхода из цикла, то надо его в условия и ставить.
2. ($status -eq (Get-Service -Name $srv).Status) вы[b] сравниваете строку с массивом, обычно в левой части условия используется вычисляемое значение, а в правой статическое значение, хотя это больше дело привычки. Поэтому True и не будет.
|
-------
Видео на русском про PowerShell
Крутые курсы по PowerShell
Отправлено: 13:52, 01-07-2021
| #3
|