Привет, У меня есть проблема в powershell, где условие Do Until is true, но цикл не останавливается. Если я изменил -eq на 0. Он остановится ... В основном, что нужно сделать, это получить количество компьютеров в текстовом файле. Сохраните это число в $ count. Затем перезапустите службу для каждого компьютера в списке, пока он не достигнет последнего.Do Do not Loop Condition Met - but Loop continue - Powershell
$computers = gc C:\temp\computers.txt
$count = $computers.count
Do {
foreach($computer in $computers){
$readCount = $computer.ReadCount
gwmi win32_service -ComputerName $computer | where {$_.name -like "*was*"} | Restart-Service
}
}
Until (($count - $readCount) -eq 1)
Вы перебрать все компьютеры внутри 'foreach' петли и' Until' условие проверяется только один раз итерации сделано. Так как свойство 'ReadCount' one-based,' $ readCount' будет равно '$ count', поэтому ваше условие' Until' не выполняется. – PetSerAl