Get-process命令在监视远程计算机上的进程时给出负值

时间:2012-06-07 14:13:16

标签: powershell

我正在我的系统上执行此命令

get-process $Processname -computername $Computername 

但是在输出中它给我负的工作集和分页内存大小值 输出:

Name        ID         VM   PeakVM          WS         PeakWS Thread     Handle
----        --         --   ------          --         ------ ------     ------
FusionA  10724      -1282     -988       -1777          -1697    232       2085
FusionA  10724      -1281     -988       -1746          -1697    232       2091
FusionA  10724      -1280     -988       -1713          -1697    232       2099
FusionA  10724      -1279     -988       -1707          -1697    232       2108
FusionA  10724      -1277     -988       -1702          -1697    232       2118

Plz让我知道如何解决这个问题.. 对于那些不明白我的意思的人,没有必要爆发plz,因为我正在解释它... 最初我做的是这样的事情:

if($env:Processor_Architecture -eq "x86")
{
write "`nrunning on 32bit"
$a = @{Expression={$_.Name.SubString(0,7)};Label="Name";width=7}, `
@{Expression={$_.ID};Label="ID";width=6}, `
@{Expression={$_.PagedMemorySize/1024};Label="VirtualMemory";width=10},
@{Expression={$_.PeakPagedMemorySize/1024};Label="PeakVirtualMemory";width=8},
@{Expression={$_.WS/1024};Label="WorkingSet";width=11},
@{Expression={$_.PeakWorkingSet/1024};Label="PeakWorkingSet";width=14},
@{Expression={$_.threads.count};Label="Threads";width=6},
@{Expression={$_.Handles};Label="Handles";width=10}

}
else
{
write "`nrunning on 64bit"
$a = @{Expression={$_.Name.SubString(0,7)};Label="Name";width=7}, `
@{Expression={$_.ID};Label="ID";width=6}, `
@{Expression={$_.PagedMemorySize64/1024};Label="VirtualMemory";width=10},
@{Expression={$_.PeakPagedMemorySize64/1024};Label="PeakVirtualMemory";width=10},
@{Expression={$_.WorkingSet64/1024};Label="WorkingSet";width=11},
@{Expression={$_.PeakWorkingSet64/1024};Label="PeakWorkingSet";width=14},
@{Expression={$_.threads.count};Label="Threads";width=6},
@{Expression={$_.Handles};Label="Handles";width=10}

}  

之后我运行以下命令:

get-process $Processname -computername $Computername  | format-table   $a -wrap

1 个答案:

答案 0 :(得分:7)

尝试以下方法 -

get-process $Processname -computername $Computername | ft Name,ID,VirtualMemorySize64,PeakVirtualMemorySize64,WorkingSet64,PeakWorkingSet64

应删除您的位数检查,您应该只使用64位属性。旧的属性是obselete。 Source