[ОТВЕТИТЬ]
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
===================

а вот с количеством и буковками дисков надо еще подумать...
04.12.2009 13:57
OlegON
 
И с локализацией винды...
04.12.2009 14:07
student
 
Цитата:
OlegON И с локализацией винды...
ну тут уж ничего не поделаешь - такая вот она загадочная

на английской надо искать "bytes free" вместо "байт свободно"
и убрать изменения chcp

да заодно чтобы быстрее было убрать ключик /s в команде дир
==================
@echo off

for /f "tokens=3 delims= " %%A in ('dir /-c ^|find "bytes free"') do (
echo free: %%A
)

pause
==================

на русской винде можно также искать "Ў©в бў®Ў®¤®" - это если chcp не юзать

зато все штатными средствами и админом быть не надо - как и заказывал...
04.12.2009 14:47
camrad
 
fsutil fsinfo drives
fsutil volume diskfree c:
04.12.2009 15:28
OlegON
 
Цитата:
camrad fsutil fsinfo drives
fsutil volume diskfree c:
Угу, я с него и начал, потому и написал, что админских прав нет.
05.12.2009 18:10
Propil
 
или

Цитата:
По умолчанию программа PsInfo выводит сведения о локальной системе. Для получения сведения об удаленной системе укажите ее имя. Так как для получения данных программа PsInfo обращается к удаленному реестру, в искомой системе должна работать служба удаленного реестра, а учетная запись, от имени которой запускается PsInfo, должна иметь доступ к разделу HKLM\System удаленного реестра.
C:\Documents and Settings\Sasha>psinfo -d

PsInfo v1.75 - Local and remote system information viewer
Copyright (C) 2001-2007 Mark Russinovich
Sysinternals - www.sysinternals.com

System information for \\HOST1:
Uptime: Error reading uptime
Kernel version: Microsoft Windows XP, Uniprocessor Free
Product type: Professional
Product version: 5.1
Service pack: 3
Kernel build number: 2600
Registered organization: Home office
Registered owner: Alex
Install date: 11.09.2008, 14:05:31
Activation status: Error reading status
IE version: 7.0000
System root: C:\WINDOWS
Processors: 1
Processor speed: 2.0 GHz
Processor type: Intel(R) Pentium(R) 4 CPU
Physical memory: 1024 MB
Video driver: NVIDIA GeForce 6600
Volume Type Format Label Size Free Free
A: Removable 0.0%
C: Fixed NTFS 29.29 GB 7.33 GB 25.0%
D: CD-ROM 0.0%
E: Fixed NTFS data 47.39 GB 1.50 GB 3.2%
F: Fixed NTFS Media 74.56 GB 21.48 GB 28.8%
Опции темы


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

 

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