Una breve guida su Strumentazione gestione Windows (WMI)

La struttura per la gestione delle informazioni e delle attività sui sistemi operativi basati su Windows è denominata Strumentazione gestione Windows (WMI).

WMI fornisce anche dati di gestione ad altri componenti del sistema operativo e prodotti, come SCOM (System Center Operations Manager) o Gestione remota di Windows.

Che cos’è Strumentazione gestione Windows (WMI?)

WMI è una piattaforma per la gestione e il monitoraggio del sistema operativo e di altre applicazioni e servizi Microsoft su personal computer, server e altri dispositivi di rete.

WMI fornisce un’interfaccia di programmazione completa, scalabile e di facile utilizzo che fornisce accesso programmatico a informazioni e servizi su computer gestiti da Microsoft e altri dispositivi di rete.

Viene utilizzato per rilevare e monitorare il sistema operativo, i servizi e le applicazioni sul computer, nonché i dati del registro e del file system. Viene anche utilizzato per creare e gestire script e programmi che automatizzano la gestione e l’amministrazione del computer.

Utilizza il linguaggio di programmazione WQL (Windows Query Language) per interrogare informazioni ed eseguire operazioni su sistema operativo, computer e dispositivi.

Ti dà anche accesso a PowerShell, uno degli strumenti di amministrazione più potenti e flessibili per Windows, che puoi utilizzare per creare script di automazione.

Inoltre, WMI consente di creare applicazioni personalizzate che forniscono funzionalità aggiuntive per la gestione e l’amministrazione di sistemi e applicazioni Windows.

Gli utenti che hanno bisogno di monitorare lo stato delle loro macchine, eseguire la risoluzione dei problemi di base e raccogliere dati sulle prestazioni troveranno WMI a portata di mano.

Qual è lo scopo di WMI?

WMI è utile in una rete aziendale Windows perché semplifica il funzionamento e la gestione dei componenti di rete aziendale fornendo dati ad altri prodotti per ulteriori miglioramenti e scalabilità.

L’intero scopo di WMI è fornire un’esperienza di framework di gestione unificata su tutti gli aspetti di un sistema Windows, come ad esempio:

  • Componenti del sistema operativo
  • Processi e fili
  • Servizi
  • Dispositivi
  • Autisti
  • Applicazioni
  • Profili utente
  • Impostazioni di sicurezza

Lo scopo dell’invenzione WMI porta a ridurre i costi e il tempo nelle operazioni e nello sviluppo relativi ai sistemi Windows. WMI consente inoltre di monitorare gli eventi di sistema e raccogliere dati sulle prestazioni. Questi dati possono essere utilizzati per risolvere i problemi o per tenere traccia delle tendenze nel tempo.

WMI è più comunemente utilizzato per automatizzare le attività amministrative e ottenere l’accesso ai dati senza occuparsi direttamente del sistema operativo. Di conseguenza, WMI è una fantastica alternativa per amministratori e sviluppatori di software che devono automatizzare processi che richiedono tempo.

Tutto, dal monitoraggio delle prestazioni del sistema all’acquisizione dei dati dell’applicazione, è possibile con esso. Consente agli sviluppatori di creare applicazioni più intelligenti e più intelligenti, garantendo al contempo che gli amministratori IT possano completare le proprie attività con il minimo sforzo.

WMI fornisce un’implementazione di riferimento per l’accesso alle informazioni di sistema ed è uno strumento chiave per la gestione e il monitoraggio dei sistemi Windows. È la pietra angolare di Azure Machine Learning e AzureML e viene usato per alimentare un’ampia gamma di prodotti di terze parti.

  Correggi il codice di errore 0x80070490 in Windows 10

Uso di WMI

Strumentazione gestione Windows (WMI) è la fornitura di Microsoft di WBEM (Web-Based Enterprise Management), un’iniziativa del settore per lo sviluppo di tecnologie standardizzate per l’accesso alle informazioni sulla governance aziendale.

