PowerShell中的权限错误

时间:2011-10-12 10:22:24

标签: powershell

我是PowerShell的新手。当尝试编写一个删除文件夹内容的简单脚本,然后用从其他文件夹复制的文件填充它时,我总是遇到PermissionDenied错误。

详细信息:

+ remove-item <<<<  D:\path\* -recurse
    + CategoryInfo : PermissionDenied: (save.gif:FileInfo) [Remove-Item], IOException
    + FullyQualifiedErrorId : RemoveFileSystemItemUnAuthorizedAccess,Microsoft.PowerShell.Commands.RemoveItemCommand

问题出在哪里?我可以通过资源管理器操作这两个文件夹。 从脚本文件和shell(使用Windows PowerShell ISE)运行时都会发生错误。 ISE流程在我的帐户下运行。 我正在运行Windows 7 Professional并且是本地管理员。

修改 在Richard的建议之后,我尝试了详细模式(似乎没有效果)。

PS Z:\> $error[0] | fl * -force

PSMessageDetails      : 
Exception             : System.IO.IOException: Not Enough permission to perform operation.
TargetObject          : D:\path\file.txt
CategoryInfo          : PermissionDenied: (D:\path\file.txt:FileInfo) [Remove-Item], IOException
FullyQualifiedErrorId : RemoveFileSystemItemUnAuthorizedAccess,Microsoft.PowerShell.Commands.RemoveItemCommand
ErrorDetails          : Cannot remove item D:\path\file.txt: Not Enough permission to perform operation.
InvocationInfo        : System.Management.Automation.InvocationInfo
PipelineIterationInfo : {0, 1}

我没有看到任何有用的东西(但无论如何,谢谢你的提示)。

编辑2: 好的,这是脚本来源:

remove-item D:\path_A\* -recurse
copy-item D:\path_B\* D:\path_A\

就是这样。 remove-item似乎抛出每个文件。

4 个答案:

答案 0 :(得分:105)

你有没有尝试过:

remove-item D:\path_A\* -recurse -force

答案 1 :(得分:11)

是否启用了UAC?如果是这样,请尝试以“管理员”身份运行PowerShell会话。看起来你似乎没有删除对象的权限。

我工作的安全策略非常严格,不熟悉UAC的用户会一直被烧毁。

答案 2 :(得分:2)

除了上述帖子中提到的原因之外,我还观察到“拒绝访问”#34;当一个单独的进程访问该文件时抛出错误(在我的情况下,我必须在Rename-Item成功运行之前停止服务器。)

答案 3 :(得分:1)

在此错误之后(并在其中假设最近的错误):

$error[0] | fl * -force

将扩展错误和异常的细节。这应该会为您提供更多信息。

另一件事是打开详细记录

$VerbosePreference = "Continue"

获取有关错误发生时正在执行的操作的更多详细信息。

最后,PowerShell ISE包含一个调试器,可以让您逐步完成脚本。