3

你如何在做的时候避免所有不需要的控制台输出Import-PSSession?我正在编写一个脚本来监控 Exchange 中的一些内容,它需要进入我们的监控系统并且只产生非常具体的输出,但是每当我导入我的 Exchange 会话时它都会产生

警告:某些导入的命令名称包含未经批准的动词,这可能会使它们不易被发现。使用 Verbose 参数了解更多详细信息,或键入 Get-Verb 以查看批准的动词列表。

我试过了:

$Session=(Import-PSSession(New-PSSession -ConfigurationName Microsoft.Exchange \
 -ConnectionUri http://CasServer/PowerShell/ -Authentication Kerberos           \
 -Credential $Cred -AllowClobber -WarningAction:SilentlyContinue) 

它仍然显示不需要的文本。我也试过-ErrorAction:SilentlyContinue;不起作用。

4

5 回答 5

13

如果指定要使用的所有 cmdlet 不可行,则可以使用以下开关抑制警告:

-DisableNameChecking

例子:

Import-PSSession $session -DisableNameChecking
于 2012-10-01T21:05:09.057 回答
3

我认为更好的解决方案是读取Import-PSSessioninto 变量的输出,例如:

$output = Import-PSSession $session -AllowClobber

然后您可以阅读$output并查看它是否是警告、错误等。

但是不要使用-WarningAction:SilentlyContinueor-ErrorAction:SilentlyContinue因为你永远不会看到它是否可以

于 2015-04-22T09:20:41.087 回答
3

您正在 Import-PSSession 上设置 -WarningAction。警告您闻到 Import-Module 之类的气味(即 Import-PSSession 在幕后调用)。

您可以在脚本的整个生命周期内将 $WarningPreference 全局变量更改为 SilentlyContinue。这将使您收到的警告静音。

于 2012-06-23T17:31:59.227 回答
0

你可以试试管道| out null

于 2012-06-22T16:12:25.373 回答
0

另外的选择:

Import-PSSession $session 3> $null
于 2016-03-17T02:56:25.480 回答