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 1
Geben Sie Werte für die folgenden Parameter an:
PS C:\Users\User> $credUser
Name 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

{{percentage}} % positiv

DANKE für deine Bewertung!
Top-Artikel in diesem Bereich
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.
Logfiles in PowerShell können über den Befehl Out-File, über eine eigene Funktion oder über das in PowerShell integrierte Transcript erstellt werden.
Dieser Artikel ist eine Zusammenfassung von Beispielen für das Erstellen und Auslesen von Text und CSV Dateien in PowerShell.
Fragen / Kommentare
(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]
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.