我试图通过添加进程的内核模式时间和用户模式时间来显示 10 个进程,这些进程在具有 cpu 时间的系统中消耗了大部分内存。
Get-WmiObject Win32_Process -ComputerName XXXXX |
Sort-Object WorkingSetSize -Descending |
Select-Object -First 10 |
Format-Table -AutoSize Name, ProcessID,
@{Label = "Consumed Memory(MB)"; Expression = {
[math]::Round(($_.WorkingSetSize/1MB), 2) }},
@{Name = "Cpu Time"; Expression = {
"{0:HH:mm:ss}" -f ([datetime]$ts = [timespan]::FromTicks($_.KernelModeTime + $_.UserModeTime)).Ticks }}
输出:
Name ProcessID Consumed Memory(MB) Cpu Time ---- --------- ------------------- -------- SC.Server.WindowsService.exe 58400 2300.46 tesvc.exe 1680 138.88 iipress.exe 59004 98.61 java.exe 39020 77.68 mcshield.exe 2436 63.68 svchost.exe 828 47.12 ls.exe 588 33.65 CcmExec.exe 2496 20.8 svchost.exe 692 14.34 svchost.exe 796 14.14
你能告诉我这有什么问题吗?
您的括号是关闭的,您需要删除赋值操作。您需要将Timespan
值的刻度强制转换为DateTime
值。
改变这一点:
"{0:HH:mm:ss}" -f ([datetime]$ts = [timespan]::FromTicks($_.KernelModeTime + $_.UserModeTime)).Ticks
其中:
"{0:HH:mm:ss}" -f [datetime][timespan]::FromTicks($_.KernelModeTime + $_.UserModeTime).Ticks
如果你很好,得到几分之一秒,你也可以format the Timespan
directly:
'{0:c}' -f [timespan]::FromTicks($_.KernelModeTime + $_.UserModeTime)
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(24条)