2012-04-04 2 views
11

Ich habe ein Skript zum Abrufen und Festlegen von Windows-Umgebungsvariablen des Benutzers auf anderen Computern für einen bestimmten Benutzer. Ist es möglich, das Kennwort für diesen Benutzer fest zu codieren, damit ich es nicht jedes Mal eingeben muss, wenn ich das Skript ausführe?Hardcode-Passwort in Powershells "New-PSSession"

Mein Skript sieht wie folgt aus:

$s5 = New-PSSession -computername testauto2, testauto3 -Credential 
Domain\testautouser 

invoke-command -session $s5[0] -scriptblock {[Environment]::GetEnvironmentVariable("TestBrowser", "user")} 
+0

einige hier Hinweise: http://powershell.com/cs/blogs/tobias/archive/2010/10/22/encrypting-passwords.aspx –

Antwort

14

Yep - Sie dies völlig tun können, solange Sie sich mit den Auswirkungen auf die Sicherheit (ein PW in einer Datei irgendwo) sind komfortabel ...

Hier ein Beispiel:

$pw = convertto-securestring -AsPlainText -Force -String <insert pw here> 
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "Domain\User",$pw 
$session = new-pssession -computername <computer> -credential $cred 
5

Ich habe diesen Ansatz in ähnlichen Situationen verwendet. Es ist sicherlich nicht perfekt, aber es macht mich viel weniger nervös, als ein Passwort in einer Datei zu kodieren. Ich lese und speichere das Passwort während des ersten Laufs und lese anschließend aus der DPAPI-verschlüsselten Datei. Ich führe Skripts normalerweise von einem freigegebenen Speicherort in einem internen Netzwerk aus und speichere die verschlüsselte Kennwortdatei in einem privaten Ordner auf meinem lokalen Computer.

$user = "Domain\testautouser" 
$passwdFile = "$env:USERPROFILE\myscript-$user" 
if ((Test-Path $passwdFile) -eq $false) { 
    $cred = new-object system.management.automation.pscredential $user, 
     (read-host -assecurestring -prompt "Enter a password:") 
    $cred.Password | ConvertFrom-SecureString | Set-Content $passwdFile 
} 
else { 
    $cred = new-object system.management.automation.pscredential $user, 
     (Get-Content $passwdFile | ConvertTo-SecureString) 
} 
+0

Ich denke, das eine große Bereicherung ist die Sicherheit zu erleichtern betrifft ein wenig. –