Powershell 显示正在运行的进程

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

如何通过Powershell获取组件服务的“运行进程”?

看这张图:

在这张图中,您可以看到 Trip1 正在运行,其 PID id 位于后面(本例中为 39808)。 我想通过 Powershell 检索此号码,但不知道如何操作。

找到的获取 COM+ 应用程序的代码是:

$comAdmin = New-Object -comobject COMAdmin.COMAdminCatalog
$apps = $comAdmin.GetCollection("Applications")
$apps.Populate()

变量“$apps”为我提供了已安装的组件。

但是如何知道定义的组件是否正在运行呢?那么如何获得该PID?

powershell
1个回答
0
投票

Applications
集合包含在计算机上注册的所有应用程序,而不仅仅是正在运行实例的应用程序。

要发现这些,请查询

ApplicationInstances
集合

$comAdmin = New-Object -comobject COMAdmin.COMAdminCatalog
$apps = $comAdmin.GetCollection("Applications")
$apps.Populate()

$appInstances = $comAdmin.GetCollection("ApplicationInstances")
$appInstances.Populate()

foreach ($appInstance in $appInstances) {
  # identify the associated application
  $appKey = $appInstance.Value('Application')
  $appName = ($apps |Where-Object Key -eq $appKey).Name

  # output along with hosting process id
  [pscustomobject]@{
    ApplicationName = $appName
    ProcessId = $appInstance.Value('ProcessID')
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.