Classe Win32_Process
La classe Win32_ProcessWMI rappresenta un processo in un sistema operativo.
La sintassi seguente è semplificata dal codice MOF (Managed Object Format) e include tutte le proprietà ereditate.
Nota
Per una discussione generale sui processi e i thread all'interno di Windows, vedere l'argomento Processi e thread.
Sintassi
[Dynamic, Provider("CIMWin32"), SupportsCreate, CreateBy("Create"), SupportsDelete, DeleteBy("DeleteInstance"), UUID("{8502C4DC-5FBB-11D2-AAC1-006008C78BC7}"), DisplayName("Processes"), AMENDMENT]
class Win32_Process : CIM_Process
{
string CreationClassName;
string Caption;
string CommandLine;
datetime CreationDate;
string CSCreationClassName;
string CSName;
string Description;
string ExecutablePath;
uint16 ExecutionState;
string Handle;
uint32 HandleCount;
datetime InstallDate;
uint64 KernelModeTime;
uint32 MaximumWorkingSetSize;
uint32 MinimumWorkingSetSize;
string Name;
string OSCreationClassName;
string OSName;
uint64 OtherOperationCount;
uint64 OtherTransferCount;
uint32 PageFaults;
uint32 PageFileUsage;
uint32 ParentProcessId;
uint32 PeakPageFileUsage;
uint64 PeakVirtualSize;
uint32 PeakWorkingSetSize;
uint32 Priority;
uint64 PrivatePageCount;
uint32 ProcessId;
uint32 QuotaNonPagedPoolUsage;
uint32 QuotaPagedPoolUsage;
uint32 QuotaPeakNonPagedPoolUsage;
uint32 QuotaPeakPagedPoolUsage;
uint64 ReadOperationCount;
uint64 ReadTransferCount;
uint32 SessionId;
string Status;
datetime TerminationDate;
uint32 ThreadCount;
uint64 UserModeTime;
uint64 VirtualSize;
string WindowsVersion;
uint64 WorkingSetSize;
uint64 WriteOperationCount;
uint64 WriteTransferCount;
};
Members
La classe Win32_Process ha questi tipi di membri:
Metodi
La classe Win32_Process dispone di questi metodi.
Metodo | Descrizione |
---|---|
AttachDebugger | Avvia il debugger attualmente registrato per un processo. |
Crea | Crea un nuovo processo. |
GetAvailableVirtualSize | Recupera le dimensioni correnti, in byte, dello spazio di indirizzi virtuale disponibile per il processo. Windows Server 2012, Windows 8, Windows 7, Windows Server 2008 e Windows Vista: questo metodo non è supportato prima di Windows 8.1 e Windows Server 2012 R2. |
GetOwner | Recupera il nome utente e il nome di dominio in cui è in esecuzione il processo. |
GetOwnerSid | Recupera l'identificatore di sicurezza (SID) per il proprietario di un processo. |
SetPriority | Modifica la priorità di esecuzione di un processo. |
Terminare | Termina un processo e tutti i relativi thread. |
Proprietà
La classe Win32_Process ha queste proprietà.
-
Didascalia
-
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: MaxLen (64), DisplayName ("Caption")
Breve descrizione di un oggetto: stringa a una riga.
Questa proprietà viene ereditata da CIM_ManagedSystemElement.
-
-
CommandLine
-
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: DisplayName ("Riga di comando per avviare il processo")
Riga di comando usata per avviare un processo specifico, se applicabile.
-
-
CreationClassName
-
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: CIM_Key, MaxLen (256), DisplayName ("Nome classe")
Nome della classe o della sottoclasse utilizzata nella creazione di un'istanza di . Se usato con altre proprietà chiave della classe, questa proprietà consente l'identificazione univoca di tutte le istanze della classe e delle relative sottoclassi.
Questa proprietà viene ereditata da CIM_Process.
-
-
CreationDate
-
-
Tipo di dati: datetime
-
Tipo di accesso: sola lettura
-
Qualificatori: Fixed, DisplayName ("CreationDate")
Data di inizio dell'esecuzione del processo.
Questa proprietà viene ereditata da CIM_Process.
-
-
CSCreationClassName
-
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: propagati ("CIM_OperatingSystem. CSCreationClassName"), CIM_Key, MaxLen (256), DisplayName ("Computer System Class Name")
Nome della classe di creazione del sistema computer di ambito.
Questa proprietà viene ereditata da CIM_Process.
-
-
CSName
-
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: propagati ("CIM_OperatingSystem. CSName"), CIM_Key, MaxLen (256), DisplayName ("Nome sistema computer")
Nome del sistema computer di definizione dell'ambito.
Questa proprietà viene ereditata da CIM_Process.
-
-
Descrizione
-
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: DisplayName ("Description")
Descrizione di un oggetto.
Questa proprietà viene ereditata da CIM_ManagedSystemElement.
-
-
ExecutablePath
-
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: Privilegi ("SeDebugPrivilege"), MappingStrings ("Win32API| Strutture della Guida degli strumenti| MODULEENTRY32|szExePath"), DisplayName ("Percorso eseguibile")
Percorso del file eseguibile del processo.
Esempio: "C:\Windows\System\Explorer.Exe"
-
-
ExecutionState
-
-
Tipo di dati: uint16
-
Tipo di accesso: sola lettura
-
Qualificatori: DisplayName ("Stato esecuzione")
Condizione operativa corrente del processo.
Questa proprietà viene ereditata da CIM_Process.
-
-
Sconosciuto (0)
-
Sconosciuto
-
Altro (1)
-
Altro
-
Pronto (2)
-
Esecuzione (3)
-
Bloccato (4)
-
Bloccato
-
Sospeso bloccato (5)
-
Pronto sospeso (6)
-
Terminato (7)
-
Arrestato (8)
-
Crescita (9)
Handle
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: Key, MaxLen (256), DisplayName ("Handle")
Identificatore del processo.
Questa proprietà viene ereditata da CIM_Process.
HandleCount
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| HandleCount"), DisplayName ("Handle Count")
Numero totale di handle aperti di proprietà del processo. HandleCount è la somma degli handle attualmente aperti da ogni thread in questo processo. Un handle viene usato per esaminare o modificare le risorse di sistema. Ogni handle ha una voce in una tabella gestita internamente. Le voci contengono gli indirizzi delle risorse e dei dati per identificare il tipo di risorsa.
InstallDate
-
Tipo di dati: datetime
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("MIF. DMTF| ComponentID|001.5"), DisplayName ("Data di installazione")
Data di installazione di un oggetto. L'oggetto può essere installato senza scrivere un valore in questa proprietà.
Questa proprietà viene ereditata da CIM_ManagedSystemElement.
KernelModeTime
-
Tipo di dati: uint64
-
Tipo di accesso: sola lettura
-
Qualificatori: override ("KernelModeTime"), unità ("100 nanosecondi")
Tempo in modalità kernel, espresso in millisecondi. Se queste informazioni non sono disponibili, usare il valore 0 (zero).
Per altre informazioni sull'uso di valori uint64 negli script, vedere Scripting in WMI.
MaximumWorkingSetSize
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: privilegi ("SeDebugPrivilege"), MappingStrings ("Win32| WINNT. H| QUOTA_LIMITS| MaximumWorkingSetSize"), DisplayName ("Maximum Working Set Size"), Units ("kilobyte")
Dimensioni massime del working set del processo. Il working set di un processo è il set di pagine di memoria visibili al processo nella RAM fisica. Queste pagine sono residenti e sono disponibili per l'uso di un'applicazione senza attivare un errore di pagina.
Esempio: 1413120
MinimumWorkingSetSize
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: privilegi ("SeDebugPrivilege"), MappingStrings ("Win32| WINNT. H| QUOTA_LIMITS| MinimumWorkingSetSize"), DisplayName ("Dimensioni minime del working set"), unità ("kilobyte")
Dimensioni minime del working set del processo. Il working set di un processo è il set di pagine di memoria visibili al processo nella RAM fisica. Queste pagine sono residenti e disponibili per un'applicazione da usare senza attivare un errore di pagina.
Esempio: 20480
Nome
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: DisplayName ("Name")
Nome del file eseguibile responsabile del processo, equivalente alla proprietà Image Name in Gestione attività.
Se ereditato da una sottoclasse, è possibile eseguire l'override della proprietà come proprietà chiave. Il nome è hardcoded nell'applicazione stessa e non è interessato dalla modifica del nome del file. Ad esempio, anche se si rinomina Calc.exe, il nome Calc.exe verrà comunque visualizzato in Gestione attività e in tutti gli script WMI che recuperano il nome del processo.
Questa proprietà viene ereditata da CIM_ManagedSystemElement.
OSCreationClassName
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: propagati ("CIM_OperatingSystem. CreationClassName"), CIM_Key, MaxLen (256), DisplayName ("Operating System Class Name")
Nome della classe di creazione del sistema operativo di definizione dell'ambito.
Questa proprietà viene ereditata da CIM_Process.
OSName
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: propagati ("CIM_OperatingSystem. Name"), CIM_Key, MaxLen (256), DisplayName ("Operating System Name")
Nome del sistema operativo di definizione dell'ambito.
Questa proprietà viene ereditata da CIM_Process.
OtherOperationCount
-
Tipo di dati: uint64
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread| SYSTEM_PROCESS_INFORMATION| OtherOperationCount"), DisplayName ("Altro conteggio operazioni")
Numero di operazioni di I/O eseguite che non sono operazioni di lettura o scrittura.
Per altre informazioni sull'uso di valori uint64 negli script, vedere Scripting in WMI.
OtherTransferCount
-
Tipo di dati: uint64
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread| SYSTEM_PROCESS_INFORMATION| OtherTransferCount"), DisplayName ("altro conteggio trasferimenti"), unità ("byte")
Quantità di dati trasferiti durante le operazioni che non sono operazioni di lettura o scrittura.
Per altre informazioni sull'uso di valori uint64 negli script, vedere Scripting in WMI.
PageFaults
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| PageFaultCount"), DisplayName ("Numero di errori di pagina")
Numero di errori di pagina generati da un processo.
Esempio: 10
PageFileUsage
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| PagefileUsage"), DisplayName ("Utilizzo file di pagina"), unità ("kilobyte")
Quantità di spazio di file di pagina attualmente usata da un processo. Questo valore è coerente con il valore VMSize in TaskMgr.exe.
Esempio: 102435
ParentProcessId
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| InheritedFromUniqueProcessId"), DisplayName ("Id processo padre")
Identificatore univoco del processo che crea un processo. I numeri di identificatore di processo vengono riutilizzati, quindi identificano solo un processo per la durata del processo. È possibile che il processo identificato da ParentProcessId venga terminato, pertanto ParentProcessId potrebbe non fare riferimento a un processo in esecuzione. È anche possibile che ParentProcessId faccia erroneamente riferimento a un processo che riutilizza un identificatore di processo. È possibile utilizzare la proprietà CreationDate per determinare se l'elemento padre specificato è stato creato dopo la creazione del processo rappresentato da questa istanza di Win32_Process .
PeakPageFileUsage
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| PeakPagefileUsage"), DisplayName ("Utilizzo massimo file di pagine"), unità ("kilobyte")
Quantità massima di spazio di file di pagina utilizzata durante il ciclo di vita di un processo.
Esempio: 102367
PeakVirtualSize
-
Tipo di dati: uint64
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| PeakVirtualSize"), DisplayName ("Peak Virual Address Space Usage"), Units ("bytes")
Spazio indirizzi virtuale massimo usato da un processo in qualsiasi momento. L'uso dello spazio indirizzi virtuale non implica necessariamente l'uso corrispondente di pagine di memoria principale o disco. Tuttavia, lo spazio virtuale è finito e usando troppo il processo potrebbe non essere in grado di caricare le librerie.
Per altre informazioni sull'uso di valori uint64 negli script, vedere Scripting in WMI.
PeakWorkingSetSize
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| PeakWorkingSetSize"), DisplayName ("Peak Working Set Size"), Unità ("kilobyte")
Dimensioni massime del working set di un processo.
Esempio: 1413120
Priorità
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: override ("priorità"), MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| BasePriority"), DisplayName ("Priority")
Priorità di pianificazione di un processo all'interno di un sistema operativo. Maggiore è il valore, maggiore è la priorità ricevuta da un processo. I valori di priorità possono variare da 0 (zero), ovvero la priorità più bassa a 31, ovvero la priorità più alta.
Esempio: 7
PrivatePageCount
-
Tipo di dati: uint64
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| PrivatePageCount"), DisplayName ("Conteggio pagine private")
Numero corrente di pagine allocate accessibili solo al processo rappresentato da questa istanza di Win32_Process .
Per altre informazioni sull'uso di valori uint64 negli script, vedere Scripting in WMI.
Processid
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread| PROCESS_INFORMATION|dwProcessId "), DisplayName ("Id processo")
Identificatore numerico usato per distinguere un processo da un altro. I processID sono validi dal tempo di creazione del processo alla terminazione del processo. Al termine, lo stesso identificatore numerico può essere applicato a un nuovo processo.
Ciò significa che non è possibile usare Solo ProcessID per monitorare un processo specifico. Ad esempio, un'applicazione potrebbe avere un ProcessID pari a 7 e quindi avere esito negativo. Quando viene avviato un nuovo processo, è possibile assegnare il nuovo processo ProcessID 7. Uno script controllato solo per un ProcessID specificato potrebbe quindi essere "ingannato" nel pensare che l'applicazione originale fosse ancora in esecuzione.
QuotaNonPagedPoolUsage
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| QuotaNonPagedPoolUsage"), DisplayName ("Quota utilizzo pool non di paging")
Quantità di quota di utilizzo del pool non di paging per un processo.
Esempio: 15
QuotaPagedPoolUsage
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| QuotaPagedPoolUsage"), DisplayName ("Quota utilizzo pool di pagine")
Quantità di quota di utilizzo del pool di paging per un processo.
Esempio: 22
QuotaPeakNonPagedPoolUsage
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| QuotaPeakNonPagedPoolUsage"), DisplayName ("Quota di utilizzo del pool non di paging di picco")
Quantità massima di quota di utilizzo del pool non di paging per un processo.
Esempio: 31
QuotaPeakPagedPoolUsage
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| QuotaPeakPagedPoolUsage"), DisplayName ("Quota di utilizzo del pool di paging di picco")
Picco della quantità di quota di utilizzo del pool di paging per un processo.
Esempio: 31
ReadOperationCount
-
Tipo di dati: uint64
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread| SYSTEM_PROCESS_INFORMATION| ReadOperationCount"), DisplayName ("Conteggio operazioni di lettura")
Numero di operazioni di lettura eseguite.
Per altre informazioni sull'uso di valori uint64 negli script, vedere Scripting in WMI.
ReadTransferCount
-
Tipo di dati: uint64
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread| SYSTEM_PROCESS_INFORMATION| ReadTransferCount"), DisplayName ("Conteggio trasferimento lettura"), unità ("byte")
Quantità di dati letti.
Per altre informazioni sull'uso di valori uint64 negli script, vedere Scripting in WMI.
SessionId
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| SessionId"), DisplayName ("ID sessione")
Identificatore univoco generato da un sistema operativo quando viene creata una sessione. Una sessione si estende per un periodo di tempo dall'accesso fino alla disconnessione da un sistema specifico.
Status
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: MaxLen (10), DisplayName ("Status")
Questa proprietà non è implementata e non viene popolata per alcuna istanza di questa classe. È sempre NULL.
Questa proprietà viene ereditata da CIM_ManagedSystemElement.
Sono inclusi i valori seguenti:
OK ("OK")
Errore ("Errore ")
Danneggiato ("danneggiato ")
Sconosciuto ("Sconosciuto ")
Pred Fail ("Pred Fail ")
Avvio ("Avvio ")
Arresto ("arresto ")
Servizio ("Servizio ")
Sottolineato ("sottolineato ")
NonRecover ("NonRecover ")
Nessun contatto ("Nessun contatto")
Lost Comm ("Lost Comm")
TerminationDate
-
Tipo di dati: datetime
-
Tipo di accesso: sola lettura
-
Qualificatori: DisplayName ("Data di chiusura")
Il processo è stato arrestato o terminato. Per ottenere il tempo di terminazione, è necessario tenere aperto un handle per il processo. In caso contrario, questa proprietà restituisce NULL.
Questa proprietà viene ereditata da CIM_Process.
ThreadCount
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| NumberOfThreads"), DisplayName ("Thread Count")
Numero di thread attivi in un processo. Un'istruzione è l'unità di base dell'esecuzione in un processore e un thread è l'oggetto che esegue un'istruzione. Ogni processo in esecuzione ha almeno un thread.
UserModeTime
-
Tipo di dati: uint64
-
Tipo di accesso: sola lettura
-
Qualificatori: override ("UserModeTime"), unità ("100 nanosecondi")
Tempo in modalità utente, in unità di 100 nanosecondi. Se queste informazioni non sono disponibili, usare il valore 0 (zero).
Per altre informazioni sull'uso di valori uint64 negli script, vedere Scripting in WMI.
VirtualSize
-
Tipo di dati: uint64
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Stato processo| SYSTEM_PROCESS_INFORMATION| VirtualSize"), DisplayName ("Utilizzo spazio indirizzi virtuali"), unità ("byte")
Dimensioni correnti dello spazio indirizzi virtuale usato da un processo, non la memoria fisica o virtuale effettivamente usata dal processo. L'uso dello spazio indirizzi virtuale non implica necessariamente l'uso corrispondente di pagine di memoria principale o disco. Lo spazio virtuale è finito e, usando troppo, il processo potrebbe non essere in grado di caricare le librerie. Questo valore è coerente con ciò che viene visualizzato in Perfmon.exe.
Per altre informazioni sull'uso di valori uint64 negli script, vedere Scripting in WMI.
WindowsVersion
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Funzioni di elaborazione e thread| GetProcessVersion"), DisplayName ("Windows Version")
Versione di Windows in cui è in esecuzione il processo.
Esempio: 4.0
WorkingSetSize
-
Tipo di dati: uint64
-
Tipo di accesso: sola lettura
-
Qualificatori: DisplayName ("Working Set Size"), Unità ("byte")
Quantità di memoria in byte che un processo deve eseguire in modo efficiente, per un sistema operativo che usa la gestione della memoria basata su pagine. Se il sistema non dispone di memoria sufficiente (minore delle dimensioni del working set), si verifica il thrashing. Se le dimensioni del working set non sono note, usare NULL o 0 (zero). Se vengono forniti dati del set di lavoro, è possibile monitorare le informazioni per comprendere i requisiti di memoria mutevoli di un processo.
Per altre informazioni sull'uso di valori uint64 negli script, vedere Scripting in WMI.
Questa proprietà viene ereditata da CIM_Process.
WriteOperationCount
-
Tipo di dati: uint64
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread| SYSTEM_PROCESS_INFORMATION| WriteOperationCount"), DisplayName ("Conteggio operazioni di scrittura")
Numero di operazioni di scrittura eseguite.
Per altre informazioni sull'uso di valori uint64 negli script, vedere Scripting in WMI.
WriteTransferCount
-
Tipo di dati: uint64
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread| SYSTEM_PROCESS_INFORMATION| WriteTransferCount"), DisplayName ("Conteggio trasferimento scrittura"), unità ("byte")
Quantità di dati scritti.
Per altre informazioni sull'uso di valori uint64 negli script, vedere Scripting in WMI.
Commenti
La classe Win32_Process deriva da CIM_Process. Il processo chiamante che utilizza questa classe deve avere il privilegio SE_RESTORE_NAME nel computer in cui risiede il Registro di sistema. Per altre informazioni, vedere Esecuzione di operazioni con privilegi.
Panoramica
Processi sottostanti quasi tutto ciò che accade in un computer. Infatti, la causa radice della maggior parte dei problemi del computer può essere tracciata ai processi; Ad esempio, un numero eccessivo di processi potrebbe essere in esecuzione in un computer (e la richiesta di un set finito di risorse) oppure un singolo processo potrebbe usare più della relativa condivisione di risorse. Questi fattori rendono importante tenere sotto controllo i processi in esecuzione in un computer. Il monitoraggio dei processi, l'attività principale nella gestione dei processi, consente di determinare il funzionamento effettivo di un computer, le applicazioni eseguite dal computer e il modo in cui tali applicazioni sono influenzate dalle modifiche nell'ambiente di elaborazione.
Monitoraggio di un processo
Il monitoraggio dei processi su base regolare consente di garantire che un computer venga eseguito al picco di efficienza e che esegua le attività designate come previsto. Ad esempio, monitorando i processi, è possibile ricevere immediatamente una notifica di qualsiasi applicazione che ha interrotto la risposta e quindi eseguire i passaggi per terminare il processo. Inoltre, il monitoraggio dei processi consente di identificare i problemi prima che si verifichino. Ad esempio, controllando ripetutamente la quantità di memoria usata da un processo, è possibile identificare una perdita di memoria. È quindi possibile arrestare il processo prima che l'applicazione errant usi tutta la memoria disponibile e arresti il computer.
Il monitoraggio dei processi consente anche di ridurre al minimo le interruzioni causate da interruzioni pianificate per gli aggiornamenti e la manutenzione. Ad esempio, controllando lo stato di un'applicazione di database in esecuzione nei computer client, è possibile determinare l'impatto dell'esecuzione offline del database per aggiornare il software.
Monitoraggio della disponibilità dei processi. Misura la percentuale di tempo in cui è disponibile un processo. La disponibilità viene in genere monitorata tramite un semplice probe, che segnala se il processo è ancora in esecuzione. Tenendo traccia dei risultati di ogni probe, è possibile calcolare la disponibilità del processo. Ad esempio, un processo sottoposto a probe 100 volte e risponde il 95 di tali occasioni ha una disponibilità del 95%. Questo tipo di monitoraggio è in genere riservato ai database, ai programmi di posta elettronica e ad altre applicazioni che devono essere eseguite in qualsiasi momento. Non è appropriato per programmi di elaborazione delle parole, fogli di calcolo o altre applicazioni che vengono regolarmente avviati e arrestati più volte al giorno.
È possibile creare un'istanza della classe Win32_ProcessStartup per configurare il processo.
È possibile monitorare le prestazioni del processo con la classe Win32_PerfFormattedData_PerfProc_Process e un oggetto di aggiornamento WMI, ad esempio SWbemRefresher. Per altre informazioni, vedere Monitoraggio dei dati sulle prestazioni.
Esempio
L'esempio di codice List the Properties of WMI Classes PowerShell in TechNet Gallery descrive la classe Win32_Process e restituisce i risultati in formato Excel.
Il processo Terminate in esecuzione su più server termina un processo in esecuzione su un singolo o più computer.
Nell'argomento Esempio: Chiamata di un metodo provider , il codice usa C++ per chiamare Win32_Process per creare un processo.
La disponibilità è la forma più semplice di monitoraggio dei processi: con questo approccio, è sufficiente assicurarsi che il processo sia in esecuzione. Quando si monitora la disponibilità dei processi, in genere si recupera un elenco di processi in esecuzione in un computer e quindi si verifica che un processo specifico sia ancora attivo. Se il processo è attivo, viene considerato disponibile. Se il processo non è attivo, non è disponibile. Nell'esempio VBScript seguente viene monitorata la disponibilità dei processi controllando l'elenco dei processi in esecuzione in un computer e inviando una notifica se il processo di Database.exe non viene trovato.
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Database.exe'")
If colProcesses.Count = 0 Then
Wscript.Echo "Database.exe is not running."
Else
Wscript.Echo "Database.exe is running."
End If
Nell'esempio VBScript seguente viene monitorata la creazione del processo usando un consumer di eventi temporanei.
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMonitoredProcesses = objWMIService.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent " _
& "WITHIN 10 WHERE TargetInstance ISA 'Win32_Process'")
i = 0
Do While i = 0
Set objLatestProcess = colMonitoredProcesses.NextEvent
Wscript.Echo objLatestProcess.TargetInstance.Name, Now
Loop
Il codice VBScript seguente monitora le informazioni sulle prestazioni del processo.
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
For Each objProcess in colProcessList
Wscript.Echo "Process: " & objProcess.Name
Wscript.Echo "Process ID: " & objProcess.ProcessID
Wscript.Echo "Thread Count: " & objProcess.ThreadCount
Wscript.Echo "Page File Size: " & objProcess.PageFileUsage
Wscript.Echo "Page Faults: " & objProcess.PageFaults
Wscript.Echo "Working Set Size: " & objProcess.WorkingSetSize
Next
Nell'esempio di codice VBScript seguente viene illustrato come ottenere il proprietario di ogni processo in un computer locale. È possibile usare questo script per ottenere dati da un computer remoto, ad esempio per determinare quali utenti dispongono di processi che eseguono il server terminal, sostituire il nome del computer remoto per "." nella prima riga. È anche necessario essere un amministratore nel computer remoto.
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("select * from win32_process" )
For Each objProcess in colProcesses
If objProcess.GetOwner ( User, Domain ) = 0 Then
Wscript.Echo "Process " & objProcess.Caption & " belongs to " & Domain & "\" & User
Else
Wscript.Echo "Problem " & Rtn & " getting the owner for process " & objProcess.Caption
End If
Next
Nell'esempio di codice VBScript seguente viene illustrato come ottenere la sessione di accesso associata a un processo in esecuzione. Un processo deve essere in esecuzione Notepad.exe prima dell'avvio dello script. L'esempio individua le istanze di Win32_LogonSession associate al Win32_Process che rappresenta Notepad.exe. Win32_SessionProcess viene specificato come classe di associazione. Per altre informazioni, vedere ASSOCIATORS OF Statement..
On error resume next
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'Notepad.exe'")
For Each objProcess in colProcesses
ProcessId = objProcess.ProcessId
Set colLogonSessions = objWMIService.ExecQuery("Associators of {Win32_Process='" & ProcessId & "'} " _
& "Where Resultclass = Win32_LogonSession Assocclass = Win32_SessionProcess", "WQL", 48)
If Err <> 0 Then
WScript.Echo "Error on associators query= " & Err.number & " " & Err.Description
WScript.Quit
End If
For Each LogonSession in colLogonSessions
Wscript.Echo " Logon id is " & LogonSession.LogonId
Next
Next
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows Vista |
Server minimo supportato |
Windows Server 2008 |
Spazio dei nomi |
Root\CIMV2 |
MOF |
|
DLL |
|
Vedi anche