如何使用PowerShell整合进程?附Teams内存监控脚本
PowerShell 实现Teams进程整合统计
你需要实现的是将多个Teams进程的内存使用数据整合汇总,以下是具体实现方案:
原脚本回顾
你已编写的脚本可列出单个Teams进程的内存数据:
$processtest = Get-process -name teams | Sort-Object -Property ws -Descending | Select-Object processname, @{Name="Mem Usage(MB)";Expression={[math]::round($_.ws / 1mb*2)}}, @{Name="Mem Usage(%)";Expression={[math]::round($_.ws / 1mb*2)/100}}
输出为每个Teams进程的单独内存数据:
ProcessName Mem Usage(MB) Mem Usage(%) ----------- ------------- ------------ Teams 954 9.54 Teams 930 9.3 Teams 310 3.1 Teams 299 2.99 Teams 274 2.74 Teams 168 1.68 Teams 152 1.52 Teams 37 0.37 Teams 37 0.37 Teams 25 0.25
整合进程的实现脚本
以下脚本会汇总所有Teams进程的总内存使用量及总内存使用率:
# 获取所有Teams进程,避免进程不存在时报错 $allTeamsProcesses = Get-Process -Name Teams -ErrorAction SilentlyContinue # 整合统计总内存数据 $integratedTeamsStats = $allTeamsProcesses | Group-Object -Property ProcessName | Select-Object Name, @{Name="总内存使用(MB)"; Expression={ if ($_.Group.Count -gt 0) { [math]::round(($_.Group | Measure-Object -Property WS -Sum).Sum / 1MB, 2) } else { 0 } }}, @{Name="总内存使用率(%)"; Expression={ if ($_.Group.Count -gt 0) { $systemTotalMemMB = (Get-CimInstance Win32_OperatingSystem).TotalVisibleMemorySize / 1KB $totalTeamsMemMB = ($_.Group | Measure-Object -Property WS -Sum).Sum / 1MB [math]::round( ($totalTeamsMemMB / $systemTotalMemMB) * 100, 2 ) } else { 0 } }} # 输出整合后的结果 $integratedTeamsStats
脚本说明
Get-Process -Name Teams -ErrorAction SilentlyContinue:获取所有Teams进程,同时处理进程不存在的报错情况Group-Object -Property ProcessName:将所有Teams进程按名称分组(此处仅包含Teams组)- 总内存使用(MB):通过
Measure-Object -Property WS -Sum计算所有Teams进程的内存总和,转换为MB并保留两位小数 - 总内存使用率(%):先获取系统总物理内存,再用Teams总内存除以系统总内存并转换为百分比,保留两位小数
整合后的输出示例
Name 总内存使用(MB) 总内存使用率(%) ---- ------------- -------------- Teams 3186 15.93
结合重启逻辑
你可将整合后的统计结果与已有的重启代码结合,示例如下:
$memoryThreshold = 90 # 设置内存使用率阈值 if ($integratedTeamsStats.'总内存使用率(%)' -ge $memoryThreshold) { # 强制停止所有Teams进程 Stop-Process -Name Teams -Force -ErrorAction SilentlyContinue # 等待5秒后重启Teams Start-Sleep -Seconds 5 Start-Process -Path "$env:LOCALAPPDATA\Microsoft\Teams\current\Teams.exe" }
内容的提问来源于stack exchange,提问作者Vida Vida
相关产品推荐
相关产品推荐

