PowerShell – 07.1 – Get-Credential

Save page

Die cmdlet Get-Credential eignet sich hervorragend um eine Benutzerauthentifizierung durchzuführen. Das eingegebene Passwort wird als Secure String hinterlegt und kann somit nicht ohne Weiteres als Klartext ausgeben werden. Versucht man das Passwort als String auszugeben wird lediglich „System.Security.SecureString“ angezeigt.  Um Benutzername und Passwort in einem Script verwenden zu können muss der Input natürlich in eine Variable gespeichert werden. Dies geschieht hier mit $MyCredential. Über $MyCredential.UserName lässt sich der Benutzername ausgeben. Das eingegebene Passwort hingegen nicht.

Natürlich kann das Passwort auch mittels einer cmdlet wieder entschlüsselt werden. Dies ist allerdings nur in beschränkten Maße möglich. Bei der Verschlüsselung des SecureString wird die SID des Benutzers und des Computers verwendet. So ist es nur dem Benutzer möglich den SecureString wieder zu entschlüsseln, der ihn verschlüsselt hat und das nur auf  dem selben Computer wo er den Verschlüsselung vorgenommen hat. Ändert sich die SID des Benutzers oder des Computers ist die Datei Müll. Die Console wirft dann Fehler wie „Schlüssel ist im angegebenen Status nicht möglich“.

So sieht die Eingabebox der cmdlet aus. Diese lässt sich noch einwenig anpassen.

00 get-credential

In dem Hinweistext können auch Variablen verarbeitet werden. In diesem Beispiel sind keine Variablen verwendet worden. Dennoch wäre es möglich vorher ermittelte Daten wie z.B. der letzte Logon des Users, etc. zu implementieren.

01 get-credential

Vordefinierte Benutzernamen sind ebenfalls möglich.

02 get-credential

Hier ein Beispiel um eine Passwortabfrage zu prüfen. Der große Nachteil dieses Script ist, das das Passwort in Klartext hinterlegt werden muss. Doch Für dieses Problem gibt es auch eine Lösung. Dazu mehr in einem nächsten Artikel.  Ich werde beschreiben wie sich Passwörter sicher in Textfiles scheiben lassen und wie man diese für spätere Zwecke wieder nutzen kann.

 So viel zu den Grundlagen zu Get-Credential.

rewe

Ein Gedanke zu „PowerShell – 07.1 – Get-Credential

  1. Pingback: PowerShell – Masterindex | Blog: Stefan Rehwald

Kommentar verfassen