【发布时间】:2021-09-20 00:37:29
【问题描述】:
是否可以使用 Powershell 任务检索 AzDO 库服务器变量并输出为纯文本?我知道我们可以将变量输出到文本文件,但我的用例需要 PS 脚本,但找不到实现它的方法。
我见过this 和this,经过一些修改,可以以纯文本形式检索密码和 Azure keyvault 机密,但它不适用于 AzDO 机密。
我一直在尝试使用它的变体,但新的“非秘密”变量仍然带有星号:
$SecurePassword = ConvertTo-SecureString $(testStringSecret) -AsPlainText -Force
$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecurePassword)
try {$secretValueText = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr)}
finally {[System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)}
有没有人设法做到这一点,如果有,您能否提供有关您做了什么的详细信息?
提前致谢。
【问题讨论】:
-
在您尝试将其更改为纯文本之前,如果您将变量通过管道传递到
Get-Member,那么给出的 TypeName 是什么? -
@BoogaRoo 当我通过管道传输它时,它显示为常规字符串,因此我需要在一开始就转换为安全字符串。
-
如果它以星号的形式出现并且是纯字符串,那么再多的转换为安全字符串并返回都无法“恢复”它。我认为你必须想办法把它从 Azure 中去掉。
-
如果你的秘密被掩盖了——我的意思是打印为
******。没关系。它仍然是纯文本,但它掩盖了将其流式传输到日志的值,以确保它不会被泄露。