gpt4 book ai didi

powershell - 如何将 secret 类型变量传递给脚本?

转载 作者:行者123 更新时间:2023-12-02 23:35:42 26 4
gpt4 key购买 nike

我定义了一些构建定义变量,其中一些是 secret 类型。

我正在尝试将 secret 变量$RPASS传递给TFS上的内联Powershell脚本任务,但看来那是行不通的。

我在这里看了这篇文章:How to add secret variable as task environment variable in VSTS

但是,示例使用命令行。

是否可以在Powershell内联任务中传递类似的参数?

$sec = New-Object -TypeName System.Security.SecureString
"$RPASS".ToCharArray()|%{$sec.AppendChar($_)}
$creds = new-object -typename System.Management.Automation.PSCredential -args "$env:USER", $sec
Send-MailMessage -From "tfs@domain.com" -Subject "YAY!" -To "user@domain.com" -Body "$env:DB_NAME" -SmtpServer server.com -Port 25 -Credential $creds

在该帖子的第二个答案之后,我尝试传递参数
$(RPASS)

arg

然后更改此行 $arg[0].ToCharArray()|%{$sec.AppendChar($_)}
但这也不起作用

[error]Cannot index into a null array.



我尝试将其直接传递到脚本中,如下所示:
$(RPASS).ToCharArray()|%{$sec.AppendChar($_)}

但这导致了错误:
+ ********.ToCharArray()|%{$sec.AppendChar($_)}
+ ~
An expression was expected after '('.
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : ExpectedExpression


2019-06-13T00:57:50.7974750Z ##[error]Process completed with exit code 0 and had 1 error(s) written to the error stream.

最佳答案

在嵌入式脚本中使用ConvertTo-SecureString:

$securePassword = ConvertTo-SecureString -String "$(RPASS)" -AsPlainText -Force
$creds = [System.Management.Automation.PSCredential]::new($env:USERNAME, $securePassword)

您不需要传递参数,因为TFS会解析内联脚本中的变量

关于powershell - 如何将 secret 类型变量传递给脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56572042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com