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, время: 19:09.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.