judgelg
Goto Top

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.

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

Content-ID: 670230

Url: https://administrator.de/contentid/670230

Ausgedruckt am: 17.12.2024 um 08:12 Uhr

prinzjulius
prinzjulius 17.12.2024 aktualisiert um 09:00:59 Uhr
Goto Top
Guten Morgen,

Ich denke, was du suchst ist der „Subject Alternative Name“ anstelle des „Common Name“, der die Mail-Adresse enthält.

Ungetestet:


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)"  
    }
}
Judgelg
Judgelg 17.12.2024 um 09:27:41 Uhr
Goto Top
Hallo,

danke für deine Antwort. Ich werde es in den nächsten Tagen testen und gebe eine rückmeldung.

Mfg