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

 

 

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

DANKE f├╝r deine Bewertung!

Aktualisiert: 19.11.2016 von Bernhard |­čöö

Ô×Ę PowerShell Invoke-webrequest | Ô׎ Windows PowerShell

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.


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.


PowerShell regex - Einf├╝hrung und Beispiele

Regex kann in den meisten Skriptsprachen nahezu gleich verwendet werden, daher habe ich die Grundbegriffe und Funktionsweise in einem gesonderten Beitrag zusammengefasst, siehe┬áRegex - ├ťberblick. Dieser Beitrag beinhaltet Speziali├Ąten bei der Verwendung von Regex in PowerShell, sowie die Beispiele des Regex - Grundlagen Artikels. ┬á Powershell: verschiedene Regex-Varianten PowerShell verf├╝gt ├╝ber eigene Regex-Operatoren, als Beispiel: -match oder -replace. Nachdem Po...

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.