Last active
August 29, 2015 14:21
-
-
Save chipitsine/49e1c768f1bdf7238720 to your computer and use it in GitHub Desktop.
параллельная обработка массива пользователей
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#requires -Version 4.0 | |
#requires -Modules ActiveDirectory | |
ipmo ActiveDirectory | |
cls | |
$queue = [System.Collections.Queue]::Synchronized( (New-Object System.Collections.Queue) ) | |
[array]$Report = @() | |
gwmi –class Win32_processor | % {$ncpu=$null}{$ncpu+=$_.NumberOfLogicalProcessors} | |
$users = Get-ADUser -Server m1dc2.m1.kontur -Filter '*' -SearchBase 'OU=Пользователи из КС,OU=user_m1,DC=m1,DC=kontur' | |
foreach($user in $users) { | |
$queue.Enqueue($user) | |
} | |
Function Runner { | |
If ($queue.count -gt 0) { | |
$User = $queue.Dequeue() | |
## | |
## Do some job | |
## | |
## ... | |
## Collect report | |
$Global:Report += $User | |
} | |
} | |
for( $i = 0; $i -lt ($ncpu,$queue.count | Measure -Max).Maximum; $i++ ) { | |
Runner | |
} | |
$Report.Count |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment