Private/Get-NestedDeviceGroups.ps1
Function Get-NestedDeviceGroups { Param ( [String[]]$Ids, [String[]]$PreviousIds = @() ) ##Write-Host "Function Called with Ids: $Ids" $AdditionalIds = @() Foreach($Id in $Ids){ ##Write-Host "Processing Id: ($Id)" $temp = @() $temp += (Get-LMDeviceGroupGroups -Id $Id).Id If($temp){ $AdditionalIds += $temp } } ##Write-Host "Function End with Ids: $AdditionalIds" ##Write-Host "Function Previous Called Ids: $PreviousIds" If($AdditionalIds){ #PreviousIds and CurrentIds get combined and AdditionalIds get passed forward Get-NestedDeviceGroups -Ids $AdditionalIds -PreviousIds $($Ids + $PreviousIds) } Else{ ##Write-Host "Return Value: " Return $($PreviousIds + $Ids) } } |