找出进程正在使用的内存

时间:2016-03-02 11:07:36

标签: powershell memory

我有一些服务器,我目前必须远程访问每个服务器并检查相同的组件以查看它使用了多少内存,因此我可以每天审核它。我想知道是否有办法编写脚本来执行此操作?也许是PowerShell脚本?

1 个答案:

答案 0 :(得分:4)

使用Get-Process有两种方法。您可以调用Get-Process来查找进程的不同内存使用情况。

如果你有powershell远程处理,你可以使用Invoke-Command -Session $ Session在会话中调用此命令。

不确定您要报告哪一个内存集,但您可以选择流程的不同内存集。

示例:

Get-Process|select ProcessName, Path, VirtualMemorySize, PrivateMemorySize, NonpagedSystemMemorySize, PagedMemorySize, PeakPagedMemorySize

如果您知道流程的名称,则可以执行以下操作

$process = Get-Process -Name "MyProcess.exe" 
# Access its properties or report based on its properties
$process.VirtualMemorySize 

如果您想要来自一台主机/机器的所有服务器的脚本,您可以执行以下操作:

# Array of PSSessions or you could use $computerNames with Invoke-command -ComputerName $computerNames instead
$session = @(); 
$results = Invoke-Command -Session $sessions -ScriptBlock {
   return Get-Process -Name "MyProcess"|Select Name, Path, VirtualMemorySize
}
$results|ForEach-Object {    
   # Do something with each and every server result
}

可替换地;如果您可以直接访问远程调用cmdlet,则可以直接使用GetName进程使用ComputerName。

示例:

Get-Process -ComputerName $computerNames