2

这是行不通的

>dir IIS:\AppPools\ | % { dir IIS:\AppPools\$_.Name\WorkerProcesses }

更多信息

我想使用 Powershell 来获取每个应用程序池的 PID。我知道我可以使用 WMI 来获取类似以下命令的信息,但我正在尝试使用 Powershell 的 WebAdministration 模块。

WMI 方法(工作示例)

Get-WmiObject -NameSpace 'root\WebAdministration' -class 'WorkerProcess' -ComputerName 'host' | select AppPoolName, ProcessId | ft -a

AppPoolName                   ProcessId
-----------                   ---------
MSExchangePowerShellAppPool        5432
MSExchangeServicesAppPool          3604
MSExchangeOWAAppPool               7056
MSExchangeAutodiscoverAppPool      6012
DefaultAppPool                     3288
MSExchangeSyncAppPool              2944

Powershell 方法(不工作示例.. 帮助!)

如何结合两个命令的输出(可能作为单行)来为我提供每个应用程序池的 PID?

[PS] C:\Windows\system32>import-module WebAdministration
[PS] C:\Windows\system32>dir IIS:\AppPools

Name                     State        Applications
----                     -----        ------------
Classic .NET AppPool     Started
DefaultAppPool           Started      Default Web Site
                                      /Rpc
                                      /RpcWithCert
                                      /ArchiveProxy
MSExchangeAutodiscoverAp Started      /Autodiscover
pPool                                 /Autodiscover/bin
                                      /Autodiscover/help
MSExchangeECPAppPool     Started      /ecp
MSExchangeOWAAppPool     Started      /owa
                                      /owa/oma
                                      /ArchiveProxyOwa
MSExchangeOWACalendarApp Started      /owa/Calendar
Pool
MSExchangePowerShellAppP Started      /PowerShell
ool
MSExchangeServicesAppPoo Started      /EWS
l                                     /EWS/bin
MSExchangeSyncAppPool    Stopped      /Microsoft-Server-ActiveSync

我要组合的第二个查询是:

[PS] C:\Windows\system32>dir IIS:\AppPools\DefaultAppPool\WorkerProcesses  | fl


processId : 3904
Handles   : 89516
state     : Running
StartTime : 2/19/2013 10:34:57 PM
4

1 回答 1

2

你只需要扩展你需要的属性:

dir IIS:\AppPools\ |select -expand name| % { dir IIS:\AppPools\$_\WorkerProcesses } 
于 2013-02-21T16:07:16.073 回答