resources/certificate.ps1

function Export-QlikCertificate {
    [CmdletBinding()]
    param (
        [parameter(Mandatory = $true, Position = 0)]
        [string[]]$machineNames,

        [SecureString]$certificatePassword,
        [switch]$includeSecretsKey,
        [ValidateSet("Windows", "Pem")]
        [String]$exportFormat = "Windows"
    )

    PROCESS {
        Write-Verbose "Export path: $(Get-QlikCertificateDistributionPath)"
        $body = @{
            machineNames = @( $machineNames );
        }
        If ( $certificatePassword ) { $body.certificatePassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($CertificatePassword)) }
        If ( $includeSecretsKey ) { $body.includeSecretsKey = $true }
        If ( $exportFormat ) { $body.exportFormat = $exportFormat }
        $json = $body | ConvertTo-Json -Compress -Depth 10

        return Invoke-QlikPost "/qrs/certificatedistribution/exportcertificates" $json
    }
}
Set-Alias -Name Export-QlikCertificates -Value Export-QlikCertificate

function Get-QlikCertificateDistributionPath {
    [CmdletBinding()]
    param (
    )

    PROCESS {
        $path = "/qrs/certificatedistribution/exportcertificatespath"
        return Invoke-QlikGet -Path $path
    }
}