当我运行 get-process \ where handles 时,它没有显示句柄列,我是否遗漏了一些东西?

问题描述 投票:0回答:1

我正在关注 Jeffrey Snover(Powershell 的发明者)的 YouTube 教程。在 2 小时 3-7 分钟左右,它正在谈论 powershell 中的对象。它希望通过获取一个进程,然后根据进程的句柄进行选择和排序。当我尝试输入命令时,它不显示句柄列。这是我根据视频输入的代码。我正在使用 Powershell 版本 7,我认为它们使用的是 Powershell 版本 3。

PS C:\> get-process |where handles

任何见解或帮助表示赞赏。

example of code run not showing handles

我期待 NPM 列左侧有一个句柄列。

powershell youtube
1个回答
0
投票

PowerShell 将 数据 与其 表示 严格分离。

因此,使用 Where-Object

 (
where) 按给定属性进行过滤的
data
操作与为过滤后的 System.Diagnostics.Process
 对象显示的内容无关,也没有影响。
后者仅由与该 .NET 数据类型关联的
格式化数据
决定。 因此:

  • .Handles

    属性

    可用于输出对象上的数据处理

  • 如果您还想在表格输出中
  • 显示

    它,请将其名称传递给-Property

    Format-Table
    参数

  • 请注意,您必须传递要显示的
all

属性的名称,例如: Get-Process | Where Handles | Format-Table Handles, Id, Name

请注意,您可以使用 
*

来匹配

所有可用
属性: Get-Process | Where Handles | Format-Table Handles, *

.Handles

是类型原生

.HandleCount
属性的 alias 属性,
*
也会选择该属性,因此您将获得
both
Handles 和等效的
HandleCount
列。
    

© www.soinside.com 2019 - 2024. All rights reserved.