WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

WMI
plus
plus

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Remote Number of Drives


Question:

Need to know how to find the total number of drives a remote server has. Any help would be great

Answer:

Ok, the following script can be use for Local or Remote systems. Just put in the Name of the server in the Server variable to get info about the remote system. You have to have rights to view the info on the remote system for this to work.

The script also extracts additional information that you don't need, but it doesn't display it anywhere. It's just there for example.



sServer = ""
Locator = ObjectOpen("WbemScripting.SWbemLocator")
Service = Locator.ConnectServer(sServer)
Security = Service.Security_
Security.ImpersonationLevel = 3
Class = "Win32_LogicalDisk"
Instance = Service.InstancesOf(Class)
hEnum = ObjectCollectionOpen(Instance)
iTUnknown = 0
iTRemovable = 0
iTLocal = 0
iTNetwork = 0
iTCD = 0
iTRamDisk = 0
iTotal = 0

While 1
   Obj = ObjectCollectionNext(hEnum)
   If Obj == 0 Then Break
   sDriveLetter = Obj.Caption
   iMediaType = Obj.MediaType
   iDriveType = Obj.DriveType

   Select iDriveType
      Case 1
         sDriveType = "Unknown"
         iTUnknown = iTUnknown + 1
         Break
      Case 2
         sDriveType = "Removable"
         iTRemovable = iTRemovable + 1
         Break
      Case 3
         sDriveType = "Local"
         iTLocal = iTLocal + 1
         Break
      Case 4
         sDriveType = "Network"
         iTNetwork = iTNetwork + 1
         Break
      Case 5
         sDriveType = "CD"
         iTCD = iTCD + 1
         Break
      Case 6
         sDriveType = "RamDisk"
         iTRamDisk = iTRamDisk + 1
         Break
   EndSelect

   Select iMediaType
      Case 0
         sMediaType = "Unknown Format"
         Break
      Case 1
         sMediaType = "5.25 Floppy 1.2mb"
         Break
      Case 2
         sMediaType = "3.5 Floppy 1.44mb"
         Break
      Case 3
         sMediaType = "3.5 Floppy 2.88mb"
         Break
      Case 4
         sMediaType = "3.5 Floppy 20.8mb"
         Break
      Case 5
         sMediaType = "3.5 Floppy 720kb"
         Break
      Case 6
         sMediaType = "5.25 Floppy 360kb"
         Break
      Case 7
         sMediaType = "5.25 Floppy 320kb"
         Break
      Case 8
         sMediaType = "5.25 Floppy 320kb"
         Break
      Case 9
         sMediaType = "5.25 Floppy 180kb"
         Break
      Case 10
         sMediaType = "5.25 Floppy 160kb"
         Break
      Case 11
         sMediaType = "Removable"
         Break
      Case 12
         sMediaType = "Fixed Disk"
         Break
      Case 13
         sMediaType = "3.5 Floppy 120mb"
         Break
      Case 14
         sMediaType = "3.5 Floppy 640kb"
         Break
      Case 15
         sMediaType = "5.25 Floppy 640kb"
         Break
      Case 16
         sMediaType = "5.25 Floppy 720kb"
         Break
      Case 17
         sMediaType = "3.5 Floppy 1.2mb"
         Break
      Case 18
         sMediaType = "3.5 Floppy 1.23mb"
         Break
      Case 19
         sMediaType = "3.5 Floppy 1.23mb"
         Break
      Case 20
         sMediaType = "5.25 Floppy 1.23mb"
         Break
      Case 22
         sMediaType = "8 Floppy 256kb"
         Break
   EndSelect
   ;Message(Class, StrCat("Drive Letter = ", sDriveLetter, @TAB, "Drive Type = ", sDriveType, @TAB, "Media Type = ", sMediaType))
EndWhile

iTotal = iTUnknown + iTRemovable + iTLocal + iTNetwork + iTCD + iTRamDisk

sMSG = StrCat("Unknown:", @TAB, iTUnknown, @CRLF, "Removable:", @TAB, iTRemovable, @CRLF, "Local:", @TAB, @TAB, iTLocal, @CRLF)
sMSG = StrCat(sMSG, "Network:", @TAB, @TAB, iTNetwork, @CRLF, "CD-Rom:", @TAB, @TAB, iTCD, @CRLF, "RamDisk:", @TAB, @TAB, iTRamDisk, @CRLF)
sMSG = StrCat(sMSG, "Total Drives:", @TAB, iTotal)
Message("Total Drives by Type", sMSG)
ObjectCollectionClose(hEnum)
ObjectClose(Instance)
ObjectClose(Security)
ObjectClose(Service)
ObjectClose(Locator)

Article ID:   W16273
File Created: 2004:03:30:15:43:44
Last Updated: 2004:03:30:15:43:44