迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

过滤和隔离 PowerShell 对象

作者:迹忆客 最近更新:2024/02/05 浏览次数:

在 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 对象中,我们将 StatusNameDisplayName 作为它们的属性。要过滤掉对象,我们必须使用 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 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 PowerShell 过滤文件和文件夹

发布时间:2024/02/05 浏览次数:195 分类:编程语言

本文将讨论 PowerShell Get-ChildItem cmdlet,我们将使用它来获取目录中的所有项目并利用其过滤器开关参数。在某些情况下,我们需要检查文件是否存在于特定位置或目录中。

从 PowerShell 中的文件名中删除路径和扩展名

发布时间:2024/02/05 浏览次数:86 分类:编程语言

本教程将介绍在 PowerShell 中从文件名中删除路径和扩展名的不同方法。PowerShell 支持处理系统中的各种文件操作。你可以在 PowerShell 中执行创建、复制、移动、重命名、编辑、删除和查看文件等

使用 PowerShell 连接文件

发布时间:2024/02/05 浏览次数:159 分类:编程语言

本教程将教你使用 PowerShell 连接文件。PowerShell 允许你执行不同的文件操作,例如创建、复制、移动、删除、查看和重命名文件。

使用 PowerShell 从路径中提取文件名

发布时间:2024/02/05 浏览次数:52 分类:编程语言

本教程将教你如何使用 PowerShell 从路径中提取文件名。文件路径告诉文件在系统上的位置。在 PowerShell 中处理文件时,你可能只需要从路径中获取文件名。

使用 PowerShell 从计算机存储中删除证书

发布时间:2024/02/05 浏览次数:200 分类:编程语言

本教程将教你使用 PowerShell 从证书存储中删除证书。在 Windows 操作系统中,证书存储在计算机本地的证书存储中。它包含不同认证机构颁发的各种证书。

在 PowerShell 中清除变量内容

发布时间:2024/02/05 浏览次数:69 分类:编程语言

本教程将教你在 PowerShell 中清除变量内容。变量是值的存储位置。你可以将所有类型的值存储在 PowerShell 变量中。

PowerShell 中的空变量

发布时间:2024/02/05 浏览次数:64 分类:编程语言

本文讨论了 null 变量、在 PowerShell 中以不同语法使用 null 变量的影响以及检查 null 值的方法。PowerShell 处理值为 null 的 $Null 对象,并且某些命令需要一些输出才能生成。

PowerShell 中的管道变量

发布时间:2024/02/05 浏览次数:77 分类:编程语言

本文将向我们展示如何通过使用 PowerShell 的管道变量在 Windows PowerShell 中使用相同的概念和技术。我们通常使用 this 变量或关键字来表示各种编程语言中表达式中出现的最后一个对象。

使用 PowerShell 测试变量的数据类型

发布时间:2024/02/05 浏览次数:104 分类:编程语言

本文将讨论如何处理可变数据类型不匹配的几种方法,以及如何使用 PowerShell 正确纠正它们。我们通常使用的 PowerShell 中的一种技术是获取用户输入并将其存储在变量中。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便