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.