Мне нужно знать, как получить размер сектора для буквы диска, например C:, без использования fsutil
в скрипте PowerShell. Пакет и VBS также приемлемы.
Средство fsutil
идеально подходит для этого, так как возвращает точные данные, которые мне нужны:
fsutil fsinfo ntfsinfo C:
NTFS Volume Serial Number : 0x32946b93946b587d
NTFS Version : 3.1
LFS Version : 2.0
Number Sectors : 0x000000003a0b6c84
Total Clusters : 0x0000000007416d90
Free Clusters : 0x00000000010a9da5
Total Reserved : 0x0000000000002c98
Bytes Per Sector : 512
Bytes Per Physical Sector : 512
Bytes Per Cluster : 4096
Bytes Per FileRecord Segment : 1024
--- etc ---
Тем не менее, я использую этот сценарий в среде, где используется много разных языков Windows, и Microsoft в своей бесконечной мудрости решила перевести вывод:
fsutil fsinfo ntfsinfo c:
NTFS-Volumeseriennummer : 0xdc7ccd5b7ccd3156
NTFS-Version : 3.1
LFS-Version : 2.0
Anzahl der Sektoren : 0x0000000004eec7ff
Gesamtzahl Cluster : 0x00000000009dd8ff
Freie Cluster : 0x000000000059183d
Insgesamt reserviert : 0x000000000000430e
Bytes pro Sektor : 512
Bytes pro physischem Sektor : 512
Bytes pro Cluster : 4096
Bytes pro Dateidatensatzsegment : 1024
--- usw ---
Информация, которая мне нужна - байты на сектор - не кажется легко доступной из WMI, так что я могу сказать «дай мне данные для C:», и пытается соединить данные уровня диска с данными уровня тома, чтобы попытаться соединить запрос не удалось.
Я бы жестко закодировал номер строки, чтобы получить данные обратно, но объем данных, возвращаемых из fsutil
является несовместимым во всех версиях Windows. Оба приведенных выше примера были взяты с устройств Windows 10, где мне нужны данные в строке 8, а на устройствах Windows 7 - в строке 7.
Кто-нибудь знает, как мне получить эти данные, чтобы i18n не мешал им? Единственной альтернативой является жесткое кодирование номера строки, из которой мне нужны данные, с учетом приспособлений для версии Windows, на которой я работаю, что слишком ненадежно для рассмотрения.
Я ищу значение "Байт на сектор", а не значение "Байт на физический сектор".