Paha_DD
Отправлено: 12.11.15 10:46
Доброго времени суток,
понадобился вот нам монитор загрузки ОЗУ на ПК пользователей в процентном соотношении, типа как ЦПУ или файл подкачки через WMI, единично как я понял ОЗУ можно мониторить, зная исходный объём ОЗУ. Хотелось бы загнать в этот тип мониторинга всю карту, если есть возможность, напишите пожалуйста текст WQL-запроса для мониторинга по-процентного соотношения загрузки ОЗУ через WMI, заранее спасибо
пример : оповещение в случаи задействования ОЗУ на ПК пользователя свыше 90%
Комментарии
Используйте проверку VBScript.
В поле скрипта поместите следующий код:
function Main
arrComputers = Array("localhost")
For Each strComputer In arrComputers
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem",,48)
For Each objItem in colItems
LoadMemory = (int(objItem.TotalVisibleMemorySize) - int(objItem.FreePhysicalMemory))/int(objItem.TotalVisibleMemorySize)*100
If LoadMemory < 60 Then Main = "OK" else Main = "FAIL"
Next
Next
end function
Скрипт так же получает данные через WMI и выполняет арифметические операции.
Однако, эта проверка пока может возвращать только два значения - OK и не OK. Поэтому сравнение с пороговым значением так же необходимо выполнять внутри скрипта.
Порог срабатывания задается в строке
LoadMemory < 60
Это значит, что загрузка памяти до 60% является нормальной и проверка будет считаться пройденной.
но вот, что получилось,(при наведении мышой к ПК на карте) VBScript: Ошибка выполнения скрипта: "Разрешение отклонено: 'GetObject'" , и вопрос как авторизацию провести, когда через скрипт мониторинг проходит? ПК в домене
Тест естественно тоже не проходит при составлении проверки через скрипт, интернет политика предприятия не даёт прикрепить файлы/скриншоты на форуме....
пример : оповещение в случаи задействования ОЗУ на ПК пользователя свыше 90%
Аналогичная ситуация и у меня: на сервере 1С есть процесс rphost.exe который может сожрать всю оперативную память. И если его вовремя не вышибить - сервак вешается наглухо.
Создал проверку WMI с запросом select AvailableMBytes from Win32_PerfFormattedData_PerfOS_Memory, Проверка прошла, если значение поля AvailableMBytes больше 1024. Т.е. если на серваке памяти осталось меньше 1Гб, то проверка мне пришлёт смску с текстом типа "На серваке кончается память". Я тут же подключаюсь и прибиваю процесс.
to PriCOOLisT,
так у вас, один сервак с фиксированным объёмом ОЗУ,а если их 10 (серваков) и все разные по железу, каждый руками конечно можно забить.
Просто речь о том если ПК в принципе старенький, и там всего 1..2 гб,а есть и довольно таки свежие 32+ гб, то как их отслеживать всех разом
Почитайте пока вот эту тему - там рассматривается аналогичная проблема: http://forum.script-coding.com/viewtopic.php?id=5540
Возможно, у вас быстрее получится запустить.
Вот такой скрипт поможет выполнять мониторинг загрузки оперативной памяти в процентах. Добавлены параметры для подключения с логином и паролем.
function Main
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer("%A", "root\cimv2", "login", "password")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem",,48)
For Each objItem in colItems
LoadMemory = (int(objItem.TotalVisibleMemorySize) - int(objItem.FreePhysicalMemory))/int(objItem.TotalVisibleMemorySize)*100
If LoadMemory < 90 Then Main = "OK" else Main = "FAIL"
Next
end function
Мы проверили: да, действительно, при тесте скрипта ключ %A не работает. Однако, при сохранении проверки всё работает, как надо. Так что смело добавляйте эту проверку нескольким выделенным хостам.
В тесте ошибку исправим.