Classe Win32_Process
La classe WMI Win32_Processrappresenta 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;
};
Membri
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 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. |
Terminate. | Termina un processo e tutti i relativi thread. |
Proprietà
La classe Win32_Process ha queste proprietà.
-
Caption
-
-
Tipo di dati: string
-
Tipo di accesso: sola lettura
-
Qualificatori: MaxLen (64), DisplayName ("Caption")
Breve descrizione di un oggetto, ovvero una stringa di 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 utilizzata con altre proprietà chiave della classe, questa proprietà consente di identificare in modo univoco 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 informatico 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 ("Computer System Name")
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 |MODUL edizione Enterprise NTRY32|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 di 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)
-
Terminazione (7)
-
Arrestato (8)
-
In 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 ("Dimensioni massime set di lavoro"), Unità ("kilobyte")
Dimensione massima del set di lavoro 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 minimo set di lavoro"), Unità ("kilobyte")
Dimensioni minime del set di lavoro 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à Nome immagine 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 Win32_Process .
PeakPageFileUsage
-
Tipo di dati: uint32
-
Tipo di accesso: sola lettura
-
Qualificatori: MappingStrings ("Win32API|Stato processo |SYSTEM_PROCESS_INFORMATION|PeakPagefileUsage"), DisplayName ("Utilizzo picco file di pagina"), unità ("kilobyte")
Quantità massima di spazio di file di pagina utilizzata durante la durata 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 ("Utilizzo dello spazio indirizzi viruale di picco"), unità ("byte")
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 l'uso di una quantità eccessiva di 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")
Picco delle dimensioni 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à che riceve 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 momento della 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 non riuscire. Quando viene avviato un nuovo processo, è possibile assegnare il nuovo processo ProcessID 7. Uno script che ha controllato solo un ProcessID specificato potrebbe quindi essere "ingannato" pensando 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 di 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 di 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")
Quota massima 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")
Quota massima 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 ("Read Operation Count")
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 ("Read Transfer Count"), 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.
Stato
-
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 ")
Degradato ("degradato")
Sconosciuto ("Sconosciuto")
Pred Fail ("Pred Fail ")
Avvio ("Starting ")
Arresto ("arresto ")
Servizio ("Servizio")
Sottolineato ("sottolineato ")
NonRecover ("NonRecover ")
Nessun contatto ("Nessun contatto ")
Lost Comm ("Lost Comm ")
TerminazioneDate
-
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 che un handle per il processo venga mantenuto aperto. 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 ("Conteggio thread")
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 ("Versione di Windows")
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 essere eseguito 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), viene eseguito 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 ("Write Operation Count")
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 ("Write Transfer Count"), Unità ("byte")
Quantità di dati scritti.
Per altre informazioni sull'uso di valori uint64 negli script, vedere Scripting in WMI.
Osservazioni:
La classe Win32_Process deriva da CIM_Process. Il processo chiamante che utilizza questa classe deve avere il privilegio edizione Standard_RESTORE_NAME nel computer in cui risiede il Registro di sistema. Per altre informazioni, vedere Esecuzione di operazioni con privilegi.
Panoramica
Elabora 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 contesa di un set finito di risorse) oppure un singolo processo potrebbe usare più della relativa condivisione di risorse. Questi fattori rendono importante tenere d'occhio 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 interessate 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 una notifica immediata di qualsiasi applicazione che ha smesso di rispondere e quindi eseguire i passaggi per terminare tale 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 porti il computer a un arresto.
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 della modalità 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 indica 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 su 95 di tali occasioni ha una disponibilità del 95%. Questo tipo di monitoraggio è in genere riservato per database, programmi di posta elettronica e 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 avviate e arrestate più volte al giorno.
È possibile creare un'istanza della classe Win32_ProcessStartup per configurare il processo.
È possibile monitorare le prestazioni dei processi con la classe Win32_PerfFormattedData_PerfProc_Process e un oggetto refresher WMI, ad esempio SWbemRefresher. Per altre informazioni, vedere Monitoraggio dei dati sulle prestazioni.
Esempi
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. L'esempio VBScript seguente monitora la disponibilità dei processi controllando l'elenco dei processi in esecuzione in un computer e inviando una notifica se il processo 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
L'esempio VBScript seguente monitora la creazione del processo usando un consumer di eventi temporaneo.
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 dei processi.
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 hanno 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. Prima dell'avvio dello script, è necessario eseguire un processo Blocco note.exe. L'esempio individua le istanze di Win32_LogonSession associate al Win32_Process che rappresenta Blocco note.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