Powershell - 保存加密用户并传入脚本?

Powershell - Save encrypted user and pass in a script?

我在 Powershell 中使用了一个脚本,它使用来自 API 的用户名和密码发出 Web 请求。由于是共享计算机,出于安全考虑,我想对用户和密码进行加密。 这是我使用的基本 Web 请求(我从堆栈溢出中的其他 获得):

$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,但它不起作用。我想知道是否有办法将加密的凭据保存在文件或其他方式中。无需保存为环境变量并避免获取凭据,因为我想将脚本作为任务自动化。

有任何疑问请评论。

感谢观看,编码愉快。

此致

如果以后有人遇到和我一样的问题,可以使用powershell中的下一个工具,Export-Clixml和Import-Clixml:

$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

编码愉快!