TFS代理在

时间:2017-10-12 13:11:52

标签: powershell tfs build permissions build-agent

我有一个PowerShell脚本需要访问一个文件夹并在其中创建内容(比如删除或重命名子文件夹)。我认为它崩溃是因为我的本地TFS代理被拒绝访问此远程计算机中的此文件夹。错误消息是:

  

2017-10-12T12:49:06.6816226Z ## [错误]删除项目:无法删除项目   \ [path_to_the_folder_I_want_my_script_to_access] \ old.1:访问   路径

     

2017-10-12T12:49:06.6835446Z ## [错误]被拒绝。

我搜索了问题并找到了一个可能的解决方案:将脚本访问的文件夹的读/写权限授予我的TFS(Svc_tfsbuild帐户)的构建服务帐户。但它不起作用。

因此,如果有人有另一种解决方案,那就太棒了。 :d

提前非常感谢你。

祝你有美好的一天!

1 个答案:

答案 0 :(得分:0)

这是权限问题,请确保您已正确设置允许Build Agent服务帐户访问该文件夹的权限。

您说" the code did work with another agent, a TFS test agent",因此您可以将Build Agent服务帐户与测试代理服务帐户进行比较,以更正权限设置。

另一种解决方法是运行具有特定凭据的Remove-Item命令,该命令具有删除文件夹/文件的足够权限。如果帐户在本地运行,那么它也将在构建过程中起作用。我在我身边测试并工作过。

您可以使用以下示例脚本执行此操作:

Param(
  [string]$computerName = "vtinmo502vm",
  [string]$path ="C:\Software\test.txt"
)
$Username = "domain\user"
$Password = ConvertTo-SecureString "EnterPasswordHere" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($Username,$password) 
Invoke-Command -computername $computerName {Remove-Item -path $args[0] -Recurse} -cred $cred  -ArgumentList $path