Некоторое время я наблюдал за серверами UNIX / Linux с помощью SNMP. Изменение файла snmpd.conf и добавление чего-то вроде
view systemview included .1.2.3.4.5.6.789
pass .1.2.3.4.5.6.789 /bin/bash /bin/myscript.sh
позволяет мне запускать пользовательские сценарии для SNMP OID. У меня есть сценарий PowerShell в Windows, и мне нужно сделать то же самое, как / где мне это настроить и настроить?
Коробка - это Windows Server 2008 (я думаю R2)
Насколько я знаю, единственный способ сделать то, что вы ищете, - это реализовать агент расширения SNMP (DLL). Возможно, уже есть кто-то, кто реализовал агент расширения, который позволит вам выполнять произвольные команды (поскольку это звучит как удобная вещь), но я не знаком с ним.
У Microsoft есть различные документы по разработке и установке агентов расширения SNMP. Есть хорошая краткая статья о разработка агентов расширения SNMP в CodeProject тоже.
Агент расширения SNMP, допускающий произвольное определение выполняемых команд, безусловно, был бы интересен, но у меня нет достаточного количества свободного времени для его написания.
Как упоминалось выше, я не знаю ничего, что запускало бы сценарий после получения ловушки SNMP - сама Windows не действует как получатель ловушки, если вы не установите такой демон в Windows, она действительно может только отправить их .
Если вы пытаетесь что-то сделать, когда событие зарегистрировано в журнале событий, вам, вероятно, будет лучше использовать встроенный в Windows Server 2008 параметр «Присоединить задачу к этому событию ...», который вы увидите, щелкнув правой кнопкой мыши о любом событии в журнале событий.
Чтобы поднять фактическое прерывание SNMP при регистрации события, посмотрите на evntwin.exe или, если вам удобнее использовать CLI evntcmd.exe
Есть несколько программ, одна из которых я использовал в прошлом, это What's Up Gold, которые могут реагировать на полученные ловушки SNMP.
Если вы думаете, что я могу предоставить дополнительную информацию, пожалуйста, вернитесь ко мне.
-Льюис
РЕДАКТИРОВАТЬ: Возможно, что-то, что было бы полезно для вас, являющихся потребителями временных событий, но по существу требует, чтобы скрипт работал постоянно, и он использует VBScript, поэтому вам нужно будет адаптироваться к PowerShell или адаптировать скрипт PowerShell к VBScript. Смотреть на: http://msdn.microsoft.com/en-us/library/aa392396(v=VS.85).aspx
По сути, этот сценарий отслеживает журнал событий, но концепция остается той же.
sComputer = "."
Set oWMIService = GetObject("winmgmts:{(Security)}!\\" & sComputer & "\root\cimv2")
Set cEvents = oWMIService.ExecNotificationQuery _
("SELECT * FROM __InstanceCreationEvent WHERE " _
& "Targetinstance ISA 'Win32_NTLogEvent'")
Do
Set oEvent = cEvents.NextEvent
Select Case oEvent.TargetInstance.EventCode
Case "100"
Wscript.Echo "Event 100 occurred".
End Select
Loop
В случае, если кто-то наткнулся на это, в настоящее время, похоже, существует ряд бесплатных решений для Windows, которые могут обрабатывать сообщения ловушек SNMP: