# Mostrar threads (Get-Process | select name,Threads).Threads.id # Nombre del proceso que tiene un identificador Get-Process -id 5708 # No funciona porque no se puede enlazar el parámetro Id con processhandle Get-WmiObject -Class Win32_Thread | select handle,processhandle,(Get-Process -id processhandle) # Listar hilos de cada proceso # Relación entre procesos e hilos # Mostrar los hilos de cada proceso utilizando WMI y el cmdlet Get-Process Get-WmiObject Win32_Thread | %{ $_.Handle,$_.ProcessHandle,(Get-Process -Id $_.ProcessHandle).ProcessName } # Mostrar información sobre los hilos de todos los procesos que se están ejecutando (qué proceso ejecuta el hilo) # Relación entre procesos e hilos (otro método) (HILOS -> PROCESOS) Get-WmiObject -Class Win32_Thread | select handle,processhandle, @{Name="Name Process"; Expression = {((Get-Process -Id $_.processhandle).name)}} # Mostrar los hilos del proceso Notepad (PROCESOS -> HILOS) Get-Process -name notepad | select Name,Threads (Get-WmiObject -Class Win32_Thread -Filter "ProcessHandle = $((gps -name notepad).id)") | %{ $_.Handle, $_.ProcessHandle, (Get-Process -Id $_.ProcessHandle).ProcessName } # Mostrar todos los hilos que ejecutan los procesos (PROCESOS -> HILOS) Get-Process | select Name,Threads | %{ $_.Name,($_.Threads).id } # Almacenar en un fichero los nombres de los procesos y el número de hilos que tienen Get-Process | select Name,Threads | %{ $_.Name + "->" + ($_.Threads).id.count | Out-File monitorizar.txt -Append } # Almacenar en un fichero los nombres de los procesos y el número de hilos que tienen (de forma continuada) for(1) { Get-Process | select Name,Threads | %{ $_.Name + "->" + ($_.Threads).id.count | Out-File monitorizar.txt -Append } Start-Sleep -Seconds 10 } # Almacenar en un fichero los nombres de los procesos y el número de hilos que tienen (de forma continuada junto con la fecha) for(1) { "----------------------------------------------" | Out-File monitorizar.txt -Append Get-Date | Out-File monitorizar.txt -Append Get-Process | select Name,Threads | %{ $_.Name + "->" + ($_.Threads).id.count | Out-File monitorizar.txt -Append } Start-Sleep -Seconds 10 } # Almacenar en un fichero los nombres de los procesos y el número de hilos que tienen mediante una función (de forma continuada junto con la fecha) function contarhilos($Threads) { $Threads.count } for(1) { "----------------------------------------------" | Out-File monitorizar.txt -Append Get-Date | Out-File monitorizar.txt -Append Get-Process | select Name,Threads | %{ $_.Name + "->" + (contarhilos($_.Threads)) | Out-File monitorizar.txt -Append } Start-Sleep -Seconds 10 }
Ejercicios de PowerShell: ejercicios sobre hilos (Hilos)
Except where otherwise noted, Jesusninoc by Jesús N. is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.