Scripts/Get-BPAPermission.ps1
function Get-BPAPermission { <# .SYNOPSIS Gets AutoMate BPA permissions. .DESCRIPTION Get-BPAPermission gets permissions for objects. .PARAMETER InputObject The object(s) to retrieve permissions for. .INPUTS Permissions for the following objects can be retrieved by this function: Workflow Task Condition Process Agent AgentGroup User UserGroup Folder .EXAMPLE # Get permissions for workflow "My Workflow" Get-BPAWorkflow "My Workflow" | Get-BPAPermission .NOTES Author(s): : David Seibel Contributor(s) : Date Created : 09/12/2016 Date Modified : 05/01/2018 .LINK https://github.com/davidseibel/PoshBPA #> [CmdletBinding(DefaultParameterSetName = "All")] [OutputType([System.Object[]])] param( [Parameter(Position = 0, ParameterSetName = "ByPipeline", ValueFromPipeline = $true)] [ValidateNotNullOrEmpty()] $InputObject ) PROCESS { foreach ($obj in $InputObject) { Write-Verbose "Processing object Name: '$($obj.Name)' Type: '$($obj.TypeName)'" if ($obj.TypeName -in @("Workflow","Task","Condition","Process","Folder","Agent","AgentGroup","User","UserGroup")) { $permissionIndex = Invoke-BPARestMethod -Resource "$([BPATypeDictionary]::($obj.TypeName).RestResource)/$($obj.ID)/permissions/index" -RestMethod Get -BPAServer $obj.BPAServer foreach ($permissionID in $permissionIndex) { Invoke-BPARestMethod -Resource "$([BPATypeDictionary]::($obj.TypeName).RestResource)/$($obj.ID)/permissions/$permissionID/get" -RestMethod Get -BPAServer $obj.BPAServer } } else { $unsupportedType = $obj.GetType().FullName if ($_) { $unsupportedType = $_ } elseif (($null -ne $obj.Type) -and ($obj.Type -ne "")) { $unsupportedType = $obj.Type } Write-Error -Message "Unsupported input type '$unsupportedType' encountered!" -TargetObject $obj } } } } |