Public/Get-Credential.ps1
|
function Get-Credential { [CmdletBinding()] param ( [Parameter( Position=0, Mandatory=$false, ValueFromPipelineByPropertyName=$true )] [string]$Host = $Script:Host, [Parameter( Position=1, Mandatory=$false, ValueFromPipelineByPropertyName=$true )] [string]$SessionKey = $Script:SessionKey, [Parameter( ValueFromPipelineByPropertyName=$true )] [switch]$UseSSL = $Script:UseSSL, [Parameter( ValueFromPipelineByPropertyName=$true )] [switch]$IgnoreCertificateErrors = $Script:IgnoreCertificateErrors, [Parameter()] [int]$Id, [Parameter()] [int]$PersonId, [Parameter()] [ValidateRange(1,250)] [int]$Limit = 250 ) begin { if($IgnoreCertificateErrors) { [System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true } } } process { $endPoint = "api/credentials" $method = "GET" $contentType = "application/json" $uri = "http" + $(if($UseSSL) { "s" }) + "://$($Host)/$($endPoint)" $headers = @{ Authorization=$SessionKey; } $query = @{ limit=$Limit; } if($Id) { $uri = "$uri/$Id" } if($PersonId) { $query.Add("personId", $PersonId) } Write-Verbose -Message "$($method) $($uri) $($contentType)" Write-Verbose -Message "Query:`n$(ConvertTo-Json $query)" $message = @{ Uri=$uri; Method=$method; Body=$query; ContentType=$contentType; Headers=$headers; UseBasicParsing=$true; } $response = Invoke-RestMethod @message $response | ForEach-Object { New-Object -TypeName PSObject -Property @{ Id=$_.id; ActiveFrom=$_.activeFrom; ActiveTo=$_.activeTo; AntipassbackExempt=$_.antipassbackExempt; Cardnumber=$_.cardNumber; AccessLevels=$_.accessLevels; Pin=$_.pin; PersonId=$_.PersonId; ExtendedAccess=$_.extendedAccess; IssueCode=$_.issueCode; } } } end { [System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $null } } } |