Private/Get-IAMCoreBucket.ps1
|
function Get-IAMCoreBucket { [OutputType([hashtable])] [CmdletBinding()] Param( [Parameter(Mandatory = $false)] [int] $BucketSize = 1000, [Parameter(Mandatory = $false, ValueFromPipeline = $true)] $InputObject ) begin { $Script:_Buckets = @{} $Script:_BucketNumber = 0 } process { if(!$Script:_Buckets.Contains($Script:_BucketNumber)) { $Script:_Buckets[$Script:_BucketNumber] = @() } elseif($Script:_Buckets[$Script:_BucketNumber].Count -ge $BucketSize) { $Script:_BucketNumber++ $Script:_Buckets[$Script:_BucketNumber] = @() } $Script:_Buckets[$Script:_BucketNumber] += $InputObject } end { $Script:_Buckets } } |