Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell内存和CPU使用率_Powershell_Memory_Cpu - Fatal编程技术网

Powershell内存和CPU使用率

Powershell内存和CPU使用率,powershell,memory,cpu,Powershell,Memory,Cpu,我见过- 我看到: 我知道我可以在Powershell内部发送:Get process tomcat*| Select Object CPU 我所看到的最大的问题是CPU不能在本地或远程返回 我已经准备好了下面的脚本。。CPU部分现在正在工作 writeHtmlHeader $TomcatMemFileName writeTableHeader $TomcatMemFileName [int]$i = 1 foreach ($server in Get-Content $serverlist)

我见过-

我看到:

我知道我可以在Powershell内部发送:Get process tomcat*| Select Object CPU

我所看到的最大的问题是CPU不能在本地或远程返回

我已经准备好了下面的脚本。。CPU部分现在正在工作

writeHtmlHeader $TomcatMemFileName
writeTableHeader $TomcatMemFileName

[int]$i = 1
foreach ($server in Get-Content $serverlist)
{
$Computer=$server.split(",")[0]
$ip=$server.split(",")[1]
IF ( $Computer -notmatch 'DB' ) {
  $procs = Gps tomcat* -ComputerName $Computer
   foreach ($proc in $procs){
    $id = $proc.ID
    $machine = $proc.MachineName
    $process = $proc.ProcessName
    $WorkingSet = [int64]($proc.WorkingSet64/1024)
    $VirtualMem = [int]($proc.VM/1MB)
    $cpuse= Get-Counter -computername $machine '\Process(tomcat6)\% Processor Time' | Select-Object -ExpandProperty countersamples | Select-Object -Property cookedvalue
    foreach ($cpus in $cpuse){
        $cpu=$cpus.cookedvalue
        write-host $TomcatMemFileName $i $machine.ToUpper() $id $process $WorkingSet $VirtualMem $cpu
        writeTomcatInfo $TomcatMemFileName $i $machine.ToUpper() $id $process $WorkingSet $VirtualMem $cpu
    }
}
}
 $i++
}

writeTablefooter $TomcatMemFileName
writeHtmlFooter $TomcatMemFileName
谢谢


肯特

我假设你有权阅读计数器信息,如果脚本的其余部分工作正常

为什么不在计数器中指定进程名称,这样以后就不必处理所有的过滤了。例如:

$counter = Get-Counter '\Process(tomcat*)\% Processor Time' -ComputerName $myServer
$counter.CounterSamples.CookedValue

如果有多个tomcat进程,您将不得不拆分CounterSamples集合,但它应该可以正常工作。

如果脚本的其余部分正常工作,我假设您有权读取计数器信息

为什么不在计数器中指定进程名称,这样以后就不必处理所有的过滤了。例如:

$counter = Get-Counter '\Process(tomcat*)\% Processor Time' -ComputerName $myServer
$counter.CounterSamples.CookedValue

如果有多个tomcat进程,您将不得不拆分CounterSamples集合,但它应该可以正常工作。

如果脚本的其余部分正常工作,我假设您有权读取计数器信息

为什么不在计数器中指定进程名称,这样以后就不必处理所有的过滤了。例如:

$counter = Get-Counter '\Process(tomcat*)\% Processor Time' -ComputerName $myServer
$counter.CounterSamples.CookedValue

如果有多个tomcat进程,您将不得不拆分CounterSamples集合,但它应该可以正常工作。

如果脚本的其余部分正常工作,我假设您有权读取计数器信息

为什么不在计数器中指定进程名称,这样以后就不必处理所有的过滤了。例如:

$counter = Get-Counter '\Process(tomcat*)\% Processor Time' -ComputerName $myServer
$counter.CounterSamples.CookedValue

如果有多个tomcat进程,您将不得不拆分CounterSamples集合,但它应该可以正常工作。

CPU部分不工作的原因是您正在将其管道化以格式化表(您使用FT别名)。转到
$cpuse=
行的末尾,删除
|ft-AutoSize
。一旦你这样做了,它就会像你期望的那样工作。我还建议像Greg那样将流程过滤移到计数器

