我想要一个显示以下内容的应用程序或脚本:工作进程、应用程序池名称、内存使用情况以及可选的 cpu 使用情况。我熟悉使用
%windir%\system32\inetsrv\appcmd.exe 列表 wp
但这只是让我得到workerproces id和应用程序池名称。然后我把它和交叉引用任务管理器。这可行,但我想要一个更快的 - 几乎像仪表板一样的信息显示。我想一定有某种解决方案可以显示信息,而无需像流程资源管理器那样单击。任何人都有他们特别使用的东西吗?这在powershell中可能吗?
如果您没有 IIS 7 和提供程序,则可以使用 WMI。附加的脚本适用于您的大多数要求,CPU 使用率除外。将以下脚本另存为 get-webserverapppoolstats.ps1 (或任何您想要的)。
您可以使用以下命令运行脚本:
./Get-WebServerAppPoolStats.ps1 'Server1', 'Server2', 'Server3' -IntegratedAuthentication OR Get-Content servers.txt | ./Get-WebServerAppPoolStats.ps1 -IntegratedAuthentication
是的,powershell 可以使用新的 IIS PowerShell 提供程序来做到这一点,这很容易。以下是提供的运行时数据演练中的一些示例:
应用池状态
工作进程和请求 get-process cmdlet 无法帮助您确定特定工作进程正在服务的应用程序池。然而,这很容易做到:
请注意,一旦您拥有 PID 常规
会告诉你内存使用情况
我不知道为什么这个脚本的服务器“名称”部分对我不起作用,但我想出了一个解决方法:
替换这一行:
$Server = @{Name='Server';表达式={$server}}
用这两行:
$machine = 新对象 system.string $server
$Server = @{Name='Server';表达式={$machine}}
一旦我这样做了,它就完美地工作了。