Home
Windows Management Instrumentation: amministrare l’OS Windows (Prima parte)

19 Ottobre 2005

Windows Management Instrumentation: amministrare l’OS Windows (Prima parte)

di

WMI (Windows Management Instrumentation) è uno strumento che permette agli amministratori del sistema operativo di monitorare, modificare le configurazioni dei server e dei desktop.

WMI Script

WMI (Windows Management Instrumentation) è il primo vero strumento di gestione dei sistemi operativi Windows.

Consiste in una serie di oggetti che permettono la gestione, il controllo e la manutenzione semplificata delle componenti del sistema operativo.

WMI permette agli amministratori del sistema di monitorare, modificare le configurazioni dei server e dei desktop. L’amministratore del sistema operativo utilizza le WMI Scripting Library (Librerie degli oggetti WMI) per interagire con le componenti del sistema operativo(Dischi fissi, processi…) creando una serie di script in grado di monitorare e gestire il sistema operativo Windows.

Struttura di uno script WMI

Uno script WMI deve eseguire nell’ordine le seguenti operazioni:

  1. Connessione ai servizi WMI
  2. Rendere disponibili allo script gli oggetti o serie di oggetti che servono al nostro scopo
  3. Estrarre le informazioni dagli oggetti ora richiamati

Per semplificare le cose immaginiamo di volere realizzare uno “script” che visualizza le informazioni del sistema operativo presente sulla nostra “macchina”.

Segue una tabella di esempio degli oggetti necessari.

Descrizione campo

Nome dell’oggetto (classi e proprietà)

 OS Name

Win32_OperatingSystem.Name

OS Version

Win32_OperatingSystem.Version

Service Pack

Win32_OperatingSystem.ServicePackMajorVersion

Win32_OperatingSystem.ServicePackMinorVersion

OS Manufacturer

Win32_OperatingSystem.Manufacturer

System Name

Win32_ComputerSystem.Name

System Manufacturer

Win32_ComputerSystem.Manufacturer

System Model

Win32_ComputerSystem.Model

System Type

Win32_Processor.Architecture

Processor

Win32_Processor.Description

BIOS Version

Win32_BIOS.Version

Windows Directory

Win32_OperatingSystem.WindowsDirectory

Locale

Win32_OperatingSystem.Locale

Time Zone

Win32_ComputerSystem.TimeZone

Total Physical Memory

Win32_ComputerSystem.PhysicalMemory

Available Physical Memory

Win32_OperatingSystem.FreePhysicalMemory

Total Virtual Memory

Win32_OperatingSystem.TotalVirtualMemory

Available Virtual Memory

Win32_OperatingSystem.AvailableVirtualMemory

Page File Space

Win32_OperatingSystem.SizeStoredInPagingFiles

Eseguire lo script

Uno script si esegue dalla dos command line con il seguente comando:

cscript  <nome_script>

<nome_script> è il nome dello script creato.

Quando si esegue lo script sulla propria macchina si dice che è stato eseguito in locale.

Quando si esegue uno script su altre macchine diverse dalla nostra si dice che l’esecuzione è avvenuta in remoto. L’utente che esegue lo script in remoto deve avere le opportune autorizzazioni. Per esempio per eseguire uno script su più macchine con sistema operativo windows appartenenti allo stesso dominio, l’utente deve avere i permessi di amministratore di dominio.

Il primo  script WMI

On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems=objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48) For Each objItem in colItems Wscript.Echo "FreePhysicalMemory: " & objItem.FreePhysicalMemory/1024 & " MB" Wscript.Echo "FreeVirtualMemory: " & objItem.FreeVirtualMemory/1024 & " MB" Wscript.Echo "InstallDate: " & objItem.InstallDate Wscript.Echo "LastBootUpTime: " & objItem.LastBootUpTime Wscript.Echo "LocalDateTime: " & objItem.LocalDateTime Wscript.Echo "Locale: " & objItem.Locale Wscript.Echo "Manufacturer: " & objItem.Manufacturer Wscript.Echo "ServicePackMajorVersion: " & objItem.ServicePackMajorVersion Wscript.Echo "ServicePackMinorVersion: " & objItem.ServicePackMinorVersion Wscript.Echo "TotalVirtualMemorySize: " & objItem.TotalVirtualMemorySize/1024 & " MB" Wscript.Echo "TotalVisibleMemorySize: " & objItem.TotalVisibleMemorySize/1024 & " MB" Wscript.Echo "Version: " & objItem.Version Wscript.Echo "WindowsDirectory: " & objItem.WindowsDirectory Next

  • Istruzione strComputer = “.”

Crea una variabile per specificare il nome del computer. La specifica “.”evita di digitare il nome del nostro computer che viene automaticamente inserito nella variabile strComputer.

  • Istruzione Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\cimv2”)

GetObject serve per connettersi all’ambiente WMI.

“\root\cimv2” prende il nome di namespaces. Il namespace “\root\cimv2” include la maggior parte delle classi che rappresentano le risorse associate comunemente con un computer ed un sistema operativo.

  • Istruzione Set colItems=objWMIService.ExecQuery(“Select * from Win32_OperatingSystem”,,48)

ExecQuery è un metodo utilizzato per estrarre le informazioni dalla classe Win32_OperatingSystem.

Ora abbiamo a disposizione una collezione di informazioni che riguardano la classe Win32_OperatingSystem.

  • Istruzione For Each objItem in colItems 

Per ogni elemento della collezione visualizziamo il valore della sua proprietà con le istruzioni:

  • Wscript.Echo “Manufacturer: “ & objItem.Manufacturer   oppure
  • Wscript.Echo “TotalVirtualMemorySize: “objItem.TotalVirtualMemorySize/1024 & ” MB”

e così via per tutte le altre istruzioni.

Wscript.Echo è l’istruzione che serve per visualizzare sullo schermo qualsiasi cosa. “Manufacturer: ” è una costante.

  • objItem.Manufacturer  è la proprietà della classe Win32_OperatingSystem come si nota dalla tabella in corrispondenza della descrizione “System Manufacturer”.

Segue un esempio  per l’utilizzo della classe Win32_ComputerSystem.

On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems=objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48) For Each objItem in colItems Wscript.Echo "AdminPasswordStatus: " & objItem.AdminPasswordStatus Wscript.Echo "AutomaticResetBootOption: " & objItem.AutomaticResetBootOption Wscript.Echo "AutomaticResetCapability: " & objItem.AutomaticResetCapability Wscript.Echo "BootOptionOnLimit: " & objItem.BootOptionOnLimit Wscript.Echo "BootOptionOnWatchDog: " & objItem.BootOptionOnWatchDog Wscript.Echo "BootROMSupported: " & objItem.BootROMSupported Wscript.Echo "BootupState: " & objItem.BootupState Next

La documentazione della WMI (Windows Managament Instrumentation) si trova sul sito della Microsoft, selezionando “WMI scripting Primer ” nella parte sinistra dello schermo.

Sempre online sono elencate tutte le classi con i relativi metodi e le proprietà, Microsoft inoltre fornisce uno strumento per la visualizzazione degli oggetti e delle classi  rivolto agli sviluppatori.

Per richiamare lo strumento in questione eseguire dalla command line Dos il programma wbemtest.exe (Windows Management Instrumentation Tester).

L'autore

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.

Libri che potrebbero interessarti

Tutti i libri

Value Investing con Excel

Guida per elaborare previsioni e massimizzare gli investimenti

28,50

30,00€ -5%

di Fabrizio Cesarini, Donata Petrelli


Articoli che potrebbero interessarti

Tutti gli articoli