Write-Progress 基于另一个 cmdlet 进度状态

Write-Progress based on another cmdlet progress status

我有一个 Powershell 脚本多次使用 Get-QADUser cmdlet。此 cmdlet 使用进度条报告进度。

那么,让我们考虑一下这个脚本,

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

如果我们认为每个语句代表我的总脚本执行时间的 25%(无需精确),我想 Write-progress 基于这些 cmdlet 的进度。换句话说,这将代表脚本的全局进度条。

因此,如果 $user = Get-QADUser "User1" 进度为 50%,我想报告 ~13%(25% 的 50%)。我的问题是,如果有可能实时访问 Get-QADUser 进度,我不知道。

他们是基于 Powershell 中的第三方 cmdlet 调用 Write-Progress -PercentComplete 的方法吗?

$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]
}