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

04 Novembre 2005

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

di

Utilizzando l’ambiente WMI (Windows Management Instrumentation) vedremo come visualizzare le informazioni dei dischi fissi presenti su uno o più computer.

Elenco dei dischi fissi

Lo script seguente elenca le proprietà di tutti i dischi logici presenti su uno o più computer utilizzando la classe Win32_LogicalDisk.

strComputer = “.” Wscript.Echo “=== Logical disk enumeration ===” & date() & ” ” & time() Wscript.Echo ” ” Set objWMIService = GetObject(“winmgmts:” _ & “{impersonationLevel=impersonate}!\” & strComputer & “rootcimv2”) Set colDisks = objWMIService.ExecQuery _ (“SELECT * FROM Win32_LogicalDisk”) For each objDisk in colDisks Wscript.Echo “=” Wscript.Echo “Device ID……….. ” & objDisk.DeviceID Wscript.Echo “Drive Type………. ” & objDisk.DriveType Wscript.Echo “MediaType……….. ” & objDisk.MediaType Wscript.Echo “Description……… ” & objDisk.Description Wscript.Echo “Size……………. ” & objDisk.Size/(1024*1024) & ” Mb” Wscript.Echo “FreeSpace……….. ” & objDisk.FreeSpace/(1024*1024) & ” Mb” Wscript.Echo “FileSystem………. ” & objDisk.FileSystem Wscript.Echo “VolumeName………. ” & objDisk.VolumeName Wscript.Echo “VolumeSerialNumber.. ” & _ objDisk.VolumeSerialNumber Next

Se un’istruzione supera la lunghezza di una riga,per andare a capo si usa il carattere “_” (underline).
Per ogni disco logico lo script visualizza le informazioni fondamentali.
Eseguendo lo script si ottiene un output simile al seguente:

=== Logical disk enumeration === 05/10/2005 16.15.4 = Device ID……….. C: Drive Type………. 3 MediaType……….. 12 Description……… Disco rigido locale Size……………. 4533,015625 Mb FreeSpace……….. 2752,5625 Mb FileSystem………. NTFS VolumeName………. VolumeSerialNumber.. 18003A25 = Device ID……….. D: Drive Type………. 3 MediaType……….. 12 Description……… Disco rigido locale Size……………. 5005,54296875 Mb FreeSpace……….. 2842,71875 Mb FileSystem………. NTFS VolumeName………. VolumeSerialNumber.. 00B86B29 = Device ID……….. E: Drive Type………. 5 MediaType……….. 11 Description……… Disco CD-ROM Size……………. Mb FreeSpace……….. Mb FileSystem………. VolumeName………. VolumeSerialNumber..

Si nota che Drive Type assume il valore 3 per i dischi fissi e 5 per i cdrom. Se desideriamo visualizzare solamente i dischi fissi è necessario modificare la riga da

Set colDisks = objWMIService.ExecQuery _ (“SELECT * FROM Win32_LogicalDisk”)

a

Set colDisks = objWMIService.ExecQuery _ (“SELECT * FROM Win32_LogicalDisk WHERE DriveType = 3”)

All’istruzione SELECT è stata aggiunta una parte di codice(where DriveType = 3) che serve per selezionare solamente le unità disco.
Se vogliamo restringere ancora di più il campo della selezione è sufficiente utilizzare gli operatori booleani (AND oppure OR) come segue:

Set colDisks = objWMIService.ExecQuery _ (“SELECT * FROM Win32_LogicalDisk WHERE DriveType = 3 and Mediatype>10”)

L’istruzione SELECT estrae i dati riguardanti i dischi fissi che hanno un valore del campo MediaType più grande di 10.

Monitor del page file

Il codice seguente controlla l’utilizzo del page file utilizzando la classe Win32_PageFileUsage.

strComputer = “.” Set objWMIService = GetObject(“winmgmts:” _ & “{impersonationLevel=impersonate}!\” & strComputer & “rootcimv2”) Set colPageFiles = objWMIService.ExecQuery _ (“SELECT * FROM Win32_PageFileUsage”) For each objPageFile in colPageFiles Wscript.Echo “Allocated Base Size: ” & objPageFile.AllocatedBaseSize Wscript.Echo “CurrentUsage: ” & objPageFile.CurrentUsage Wscript.Echo “Description: ” & objPageFile.Description Wscript.Echo “InstallDate: ” & objPageFile.InstallDate Wscript.Echo “Name: ” & objPageFile.Name Wscript.Echo “PeakUsage: ” & objPageFile.PeakUsage Next

Eseguendo lo script si ottiene un risultato simile al seguente:

Allocated Base Size: 1024 CurrentUsage: 90 Description: D:pagefile.sys InstallDate: 20030412153952.832131+120 Name: D:pagefile.sys PeakUsage: 90

Questo script può servire per tenere sotto controllo i page file di una rete di computer.
Per configurare invece le proprietà dei page file di un computer possiamo utilizzare il seguente script:

strComputer = “.” Set objWMIService = GetObject(“winmgmts:” _ & “{impersonationLevel=impersonate}!\” & strComputer & “rootcimv2”) Set colPageFiles = objWMIService.ExecQuery _ (“SELECT * FROM Win32_PageFileSetting”) For Each objPageFile in colPageFiles objPageFile.InitialSize = 200 objPageFile.MaximumSize = 800 objPageFile.Put_ Next

Come si nota dallo script la classe da utilizzare è Win32_PageFileSetting ed il metodo Put_ modifica la configurazione dei pagefile di uno o più computer.

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.