Powershell - сохранить зашифрованного пользователя и передать скрипт? - PullRequest
0 голосов
/ 19 июня 2020

Я использую скрипт в Powershell, который делает веб-запрос с пользователем и паролем из API. Поскольку это общий компьютер, по соображениям безопасности я хочу зашифровать имя пользователя и пароль. это базовый c веб-запрос, который я использую (который я получаю из другого вопроса в переполнении стека):

$user = 'user'
$pass = 'pass'

$pair = "$($user):$($pass)"

$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))

$basicAuthValue = "Basic $encodedCreds"

$Headers = @{
    Authorization = $basicAuthValue
}

Invoke-WebRequest -Uri 'https://whatever' -Headers $Headers

Моя проблема в том, что я не нашел способ зашифруйте переменные пользователя и пароля, попробуйте использовать ConvertTo-SecureString и convertTFrom-SecureString, но это не работает. Я хочу знать, есть ли способ сохранить зашифрованные учетные данные в файле или другим способом. без необходимости сохранять как переменную среды и избежать получения учетных данных, поскольку я хочу автоматизировать скрипт как задачу.

Прокомментируйте любые сомнения.

Спасибо за внимание, удачного кодирования.

С уважением

1 Ответ

0 голосов
/ 26 июня 2020

Если у кого-то в будущем возникнет такая же проблема, как у меня, вы можете использовать следующий инструмент в PowerShell, Export-Cli xml и Import-Cli xml:

$cred = Get-Credential | Export-CliXml -Path ..\cred.ps1.credentials

, а затем используйте импорт для доступа к учетным данным $Credential = Import-CliXml -Path "..\cred.ps1.credentials"

теперь вам нужно добавить в invoke-webrequest

Invoke-WebRequest -Uri 'https://whatever' -credentials $credential

Удачного кодирования!

...