Initialize-SPOCSOMCollections.ps1
############################## #.SYNOPSIS #Short description # #.DESCRIPTION #Long description # #.PARAMETER CSOMCollection #Parameter description # #.EXAMPLE #An example # #.NOTES #General notes ############################## Function Initialize-SPOCSOMCollections{ [CmdletBinding()] param( [Parameter(Mandatory=$true,ParameterSetName="CSOMCollection")] $CSOMCollection, [Parameter(ParameterSetName="CSOMCollection")] [Parameter(ParameterSetName="CSOMObjects")] [Switch] $ReturnObject, # Parameter help description [Parameter(Mandatory=$true,ParameterSetName="CSOMObjects",ValueFromPipeline)] [Microsoft.SharePoint.Client.SecurableObject[]] $CSOMObjects, # Parameter help description [Parameter(Mandatory=$true,ParameterSetName="CSOMObjects")] [String] $CollectionName ) Begin{ } Process{ if($CSOMCollection){ <#$CSOMCollection | ForEach-Object { $_.Context.Load($CSOMCollection) $_.Context.ExecuteQuery() $results += $_ }#> $CSOMCollection.Context.Load($CSOMCollection) $CSOMCollection.Context.ExecuteQuery() $results += $CSOMCollection } else{ $results = @() foreach($co in $CSOMObjects){ Write-Progress -Activity "Initializing CSOM Collections" -PercentComplete (($CSOMObjects.IndexOf($co) / $CSOMObjects.Length) * 100) $co.Context.Load($co.$CollectionName) $co.Context.ExecuteQuery() $results += $co.$CollectionName } } } End{ if($ReturnObject){ return $results } } } |