首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Get-ChildItem -SilentlyContinue抛出AccessDenied

Get-ChildItem -SilentlyContinue抛出AccessDenied
EN

Stack Overflow用户
提问于 2016-07-20 17:20:04
回答 4查看 3.6K关注 0票数 0

代码:

代码语言:javascript
复制
$cPstFiles = Get-ChildItem -Path $env:USERPROFILE -File -Force `
    -Recurse -Include "*.pst" -ErrorAction "SilentlyContinue"

例外:

代码语言:javascript
复制
Get-ChildItem : Access is denied
At test.ps1:172 char:22
+         $cPstFiles = Get-ChildItem -Path $env:USERPROFILE -File -Force `
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Get-ChildItem], UnauthorizedAccessException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetChildItemCommand

上下文:WindowsV4.0/.NET 4.5.2/ PowerShell 7。

这怎么可能呢?我怎样才能让SilentlyContinue做它应该做的事情呢?

可能值得一提的是,脚本并不总是失败的。它在一些机器上失败了,但在另一些机器上工作得很好,即使在所有这些机器上Windows都是使用相同的镜像部署的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-07-20 18:05:04

代码语言:javascript
复制
$ErrorActionPreference = “silentlycontinue”
$Extension = "*pst"
    $TargetFolder = "$env:userprofile"
    Get-Childitem $TargetFolder -Include $Extension -Recurse 
票数 2
EN

Stack Overflow用户

发布于 2016-07-20 19:56:59

尝试

代码语言:javascript
复制
Set-ExecutionPolicy Remotesigned

最初PS没有在系统环境上执行脚本的权限,因此将其设置为ResmoteSigned并以管理员权限运行可以解决此问题。

票数 1
EN

Stack Overflow用户

发布于 2016-07-20 17:23:03

只需将其包含在try {}块中,并为此类硬错误添加一个catch {}例程即可。

哦,我刚刚看到,ErrorAction应该只是SilentlyContinue,而不是"SilentlyContinue“字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38477236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档