gpt4 book ai didi

powershell - Powershell : cannot hide 'Access is denied' error on 'Remove-Item'

转载 作者:行者123 更新时间:2023-12-03 08:41:26 32 4
gpt4 key购买 nike

我想让Remove-Item指令保持安静,无论是否异常。我正在脚本中的命令下面运行以删除证书:

Remove-Item $store\$thumbprint

如果我以本地Admin身份运行脚本,则可以...保持安静并删除文件。
但是,如果我以非特权用户身份运行它,则会收到预期的“拒绝访问”错误,但是无论如何我都希望保持安静。

我尝试了以下方法:
$output = (Remove-Item $store\$thumbprint)
# or...
try{Remove-Item $store\$thumbprint} catch{}
# or...
Remove-Item $store\$thumbprint -ErrorAction SilentlyContinue

但是我总是得到错误/异常
显示在控制台上。

最佳答案

默认情况下,Remove-Item会生成一个非终止错误,它将错误添加到$Error变量中而不会引发异常。若要查看发生非终止错误时Windows PowerShell的操作,请查看 $ErrorActionPreference variable的值(其默认值为Continue)。
Access to the path '…' is denied是此类非终止错误的示例,因此您可以使用ErrorAction参数,该参数将覆盖当前命令的$ErrorActionPreference变量的值:

Remove-Item $store\$thumbprint -ErrorAction SilentlyContinue

另一方面, $ErrorActionPreferenceErrorAction参数不会影响PowerShell对终止cmdlet处理的终止错误的响应方式。因此,如果我们不确定错误是否终止,那么可以安全地使用 Try-Catch-Finally处理 -ErrorAction Stop 的任何错误,如下所示:
try {
Remove-Item $store\$thumbprint -ErrorAction Stop
} catch {
### A Catch block can include commands for tracking the error
### or for recovering the expected flow of the script
}

关于powershell - Powershell : cannot hide 'Access is denied' error on 'Remove-Item' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61274447/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com