$cpuse= Get-Counter -computername $machine '\Process(tomcat*)\% Processor Time' | Select-Object -ExpandProperty countersamples | Select-Object -Property cookedvalue

CPU部分不工作的原因是您正在将其管道化以格式化表(您使用FT别名)。转到
$cpuse=
行的末尾,删除
|ft-AutoSize
。一旦你这样做了,它就会像你期望的那样工作。我还建议像Greg那样将流程过滤移到计数器

$cpuse= Get-Counter -computername $machine '\Process(tomcat*)\% Processor Time' | Select-Object -ExpandProperty countersamples | Select-Object -Property cookedvalue

CPU部分不工作的原因是您正在将其管道化以格式化表(您使用FT别名)。转到
$cpuse=
行的末尾,删除
|ft-AutoSize
。一旦你这样做了,它就会像你期望的那样工作。我还建议像Greg那样将流程过滤移到计数器

$cpuse= Get-Counter -computername $machine '\Process(tomcat*)\% Processor Time' | Select-Object -ExpandProperty countersamples | Select-Object -Property cookedvalue

CPU部分不工作的原因是您正在将其管道化以格式化表(您使用FT别名)。转到
$cpuse=
行的末尾,删除
|ft-AutoSize
。一旦你这样做了,它就会像你期望的那样工作。我还建议像Greg那样将流程过滤移到计数器

$cpuse= Get-Counter -computername $machine '\Process(tomcat*)\% Processor Time' | Select-Object -ExpandProperty countersamples | Select-Object -Property cookedvalue

不工作<代码>获取计数器:\\SERVER\\Process(tomcat*)\%处理器时间性能计数器路径无效。在D:\WORK\ps\tomcat\u memory.ps1:130 char:27+$counter=Get counter您是否碰巧使用了PowerShell 2.0?PowerShell 3+允许您在计数器中使用通配符。否则,您必须使用类似“tomcat”、“tomcat”1、“tomcat”2等的内容,而不使用引号来获取每个进程的统计信息。对脚本进行了更改,可以满足我们的需要:
“\process(tomcat6)\%Processor Time”
不工作<代码>获取计数器:\\SERVER\\Process(tomcat*)\%处理器时间性能计数器路径无效。在D:\WORK\ps\tomcat\u memory.ps1:130 char:27+$counter=Get counter您是否碰巧使用了PowerShell 2.0?PowerShell 3+允许您在计数器中使用通配符。否则,您必须使用类似“tomcat”、“tomcat”1、“tomcat”2等的内容,而不使用引号来获取每个进程的统计信息。对脚本进行了更改,可以满足我们的需要:
“\process(tomcat6)\%Processor Time”
不工作<代码>获取计数器:\\SERVER\\Process(tomcat*)\%处理器时间性能计数器路径无效。在D:\WORK\ps\tomcat\u memory.ps1:130 char:27+$counter=Get counter您是否碰巧使用了PowerShell 2.0?PowerShell 3+允许您在计数器中使用通配符。否则,您必须使用类似“tomcat”、“tomcat”1、“tomcat”2等的内容,而不使用引号来获取每个进程的统计信息。对脚本进行了更改,可以满足我们的需要:
“\process(tomcat6)\%Processor Time”
不工作<代码>获取计数器:\\SERVER\\Process(tomcat*)\%处理器时间性能计数器路径无效。在D:\WORK\ps\tomcat\u memory.ps1:130 char:27+$counter=Get counter您是否碰巧使用了PowerShell 2.0?PowerShell 3+允许您在计数器中使用通配符。否则,您必须使用类似“tomcat”、“tomcat#1”、“tomcat#2”等内容,而不使用引号来获取每个进程的统计信息。对脚本进行了更改,该脚本可以满足我们的需要:
“\process(tomcat6)\%Processor Time”
刚刚更新了代码以使其正常工作!谢谢@ThemadTechnician刚刚更新了代码,可以正常工作了!谢谢@ThemadTechnician刚刚更新了代码,可以正常工作了!谢谢@ThemadTechnician刚刚更新了代码,可以正常工作了!谢谢@TheMadTechnician