Событие WMI, когда машина подключается к сети - PullRequest
2 голосов
/ 14 ноября 2008

Есть ли событие WMI, на которое вы можете подписаться, которое сработает, когда удаленная машина загружается и подключается к сети или отключается?

Мое приложение должно иметь возможность отслеживать машины на предмет их доступности, и в идеале мне нужно что-то, что может работать через события вместо непрерывного опроса.

Ответы [ 4 ]

1 голос
/ 02 декабря 2008

Подписка на событие отключения теоретически возможна. Вы можете подписаться на получение обновлений в системном журнале событий. Вы будете искать событие из Source = "EventLog" и EventID = 6006. Это событие содержит сообщение:

Служба журнала событий остановлена.

Обычно это последнее сообщение, написанное при завершении работы. Но ждать! Может быть проблематично получить это через WMI. Зачем? Возможно, сама служба WMI завершает работу до EventLog, так что это может быть Catch 22. Возможно, вы могли бы искать другое сообщение, которое появляется раньше, во время выключения на серверах, которые вы отслеживаете, и наблюдать за этим.

Событие загрузки включает в себя еще более хлопотный набор Catch 22s. Подумайте, как работает событие WMI. Чтобы получить события, вы должны открыть соединение с удаленным сервером WMI через DCOM и выполнить запрос WQL, чтобы указать, какие события вы хотите. Чтобы получить событие загрузки, вы должны «волшебным образом» знать, чтобы открыть указанное соединение и выполнить указанный запрос до того, как событие будет запущено.

Несколько лет назад я написал сервис, который собирал записи журнала событий с удаленных серверов для приложения мониторинга сети. Просто логика, чтобы определить, когда соединение DCOM с пультом было потеряно и должно было быть восстановлено, было главной болью в шее. Как оказалось, это был компонент в более крупной системе, который в любом случае проверял связь с удаленными хостами, поэтому мы в конечном итоге полагались на эту информацию, чтобы знать, когда нужно перестраивать наши подключения DCOM.

1 голос
/ 02 декабря 2008

Эти системы на DHCP? Может быть проще отслеживать обновления DHCP, чтобы увидеть, когда система снова подключится.

0 голосов
/ 02 декабря 2008

Обычно, по моему опыту, это лучше всего делать с активным (опрос / пинг / как вы хотите это называть)

А что с опросом тебе не нравится? (в общем, я разделяю вашу неприязнь к опросам в большинстве случаев, но это тот случай, когда это, вероятно, хорошее решение)

По крайней мере, вы можете сделать небольшой небольшой процесс опроса, который затем инициирует события для ряда подписчиков при изменении состояния компьютера.

Тогда, если вы найдете лучшее решение, у вас уже есть интерфейс для событий.

0 голосов
/ 15 ноября 2008

Просмотр вокруг сайтов Microsoft и других сайтов не дает никакой информации о «загрузочном» событии в WMI. Однако этот поток предлагает установить что-то в папке автозагрузки на серверах, которые вы хотите отслеживать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...