Zertifikatsdialoge aus Powershell heraus anzeigen


Beim beschäftigen mit Zertifikaten in Powershell wäre es manchmal hilfreich ein Zertifikat in der üblichen Darstellung unter Windows angezeigt zu bekommen. Dank der nahen Anbindung zum .Net Framework ist dies recht einfach möglich.

Hier ein Beispiel, es wird ein beliebiges Zertifikat zu Demonstrationszwecken ermittelt:

$c=dir cert:\CurrentUser\My| select –First 1

Das Zertifikat in $c kann nun mittels dieses Aufrufs im üblichen Windows Dialog angezeigt werden:

[System.Security.Cryptography.X509Certificates.X509Certificate2UI]
::DisplayCertificate($c)

Beide Zeilen gehören direkt aneinander in eine Zeile!

Aber es geht noch besser. Man kann auch einen Auswahldialog öffnen, mit einer Auswahl von Zertifikaten und dann dem Benutzer einen Dialog anzeigen, wo er das passende Zertifikat auswählen kann.

Zunächst brauchen wir ein paar Zertifikate:

$cs=dir cert:\CurrentUser\My

Leider handelt es sich bei $cs nun um ein Array von Zertifikaten. Damit der Auswahldialog funktioniert, muss eine Zertifikatkollektion vom Typ X509Certificate2Collection übergeben werden. Diese erhält man aber ganz einfach, durch diesen Schritt:

$col=[System.Security.Cryptography.X509Certificates.
X509Certificate2Collection]::new($cs)

Bei obiger Zeilen muss wieder alles in eine Zeile hintereinander geschrieben werden.

Nun hat man auf jeden Fall eine Zertifikatskollektion in $col. Damit kann man nun diesen Aufruf durchführen:

$c=[System.Security.Cryptography.X509Certificates.
X509Certificate2UI]::SelectFromCollection($col,"Überschrift", "Hinweistext", [System.Security.Cryptography.X509Certificates.
X509SelectionFlag]::SingleSelection)

Man bekommt nun alle Zertifikate in $col angezeigt und kann sogar noch die Überschrift und einen Hinweistext beeinflussen. Nach der Auswahl bekommt in $c das ausgewählte Zertifikat zugewiesen.

Hier noch die API-Links:
DisplayCertificate:
http://msdn.microsoft.com/de-de/library/ms223201(v=vs.110).aspx
SelectFromCollection:
http://msdn.microsoft.com/de-de/library/ms223189(v=vs.110).aspx
X509Certificate2Collection:
http://msdn.microsoft.com/de-de/library/system.security.cryptography.x509certificates.
x509certificate2collection(v=vs.110).aspx

Eine Antwort to “Zertifikatsdialoge aus Powershell heraus anzeigen”

  1. Quirel Says:

    Hinweis! Wenn [System.Security.Cryptography.X509Certificates.X509Certificate2UI] nicht vorhanden ist, dann einfach in der ISE probieren.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s


%d Bloggern gefällt das: