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