0

我有一个 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

非常感谢你。

祝你有美好的一天!


4

1 回答 1

0

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

你说的是“ the code did work with another agent, a TFS test agent”,所以可以对比一下 Build Agent 服务账号和 test 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 
于 2017-10-13T07:59:42.427 回答