2008-11-14 70 views
2

當遠程機器啓動並聯機或脫機時,是否有可以訂閱的WMI事件?機器聯機時的WMI事件

我的應用程序需要能夠監視機器的可用性,理想情況下,我希望能通過事件工作而不是連續輪詢。

+0

您不會說這是否適用於網絡中的任何機器,或者您是否對特定的已知機器感興趣? – Tim 2008-12-02 19:36:31

回答

1

訂閱關機事件在理論上是可行的。您可以訂閱更新「系統」事件日誌。您將從Source =「EventLog」和EventID = 6006查找事件。此事件包含消息:

事件日誌服務已停止。

這通常是關機時寫入的最後一條消息。可是等等!通過WMI接收此信息可能會有問題。爲什麼?這可能是因爲WMI服務本身在EventLog之前關閉了,因此它可能是Catch 22.您可能會在正在監視的服務器上關閉期間發現早期發生的另一條消息,並觀察此消息。

引導事件帶有一個更麻煩的Catch 22s。想想WMI事件如何運作一會兒。要獲取事件,您必須通過DCOM打開與遠程WMI服務器的連接,併發出WQL查詢以指示您想要的事件。爲了接收引導事件,您必須「神奇地」知道在事件被觸發之前打開所述連接併發出所述查詢。

幾年前,我編寫了一項服務,用於從網絡監視應用程序的遠程服務器收集事件日誌條目。只是邏輯,以檢測到DCOM連接到遠程已經丟失,需要重建是一個主要的痛苦的脖子。正如它發生的那樣,這是一個大型系統中的一個組件,無論如何都會攻擊遠程主機,所以我們最終依靠這些信息來知道何時重建我們的DCOM連接。

0

在微軟和其他網站上仔細閱讀並不會產生有關WMI中「啓動」事件的任何信息。但是,此thread建議在要監視的服務器上的啓動文件夾中安裝某些內容。

1

這些系統在DHCP上嗎?監視DHCP續訂可能會更容易,以查看系統何時恢復聯機。

0

通常從我的經驗,這是做得最好活躍(輪詢/查驗/無論你怎麼稱呼它)

怎麼樣的投票,你不喜歡? (一般來說,我和大多數用戶分享你對輪詢的不喜歡,但這可能是一個很好的解決方案)

至少你可以做一些小的輕量級輪詢過程,然後將事件觸發到一組訂戶在機器狀態發生變化時。

然後如果你找到更好的解決方案,你已經有一個事件接口。