Get-Process
Ottiene i processi in esecuzione nel computer locale.
Sintassi
Name (impostazione predefinita).
Get-Process
[[-Name] <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
NameWithUserName
Get-Process
[[-Name] <String[]>]
-IncludeUserName
[<CommonParameters>]
Id
Get-Process
-Id <Int32[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
IdWithUserName
Get-Process
-Id <Int32[]>
-IncludeUserName
[<CommonParameters>]
InputObject
Get-Process
-InputObject <Process[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
InputObjectWithUserName
Get-Process
-InputObject <Process[]>
-IncludeUserName
[<CommonParameters>]
Descrizione
Il cmdlet Get-Process ottiene i processi in un computer locale.
Senza parametri, questo cmdlet ottiene tutti i processi nel computer locale. È anche possibile specificare un processo specifico in base al nome del processo o all'ID processo (PID) o inviando un piping di un oggetto System.Diagnostics.Process a questo cmdlet.
Per impostazione predefinita, questo cmdlet restituisce un oggetto Process con informazioni dettagliate sul processo e supporta metodi che consentono di controllarlo. Con i parametri, è possibile modificare il tipo di informazioni restituite da questo cmdlet.
- Modulo: recuperare le informazioni per ogni modulo caricato nel processo.
- FileVersionInfo: recuperare le informazioni sulla versione del file per il modulo principale del processo.
Annotazioni
Un modulo è un file eseguibile o una DLL (Dynamic Link Library) caricata in un processo. Un processo include uno o più moduli. Il modulo principale è il modulo usato per avviare inizialmente il processo. Per altre informazioni, vedere Classe ProcessModule.
Esempio
Esempio 1: Ottenere un elenco di tutti i processi in esecuzione nel computer locale
Get-Process
Questo comando ottiene un elenco di tutti i processi in esecuzione nel computer locale. Per una definizione di ogni colonna di visualizzazione, vedere la sezione NOTES .
Per visualizzare tutte le proprietà di un oggetto Process , utilizzare Get-Process | Get-Member. Per impostazione predefinita, PowerShell visualizza determinati valori di proprietà usando unità come kilobyte (K) e megabyte (M). I valori effettivi quando si accede con l'operatore di accesso ai membri (.) sono in byte.
Esempio 2: Visualizzare informazioni dettagliate su uno o più processi
Get-Process winword, explorer | Format-List *
Questa pipeline visualizza informazioni dettagliate sui winword processi e explorer nel computer. Usa il parametro Name per specificare i processi, ma omette il nome del parametro facoltativo. L'operatore pipeline (|) invia tramite pipe gli oggetti Process al Format-List cmdlet, che visualizza tutte le proprietà disponibili (*) e i relativi valori per ogni oggetto.
È anche possibile identificare i processi in base ai relativi ID processo. Ad esempio, Get-Process -Id 664, 2060.
Esempio 3: Ottenere tutti i processi con un working set maggiore di una dimensione specificata
Get-Process | Where-Object { $_.WorkingSet -gt 20971520 }
Get-Process | Where-Object WorkingSet -GT 20MB
Il Get-Process cmdlet restituisce i processi in esecuzione. L'output viene inviato tramite pipe al Where-Object cmdlet , che seleziona gli oggetti con un valore WorkingSet maggiore di 20.971.520 byte.
Nel primo esempio usa Where-Object un blocco di script per confrontare la proprietà WorkingSet di ogni oggetto Process . Nel secondo esempio il Where-Object cmdlet usa la sintassi semplificata per confrontare la proprietà WorkingSet . In questo caso, -GT è un parametro, non un operatore di confronto. Il secondo esempio usa anche un suffisso letterale numerico come alternativa concisa a 20971520. In PowerShell rappresenta MB un moltiplicatore mebibyte (MiB).
20MB è uguale a 20.971.520 byte.
Esempio 4: Visualizzare i processi nel computer in gruppi in base alla priorità
$processes = Get-Process
$processes | Sort-Object { $_.PriorityClass } | Format-Table -View Priority
Questi comandi visualizzano i processi nel computer in gruppi in base alla relativa classe di priorità. Il primo comando ottiene tutti i processi nel computer e li archivia nella $processes variabile .
Il secondo comando invia tramite pipe gli oggetti Process archiviati nella $processes variabile al Sort-Object cmdlet, quindi al Format-Table cmdlet , che formatta i processi usando la visualizzazione Priorità .
Esempio 5: Aggiungere una proprietà alla visualizzazione predefinita dell'output 'Get-Process'
Get-Process -Name pwsh | Format-Table -Property @(
@{ Name = 'NPM(K)'; Expression = { [int] ($_.NPM / 1KB) } }
@{ Name = 'PM(M)'; Expression = { [int] ($_.PM / 1MB) } }
@{ Name = 'WS(M)'; Expression = { [int] ($_.WS / 1MB) } }
@{ Name = 'CPU(s)'; Expression = { if ($_.CPU) { $_.CPU.ToString('N') } } }
'Id'
@{ Name = 'SI'; Expression = 'SessionId' }
'ProcessName'
'StartTime'
) -AutoSize
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName StartTime
------ ----- ----- ------ -- -- ----------- ---------
84 46 79 18.297 3188 1 pwsh 4/14/2025 10:40:10 AM
66 30 90 4.328 4640 1 pwsh 4/13/2025 3:33:50 PM
66 30 90 4.516 9204 1 pwsh 4/14/2025 9:54:27 AM
Questo esempio recupera i processi dal computer locale e invia tramite pipe ogni oggetto Process al Format-Table cmdlet .
Format-Table ricrea la visualizzazione di output predefinita di un oggetto Process usando una combinazione di nomi di proprietà e proprietà calcolate. La visualizzazione include una proprietà StartTime aggiuntiva non presente nella visualizzazione predefinita.
Esempio 6: Ottenere informazioni sulla versione per un processo
Get-Process -Name pwsh -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
7.5.0 SHA: 99da… 7.5.0.500 C:\Program Files\PowerShell\7\pwsh.exe
Questo comando usa il parametro FileVersionInfo per ottenere informazioni sulla versione del file per il modulo principale del pwsh processo. Il modulo principale è il file usato per avviare il processo, che in questo caso è pwsh.exe.
Per usare questo comando con processi di cui non si è proprietari in Windows Vista e versioni successive di Windows, è necessario eseguire PowerShell con diritti utente elevati (Esegui come amministratore).
Esempio 7: Ottenere moduli caricati con il processo specificato
Get-Process -Name SQL* -Module
Questo comando usa il parametro Module per ottenere i moduli caricati da tutti i processi con un nome che inizia con SQL.
Per usare questo comando con processi di cui non si è proprietari in Windows Vista e versioni successive di Windows, è necessario eseguire PowerShell con diritti utente elevati (Esegui come amministratore).
Esempio 8: Trovare il proprietario di un processo
Get-Process -Name pwsh -IncludeUserName
WS(M) CPU(s) Id UserName ProcessName
----- ------ -- -------- -----------
46.53 21.70 3188 DOMAIN01\user01 pwsh
Get-CimInstance -ClassName Win32_Process -Filter "name='pwsh.exe'" |
Invoke-CimMethod -MethodName GetOwner
Domain ReturnValue User PSComputerName
------ ----------- ---- --------------
DOMAIN01 0 user01
Il primo comando mostra come ottenere il proprietario di un processo. L'output rivela che il proprietario è DOMAIN01\user01.
La seconda pipeline mostra un modo diverso per ottenere il proprietario di un processo usando Get-CimInstance e Invoke-CimMethod. La classe Win32_Process con un filtro recupera i pwsh processi e il metodo richiamato GetOwner() restituisce informazioni sul dominio e sull'utente del processo. Questo metodo è disponibile solo in Windows e non richiede diritti utente elevati.
Esempio 9: Usare una variabile automatica per identificare il processo che ospita la sessione corrente
Get-Process -Name pwsh
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
83 96.21 105.95 4.33 1192 10 pwsh
79 83.81 117.61 2.16 10580 10 pwsh
Get-Process -Id $PID
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
83 96.21 77.53 4.39 1192 10 pwsh
Questi comandi illustrano come usare la variabile automatica $PID per identificare il processo che ospita la sessione di PowerShell corrente. È possibile usare questo metodo per distinguere il processo host da altri pwsh processi che è possibile controllare.
Il primo comando ottiene tutti i pwsh processi in esecuzione. Il secondo comando ottiene il pwsh processo che ospita la sessione corrente.
Esempio 10: Ottenere tutti i processi con un titolo della finestra principale e visualizzarli in una tabella
Get-Process |
Where-Object -Property MainWindowTitle |
Format-Table -Property Id, Name, MainWindowTitle -AutoSize
Questa pipeline ottiene tutti i processi con un titolo della finestra principale e li visualizza in una tabella con l'ID e il nome del processo.
MainWindowTitle è una delle numerose proprietà utili del tipo di oggetto Diagnostics.Process restituito Get-Process . Per visualizzare tutte le proprietà, usare Get-Process | Get-Member.
Parametri
-FileVersionInfo
Indica che questo cmdlet ottiene le informazioni sulla versione del file per il programma eseguito nel processo.
In Windows Vista e versioni successive di Windows è necessario eseguire PowerShell con diritti utente elevati (Esegui come amministratore) per usare questo parametro nei processi di cui non si è proprietari.
L'utilizzo di questo parametro equivale all'accesso alla proprietà MainModule.FileVersionInfo di ogni oggetto Process . Quando si utilizza questo parametro, Get-Process restituisce un oggetto FileVersionInfo , non un oggetto Process . Non è possibile inviare tramite pipe l'output generato usando questo parametro a un cmdlet che prevede un oggetto Process , ad esempio Stop-Process.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | FV, FVI |
Set di parametri
Name
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
Id
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
InputObject
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Id
Specifica uno o più processi in base all'ID processo (PID). È possibile specificare più ID separati da virgole. Per ottenere il PID di un processo, usare Get-Process. Per ottenere il PID della sessione di PowerShell corrente, usare $PID.
Proprietà dei parametri
| Tipo: | Int32[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | PID |
Set di parametri
Id
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
IdWithUserName
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-IncludeUserName
Indica che questo comando aggiunge una proprietà UserName a ogni oggetto Process restituito.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
NameWithUserName
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
IdWithUserName
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
InputObjectWithUserName
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-InputObject
Specifica uno o più oggetti Process . Utilizzare una variabile che contiene gli oggetti o un comando o un'espressione che ottiene gli oggetti .
Proprietà dei parametri
| Tipo: | Process[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
InputObject
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
InputObjectWithUserName
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Module
Indica che questo cmdlet ottiene i moduli caricati dal processo.
In Windows Vista e versioni successive di Windows è necessario eseguire PowerShell con diritti utente elevati (Esegui come amministratore) per usare questo parametro nei processi di cui non si è proprietari.
L'utilizzo di questo parametro equivale all'accesso alla proprietà Modules di ogni oggetto Process .
Quando si utilizza questo parametro, Get-Processrestituisce un oggetto ProcessModule , non un oggetto Process . Non è possibile inviare tramite pipe l'output generato usando questo parametro a un cmdlet che prevede un oggetto Process , ad esempio Stop-Process.
Quando si usano entrambi i parametri Module e FileVersionInfo , questo cmdlet restituisce un oggetto FileVersionInfo con informazioni sulla versione del file di tutti i moduli.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
Name
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
Id
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
InputObject
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Name
Specifica uno o più processi in base al nome del processo. È possibile specificare più nomi di processo separati da virgole e usare caratteri jolly. L'uso del -Name parametro è facoltativo.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | True |
| DontShow: | False |
| Alias: | ProcessName |
Set di parametri
Name
| Posizione: | 0 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
NameWithUserName
| Posizione: | 0 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Input
Process
È possibile inviare tramite pipe oggetti Process a questo cmdlet.
Output
Process
Per impostazione predefinita, questo cmdlet restituisce un oggetto System.Diagnostics.Process.
FileVersionInfo
Se si utilizza il parametro FileVersionInfo , questo cmdlet restituisce un oggetto System.Diagnostics.FileVersionInfo .
ProcessModule
Se si utilizza il parametro Module , senza il parametro FileVersionInfo , questo cmdlet restituisce un oggetto System.Diagnostics.ProcessModule .
Note
PowerShell include gli alias seguenti per Get-Process:
- Tutte le piattaforme:
gps
- Windows:
ps
Nei computer che eseguono Windows a 64 bit, la versione a 64 bit di PowerShell ottiene il modulo principale e i moduli di processo a 64 bit. La versione a 32 bit di PowerShell ottiene solo moduli di elaborazione a 32 bit.
Avvertimento
Quando si usa Get-Process per ottenere un processo a 64 bit nella versione a 32 bit di PowerShell, le proprietà come Path e MainModule dell'oggetto Process restituito sono $null. È necessario usare la versione a 64 bit di PowerShell o la classe Win32_Process .
Per ottenere informazioni sul processo da un computer remoto, usare il cmdlet Invoke-Command. Per altre informazioni, vedere Invoke-Command.
In Windows è possibile usare la classe strumentazione gestione Windows (WMI) Win32_Process in PowerShell come alternativa a Get-Process. Per altre informazioni, vedere:
La visualizzazione predefinita di un oggetto Process è una vista tabella che include le colonne seguenti.
- NPM(K): quantità di memoria non di paging usata dal processo, espressa in kilobyte.
- PM(M): quantità di memoria pageable usata dal processo, in megabyte.
- WS(M): dimensioni del working set del processo, in megabyte. Il working set è costituito dalle pagine di memoria a cui fa riferimento di recente il processo.
- CPU o CPU: quantità di tempo del processore usata dal processo in tutti i processori, in secondi.
- ID: ID processo (PID) del processo.
- SI: ID sessione del processo.
- ProcessName: nome del processo.
È possibile usare le visualizzazioni alternative predefinite per gli oggetti Process disponibili con Format-Table, ad esempio StartTime e Priority. È anche possibile progettare visualizzazioni personalizzate.
Per una descrizione di tutti i membri dell'oggetto Process disponibili, vedere Process Properties and Process Methods.For a description of all available Process object members, see Process Properties and Process Methods.