提问人:Kazic 提问时间:1/14/2023 最后编辑:Mathias R. JessenKazic 更新时间:1/14/2023 访问量:165
Powershell Get-Service (停止) 但不显示状态“等待 <x> 服务停止...”
Powershell Get-Service (Stop) but NOT display status "waiting for <x> service to stop..."
问:
基本上,我对所采取的行动没有问题。我的问题是关于操作“等待...”的状态输出。消息。有没有办法抑制该消息?
例:
PS C:\Users\a.real.person.maybe> Get-Service *fewserviceswithmatchingprefixes* | Where-Object {$_.Name -notmatch 'somethinghere' -and $_.Name -ne 'alsosomethinghere' -and $_.Name -ne 'somethinghereprobably'} | Stop-Service
WARNING: Waiting for service 'thoseservicesabove' to stop...
WARNING: Waiting for service 'anotheroneofthoseservicesabove' to stop...
答:
@mathias评论中一针见血!
一堆东西 |Stop-Service -WarningAction 静默继续
您可以将调用站点的变量值设置为 或 (两者都将禁止使用和呈现警告消息):$WarningActionPreference
Ignore
SilentlyContinue
$WarningActionPreference = 'SilentlyContinue'
Get-Service *fewserviceswithmatchingprefixes* | Where-Object {$_.Name -notmatch 'somethinghere' -and $_.Name -ne 'alsosomethinghere' -and $_.Name -ne 'somethinghereprobably'} | Stop-Service
或者,您可以在调用 时显式使用 common 参数(它只会影响 ):-WarningAction
Stop-Service
Stop-Service
... | Stop-Service -WarningAction SilentlyContinue
为了补充 Mathias 的有用回答:
您也可以使用重定向(即 3>$null
来静音警告:3>
... | Stop-Service 3>$null
PowerShell 的输出流是有编号的(与外界通信时,流(成功)和(错误)对应系统级 stdout 和 stderr 流),指的是警告流,可以作为目标,重定向运算符;重定向以有效地丢弃目标流的输出(如果有)。1
2
3
>
$null
这适用于任何输出流(隐式相同,即以成功的输出流为目标),PowerShell 甚至提供重定向 *>
来重定向所有流。
以文件名或路径为目标,而不是(悄悄地)将流输出保存到纯文本文件,其格式与您在终端中看到的格式相同,只是省略了特定于流的前缀,例如“WARNING:”。>
1>
$null
与使用通用 -WarningAction
参数相比,使用 3>
具有一个优点:
只有 cmdlet 和高级函数和脚本支持 ,而
3>$null
也适用于使用Write-Warning
的简单函数和脚本。-WarningAction
相比之下,
$WarningPreference
首选项变量对所有 PowerShell 命令同样有效。但是,首选项变量,特别是
$ErrorActionPreference
首选项变量,不适用于外部程序:流和更高级别不适用于外部程序,并且默认情况下,外部程序的 stderr 输出(明智地)不被视为错误输出(尽管此类输出可以作为流编号);若要使外部程序的 stderr 输出静音,必须使用2>$null
3
2
顺便说一句:其他与警告相关的功能也仅受 cmdlet 和高级函数/脚本支持,即通过通用
-WarningVariable
参数在变量中收集警告的功能;此功能与重定向最接近的是将警告写入到的文件为目标(这需要在事后显示该文件的内容才能同时打印警告)。3>
虽然在技术上是不同的,但以流为目标的重定向(如 like)的行为应与等效参数相同,并且 - 除了 / - 同样适用于 。
3>
-WarningAction SilentlyContinue
2>
-ErrorAction
-*Action Ignore
下一个:如何在R中抑制大型查询消息?
评论
Stop-Service -WarningAction SilentlyContinue