我在构建定义中添加了名为Password的 secret 变量,如下图所示:

我想在我的构建步骤之一中将密码传递给PowerShell脚本,如下图所示:

我的PowerShell脚本如下所示

 Param
(
    [Parameter(Mandatory=$true)]
    [string]$UserName,
    [Parameter(Mandatory=$true)]
    [string]$Password
)

$appPool = New-WebAppPool -Name "test"
$appPool.processModel.userName = $userName
$appPool.processModel.password = $password
$appPool.processModel.identityType = "SpecificUser"
$appPool | Set-Item

但是看起来密码的类型不是字符串。我尝试了PSCredential,但是没有用。有人可以帮我吗?如何将密码从构建步骤传递到PowerShell脚本以及安全变量的类型?我无法直接读取环境变量,因为我正在目标计算机上运行PowerShell脚本。因此,唯一的选择是将密码作为输入传递给脚本。

最佳答案

最后我设法解决了。

通过powershell脚本参数发送密码时,我在密码周围加上了双引号。繁荣!!它开始工作。它发送解密的密码。



我的Power Shell脚本与上面相同。

 Param
(
    [Parameter(Mandatory=$true)]
    [string]$UserName,
    [Parameter(Mandatory=$true)]
    [string]$Password
)

$appPool = New-WebAppPool -Name "test"
$appPool.processModel.userName = $userName
$appPool.processModel.password = $password
$appPool.processModel.identityType = "SpecificUser"
$appPool | Set-Item

关于powershell - 将 secret 变量从TFS Build传递到Powershell脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42822228/

10-13 07:59
查看更多