过滤和隔离 powershell 对象
在 windows powershell 中,执行 get 请求时的大部分结果通常以 powershell 对象 (psobject) 格式创建和显示。psobjects 是 powershell 区别于其他脚本语言的关键功能之一。
但是,我们无法快速搜索 psobject,因为它的属性,因此我们需要在建立搜索索引之前隔离属性。在本文中,我们将讨论 windows powershell 对象、如何解析 ps 对象的结果以使结果可搜索,以及使用 powershell 执行适当的过滤。
powershell 对象概述
如前所述,powershell 对象是脚本语言的亮点之一。每个 powershell 对象都具有将对象定义为一个整体的属性。
我们以 get-service
为例。
示例代码:
get-service
输出:
status name displayname
------ ---- -----------
running aarsvc_147d22 agent activation runtime_147d22
running adobearmservice adobe acrobat update service
running aesmservice intel® sgx aesm
在 get-service
powershell 对象中,我们将 status
、name
和 displayname
作为它们的属性。要过滤掉对象,我们必须使用 where-object
命令在其属性之间隔离对象。
例如,我们只能获取 status
类型或 name
类型,但我们不能不先调用属性就只搜索特定关键字。
示例代码:
get-service | where-object {$_.status -match "stopped" }
输出:
status name displayname
------ ---- -----------
stopped ajrouter alljoyn router service
stopped alg application layer gateway service
stopped appidsvc application identity
在本文的下一部分中,我们将讨论如何将这些输出显示为字符串而不是 ps 对象格式,并使用不同的搜索查询执行过滤。
使用 powershell 过滤输出
为了快速过滤输出,我们需要以字符串格式显示输出。我们必须通过管道将命令传递给 out-string
命令。
对于下面的示例,我们将它分配给一个变量,以便我们的下一个代码片段更容易。
示例代码:
$serviceoutput = (get-service | out-string) -split "`r`n"
由于值存储在变量中,上面的代码不会产生结果。此外,我们还执行了一个小字符串操作,以每行划分结果行。
如果我们稍后过滤,脚本将逐行显示它,而不是只显示一个完整的字符串。
$serviceoutput
变量中存储的值采用字符串格式。要搜索关键字,我们需要将 select-string
命令与我们希望搜索的关键字一起传递。
示例代码:
$serviceoutput | select-string intel
输出:
running aesmservice intel® sgx aesm
stopped intel(r) capabi... intel(r) capability licensing servi...
stopped intel(r) tpm pr... intel(r) tpm provisioning service
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
发布时间:2024/03/04 浏览次数:358 分类:编程语言
-
本文将解释我们如何使用 powershell 的参数函数处理命令行参数,参数如何工作,我们如何使用 powershell 参数将值传递给参数,以及定义参数的基本方法是什么。
发布时间:2024/03/04 浏览次数:273 分类:编程语言
-
本教程将教你在 powershell 中向命令输出添加新行的不同方法。
发布时间:2024/03/04 浏览次数:332 分类:编程语言
-
本文将展示如何编码和解码 base64 字符串。windows powershell 当前版本没有本机命令,因此我们将向你展示如何执行此操作的替代方法。
发布时间:2024/03/04 浏览次数:324 分类:编程语言
-
本文将讨论如何使用不同的 powershell 替换方法替换或删除字符、文本和单词。
发布时间:2024/03/04 浏览次数:259 分类:编程语言
-
本文将向你展示如何在 windows powershell 中编写或打印输出。本文还将区分多个 write cmdlet 并解释它们的意义。
发布时间:2024/03/04 浏览次数:350 分类:编程语言
-
本文将展示在 windows powershell 中设置路径环境变量的正确方法。本文还展示了如何在持久性和非持久性方法中设置变量。
发布时间:2024/03/04 浏览次数:869 分类:编程语言
-
本文将讨论什么是环境变量以及如何使用多个 windows powershell 命令打印它们。
发布时间:2024/03/04 浏览次数:363 分类:编程语言
-
本文将展示在 windows powershell 中注释代码的多种方法。本文还介绍了注释代码时的一些最佳实践。
发布时间:2024/03/04 浏览次数:304 分类:编程语言
-
本文将深入了解如何使用 active directory 过滤器和 ldap 过滤器。