Functions/Export-PSEncryptedCredential.ps1
function Export-PSEncryptedCredential { [OutputType([void])] [CmdletBinding()] param ( [Parameter(Mandatory,ParameterSetName='Path')] [Parameter(Mandatory,ParameterSetName='Thumbprint')] [Parameter(Mandatory,ParameterSetName='Certificate')] [System.Management.Automation.Credential()] [ValidateNotNull()] [PSCredential] $Credential, [Parameter(Mandatory,ParameterSetName='Path')] [Parameter(Mandatory,ParameterSetName='Thumbprint')] [Parameter(Mandatory,ParameterSetName='Certificate')] [ValidateNotNullOrEmpty()] [string] $OutputPath, [Parameter(Mandatory, ParameterSetName='Path')] [ValidateNotNullOrEmpty()] [string] $Path, [Parameter(Mandatory, ParameterSetName='Thumbprint')] [ValidateNotNullOrEmpty()] [string] $Thumbprint, [Parameter(Mandatory, ParameterSetName='Certificate')] [ValidateNotNull()] [System.Security.Cryptography.X509Certificates.X509Certificate2] $Certificate, [ValidateNotNull()] [System.Security.Cryptography.SymmetricAlgorithm] $Provider = ([System.Security.Cryptography.Aes]::Create()) ) process { $PSBoundParameters.Remove('Credential') | Out-Null @{UserName=$Credential.UserName;Password=$Credential.GetNetworkCredential().Password} | ConvertTo-Json | Out-String | Export-PSEncryptedData @PSBoundParameters } } |