На что ссылаются значения перечисления objLogicalDisk.DriveType в vbscript? - PullRequest
1 голос
/ 08 июля 2010

, поэтому следующий код:

Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim colDrives : Set colDrives = objFSO.Drives
Dim objWMIService : Set objWMIService = GetObject("winmgmts:")
Dim objLogicalDisk
Dim objDrive

For Each objDrive in colDrives
    Set objLogicalDisk = 
objWMIService.Get("Win32_LogicalDisk.DeviceID='" & objDrive.DriveLetter & ":'")
    Log(objLogicalDisk.DriveType)
Next

используется для получения типа диска каждого диска в системе.Я хочу знать, что означают возвращаемые числа («3», «4», «5» и т. Д.)?Оглядываясь в Интернете, я нахожу разные ответы на то, какими они должны быть в моей системе, - в зависимости от Интернета:

Неизвестно = 0

Съемный = 1 'Съемный носитель

Fixed = 2 'Фиксированный носитель (жесткий диск)

Удаленный = 3' Сетевой диск

CDROM = 4 'CD-ROM

RAMDisk = 5' RAM диск

и согласно данным, которые я до сих пор собирал, 3 = мой локальный диск C, 5 = мой локальный диск D (DVD), 4 = сетевые диски.

Если кто-то может помочь разобраться в этомдвусмысленность, это было бы здорово :) 1020 *

Ответы [ 2 ]

2 голосов
/ 08 октября 2015

Я нашел этот пост в поисках некоторых примеров работы со свойством DriveType.

FWIW, хотя Хелен ясно дала правильный ответ, я подумал, что стоит также отметить, что вероятная причина, по которой ОП столкнулся с некоторой путаницей в своих результатах, заключается в том, что он смешивал и сопоставлял использование объектов из разных интерфейсов.

Он начал с получения списка приводных объектов с помощью FileSystemObject, но затем переключился на WMI, чтобы получить требуемые свойства от каждого приводного объекта. Значения свойства DriveType для объекта Drive отличаются в FileSystemObject и отличаются от WMI.

Аналогичная ссылка на то, что Хелен предоставила для WMI, но для FileSystemObject:

https://msdn.microsoft.com/en-us/library/aa243132(v=vs.60).aspx

Value    Meaning
--------------------------
0        Unknown
1        Removable Disk
2        Fixed Disk
3        Network Drive
4        Compact Disc
5        RAM Disk

Его результаты соответствовали бы его ожиданиям, если бы он хранил все в FileSystemObject, что-то вроде:

Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim colDrives : Set colDrives = objFSO.Drives
Dim objDrive

For Each objDrive in colDrives
    Wscript.Echo  objDrive.DriveType
Next
1 голос
/ 08 июля 2010

Официальная ссылка WMI находится в библиотеке MSDN .

Что касается вашего вопроса, ссылка на класс Win32_LogicalDisk описывает следующие значения DriveType:

Value    Meaning
--------------------------
0        Unknown
1        No Root Directory
2        Removable Disk
3        Local Disk
4        Network Drive
5        Compact Disc
6        RAM Disk
...