25/04/16

HowTo: Passwörter in Powershell-Script sicher speichern

Heute war ich mal wieder am Scripten in der Powershell. Unter anderem sollte eine Sitzung zu einem entfernten Rechner aufgebaut werden. Damit nicht immer die Passwortabfrage kommt, wollte ich das Passwort in dem Script speichern. Zwar gibt es mit

ConvertTo-SecureString „password“ -AsPlainText -Force

einen Befehl um das Password als SecureString dem System zu übergeben, jedoch steht es dann Plaintext im Script drinnen. Schlechte Idee wenn man auf einem System arbeitet, wo potenziell jeder dieses Script sich zumindest ansehen könnte. Hier nun die viel bessere Variante:

Zuerst das gewünschte Passwort in einen SecureString verwandeln

„password“ | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString

Als Ausgabe bekommt man den SecureString, diese Zeichenfolge nun als Variable in das Script packen

$password = 01000000d08c9ddf0115d1118c7a00c04fc297eb0100000042c9ec6c1246024e87c02a249d644c3f0000000002000000000003660000c000000010000000822cda5d495360f9d897c390fc84224c0000000004800000a0000000100000005fb5e15f2e933a865a34f70de3ad7a7c180000004d2443bbdcfd7c4fbd18ed97158da3475b9641cc504e3a531400000043152ab5ff1d21c5e732554e3e3f560697f0c6e7

Anschließend könnte man nun so die Credentials speichern

$User =“domain.local\username“
$MyCredential= New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, ($password | ConvertTo-SecureString)

Für eine PSSession würde der Befehl dann am Schluss so aussehen

Enter-PSSession -Computer „Computername“ -Credential $MyCredential

Autor: Christoph

IT mit Herz und Seele. Interessiert sich für fast alles wofür Technical-Life steht und hat hier Anfangs an den Mühlen gedreht. Serienjunkie aus Überzeugung. Twitter: @technicallife

Powershell , , ,

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.