首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TFS-2017 -添加一个输入用户名和密码的步骤

TFS-2017 -添加一个输入用户名和密码的步骤
EN

Stack Overflow用户
提问于 2017-05-26 15:30:47
回答 1查看 324关注 0票数 0

我有一个创建.zip包和projectName.SetParameters.xml的构建,我想用脚本覆盖projectName.SetParameters.xml文件中的参数

我有一个带有链接参数的powershell脚本,我希望用户在部署到TFS中的IIS之前输入他们的用户名和密码--我遵循这个指南REalese更新:REalese构建可以工作,但它不要求用户输入用户名和密码,是否必须在Powershell步骤的参数框中手动设置它们?

在我的TFS中,我有一个powershell步骤,我添加了参数-paramsFilePath -paramsFilePath

代码语言:javascript
复制
param(
    [string]$paramsFilePath,
    [Parameter(Mandatory=$true)]
    [string]$username,
    [Parameter(Mandatory=$true)]
    $password
)
Write-Verbose -Verbose "Entering script setParameters.ps1"
Write-Verbose -Verbose ("Path to Parameters: {0}" -f $paramsFilePath)

# get the environment variables
$vars = Get-ChildItem -path env:*

# read in the setParameters file
$contents = Get-Content -Path $paramsFilePath

# perform a regex replacement
$newContents = "";
$contents | % {
    $line = $_
    if ($_ -match "__Username__") {
        $setting = Get-ChildItem -path env:* | ? { $_.Name -eq $Matches[1]  }
        if ($setting) {
            Write-Verbose -Verbose ("Replacing key {0} with value from environment" -f $username.Name)
            $line = $_ -replace "__Username__", $username.Value
        }
    }
    $newContents = $line 
}

Write-Verbose -Verbose "Overwriting SetParameters file with new values"
Set-Content $paramsFilePath -Value $newContents

Write-Verbose -Verbose "Exiting script setParameters.ps1"

这是我的Parameters.xml代码

代码语言:javascript
复制
<!--?xml version="1.0" encoding="utf-8" ?-->
 <parameters>
    <parameter name="machineURL" description="Please enter the name of the Environment" defaultvalue="_UrlValue_" tags="">
      <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='machineURL']/@value">
      </parameterentry>
    </parameter>
    <parameter name="username" description="Please enter the username" defaultvalue="__UserName__" tags="">
       <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='username']/@value">
       </parameterentry>
    </parameter>
    <parameter name="password" description="Please enter the password" defaultvalue="__Password__" tags="">
       <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='password']/@value">
       </parameterentry>
    </parameter>
    </parameters>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-26 18:01:40

在TFS构建和发布中,PowerShell的执行只有在非交互模式下才有可能。构建和发布过程将只将执行结果流到构建控制台。

您必须用用户名创建一个变量。对于密码,您应该使用隐藏变量:

是的,您必须将参数放在PowerShell步骤的参数框中

注意:密码字段看起来安全且不可读,但是读取隐藏变量的内容并不困难。

创建变量并设置值。之后,可以在PowerShell步骤参数框中使用此命令行参数。

代码语言:javascript
复制
-paramsFilePath $(paramsFilePath) -username $(username) -password $(password)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44205242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档