我有一个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
提前非常感谢你。
祝你有美好的一天!
答案 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