Hallo Alle !
Wer viel mit Remoting arbeitet und entfernte Server administriert wird Get-Credential schon nicht mehr schreiben wollen. Schön wäre es, diese Anmeldedaten (Credentials) viel einfacher bereitzustellen indem man Sie als Datei ablegt.
Lösungsansatz Export-CliXML
Das CodeBeispiel unten (von powershell.com) zeigt wie das mit Export-XML funktioniert.
[codesyntax lang=“powershell“]
1 2 |
$CredPath = "$home\Desktop\mycred.xml" Get-Credential | Export-Clixml -Path $CredPath |
[/codesyntax]
Export-CliXML verschlüsselt die XML Datei mittels der Microsoft Data Protection API und es kann nur durch das Benutzerkonto ausgelesen werden, welches die Datei abgelegt hat.
Holen kann man sich die Credentials dann mittels der Beispieles unten.
[codesyntax lang=“powershell“]
1 2 3 |
$CredPath = "$home\Desktop\mycred.xml" $cred = Import-Clixml -Path $CredPath $cred |
[/codesyntax]
Danach liegen die Credentials in der $cred Variable und können in Scripts und Befehlsaufrufen verwendet werden. Auch eine zentrale Ablage dieser XML Dateien ist möglich, da der Schutz durch die Verschlüsselung den Zugriff auf das Passwort durch den Benutzeraccount und dem Konto der Maschine auf dem das XML erstellt wurde schützt. Die Dokumentation von Export-CliXML ist hier leider etwas ungenau, denn hier wird nur vom Benutzerkonto gesprochen.
Das Ausgabefile sieht dann so aus.
Lösungsansatz mittels verschlüsseltem JSON
Wem der Aufbau des XML-Files zu kompliziert ist kann das gleiche Ergebnis mittels verschlüsseltem JSON-File machen. Danke für den Tipp an www.powershell.com
[codesyntax lang=“powershell“]
1 2 3 4 5 |
$path = "$home\Desktop\mycred.json" $cred = Get-Credential $cred | Select Username,@{n="Password"; e={$_.password | ConvertFrom-SecureString}} | ConvertTo-Json | Set-Content -Path $path -Encoding UTF8 |
[/codesyntax]
Das erzeugt eine JSON Datei mit dem gleichen Zweck und Einschränkungen (Verschlüsselt mit Benutzer und MaschinenKonto) wie die XML Datei (verschlüsseltes Passwort), allerdings ist die Datei schöner lesbar.
KeePass Datenbank verwenden
Keepass ist ein sehr weit verbreitetes Werkzeug zum speichern von Kennwörtern. Im Blog von it-by-doing.blogspot.co.at hat Mathias Lundgren eine Keepass Datei mittels Credentials geschützt und dann diese Funktionen geschrieben (auf seinem Blog beschriieben) um die Kennwörter aus dieser Datenbank ablesen.
Eine zweite Variante zeigt uns Sturbi auf seinem Blogeintrag, in dem ein Maschinenzertifikat verwendet wird. Eine interessante Variante, die man mal ausprobieren sollte.
Viel Spass beim testen wünscht euch – Roman