WMI rappresenta sistemi, applicazioni, reti, dispositivi e altri componenti gestiti che utilizzano lo standard di settore CIM (Common Information Model). La Distributed Management Task Force (DMTF) crea e gestisce CIM.

Il design WMI è versatile, supporta un’ampia gamma di funzioni di amministrazione e gestione, oltre a fornire un’architettura flessibile ed estensibile che consente ai produttori di scrivere nuovi provider WMI per supportare nuovi dispositivi, applicazioni e altri progressi.

Altri usi sono:

  • Gestione completa del sistema operativo Windows e dei dispositivi e servizi di rete Microsoft.
  • Può essere utilizzato per connettere i computer remoti per accedere ai dati WMI
  • Rileva informazioni sul sistema, ad esempio quali programmi sono in esecuzione e quali servizi sono impostati.
  • Per recuperare informazioni sulle specifiche hardware ed eseguire azioni, come l’arresto o il riavvio del sistema.
  • Avvio di applicazioni, avvio, arresto, configurazione dei servizi e accesso ai dati.
  • Gli sviluppatori di applicazioni di gestione possono utilizzare questa API per creare script in Visual Basic o Windows Scripting Host (WSH).

Architettura WMI

WMI (Strumentazione gestione Windows) è una tecnologia Microsoft presentata inizialmente in Windows 2000. Consente ai programmatori di creare programmi di gestione che funzionano con qualsiasi sistema che supporta WMI.

Vediamo l’architettura e la terminologia di WMI.

Il flusso dell’architettura WMI parte da Oggetti: un componente come un disco rigido, una scheda di rete, un sistema operativo o un servizio è un oggetto gestito (che può essere gestito tramite WMI). L’infrastruttura WMI riceve i dati da un oggetto tramite un provider. Fornisce e riceve messaggi da WMI e li consegna all’oggetto.

Un provider WMI comprende una DLL e un file MOF (Managed Object Format) che monitora eventi e dati dagli oggetti. WMI classifica i provider in base alla funzionalità fornita dall’interfaccia del provider.

Esistono numerosi provider WMI integrati in Windows, tra cui un provider Active Directory, provider WMI Boot Configuration Data (BCD), provider DFS (Distributed File System), provider Event Log, provider Hyper-V WMI, provider Win32, provider del registro, e provider SNMP.

L’infrastruttura WMI è un componente del sistema operativo Microsoft Windows noto come servizio WMI (winmgmt). WMI Core e WMI Repository sono le due parti dell’infrastruttura WMI.

Il repository WMI è un archivio di dati gerarchico organizzato da spazi dei nomi WMI, spesso noto come Common Information Model (CIM). Il servizio WMI stabilisce una serie di spazi dei nomi all’avvio del sistema, inclusi root default, rootcimv2 e sottoscrizione root.

Inoltre, il servizio produce un insieme predefinito di definizioni di classe, che include le classi di sistema Win32 e WMI. Altri spazi dei nomi WMI possono essere creati da provider WMI aggiuntivi e ogni spazio dei nomi contiene diversi oggetti WMI.

Il servizio WMI funge da intermediario tra i provider, le applicazioni di gestione e il repository WMI. Solo i dati statici sugli oggetti vengono archiviati nel repository, come le classi definite dai provider. WMI ottiene la maggior parte dei dati in modo dinamico dal provider quando un client lo richiede.

  Come impostare le variabili d'ambiente in Windows 11

Un consumer WMI è un’applicazione o uno script di gestione che comunica con l’infrastruttura WMI. Utilizzando l’API COM per WMI o l’API di scripting per WMI, un programma di gestione può eseguire query, dettagliare dati, eseguire metodi provider e sottoscrivere eventi.

WMI crea un’interfaccia standardizzata per il recupero dei dati di gestione in remoto e in locale. L’interfaccia uniforme si astrae dalle API (Application Programming Interface) del sistema operativo. Ciò consente alle app e agli script di raccogliere dati di gestione senza dover conoscere l’API del sistema operativo.

Come eseguire una query WMI?

