sma7
Отправлено: 20.01.16 12:03
Добрый день!
Такой вопрос по программе Lanstate Pro, установлена последняя версия.
Хочу мониторить одной проверкой несколько локальных дисков на одном сервере.
Есть ли такая возможность через WMI? я делаю wql-запрос:
select * from Win32_LogicalDisk where FreeSpace>524288000
и указал что проверка прошла если FreeSpace больше 524288000
но при мониторинге я так понимаю из селекта выбирается только первый попадающий под условия локальный диск (С:) и на остальные он уже не обращает внимание.
Как исправить ситуацию и есть ли такая возможность в программе?
Не охота делать проверки на каждый диск одного сервера по отдельности тем самым нагружать сервер лишними запросами и мониторингом.
Комментарии
Для этой задачи подойдет проверка JScript или VBScript. Можно описать в скрипте все вычисления и программа их выполнит. В данном случае, нужно обойти в WQL все диски и просуммировать их свободный объем.
Единственный момент, эти проверки пока могут возвращать только логический результат - true или false. Поэтому сравнение с заданным значением (524288000 ) тоже нужно делать внутри скрипта.
Для примера вот код, который получает объем свободной памяти (без кода сравнения с заданным значением):
function Main
strHostAddr = "%A"
strLogin = ""
strPassword = ""
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer(strHostAddr, "root\cimv2", strLogin, strPassword)
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem",,48)
For Each objItem in colItems
Main = Int((int(objItem.TotalVisibleMemorySize) - int(objItem.FreePhysicalMemory))/int(objItem.TotalVisibleMemorySize)*100)
Next
end function