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
编码愉快!
我在 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
编码愉快!