[ОТВЕТИТЬ]
Опции темы
03.12.2009 14:45  
OlegON
Есть идеи, как штатными средствами в винде получить список жестких дисков и свободное место на них?
 
03.12.2009 14:46  
OlegON
Без привилегий администратора
 
03.12.2009 16:08  
Propil
DISKPART
DISKPART> list disk

Disk ### Состояние Размер Свободно Дин Gpt
-------- ---------- ------- ------- --- ---
Диск 0 Подключен 37 GB 0 B

DISKPART> list volume

Том ### Имя Метка ФС Тип Размер Состояние Сведения
---------- --- ----------- ----- ---------- ------- --------- --------
Том 0 C NTFS Раздел 10 GB Исправен Системны
Том 1 D NTFS Раздел 28 GB Исправен
Том 2 E KINGSTON FAT32 Съемное ус 3826 MB


========
правда, запускал под админом..
надо проверять
 
03.12.2009 17:57  
student
если в винде есть vbs (а он практически везде есть), то можно так:
сохранить код ниже в файл с расширением vbs и выполнить
должно работать под любой учеткой и из cmd тоже
результаты гонит на экран, но можно перенаправить куда надо
=============================
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colDiskDrives = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive")
For Each objDrive In colDiskDrives
strDeviceID = Replace(objDrive.DeviceID, "\", "\\")
Set colPartitions = objWMIService.ExecQuery ("ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" & strDeviceID & """} WHERE AssocClass = " & "Win32_DiskDriveToDiskPartition")
For Each objPartition In colPartitions
Set colLogicalDisks = objWMIService.ExecQuery ("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & objPartition.DeviceID & """} WHERE AssocClass = " & "Win32_LogicalDiskToPartition")
For Each objLogicalDisk In colLogicalDisks
Set colDisks = objWMIService.ExecQuery ("Select * from Win32_LogicalDisk Where DeviceID = '" & objLogicalDisk.DeviceID & "'")
For Each objDisk in colDisks
Wscript.Echo objLogicalDisk.DeviceID & " - " & objDisk.FreeSpace & " byte"
Next
Next
Next
Next
=============================
 
03.12.2009 21:28  
OlegON
Увы, речь о сохранении файлов тоже не идет :( Да и вырублен часто vbs.
А diskpart у меня вообще что-то не завелся...
 
04.12.2009 07:09  
Propil
Олег, сейчас проверил - в Windows XP /2003 есть Diskpart
в Windows 2000 - отсутствует..
 
04.12.2009 07:12  
OlegON
Да нет, я на терминалке работал, 2003... Такое впечатление, что утилитка просто падала. Но у меня не было админских прав.
 
04.12.2009 07:28  
Propil
возможно, из-за прав..
ей много чего можно сделать

C админскими правами в терминальном режиме запускается
==

Цитата:
Для выполнения этой процедуры необходимо входить в группу "Операторы архива" или "Администраторы" на локальном компьютере или получить соответствующие полномочия путем делегирования. Если компьютер присоединен к домену, эту процедуру могут выполнять члены группы "Администраторы домена". При этом по соображениям безопасности рекомендуется использовать команду Запуск от имени.
 
04.12.2009 09:15  
OlegON
Увы... Имеются только юзерские.
Цитата:
C:\>diskpart

Microsoft DiskPart, (
Службам управления дисками не удается завершить эту операцию.
 
04.12.2009 13:52  
student
Цитата:
Сообщение от OlegON
Увы, речь о сохранении файлов тоже не идет :( Да и вырублен часто vbs.
А diskpart у меня вообще что-то не завелся...
ну чем вам всем так vbs не нравится? :unsure_mini:

команда дир - устроит? состряпай обычный батник - работает для текущего диска
===================
@echo off
chcp 1251 > nul
for /f "tokens=3 delims= " %%A in ('dir /s/-c ^|find "байт свободно"') do (
echo free: %%A
)
chcp 866 > nul
pause
===================

а вот с количеством и буковками дисков надо еще подумать...
 
 


Опции темы



Часовой пояс GMT +3, время: 11:12.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.