(0)
Artikel
bewerten
(100% positiv)
(1)

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.

Get-Credential

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

PS C:\Users\User> $cred=Get-Credential
Cmdlet Get-Credential an der Befehlspipelineposition 1
Geben Sie Werte für die folgenden Parameter an:

PS C:\Users\User> $cred

UserName 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",$SecurePassword).GetNetworkCredential().Password

 

 

letzte Änderung dieses Artikels: 19.11.2016 09:21




Kommentare