При доступе к состоянию пространства логического диска итоговые результаты на диске верны, но результаты свободного места не - PullRequest
0 голосов
/ 12 октября 2010

Проблема, по-видимому, связана со свойством свободного пространства класса Win32_LogicalDisk, поскольку оно показывает только то, на что имеет права пользователь, вошедший в систему в данный момент, а не то, какое свободное пространство фактически существует.

Пример кода, хотя не полностью necc:

Set objLogicalDisk = objWMIService.Get("Win32_LogicalDisk.DeviceID='Z:'")

' server share, total disk size, total disk free, percent free
tmpStatus = tmpStatus & arrShares(i) & "," & FormatNumber((objLogicalDisk.size / GBCONVERSION),,-1) & "," & _
FormatNumber((objLogicalDisk.FreeSpace / GBCONVERSION),,-1) & "," & _
((objLogicalDisk.FreeSpace / GBCONVERSION) / (objLogicalDisk.size / GBCONVERSION) * 100) & "@"

ПРИМЕЧАНИЕ. Это для общего ресурса виртуального сервера, поэтому тип привода 4

.

Есть ли лучший способ? Опять же, общее дисковое пространство является правильным, но свободного места нет, поскольку из того, что я нашел в MSDN, он использует права текущего пользователя для определения свободного места. Должен быть другой / лучший способ.

1 Ответ

0 голосов
/ 12 октября 2010

Итак, похоже, хитрость заключается в том, чтобы использовать свойства диска объекта файловой системы вместо свойств w32_logicaldisk.Используя FSO, все числа точны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...