Что нового

AutoIt and Wmi. (FreeSpace Win32_LogicalDisk)

minimen456

Новичок
Сообщения
34
Репутация
0
Мне нужно получить свободное место на диске с помощью WMI. Как это сделать? Что писать дальше?

Код:
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$strComputer = "localhost"
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\ROOT\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$obj = ObjGet("WinMgmts:\\.\root\cimv2")
$que=$obj.ExecQuery("Select DeviceID,FreeSpace from Win32_LogicalDisk")
For $o in $que
	MsgBox(32,'',$o.DeviceID&' | '&$o.FreeSpace)
Next
 
Автор
M

minimen456

Новичок
Сообщения
34
Репутация
0
Как можно получить свободное место только на диске С? После 'ExecQuery("Select' всегда необходимо делать цикл чтобы разобрать ту кучу данных, которую он возвращает? (В данном случает он вернул мне свободное место на всех дисках в системе, поэтому то и нужен цикл). Есть ли способ получить свободное место только на C и обойтись без цикла?
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$obj = ObjGet("WinMgmts:\\.\root\cimv2")
$que=$obj.get('Win32_LogicalDisk.DeviceID="C:"')
MsgBox(32,'',$que.FreeSpace)
 
Автор
M

minimen456

Новичок
Сообщения
34
Репутация
0
Код:
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$strComputer = "localhost"
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\ROOT\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT DeviceID,FreeSpace FROM Win32_LogicalDisk WHERE DeviceID = 'C:'", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)


Добавил WHERE DeviceID = 'C:'". Есть ли способ достать FreeSpace из $colItems не используя цикл? (интересуюсь чтобы понять как работать с объектами)


Добавлено:
Сообщение автоматически объединено:

Почему иногда пишут
Код:
ObjGet("winmgmts:\\"

а иногда
Код:
ObjGet("winmgmts:{impersonationLevel = impersonate}!\\"

В чем разница?
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
В Program Files\AutoIt3\Examples\ вроде был пример, поиск в руки. А вообще, хочешь пользоваться Wmi - читай книги по Wmi.
 
Верх