powershell - 模块 Web 管理给出了一个不可变的错误
问题描述
运行以下几行 PowerShell 代码(在 WIN 2008 R2 服务器上,具有管理员权限):
try {
Import-Module webadministration -ErrorAction Stop
}
catch {
"ERROR : $( $Error[ 0 ].ToString() )"
}
会在控制台上抛出一个错误,并且实际上不会将它传递给 catch 块:
Process should have elevated status to access iis configuration data
上述错误按原样显示,但 PowerShell 控制台上的颜色为红色。需要明确的是 - 除了上述错误之外,没有显示其他文本。$Error[ 0 ] 也没有填充。
似乎错误不是从 PowerShell 脚本生成的,而是从外部进程/脚本生成的。
有没有办法抑制这个错误?即使在 try-catch 块中提供了 ErrorAction 首选项,错误仍然会显示。
此外,以下内容将不起作用:
Import-Module webadministration -ErrorAction Stop
Import-Module webadministration | Out-Null
Import-Module webadministration 2>&1 | Out-Null
$null = Import-Module webadministration
Import-Module webadministration -ErrorAction SilentlyContinue
$ErrorActionPreference = 'SilentlyContinue'
Import-Module webadministration
值得注意的是,该Import-Module webadministration
命令在同一个 PowerShell 会话中第二次加载后有效!意义,
# First Go
Import-Module webadministration
# error thrown on first go
# Second Go
Import-Module webadministraion
# Second go works! It loads the 'webadministration' module
解决方案
推荐阅读
- python - 如何停止具有多个任务的异步循环
- python - upload_fileobj 的问题 - ValueError:Fileobj 必须实现读取
- node.js - Node.js 中的请求执行顺序
- c++ - 展开 flex 检测到的转义序列
- r - 找不到参考书目文件: r shiny 中的 citations.bib
- python - Python - 如果条件不存在,则删除行
- reactjs - React Redux thunk - 操作正在覆盖意外信息
- python - 使用python pandas直接写入csv
- bash - 使用 AWK 剪切一个字段并在结果中再次剪切
- gnu - gnuradio - 不处理数据流