Functions/Accounts/Get-PASDiscoveredAccount.ps1
# .ExternalHelp psPAS-help.xml Function Get-PASDiscoveredAccount { [CmdletBinding(DefaultParameterSetName = "byQuery")] param( [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = "byID" )] [string]$id, [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = "byQuery" )] [ValidateSet("Windows Server Local", "Windows Desktop Local", "Windows Domain", "Unix", "Unix SSH Key", "AWS", "AWS Access Keys", "Azure Password Management")] [string]$platformType, [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = "byQuery" )] [boolean]$privileged, [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = "byQuery" )] [boolean]$AccountEnabled, [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = "byQuery" )] [string]$search, [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = "byQuery" )] [ValidateSet("startswith", "contains")] [string]$searchType, [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = "byQuery" )] [int]$offset, [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = "byQuery" )] [ValidateRange(1, 1000)] [int]$limit ) Begin { Assert-VersionRequirement -RequiredVersion 11.6 #Parameter to include as filter value in url $Parameters = [Collections.Generic.List[String]]@("platformType", "privileged", "accountEnabled") } Process { #Create URL for Request $URI = "$Script:BaseURI/api/DiscoveredAccounts" switch ($PSCmdlet.ParameterSetName) { "byID" { $URI = "$URI/$id" break } "byQuery" { If ($platformType -eq "Azure Password Management") { Assert-VersionRequirement -RequiredVersion 11.7 } #Get Parameters to include in request $boundParameters = $PSBoundParameters | Get-PASParameter -ParametersToRemove $Parameters $filterParameters = $PSBoundParameters | Get-PASParameter -ParametersToKeep $Parameters $FilterString = $filterParameters | ConvertTo-FilterString If ($null -ne $FilterString) { $boundParameters = $boundParameters + $FilterString } #Create Query String, escaped for inclusion in request URL $queryString = $boundParameters | ConvertTo-QueryString If ($null -ne $queryString) { #Build URL from base URL $URI = "$URI`?$queryString" } break } } #Send request to web service $result = Invoke-PASRestMethod -Uri $URI -Method GET -WebSession $Script:WebSession If ($null -ne $Result) { If ($PSCmdlet.ParameterSetName -eq "byQuery") { #Process nextlink if querying $Result = $Result | Get-NextLink } #Return result $Result } } End {} } |