Estoy intentando que PowerShell me proporcione el uso de la RAM y la CPU, pero no puedo determinar qué clase de WMI usar. Mi computadora tiene dos procesadores, por lo que sería útil tener la información para ambos.¿Cómo puedo encontrar el uso de la CPU y la RAM con PowerShell?
Respuesta
Get-WmiObject win32_processor | select LoadPercentage |fl
Esto le proporciona la carga de la CPU.
(Como EBGreen sugiere) EDIT:
Get-WmiObject win32_processor | Measure-Object -property LoadPercentage -Average | Select Average
También puede utilizar el contador cmdlet Get-(PowerShell 2.0):
Get-Counter '\Memory\Available MBytes'
Get-Counter '\Processor(_Total)\% Processor Time'
Para obtener una lista de los contadores de memoria:
Get-Counter -ListSet *memory* | Select-Object -ExpandProperty Counter
Para exportar la salida al archivo de forma continua (aquí cada cinco segundos) y guardar en un archivo CSV con Unix fecha como nombre de archivo:
while ($true) {
[int]$date = get-date -Uformat %s
$exportlocation = New-Item -type file -path "c:\$date.csv"
Get-Counter -Counter "\Processor(_Total)\% Processor Time" | % {$_} | Out-File $exportlocation
start-sleep -s 5
}
que utilice las siguientes PowerShell fragmento de código para obtener el uso de CPU para los sistemas locales o remotos:
Get-Counter -ComputerName localhost '\Process(*)\% Processor Time' | Select-Object -ExpandProperty countersamples | Select-Object -Property instancename, cookedvalue| Sort-Object -Property cookedvalue -Descending| Select-Object -First 20| ft InstanceName,@{L='CPU';E={($_.Cookedvalue/100).toString('P')}} -AutoSize
mismo guión pero formateado con línea de continuación:
Get-Counter -ComputerName localhost '\Process(*)\% Processor Time' `
| Select-Object -ExpandProperty countersamples `
| Select-Object -Property instancename, cookedvalue `
| Sort-Object -Property cookedvalue -Descending | Select-Object -First 20 `
| ft InstanceName,@{L='CPU';E={($_.Cookedvalue/100).toString('P')}} -AutoSize
En un sistema de 4 núcleos devolverá resultados que se ven así:
InstanceName CPU
------------ ---
_total 399.61 %
idle 314.75 %
system 26.23 %
services 24.69 %
setpoint 15.43 %
dwm 3.09 %
policy.client.invoker 3.09 %
imobilityservice 1.54 %
mcshield 1.54 %
hipsvc 1.54 %
svchost 1.54 %
stacsv64 1.54 %
wmiprvse 1.54 %
chrome 1.54 %
dbgsvc 1.54 %
sqlservr 0.00 %
wlidsvc 0.00 %
iastordatamgrsvc 0.00 %
intelmefwservice 0.00 %
lms 0.00 %
El argumento ComputerName aceptará una lista de servidores, por lo que con un poco de formateo adicional puede generar una lista de los procesos principales en cada servidor. Algo así como:
$psstats = Get-Counter -ComputerName utdev1,utdev2,utdev3 '\Process(*)\% Processor Time' -ErrorAction SilentlyContinue | Select-Object -ExpandProperty countersamples | %{New-Object PSObject -Property @{ComputerName=$_.Path.Split('\')[2];Process=$_.instancename;CPUPct=("{0,4:N0}%" -f $_.Cookedvalue);CookedValue=$_.CookedValue}} | ?{$_.CookedValue -gt 0}| Sort-Object @{E='ComputerName'; A=$true },@{E='CookedValue'; D=$true },@{E='Process'; A=$true }
$psstats | ft @{E={"{0,25}" -f $_.Process};L="ProcessName"},CPUPct -AutoSize -GroupBy ComputerName -HideTableHeaders
que daría lugar a una variable de $ psstats con los datos en bruto y la siguiente pantalla:
ComputerName: utdev1
_total 397%
idle 358%
3mws 28%
webcrs 10%
ComputerName: utdev2
_total 400%
idle 248%
cpfs 42%
cpfs 36%
cpfs 34%
svchost 21%
services 19%
ComputerName: utdev3
_total 200%
idle 200%
Cómo modificar $ psstats para dividir por '@ (gwmi -ComputerName $ server -Class Win32_ComputerSystemProcessor) .Count' y agregar' (gwmi Win32_Process -ComputerName $ ComputerName -Credential $ cred | Where {$ _. ProcessId -eq $ Process .IDProcess}). GetOwner(). User'? –
No necesita las comillas para continuar las líneas. Puede continuar en los símbolos de tubería. – js2010
- 1. ¿Cómo puedo obtener el uso de CPU y/o RAM de * THREAD * en C# (código administrado)?
- 2. ¿Cómo obtener el uso actual de CPU y RAM en C++?
- 3. ¿Cómo obtengo la velocidad de la CPU y la ram física total en C#?
- 4. Cómo simular diferentes frecuencias de CPU y limitar RAM
- 5. ¿Cómo puedo obtener el uso de la CPU y la memoria?
- 6. ¿Cómo saber el uso de la CPU y la memoria de un proceso con WMI?
- 7. ¿Cómo puedo evitar el uso elevado de CPU con la etiqueta de video HTML5?
- 8. ¿Puedo detectar el tipo y la velocidad de la CPU, y/o la cantidad de RAM que tiene una computadora desde una página web (javascript con suerte)?
- 9. ¿Limitaciones prácticas de la memoria JVM y el uso de la CPU?
- 10. Devolver el uso de la CPU en WMI con C#
- 11. ¿Cómo controlo la CPU, la memoria y el uso del disco de la computadora en Java?
- 12. Encontrar el uso de la CPU de la aplicación en Android
- 13. Cómo encontrar la causa de un uso de CPU 100% en una aplicación de iPhone
- 14. Android Sensor Uso de la CPU
- 15. Cómo limitar el uso de la CPU de un proceso
- 16. ¿Cómo obtener el uso de la CPU en C?
- 17. Cómo recuperar el uso de la CPU por proceso
- 18. ¿Cómo puedo limitar el uso de CPU FFMpeg?
- 19. Eclipse: Alto uso de la CPU durante la autocompleta
- 20. ¿Cómo optimizar el rendimiento de compilación de gradle con respecto a la duración de compilación y el uso de RAM?
- 21. ¿Cómo ver/informar sobre el uso de la CPU y la memoria de Windows Azure?
- 22. Debian: Descubre el uso de la CPU usando bash
- 23. CPU de acelerador Uso de la aplicación
- 24. Obtención de uso de CPU con golang
- 25. ¿Utiliza PerformanceCounter para rastrear la memoria y el uso de la CPU por proceso?
- 26. monitoreo de uso de la CPU Java
- 27. Uso de la CPU de Jquery
- 28. Uso de la biblioteca .NET de PowerShell
- 29. Cómo obtener el uso de CPU en asp.net
- 30. ¿Cómo se comunica la CPU con los periféricos?
Gracias! Sin embargo, ¿sería posible obtener un promedio de estos números? Preferiría tener solo un valor en lugar de dos. – Aaron
Pruebe esto: Get-WmiObject win32_processor | Measure-Object -property LoadPercentage -Average | Seleccione Promedio – EBGreen
Voy a dejar la respuesta de Anirudh en pie y si eso funciona para el OP y él no lo edita, lo haré más tarde. – EBGreen