19 lines
611 B
PowerShell
19 lines
611 B
PowerShell
|
function Get-CertificateExportName {
|
||
|
<#
|
||
|
.SYNOPSIS
|
||
|
Fetches a Certificate's Export Name.
|
||
|
#>
|
||
|
[CmdletBinding()]
|
||
|
param(
|
||
|
[Parameter(Mandatory = $true)]
|
||
|
$Cert
|
||
|
)
|
||
|
|
||
|
$canonicalName = ($cert.Subject.Trim().Split(",") | Where-Object {$_ -match "CN="} | Select-Object -First 1 ) -replace "CN=", ""
|
||
|
$invalidFileNameChars = [IO.Path]::GetInvalidFileNameChars() -join ''
|
||
|
$validFileNameCN = ($canonicalName -replace ("[{0}]" -f [RegEx]::Escape($invalidFileNameChars)))
|
||
|
|
||
|
$certName = if ($validFileNameCN) { $validFileNameCN } else { $cert.Thumbprint }
|
||
|
|
||
|
return $certName.Trim()
|
||
|
}
|