Functions/LDAPDirectories/Add-PASDirectory.ps1
# .ExternalHelp psPAS-help.xml function Add-PASDirectory { [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingPlaintextForPassword', '', Justification = "It's a path to password object")] [CmdletBinding(DefaultParameterSetName = '10.4')] param( [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.4' )] [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.7' )] [string]$DirectoryType, [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.4' )] [string[]]$HostAddresses, [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.4' )] [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.7' )] [string]$BindUsername, [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.4' )] [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.7' )] [securestring]$BindPassword, [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.4' )] [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.7' )] [ValidateRange(1, 65535)] [int]$Port, [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.7' )] [hashtable[]]$DCList, [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.4' )] [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.7' )] [string]$DomainName, [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.4' )] [parameter( Mandatory = $true, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.7' )] [string]$DomainBaseContext, [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.4' )] [parameter( Mandatory = $false, ValueFromPipelinebyPropertyName = $true, ParameterSetName = '10.7' )] [boolean]$SSLConnect ) BEGIN { Assert-VersionRequirement -RequiredVersion $PSCmdlet.ParameterSetName }#begin PROCESS { #Create URL for request $URI = "$($psPASSession.BaseURI)/api/Configuration/LDAP/Directories" #Get request parameters $boundParameters = $PSBoundParameters | Get-PASParameter #deal with BindPassword SecureString If ($PSBoundParameters.ContainsKey('BindPassword')) { #Include decoded bind password in request $boundParameters['BindPassword'] = $(ConvertTo-InsecureString -SecureString $BindPassword) } $body = $boundParameters | ConvertTo-Json #send request to web service $result = Invoke-PASRestMethod -Uri $URI -Method POST -Body $Body If ($null -ne $result) { #Return Results $result | Add-ObjectDetail -typename psPAS.CyberArk.Vault.Directory.Extended } }#process END { }#end } |