我是TFS的新手,需要帮助来克服以下问题。
我有一个桌面,它有一个许可的测试工具和使用该工具开发的自动化测试。该工具的许可证与登录到该桌面的用户相关联。 现在我为自动化测试创建了一个批处理文件,我想从TFS调用这个批处理文件。我在该工具所在的桌面上安装了TFS代理,并在TFS服务器上配置了运行此批处理文件的构建定义,一切正常,直到此处。
问题是,当TFS代理调用批处理脚本时(我认为)它是SYSTEM用户而不是与许可相关的用户。因此,许可证检查失败,我的测试无法运行。 有没有办法告诉TFS使用特定用户运行批处理脚本?
答案 0 :(得分:0)
您可以使用PowerShell包装器脚本启动具有不同身份的可执行文件。
param (
[Parameter(Mandatory=$True)]
[string]$username,
[Parameter(Mandatory=$True)]
[string]$password,
[Parameter(Mandatory=$True)]
[string]$executable,
[Parameter(Mandatory=$False)]
[string[]]$arguments,
[Parameter(Mandatory=$False)]
[string]$workingDirectory
)
$secpassword = $password | ConvertTo-SecureString -asPlainText -Force
$password = $null
$credentials = New-Object System.Management.Automation.PSCredential($username,$secPassword)
$workingDirectory = if([string]::IsNullOrEmpty($workingDirectory)){(Get-Item -Path ".\").FullName}
Start-Process $executable -ArgumentList $arguments -WorkingDirectory $workingDirectory -Credential ($credentials)
使用密码在构建或发布定义中创建隐藏变量'password',并将可见性设置为隐藏。
使用powershell步骤调用此脚本:
-username "username" -password = $(password) -executable "myExecutable" -arguments '-param "param1"','-param2 "param2"','-param3"d:\directory\with blanks in a path\"'