Functions/Safes/Get-PASSafe.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# .ExternalHelp psPAS-help.xml function Get-PASSafe { [CmdletBinding(DefaultParameterSetName = "byAll")] param( [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = "byName" )] [ValidateNotNullOrEmpty()] [string]$SafeName, [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $false, ParameterSetName = "byQuery" )] [string]$query, [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $false, ParameterSetName = "byAll" )] [switch]$FindAll, [parameter( Mandatory = $false, ValueFromPipelineByPropertyName = $false )] [int]$TimeoutSec ) BEGIN { }#begin PROCESS { #Create base URL for request $URI = "$Script:BaseURI/WebServices/PIMServices.svc/Safes" #If SafeName specified If ($($PSCmdlet.ParameterSetName) -eq "byName") { $returnProperty = "GetSafeResult" #Build URL from base URL $URI = "$URI/$($SafeName | Get-EscapedString)" } #If search query specified ElseIf ($($PSCmdlet.ParameterSetName) -eq "byQuery") { $returnProperty = "SearchSafesResult" #Get Parameters to include in request $boundParameters = $PSBoundParameters | Get-PASParameter #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" } } ElseIf ($($PSCmdlet.ParameterSetName) -eq "byAll") { $returnProperty = "GetSafesResult" } #send request to web service $result = Invoke-PASRestMethod -Uri $URI -Method GET -WebSession $Script:WebSession -TimeoutSec $TimeoutSec If ($null -ne $result) { $result.$returnProperty | Add-ObjectDetail -typename psPAS.CyberArk.Vault.Safe } }#process END { }#end } |