PowerShell - Umgang mit Passw├Ârtern


Passw├Ârter sollten nat├╝rlich niemals im Klartext in einer Skriptdatei hinterlegt werden. PowerShell bietet M├Âglichkeiten f├╝r einen sicheren Umgang mit Passw├Ârtern. Als Beispiel kann ein Passwort f├╝r einen bestimmten Benutzer verschl├╝sselt als Textdatei gespeichert werden. Nur der jeweilige Benutzer kann die Datei entschl├╝sseln, f├╝r andere Benutzer ist die Datei wertlos.

Get-Credential

F├╝r die Eingabe von Benutzername und Passwort bietet PowerShell folgendes cmdlet: Get-Credential

PS C:\Users\User> $cred=Get-CredentialCmdlet Get-Credential an der Befehlspipelineposition 1Geben Sie Werte f├╝r die folgenden Parameter an:PS C:\Users\User> $credUserName Password-------- --------username System.Security.SecureString

PSCredential-Object erzeugen und in eine Datei speichern

Einige Cmdlets k├Ânnen das erzeugte PSCredential-Object direkt verwenden. Werden die Anmeldeinformationen mehrfach ben├Âtigt, k├Ânnen diese nat├╝rlich in einer Variable gespeichert werden, bzw. in eine Datei f├╝r einen sp├Ąteren Aufruf:

#Authentication Passwort File generieren:
if (-not (Test-Path "$($env:Temp)\myapp_password.txt")) {
    $credential = Get-Credential
    $credential.Password | ConvertFrom-SecureString | Set-Content "$($env:Temp)\myapp_password.txt"
}

PSCredential-Object von Datei lesen

F├╝r das Erzeugen des PSCredential-Object aus einer Datei ben├Âtigen wir den Benutzernamen: Variable $user

$Credential=New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user, (Get-Content "$($env:Temp)\myapp_password.txt" | ConvertTo-SecureString)

Passwort in eine Datei speichern 

Das Passwort kann auch direkt ohne "Get-Credential" in eine Datei gespeichert werden

"password" | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File "$($env:Temp)\myApp_password.txt"

Das Passwort "password" schaut in der Datei so aus:

Passwort aus der Datei auslesen und als Klartext-Passwort verwenden: 

$SecureCredential = Get-Content "$($env:Temp)\myApp_password.txt" | ConvertTo-SecureString
$UnsecurePassword = (New-Object PSCredential "username",$SecureCredential).GetNetworkCredential().Password

 

 

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE f├╝r deine Bewertung!

Aktualisiert: 19.11.2016 von Bernhard ­čöö


Top-Artikel in diesem Bereich


Windows PowerShell Skript erstellen und ausf├╝hren
Im einfachsten Fall ist ein PowerShell-Skript eine Textdatei mit einer Reihe von PowerShell-Befehlen. Als PowerShell Skript versteht man eine Datei mit der Endung .ps1. Die Skriptdatei kann eine Sammlung von Befehlen, Funktionen oder Cmdlets enthalten.

Windows PowerShell Befehle: commands im ├ťberblick
die verf├╝gbaren PowerShell Befehle k├Ânnen mit dem Befehl:

PowerShell Loops und Array
Ein Array speichert mehrere Werte, ├Ąhnlich einer 2 spaltigen Tabelle.

Fragen / Kommentare


(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]

ÔťŹanonym
05.06.2018 09:12
User: Stefan 
Unter dem Abschnitt "Passwort aus der Datei auslesen und als Klartext-Passwort verwenden:" hat sich folgender Fehler eingeschlichen.

Die Variable "$SecurePassword" muss "$SecureCredential" hei├čen, so wie am Anfang der Zeile dar├╝ber festgelegt.

Erg├Ąnzend k├Ânnte man noch "Write-Host $UnsecurePassword" als dritte Zeile notieren.