Select 某个 Windows 服务使用 WMI 对象
Select a certain Windows service using WMI objects
以下 PowerShell 命令将为我提供所有 windows 服务的列表:
Get-WmiObject -Class Win32_Service
如果我想用这个对象只显示某项服务怎么办?可以说我只想用它来显示后台处理程序服务。我不想使用 Get-Service
cmdlet。原以为 Select-Object
会对我有帮助,但那只会选择 属性 个名称,而不是服务名称。
Get-WmiObject -Class win32_Service | Where-Object Name -eq 'spooler'
或
Get-WmiObject -Class win32_Service | Select-Object * | Where-Object Name -eq 'spooler'
虽然使用 Where-Object
过滤 Get-WmiObject
输出会起作用,但如果您 运行 针对远程主机的 cmdlet 会对性能产生负面影响,因为所有输出都将通过在本地主机上过滤之前的网络。直接用Get-WmiObject
过滤效率更高,这样只检索相关数据:
Get-WmiObject -Class Win32_Service -Filter "Name='spooler'"
以下 PowerShell 命令将为我提供所有 windows 服务的列表:
Get-WmiObject -Class Win32_Service
如果我想用这个对象只显示某项服务怎么办?可以说我只想用它来显示后台处理程序服务。我不想使用 Get-Service
cmdlet。原以为 Select-Object
会对我有帮助,但那只会选择 属性 个名称,而不是服务名称。
Get-WmiObject -Class win32_Service | Where-Object Name -eq 'spooler'
或
Get-WmiObject -Class win32_Service | Select-Object * | Where-Object Name -eq 'spooler'
虽然使用 Where-Object
过滤 Get-WmiObject
输出会起作用,但如果您 运行 针对远程主机的 cmdlet 会对性能产生负面影响,因为所有输出都将通过在本地主机上过滤之前的网络。直接用Get-WmiObject
过滤效率更高,这样只检索相关数据:
Get-WmiObject -Class Win32_Service -Filter "Name='spooler'"