Как запустить Get-Credential один раз, затем сохранить учетные данные и повторно использовать их в одном сеансе - PullRequest
0 голосов
/ 16 октября 2018

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

Однако, поскольку это зацикленное меню (чтобы иметь возможность запускать разные команды), оно запрашивает диалог пользователя / пароля каждый раз при перезапуске цикла.

У всех есть какие-либо идеи о том, какизменить это ?, чтобы пользователь / пароль вводился один раз, а затем при последующих запусках пароль не запрашивается повторно для этого сеанса?

Я думаю, мне нужно условие для получения учетных данных, но я не уверен .. (частичный, но соответствующий раздел, потому что меню довольно длинное ..

Оцените любой ввод

LoadMenuSystem
$Key = New-Object Byte[] 32
[Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($Key)
$Key | Out-File AES.key

(get-credential).Password | ConvertFrom-SecureString -key (get-content AES.key) | set-content "AESPassword.txt"

$password = Get-Content AESPassword.txt | ConvertTo-SecureString -Key (Get-Content AES.key)

$credential = New-Object System.Management.Automation.PsCredential($env:userName,$password)

$ServerName = Read-Host -Prompt "What is the server name?"

$Command = ".\myProgram"
$arg1  =  '-t'
$arg2 = $credential.GetNetworkCredential().username+'@'+$ServerName
$arg3 = '-pw'
$arg4 = $credential.GetNetworkCredential().Password
$arg5 = $scriptcmd
...