about_WMI
Descrizione breve
Strumentazione gestione Windows (WMI) usa Common Information Model (CIM) per rappresentare sistemi, applicazioni, reti, dispositivi e altri componenti gestibili dell'azienda moderna.
Descrizione lunga
Strumentazione gestione Windows (WMI) è l'implementazione di Microsoft di Web-Based Enterprise Management (WBEM), lo standard di settore.
WMI classico usa DCOM per comunicare con i dispositivi in rete per gestire i sistemi remoti. Windows PowerShell 3.0 introduce un modello di provider CIM che usa WinRM per rimuovere la dipendenza da DCOM. Questo modello di provider CIM usa anche nuove API del provider WMI che consentono agli sviluppatori di scrivere cmdlet di Windows PowerShell nel codice nativo (C++).
Non confondere i provider WMI con i provider di Windows PowerShell. Molte funzionalità di Windows hanno un provider WMI associato che espone le relative funzionalità di gestione. Per ottenere i provider WMI, eseguire una query WMI che ottiene istanze della classe WMI __Provider , ad esempio la query seguente.
Get-WmiObject -Class __Provider
TRE COMPONENTI DI WMI
I tre componenti seguenti di WMI interagiscono con Windows PowerShell: spazi dei nomi, provider e classi.
Gli spazi dei nomi WMI organizzano i provider WMI e le classi WMI in gruppi di componenti correlati. In questo modo, sono simili agli spazi dei nomi di .NET Framework.
Gli spazi dei nomi non sono percorsi fisici, ma sono più simili a database logici. Tutti gli spazi dei nomi WMI sono istanze della classe di sistema __Namespace. Lo spazio dei nomi WMI predefinito è root/cimv2
(dal momento che Microsoft Windows 2000). Per usare Windows PowerShell per ottenere spazi dei nomi WMI nella sessione corrente, usare un comando con il formato seguente.
Get-WmiObject -Class __Namespace
Per ottenere spazi dei nomi WMI in altri spazi dei nomi, usare il parametro Namespace per modificare il percorso della ricerca. Il comando seguente trova spazi dei nomi WMI che risiedono nello spazio dei root/cimv2/Applications
nomi .
Get-WmiObject -Class __Namespace -Namespace root/cimv2/applications
Gli spazi dei nomi WMI sono gerarchici. Pertanto, per ottenere un elenco di tutti gli spazi dei nomi in un particolare sistema è necessario eseguire una query ricorsiva a partire dallo spazio dei nomi radice.
I provider WMI espongono informazioni sugli oggetti gestibili di Windows. Un provider recupera i dati da un componente e passa tali dati tramite WMI a un'applicazione di gestione, ad esempio Windows PowerShell. La maggior parte dei provider WMI sono provider dinamici, il che significa che ottengono i dati in modo dinamico quando vengono richiesti tramite l'applicazione di gestione.
RICERCA DI CLASSI WMI
In un'installazione predefinita di Windows 8 sono presenti più di 1.100 classi WMI in root/cimv2
. Con questa molte classi WMI, la sfida diventa identificare la classe WMI appropriata da usare per eseguire un'attività specifica. Windows PowerShell 3.0 offre due modi per trovare classi WMI correlate a un argomento specifico.
Ad esempio, per trovare classi WMI nello root/cimv2
spazio dei nomi WMI correlato ai dischi, è possibile usare una query come quella illustrata di seguito.
Get-WmiObject -List *disk*
Per trovare classi WMI correlate alla memoria, è possibile usare una query come quella illustrata di seguito.
Get-WmiObject -List *memory*
I cmdlet CIM offrono anche la possibilità di individuare le classi WMI. A tale scopo, usare il Get-CimClass
cmdlet . Il comando illustrato di seguito elenca le classi WMI correlate al video.
Get-CimClass *video*
L'espansione tramite tabulazioni funziona quando si modificano gli spazi dei nomi WMI e pertanto l'uso dell'espansione tramite tabulazioni rende facilmente individuabili spazi dei nomi WMI secondari. Nell'esempio seguente il Get-CimClass
cmdlet elenca le classi WMI correlate alle impostazioni di risparmio energia.
Per trovarlo, digitare lo root/cimv2
spazio dei nomi e quindi premere il tasto TAB più volte fino a quando non viene visualizzato lo spazio dei nomi di alimentazione. Il comando è il seguente:
Get-CimClass *power* -Namespace root/cimv2/power