将秘密变量从TFS Build传递给Powershell脚本

时间:2017-03-15 22:53:12

标签: powershell tfsbuild continuous-deployment

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

TFS Build Variables

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

Build Step

我的PowerShell脚本看起来像这样

var permissions = new Array();

permissions['role-1'] = new Array();
permissions['role-1']['permission-1'] = "perm1";
permissions['role-1']['permission-3'] = "perm3";
permissions['role-1']['permission-5'] = "perm5";
permissions['role-2']['permission-1'] = "perm1";
permissions['role-2']['permission-5'] = "perm5";

但看起来密码的类型不是字符串。我试过了 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脚本以及安全变量的类型?我无法直接读取环境变量,因为我在目标计算机上运行PowerShell脚本。因此,唯一的选择是将密码作为输入传递给脚本。

1 个答案:

答案 0 :(得分:14)

最后我设法解决了。

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

  

-UserName $(用户名)-Password" $(密码)"

我的power shell脚本保持与上面相同。

{{1}}