Ход выполнения записи на основе состояния выполнения другого командлета - PullRequest
0 голосов
/ 27 июня 2018

У меня есть скрипт Powershell, использующий командлет Get-QADUser несколько раз. Этот командлет сообщает о прогрессе с помощью индикатора выполнения.

Итак, давайте рассмотрим этот скрипт,

$user = Get-QADUser "User1"
$user = Get-QADUser "User2"
$user = Get-QADUser "User3"
$user = Get-QADUser "User4"

Если мы посчитаем, что каждый оператор представляет 25% моего общего времени выполнения скрипта (точнее не нужно), я бы хотел Write-progress исходя из прогресса этих командлетов. Другими словами, это будет представлять глобальный индикатор выполнения для скрипта.

Итак, если $user = Get-QADUser "User1" прогрессирует 50%, я бы хотел сообщить ~ 13% (50% из 25%). Моя проблема в том, что я не могу получить доступ к прогрессу Get-QADUser в режиме реального времени.

Является ли способ вызова Write-Progress -PercentComplete на основе стороннего командлета в Powershell?

1 Ответ

0 голосов
/ 27 июня 2018
$users_added = @()
$users = @('User1', 'User2', 'User3', 'User4')

Write-Progress -Activity 'Create User' -ID 1 -PercentComplete 0

for ($i = 0; $i -lt $users.count; $i++ ) {
    Write-Progress -Activity 'Create User' -ID 1 -PercentComplete $($i / $users.count * 100)
    $users_added += Get-QADUser $users[$i]
}
...