Assicurati di leggere gli articoli precedenti della serie:
- Scopri come automatizzare Windows con PowerShell
- Imparare a utilizzare i cmdlet in PowerShell
- Apprendimento Come utilizzare gli oggetti in PowerShell
- Apprendimento della formattazione, del filtro e del confronto in PowerShell
- Impara a utilizzare i servizi remoti in PowerShell
E rimanete sintonizzati per il resto della serie per tutta la settimana.
introduzione
WMI è l'acronimo di Strumentazione gestione Windows. La parola "Strumentazione" si riferisce al fatto che WMI ti consente di ottenere informazioni sullo stato interno del tuo computer, proprio come gli strumenti del cruscotto nella tua auto possono recuperare e visualizzare informazioni sullo stato dei componenti interni della tua auto.
WMI è costituito da un repository che contiene classi che rappresentano componenti che possono essere gestiti all'interno della macchina. Con ciò intendiamo solo perché WMI ha una classe Win32_Battery non significa che la tua macchina contenga una batteria. Queste classi possono quindi essere interrogate per informazioni localmente o anche attraverso una rete utilizzando un linguaggio di query molto simile a SQL chiamato WQL. Tuttavia, WMI è stato conosciuto per essere molto inaffidabile, principalmente per il fatto che è basato su RPC (Remote Procedure Calls), che fanno cose pazze con le porte su cui scelgono di comunicare.
A partire da Windows 8 e Server 2012, WMI viene gradualmente eliminato a favore del Common Information Model o CIM in breve. L'unica differenza tra WMI e CIM sono i protocolli di trasporto che utilizzano. Mentre WMI esegue query utilizzando Remote Procedure Calls, CIM utilizza HTTP, che sembra fare una grande differenza. Sul backend stanno ancora parlando allo stesso repository di informazioni.
Utilizzando WMI
Il modo più rapido e semplice di esplorare le informazioni disponibili tramite WMI è di prendere una copia di qualsiasi WMI Object Browser gratuito. Ci piace questo. Una volta scaricato, attivalo e avrai un'interfaccia grafica per sfogliare le classi WMI.
Immediatamente questo ti porterà alla classe Win32_LogicalDisk.
Get-WmiObject -Query “SELECT * FROM Win32_LogicalDisk”
Get-WmiObject –Class Win32_LogicalDisk
Get-WmiObject -Class Win32_LogicalDisk -ComputerName Viper –Credential viperadministrator
Utilizzando CIM
Tenendo presente che CIM è disponibile solo su Windows 8 e Server 2012, andare avanti è sicuramente la strada da percorrere.
Get-CimInstance –ClassName Win32_LogicalDisk
In effetti, WMI è stato sviluppato da un team completamente separato all'interno di Microsoft, ma successivamente è stato rilevato dai responsabili di PowerShell. Erano quelli che hanno notato che sarebbe stato molto difficile ripulire il disordine che WMI aveva lasciato dietro di sé. Nel tentativo di rimediare alla situazione, stanno cercando di rendere WMI e CIM più disponibili scrivendo cmdlet wrapper che usano WMI e CIM sotto il cofano. L'unico modo per verificare se un cmdlet è un wrapper è osservare la documentazione. Ad esempio, il cmdlet Get-Hotfix è un wrapper per la classe Win32_QuickFixEngineering, come mostrato nella documentazione.
Get-HotFix –ComputerName localhost