Una caratteristica della versatilità della piattaforma WMI è la capacità di interrogare il suo repository per ottenere dettagli sui dati di classe, istanza o schema. Queste metriche sono collegate all’inventario di sistemi locali e distanti, sistemi operativi, software e altre attività amministrative.

Tipo di query

In generale esistono due tipi di query utilizzate per recuperare informazioni dal repository WMI:

Query sincrona: è una query che mantiene il controllo del funzionamento dell’applicazione durante la query. È più semplice di una chiamata asincrona perché richiede solo una chiamata all’interfaccia. Per ricerche di grandi dimensioni o richieste basate sulla rete, tuttavia, potrebbe bloccare l’applicazione.

Query asincrona: quando la velocità di un sistema o di una rete sarà influenzata dall’esecuzione di query su un gruppo di dati considerevole, è preferibile utilizzare una query asincrona.

WQL (linguaggio di query WMI)

Uno dei metodi più diffusi per interrogare WMI è il WMI Query Language.

SQL (Structured Query Language) viene utilizzato nell’ambiente del database e WQL viene utilizzato in WMI. Entrambi hanno una struttura sintattica simile.

Select, From e Where sono le istruzioni WQL fondamentali utilizzate per avviare la query.

Una tipica query WMI inizia selezionando tutte le proprietà da una classe WMI utilizzando il comando “Seleziona”. L’asterisco (“*”) viene utilizzato per selezionare ogni proprietà da una classe WMI. È possibile utilizzare la parola chiave “Da” per specificare la classe WMI da interrogare dopo aver scelto le proprietà (una o più proprietà o tutte). Puoi controllare il cheatsheet SQL per la sintassi esatta.

WQL può essere eseguito tramite WMI Tester (wbemtest.exe), che è installato per impostazione predefinita con il sistema operativo Windows. Le query WMI possono essere eseguite anche tramite Windows PowerShell, VBScript e linguaggio C.

Tipo di query WQL

Le query WQL vengono utilizzate per ottenere tre diversi tipi di informazioni.

Query sugli oggetti: le informazioni sulle risorse di sistema di Windows possono essere recuperate utilizzando queste query.

Query sugli eventi: queste query vengono utilizzate per tenere traccia delle modifiche ai registri degli eventi, dell’avvio dei processi, dello stato dei servizi, della disponibilità dei computer o della quantità di spazio libero su disco, tra le altre entità o occorrenze.

Query schema: queste query vengono utilizzate per ottenere dettagli sulla struttura dello schema WMI.

Esecuzione di una query

Vediamo come eseguire una query su un oggetto.

Il metodo seguente indica come controllare i processi WIN_32 su un sistema locale.

Lo strumento WMI Tester viene eseguito tramite la riga di comando immettendo wbemtest.exe.

Apparirà la seguente finestra.

Per connettersi allo spazio dei nomi WMI che contiene la classe che si desidera interrogare (RootCimv2 nella maggior parte dei casi): fare clic sulla scheda Connetti.

  Come spostare una finestra fuori schermo in Windows 11

Per eseguire la query, fare clic sulla scheda “Query” come mostrato di seguito:

Immettere quindi la query per la quale si desidera recuperare le informazioni. Ad esempio, recuperiamo tutti i processi in esecuzione sul sistema locale eseguendo:

select * From Win32_process

Dopo aver fatto clic sulla scheda Applica, otterrai i risultati seguenti

L’esecuzione basata sulla GUI di cui sopra può essere eseguita anche al prompt dei comandi tramite PowerShell:

Nella piattaforma PowerShell, per ottenere l’elenco di tutti i processi win_32, viene utilizzato il codice seguente:

Get-WmiObject -Class Win32_Process

Per ottenere tutti i parametri di query di PowerShell, visitare il Gestione di Microsoft PowerShell pagina.

Per eseguire questa query in VBScript e linguaggio C, il Pagina della documentazione Microsoft fornirebbe spunti completi.

