抑制Import-PSSession的输出

时间:2012-06-22 16:06:02

标签: powershell

在执行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;不起作用。

5 个答案:

答案 0 :(得分:11)

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

-DisableNameChecking

示例:

Import-PSSession $session -DisableNameChecking

答案 1 :(得分:3)

您正在Import-PSSession上设置-WarningAction。警告你会闻到像Import-Module(在幕后调用Import-PSSession)。

您可以在脚本的生命周期内将$ WarningPreference全局变量更改为SilentlyContinue。那会使你得到的警告保持沉默。

答案 2 :(得分:2)

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

$output = Import-PSSession $session -AllowClobber

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

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

答案 3 :(得分:0)

你可以试试管道| out null

答案 4 :(得分:0)

另一种选择:

Import-PSSession $session 3> $null