Согласен с точкой Матиаса Р. Ессена.
Создание и использование индикаторов выполнения PowerShell хорошо документировано во встроенных файлах справки PowerShell и во всем Интернете. Вот статья о Goo с несколькими примерами, касающимися «Как создать индикатор выполнения PowerShell»
Автор предоставляет и показывает через GIF-изображения одного
For ($i=0; $i -le 100; $i++) {
Start-Sleep -Milliseconds 20
Write-Progress -Activity "Counting to 100" -Status "Current Count: $i" -PercentComplete $i -CurrentOperation "Counting ..."
}
и вложенные индикаторы выполнения.
For ($i=0; $i -le 100; $i++) {
Start-Sleep -Milliseconds 1
Write-Progress -Id 1 -Activity "First Write Progress" -Status "Current Count: $i" -PercentComplete $i -CurrentOperation "Counting ..."
For ($j=0; $j -le 100; $j++) {
Start-Sleep -Milliseconds 1
Write-Progress -Id 2 -Activity "Second Write Progress" -Status "Current Count: $j" -PercentComplete $j -CurrentOperation "Counting ..."
}
}
Кроме того, по какой причине вы используете WQL против встроенных командлетов PowerShell для просмотра служб?
Get-Service | Where-Object {$_.Status -eq "Running"}
А также, почему вы хотите для этого индикатор выполнения, поскольку возвращение происходит немедленно, а выводится только имя? Что вы можете просто сделать ...
(Get-Service | Where-Object {$_.Status -eq "Running"}).Name
или
Get-Service | Where-Object {$_.Status -eq "Running"} | Select-Object -Property Name
У каждого будет очень быстрое возвращение, что индикатор выполнения будет спорным, если вы намеренно не замедлите его с помощью командлета Start-Sleep, но для этого не должно быть особых причин.
Если вы ищете скрипт с индикатором выполнения для DISM. Смотрите это обсуждение и готовый образец здесь:
Создание индикатора выполнения графического интерфейса для DISM или ImageX
Принятым ответом является длинный блок кода, который слишком длинный для размещения здесь: