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() }