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

{{percentage}} % positiv

DANKE für deine Bewertung!

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. ... weiterlesen

PowerShell Loops und Array
Ein Array speichert mehrere Werte, ähnlich einer 2 spaltigen Tabelle. ... weiterlesen

PowerShell Log-Files: Logging in eine Textdatei - write to file
Logfiles in PowerShell können über den Befehl Out-File, über eine eigene Funktion oder über das in PowerShell integrierte Transcript erstellt werden. ... weiterlesen
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.