#Obtener información ampliada sobre procesos
Get-Process | Select-Object *
gps | Select-Object *
ps | Select-Object *
#Obtener información sobre las propiedades de los procesos
Get-Process | Select-Object Name, Id, Company
gps | Select-Object Name, Id, Company
ps | Select-Object Name, Id, Company
#Obtener información ordenada sobre las propiedades de los procesos
Get-Process | Select-Object Name, Id, Company | Sort-Object Name
gps | Select-Object Name, Id, Company | Sort-Object Name
ps | Select-Object Name, Id, Company | Sort-Object Name
#Obtener los 5 primeros procesos ordenados
Get-Process | Select-Object Name, Id, Company | Sort-Object Name | Select-Object -First 5
gps | Select-Object Name, Id, Company | Sort-Object Name | Select-Object -First 5
ps | Select-Object Name, Id, Company | Sort-Object Name | Select-Object -First 5
#Contador de procesos
(Get-WmiObject Win32_OperatingSystem).NumberOfProcesses
(Get-Process).count
#Información sobre procesos
Get-Process | Select-Object Name,Path,Company,CPU,Product,TotalProcessorTime,StartTime
#Seleccionar nombre de procesos y compañía
Get-Process | select Company,Name
#Información sobre procesos
#Name
#CPUSeconds
#WorkingSetMB
#TotalProcessorTime
#Description
Get-Process | ? {$_.TotalProcessorTime -ne $Null} | Select-Object -Property Name, @{Name="CPUSeconds"; Expression = {($_.CPU)}},@{Name="WorkingSetMB"; Expression = {($_.WorkingSet / 1mb)}},TotalProcessorTime, Description
#DLL
Get-Process | select -expand MainModule
Get-Process | select -expand Modules
#Mostrar todos los procesos y sus propiedades
Get-Process | select *
Get-WmiObject win32_process
#Mostrar los procesos que ejecuta un usuario
Get-WmiObject win32_process |% {Write-Host $_.processname $_.getowner().user}
#Mostrar información sobre un proceso indicando el nombre del proceso
Get-Process -Name notepad
#Mostrar información sobre un proceso indicando el ID del proceso
Get-Process -Id 2732
#Ordenar procesos por CPU y por memoria usada
Get-Process | Sort-Object CPU,PM
#Mostrar de forma jerárquica los procesos que se están ejecutando
Get-Process | Select * | Format-Custom
#Mostrar los identificadores de los procesos junto con sus identificadores padre
Get-WmiObject win32_process | Select-Object ParentProcessId,ProcessId
#Mostrar las propiedades especificadas de los procesos
Get-Process | Select-Object Id,CPU,PM
#Mostrar el tiempo transcurrido en la ejecución de un proceso
Get-Process | Select-Object Id,TotalProcessorTime
#Formas de arrancar un proceso
$str = "Get-Process"
Invoke-Expression $str
$scriptblock = {ping host3}
Invoke-Command -scriptblock $scriptblock -computername "host1","host2"
#Información sobre hilos
(Get-Process chrome | Select-Object Threads).Threads
Get-Process | select -expand Threads
#Prioridad de los hilos
(Get-WmiObject -Class Win32_Thread) | Select-Object ProcessHandle,Priority,PriorityBase | Sort-Object ProcessHandle
(Get-Process).Threads | Select-Object Id,CurrentPriority,BasePriority | Sort-Object Id
#Estado de los hilos
(Get-WmiObject -Class Win32_Thread) | Select-Object ProcessHandle,ThreadState | Sort-Object ProcessHandle
(Get-Process).Threads | Select-Object Id,ThreadState | Sort-Object Id
#WS(K): The size of the working set of the process, in kilobytes. The working set consists of the pages of memory that were recently referenced by the process
@(Get-Process).where{$_.WorkingSet -gt 100MB}
@(Get-Process).where{$_.WS -gt 100MB}
#Ruta donde se ejecutan los procesos
Get-Process -FileVersionInfo
#Procesos que no responden
(Get-Process).Where{-not $_.Responding}
#Buscar procesos que se están ejecutando
(Get-Process).Where{$_.Name -like "chrome"}
#Formas de parar un proceso
Get-Process -Name notepad | Stop-Process
Get-WmiObject -Class Win32_Process -Filter “name=’notepad.exe'” | Invoke-WmiMethod -Name Terminate
Get-Process -Name notepad | ForEach-Object -Process {$_.Kill()}
#Listar y parar procesos
Get-Process | Out-GridView -PassThru | Stop-Process
#Información sobre servicios
Get-Service
Get-Service | Select-Object Name,Status
Get-Service | Where-Object Status -EQ 'Running'
Get-Service | Where-Object Status -EQ 'Stopped'
#Listar servicios WQL
Get-WmiObject -query "select * from win32_service"
#Servicios que están Running
Get-WmiObject -query "select * from win32_service where state='Running'"
#Identificar servicios mediante identificadores de procesos
Get-WmiObject -Class Win32_Service | Select-Object Name,ProcessID
#Información en el resgistro sobre estado de los servicios
Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\*' | % {Write-host $_.DisplayName : $_.Start}