Пароль жесткого кода в powershells "New-PSSession"

У меня есть script для получения и установки пользовательских переменных среды Windows на других компьютерах для данного пользователя. Можно ли жестко закодировать пароль для этого пользователя, чтобы я не вводил его каждый раз при запуске script?

Мой script выглядит примерно так:

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

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

Ответ 1

Yep - вы можете полностью это сделать, если вам комфортно с последствиями безопасности (PW в файле где-то)...

Вот пример:

 $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

Ответ 2

Я использовал этот подход в подобных ситуациях. Это, конечно, не идеально, но это делает меня гораздо менее нервным, чем жесткое кодирование пароля в файле. Я прочитал и сохранил пароль во время первого запуска, а затем прочитал из файла с зашифрованным DPAPI. Обычно я запускаю сценарии из общего места во внутренней сети и сохраняю зашифрованный файл паролей в частной папке на своей локальной машине.

$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)
}