Un altro metodo per interrogare il repository WMI è tramite il comando WMIC:

  • Esegui CMD da un prompt dei comandi
  • Digita WMIC e accedi per avviare il programma
  • Quindi il prompt dei comandi cambierà in wmic:rootcli>

Gli amministratori possono eseguire query WMI da questo prompt.

Ad esempio, per caricare le informazioni sulla CPU di un sistema locale, il comando sarà:

wmic:rootcli> WMIC CPU

I risultati/informazioni verranno visualizzati nel prompt dei comandi.

AddressWidth  Architecture  AssetTag                Availability  Caption                                 Characteristics  ConfigManagerErrorCode  ConfigManagerUserConfig  CpuStatus  CreationClassName  CurrentClockSpeed  CurrentVoltage  DataWidth  Description                             DeviceID  ErrorCleared  ErrorDescription  ExtClock  Family  InstallDate  L2CacheSize  L2CacheSpeed  L3CacheSize  L3CacheSpeed  LastErrorCode  Level  LoadPercentage  Manufacturer  MaxClockSpeed  Name                                      NumberOfCores  NumberOfEnabledCore  NumberOfLogicalProcessors  OtherFamilyDescription  PartNumber              PNPDeviceID  PowerManagementCapabilities  PowerManagementSupported  ProcessorId       ProcessorType  Revision  Role  SecondLevelAddressTranslationExtensions  SerialNumber            SocketDesignation  Status  StatusInfo  Stepping  SystemCreationClassName  SystemName  ThreadCount  UniqueId  UpgradeMethod  Version  VirtualizationFirmwareEnabled  VMMonitorModeExtensions  VoltageCaps
64            9             To Be Filled By O.E.M.  3             Intel64 Family 6 Model 142 Stepping 10  252                                                               1          Win32_Processor    1801               7               64         Intel64 Family 6 Model 142 Stepping 10  CPU0                                      100       205                  1024                       6144         0                            6      31              GenuineIntel  1801           Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz  4              4                    8                                                  To Be Filled By O.E.M.                                            FALSE                     BFEBFBFF000806EA  3                        CPU   TRUE                                     To Be Filled By O.E.M.  U3E1               OK      3                     Win32_ComputerSystem     RENEE-HP     8                      51                      FALSE                          TRUE

Per ulteriori informazioni su WMIC Alias ​​e verbi, visitare Microsoft wmic.

Domande frequenti su WMI

Quali sono le porte utilizzate in WMI?

Le porte utilizzate sono 49152 e 65535. Il Distributed Component Object Model (DCOM), su cui si basa WMI, utilizza una porta TCP scelta casualmente per le connessioni tra l’intervallo 49152 e 65535 per impostazione predefinita.

WMI è deprecato?

WMI è ancora supportato. A partire da Windows 10, versione 21H1 e versione semestrale del canale 21H1 di Windows Server, il programma WMI da riga di comando (WMIC) non è più supportato.

Cosa sono gli strumenti di monitoraggio WMI?

Sono disponibili molti strumenti per monitorare WMI. Tuttavia, una manciata è particolarmente popolare:
Monitor WMI SolarWinds con server e monitor applicazioni
Sensore di servizio WMI Paessler con PRTG
Nagio XI
Sapien WMI Explorer
Gli strumenti gratuiti sono WMI Explorer, Adrem Free WMI Tools

Come risolvere i problemi WMI

È possibile che vengano visualizzati errori che vanno dalle classi mancanti alle violazioni di accesso durante il tentativo di accesso ai dati WMI locali o remoti in un’applicazione o uno script. Controlla il Guida alla risoluzione dei problemi di Microsoft WMI per ottenere soluzioni a tali errori.

Conclusione

In generale, Strumentazione gestione Windows è uno strumento efficace che può essere utilizzato per gestire un’ampia gamma di varie funzionalità relative al sistema Windows. WMI può essere uno strumento molto utile per chiunque abbia a che fare con i sistemi Windows, nonostante il fatto che inizialmente possa sembrare intimidatorio.