首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从变量过滤输出(where-object)

从变量过滤输出(where-object)
EN

Stack Overflow用户
提问于 2011-12-31 10:52:53
回答 2查看 6K关注 0票数 0

我正在服务器上运行以下代码行的测试:

代码语言:javascript
复制
Get-WmiObject Win32_Service -ComputerName "myserver" -Filter "State='Running'" |
where-object ??? }| Foreach-Object {
                New-Object -TypeName PSObject -Property @{
                    DisplayName=$_.DisplayName
                    State=$_.State
                } | Select-Object DisplayName,State
            # Export all info to CSV
            } | ft -AutoSize

我想创建一个这样的变量:

代码语言:javascript
复制
$IgnoreServices = '"Wireless Configuration","Telephony","Secondary Logon"

并将这个发送到Where-Object。我能这么做吗?

Sune:)

编辑:经过一些R/T (研究和尝试:))我发现我可以这样做:

代码语言:javascript
复制
$IgnoreServices = {$_.DisplayName -ne "Wireless Configuration" 
-and $_.DisplayName -ne "Telephony" -and $_.DisplayName -ne "Secondary Logon" 
-and $_.DisplayName -ne "Windows Event Collector"}

Get-WmiObject Win32_Service -ComputerName "myserver" -Filter   "State='Running'"|        where-object $IgnoreServices | Foreach-Object {
                # Set new objects for info gathered with WMI
                New-Object -TypeName PSObject -Property @{
                    DisplayName=$_.DisplayName
                    State=$_.State
                } | Select-Object DisplayName,State
            # Export all info to CSV
            } | ft -AutoSize

但是..。我真的希望可以通过以下方式指定要排除的服务:"service1“、"service2”、"service3“

一如既往,我们非常感谢您的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-31 11:43:36

是的,你可以这样做:

代码语言:javascript
复制
$IgnoreServices = "Wireless Configuration","Telephony","Secondary Logon"

如您所愿,并在where-object中执行以下操作:

代码语言:javascript
复制
where-object { $IgnoreServices -notcontains $_.DisplayName  }
票数 5
EN

Stack Overflow用户

发布于 2011-12-31 17:40:39

您可以使用WMI筛选器执行此操作(运行速度更快),并且由于您只选择属性,因此不需要创建新对象,请使用已安装的Select-Object cmdlet:

代码语言:javascript
复制
$filter = "State='Running' AND Name <> 'Wireless Configuration' AND Name <> 'Telephony' AND Name <> 'Secondary Logon'"

Get-WmiObject Win32_Service -ComputerName myserver -Filter $filter | Select-Object DisplayName,State
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8685989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档