Windows
免費應用程序或腳本來監控應用程序池記憶體使用情況
我想要一個顯示以下內容的應用程序或腳本:工作程序、應用程序池名稱、記憶體使用情況以及可選的 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
param ( $webserver = $null, $username, $password, [switch]$IntegratedAuthentication) BEGIN { $path = $MyInvocation.MyCommand.Path if ($webserver -ne $null) { if ($IntegratedAuthentication) { $webserver | &$path -IntegratedAuthentication } else { $webserver | &$path -username $username -password $password } } $OFS = ', ' $Fields = 'CommandLine', 'Name', 'CreationDate', 'ProcessID', 'WorkingSetSize', 'ThreadCount', 'PageFileUsage', 'PageFaults' $query = @" Select $fields From Win32_Process Where name = 'w3wp.exe' "@ $AppPool = @{Name='Application Pool';Expression={($_.commandline).split(' ')[-1]}} $Process = @{Name='Process';Expression={$_.name}} $RunningSince = @{Name='Running since';Expression={[System.Management.ManagementDateTimeconverter]::ToDateTime($_.creationdate)}} $Memory = @{Name='Memory Used';Expression={'{0:#,#}' -f $_.WorkingSetSize}} $Threads = @{Name='Thread Count';Expression={$_.threadcount}} $PageFile = @{Name='Page File Size';Expression={'{0:#,#}' -f $_.pagefileusage}} $PageFaults = @{Name='Page Faults';Expression={'{0:#,#}' -f $_.pagefaults}} } PROCESS { $server = $_ if ($server -ne $null) { if ($IntegratedAuthentication) { $result = Get-WmiObject -Query $query -ComputerName $server } else { $securepassword = ConvertTo-SecureString $password -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $securepassword $result = Get-WmiObject -Query $query -ComputerName $server -Credential $cred } $Server = @{Name='Server';Expression={$server}} $result | Select-Object $Server, $AppPool, $Process, $RunningSince, $Memory, $Threads, $PageFile, $pageFaults } }