Get-Process
Ottiene i processi in esecuzione nel computer locale.
Sintassi
Get-Process
[[-Name] <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Get-Process
[[-Name] <String[]>]
-IncludeUserName
[<CommonParameters>]
Get-Process
-Id <Int32[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Get-Process
-Id <Int32[]>
-IncludeUserName
[<CommonParameters>]
Get-Process
-InputObject <Process[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Get-Process
-InputObject <Process[]>
-IncludeUserName
[<CommonParameters>]
Descrizione
Il Get-Process
cmdlet 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 passare un oggetto di processo tramite la pipeline a questo cmdlet.
Per impostazione predefinita, questo cmdlet restituisce un oggetto processo con informazioni dettagliate sul processo e supporta i metodi che consentono di avviare e arrestare il processo. È anche possibile usare i parametri del cmdlet per ottenere informazioni sulla versione del Get-Process
file per il programma eseguito nel processo e per ottenere i moduli caricati dal processo.
Esempio
Esempio 1: Ottenere un elenco di tutti i processi attivi nel computer locale
Get-Process
Questo comando ottiene un elenco di tutti i processi attivi in esecuzione nel computer locale. Per una definizione di ogni colonna, vedere la sezione Note .
Esempio 2: Ottenere tutti i dati disponibili su uno o più processi
Get-Process winword, explorer | Format-List *
Questo comando ottiene tutti i dati disponibili sui processi di Winword ed Explorer nel computer. Usa il parametro Name per specificare i processi, ma omette il nome del parametro facoltativo. L'operatore della pipeline () passa i dati al Format-List
cmdlet, che visualizza tutte le proprietà disponibili (|
*
) degli oggetti di processo Winword e Explorer.
È inoltre possibile identificare i processi tramite il relativo ID, Ad esempio, Get-Process -Id 664, 2060
.
Esempio 3: ottenere tutti i processi con un set di lavoro maggiore di una dimensione specificata
Get-Process | Where-Object {$_.WorkingSet -gt 20000000}
Questo comando ottiene tutti i processi con un working set superiore a 20 MB. Usa il Get-Process
cmdlet per ottenere tutti i processi in esecuzione. L'operatore della pipeline (|
) passa gli oggetti di processo al Where-Object
cmdlet, che seleziona solo l'oggetto con un valore maggiore di 20.000.000 byte per la proprietà WorkingSet .
WorkingSet è una delle molte proprietà degli oggetti di elaborazione. Per visualizzare tutte le proprietà, digitare Get-Process | Get-Member
. Per impostazione predefinita, i valori di tutte le proprietà di quantità sono espressi in byte, anche se nella visualizzazione predefinita sono elencati in kilobyte e megabyte.
Esempio 4: Elencare i processi nel computer nei gruppi in base alla priorità
$A = Get-Process
$A | Get-Process | Format-Table -View priority
Questi comandi elencano i processi nel computer nei gruppi in base alla relativa classe di priorità. Il primo comando ottiene tutti i processi nel computer e li archivia nella $A
variabile.
Il secondo comando pipe l'oggetto Process archiviato nella $A
variabile al Get-Process
cmdlet, quindi al Format-Table
cmdlet, che formatta i processi usando la visualizzazione Priority .
La visualizzazione Priorità e altre visualizzazioni vengono definite nei file di formato PS1XML nella home directory di PowerShell ($pshome
).
Esempio 5: Aggiungere una proprietà alla visualizzazione di output standard Get-Process
Get-Process pwsh | Format-Table `
@{Label = "NPM(K)"; Expression = {[int]($_.NPM / 1024)}},
@{Label = "PM(K)"; Expression = {[int]($_.PM / 1024)}},
@{Label = "WS(K)"; Expression = {[int]($_.WS / 1024)}},
@{Label = "VM(M)"; Expression = {[int]($_.VM / 1MB)}},
@{Label = "CPU(s)"; Expression = {if ($_.CPU) {$_.CPU.ToString("N")}}},
Id, ProcessName, StartTime -AutoSize
NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName StartTime
------ ----- ----- ----- ------ -- ----------- ---------
143 239540 259384 2366162 22.73 12720 pwsh 12/5/2022 3:21:51 PM
114 61776 104588 2366127 11.45 18336 pwsh 12/5/2022 7:30:53 AM
156 77924 82060 2366185 10.47 18812 pwsh 12/5/2022 7:30:52 AM
85 48216 115192 2366074 1.14 24428 pwsh 12/8/2022 9:14:15 AM
In questo esempio vengono recuperati i processi dal computer locale. I processi recuperati vengono inviati tramite pipe al Format-Table
comando che aggiunge la proprietà StartTime alla visualizzazione di output standard Get-Process
.
Esempio 6: Ottenere informazioni sulla versione per un processo
Get-Process pwsh -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
6.1.2 6.1.2 C:\Program Files\PowerShell\6\pwsh.exe
Questo comando usa il parametro FileVersionInfo per ottenere le informazioni sulla versione per il file che è il modulo principale per il pwsh.exe
processo di PowerShell.
Per eseguire questo comando con i processi che non sono proprietari in Windows Vista e versioni successive di Windows, è necessario aprire PowerShell con l'opzione Esegui come amministratore .
Esempio 7: Ottenere moduli caricati con il processo specificato
Get-Process SQL* -Module
Questo comando usa il parametro Module per ottenere i moduli caricati dal processo.
Questo comando ottiene i moduli per i processi con nomi che iniziano con SQL
.
Per eseguire questo comando in Windows Vista e versioni successive di Windows con processi non proprietari, è necessario avviare PowerShell con l'opzione Esegui come amministratore .
Esempio 8: Trovare il proprietario di un processo
Get-Process pwsh -IncludeUserName
Handles WS(K) CPU(s) Id UserName ProcessName
------- ----- ------ -- -------- -----------
782 132080 2.08 2188 DOMAIN01\user01 pwsh
Questo comando mostra come trovare il proprietario di un processo.
In Windows il parametro IncludeUserName richiede diritti utente elevati (Esegui come amministratore).
L'output rivela che il proprietario è Domain01\user01
.
Esempio 9: Usare una variabile automatica per identificare il processo che ospita la sessione corrente
Get-Process 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 mostrano come usare la $PID
variabile automatica per identificare il processo che ospita la sessione di PowerShell corrente. È possibile usare questo metodo per distinguere il processo host da altri processi di PowerShell che è possibile arrestare o chiudere.
Il primo comando ottiene tutti i processi di PowerShell nella sessione corrente.
Il secondo comando ottiene il processo di PowerShell 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 {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize
Questo comando ottiene tutti i processi che hanno un titolo della finestra principale e li visualizza in una tabella con l'ID del processo e il nome del processo.
La proprietà mainWindowTitle è solo una delle molte proprietà utili dell'oggetto Process che Get-Process
restituisce. Per visualizzare tutte le proprietà, inviare i risultati di un Get-Process
comando al Get-Member
cmdlet 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 aprire PowerShell con l'opzione Esegui come amministratore per usare questo parametro nei processi che non sono proprietari.
L'uso di questo parametro equivale a ottenere la proprietà MainModule.FileVersionInfo di ogni oggetto processo. Quando si usa questo parametro, Get-Process
restituisce un oggetto FileVersionInfo System.Diagnostics.FileVersionInfo, non un oggetto process. Non è quindi possibile inviare l'output del comando a un cmdlet che prevede un oggetto processo, ad esempio Stop-Process
.
Type: | SwitchParameter |
Aliases: | FV, FVI |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Specifica uno o più processi mediante l'ID processo (PID). Per specificare più ID, separarli con la virgola. Per trovare il PID di un processo, digitare Get-Process
.
Type: | Int32[] |
Aliases: | PID |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-IncludeUserName
Indica che il valore UserName dell'oggetto Process viene restituito con i risultati del comando.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Specifica uno o più oggetti processo. Immettere una variabile che contiene gli oggetti oppure digitare un comando o un'espressione che ottiene gli oggetti.
Type: | Process[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Module
Indica che questo cmdlet ottiene i moduli caricati dai processi.
In Windows Vista e versioni successive di Windows è necessario aprire PowerShell con l'opzione Esegui come amministratore per usare questo parametro nei processi che non sono proprietari.
Questo parametro equivale a ottenere la proprietà Modules di ogni oggetto processo. Quando si usa questo parametro, questo cmdlet restituisce un oggetto ProcessModule System.Diagnostics.ProcessModule, non un oggetto process. Non è quindi possibile inviare l'output del comando a un cmdlet che prevede un oggetto processo, ad esempio Stop-Process
.
Quando si usano entrambi i parametri Module e FileVersionInfo nello stesso comando, questo cmdlet restituisce un oggetto FileVersionInfo con informazioni sulla versione file di tutti i moduli.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Specifica uno o più processi mediante il nome del processo. È possibile digitare più nomi di processo, separati da virgole, e usare caratteri jolly. Il nome del parametro (Name
) è facoltativo.
Type: | String[] |
Aliases: | ProcessName |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Input
È possibile inviare un oggetto processo a questo cmdlet.
Output
Per impostazione predefinita, questo cmdlet restituisce un oggetto System.Diagnostics.Process .
Se si usa il parametro FileVersionInfo , questo cmdlet restituisce un oggetto FileVersionInfo .
Se si usa il parametro Module , senza il parametro FileVersionInfo , questo cmdlet restituisce un oggetto ProcessModule .
Note
PowerShell include gli alias seguenti per Get-Process
:
- Tutte le piattaforme:
gps
- Windows:
ps
Nei computer che eseguono una versione a 64 bit di Windows, la versione a 64 bit di PowerShell ottiene solo moduli di processo a 64 bit e la versione a 32 bit di PowerShell ottiene solo moduli di processo a 32 bit.
Per ottenere informazioni sui processi da un computer remoto, usare il Invoke-Command
cmdlet. Per altre informazioni, vedere Invoke-Command.
È possibile usare le proprietà e i metodi dell'oggetto Strumentazione gestione Windows (WMI) Win32_Process in PowerShell. Per informazioni, vedere Win32_Process.
La visualizzazione predefinita di un processo è una tabella che include le colonne seguenti. Per una descrizione di tutte le proprietà degli oggetti di elaborazione, vedere Proprietà processo.
- Handle: numero di handle aperti dal processo.
- NPM(K): quantità di memoria non a pagina usata dal processo in kilobyte.
- PM(K): quantità di memoria paginabile usata dal processo in kilobyte.
- WS(K): dimensioni del set di lavoro del processo, in kilobyte. Il working set è costituito dalle pagine di memoria a cui ha fatto recentemente riferimento il processo.
- VM(M): quantità di memoria virtuale usata dal processo in megabyte. La memoria virtuale include l'archiviazione nei file di paging su disco.
- CPU(s): quantità di tempo di processore usato per tutti i processori, in secondi.
- ID: ID processo (PID) del processo.
- ProcessName: nome del processo. Per una spiegazione dei concetti relativi ai processi, consultare il Glossario in Guida e supporto tecnico e la Guida di Gestione attività.
È anche possibile usare le visualizzazioni alternative predefinite dei processi disponibili con Format-Table
, ad esempio StartTime e Priority, e è possibile progettare visualizzazioni personalizzate.