Zertifikate in die GAL per Powershell
Hallo,
gibt es auch die Möglichkeit den UPN raus zu suchen, anstatt den CN? Er findet teilweise den CN (weil dort teilweise Prof.Name und Dr. Name steht) nicht und müsste besser mit der E-Mail Adresse arbeiten.
Mfg
gibt es auch die Möglichkeit den UPN raus zu suchen, anstatt den CN? Er findet teilweise den CN (weil dort teilweise Prof.Name und Dr. Name steht) nicht und müsste besser mit der E-Mail Adresse arbeiten.
foreach($file in Get-ChildItem "D:\certs" -File -Filter *.pem){
$cert = [System.Security.Cryptography.X509Certificates.x509certificate2]::new($file.Fullname)
$cn = $cert.Subject -replace '.*CN=([^,]+).*','$1' -replace 'oe','ö' -replace 'ae','ä' -replace 'ue','ü'
Set-Mailbox -Identity $cn -UserCertificate (,$cert.GetRawCertData())
}
Mfg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 670230
Url: https://administrator.de/contentid/670230
Ausgedruckt am: 17.12.2024 um 08:12 Uhr
2 Kommentare
Neuester Kommentar
Guten Morgen,
Ich denke, was du suchst ist der „Subject Alternative Name“ anstelle des „Common Name“, der die Mail-Adresse enthält.
Ungetestet:
Ich denke, was du suchst ist der „Subject Alternative Name“ anstelle des „Common Name“, der die Mail-Adresse enthält.
Ungetestet:
Quelle: ChatGPT 4o KI
foreach ($file in Get-ChildItem "D:\certs" -File -Filter *.pem) {
# Zertifikat laden
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($file.Fullname)
# SAN-Erweiterung extrahieren
$sanExtension = $cert.Extensions | Where-Object { $_.Oid.FriendlyName -eq "Subject Alternative Name" }
if ($sanExtension) {
$sanContent = $sanExtension.Format(0)
# Mail-Adresse oder erster Eintrag aus dem SAN extrahieren
$sanMail = ($sanContent -split '\r?\n' | Where-Object { $_ -match "email:" }) -replace '.*email:([^,]+).*', '$1'
if ($sanMail) {
Write-Output "Verwende SAN-E-Mail-Adresse: $sanMail"
# Set-Mailbox-Befehl
Set-Mailbox -Identity $sanMail -UserCertificate (,$cert.GetRawCertData())
} else {
Write-Warning "Keine E-Mail-Adresse im SAN gefunden für Zertifikat: $($file.FullName)"
}
} else {
Write-Warning "Keine SAN-Erweiterung gefunden für Zertifikat: $($file.FullName)"
}
}