Get-IpsCredentials.ps1
<# .Synopsis List all credentials in customer's credential wallet. .Description List all credentials in customer's credential wallet. This function supports listing all credentials in customer's credential wallet. #> Function Get-IpsCredentials { [CmdletBinding()] Param( # Citrix Cloud customer id. [Parameter(Mandatory = $true)] [string]$CustomerId, # Credential type of target platform. [Parameter(Mandatory = $false)] [ValidateSet("Azure", "Gcp", "UsernamePassword")] [string]$CredentialType, # Citrix Cloud credentials. [Parameter(Mandatory = $false)] [string]$SecureClientId = "", [Parameter(Mandatory = $false)] [string]$SecureSecret = "", [Parameter(Mandatory = $false)] [string]$LogFileName = 'Credentials.log', [Parameter(Mandatory = $false)] [switch]$Force ) Begin { Add-PSSnapin Citrix.* } Process { # Initialize Logger # Set parameter 'Verbose' by internal parameter 'VerbosePreference', since the option -Verbose is occupied by powershell cmdlet if($VerbosePreference -eq 'Continue') { $Verbose = $True } else { $Verbose = $False } LogInit $LogFileName $Force $Verbose try { # Authenticate to Citrix Cloud $parameters = AuthToCitrixCloud $CustomerId $SecureClientId $SecureSecret if ([string]::IsNullOrWhiteSpace($SecureClientId) -Or [string]::IsNullOrWhiteSpace($SecureSecret)) { $SecureClientId = $parameters.ApiKey $SecureSecret = $parameters.SecretKey } } catch { return } try { LogIt "Getting all credentials from credential wallet" $credentialsList = Invoke-CCRestMethod 'Get' '' 'credentials' $CustomerId $SecureClientId $SecureSecret $false $null if ($CredentialType) { LogIt "Listing credentials of $CredentialType" foreach ($credential in $credentialsList.items) { if ($credential.type -eq $CredentialType) { LogIt $credential } } } else { LogIt "Listing all credentials" foreach ($credential in $credentialsList.items) { LogIt $credential } } } catch { LogFatal "Failed to get the credential list: $_" } } } |