首页 > 解决方案 > 模块 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

标签: powershelliiswindows-server-2008powershell-module

解决方案


推荐阅读