PowerShell:运行Get-ChildItem时出现UnauthorizedAccessException(访问被拒绝)

时间:2016-01-11 13:25:50

标签: powershell windows-server-2012 powershell-v4.0

我正在通过TeamCity运行删除脚本并收到以下错误:

dir : Access is denied
At line:1 char:1
+ dir 'c:\inetpub\wwwroot\camping.info' -exclude docs,log,CampsiteImages*,_generat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [Get-ChildItem], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetChildItemCommand

在TeamCity中,我运行一个命令行文件。在此文件中,执行这些命令:

set POWERSHELLEXE=c:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
set FOLDER=c:\inetpub\wwwroot\folder

%POWERSHELLEXE% "dir '%FOLDER%' -exclude docs,log,CampsiteImages*,_generated,App_Code,App_Data,pics,style,temp,google*.html,app_offline.htm,robots.txt | del -Recurse -verbose"

命令有时会运行且没有错误。但通常它会在退出上述错误之前删除一些文件夹。 (由于-verbose标志,我们可以看到错误之前的删除。)如果出现错误,它似乎每次都停在同一个文件夹中。我们在不同的服务器上使用相同的脚本:在一台服务器上,脚本永远不会有错误,在另一台服务器上,它很少发送错误 - 如果是,则在不同的文件夹上。所有服务器都具有相同的PowerShell和TeamCity版本。

出现此错误的原因是什么?

(我已经尝试在调用delete命令之前插入一个等待时间 - 这没有改变任何东西。)

0 个答案:

没有答案