iT邦幫忙

0

監看windows主機的services,並記錄

我想利用簡單的 windows 功能來做一件事,

就是觀查 windows server 的 services 狀態,

目前遇到一個問題就是,有一個services會不定時中斷。

因此想看能不能有小巧、Microsoft官方的工具能監控到該services的狀態,

當那個服務沒啟動 (意外關閉,或是人為關閉),都要記錄services關閉的時間點。

請各位達人,能否幫幫忙,有無簡單、小巧、免費、Microsoft的解決方法。

2 個回答

8
raytracy
iT邦大神 1 級 ‧ 2010-07-09 16:20:01
最佳解答

如果妳會寫 WMI Script 的話, 下面這個可以列出所有 stop 的 Service:

<pre class="c" name="code">strComputer = "."
Set objWMIService = GetObject("winmgmts:" & _
 "{impersonationLevel=Impersonate}!\\" & strComputer & "\root\cimv2")
Set colStoppedServices = objWMIService.ExecQuery _
 ("SELECT DisplayName,State FROM Win32_Service WHERE State <> 'Running'")
For Each objService in colStoppedServices
 Wscript.Echo objService.DisplayName & " = " & objService.State
Next

更詳細的說明可以參考:
http://technet.microsoft.com/en-us/library/ee198765.aspx

10
jako
iT邦新手 2 級 ‧ 2010-07-10 02:06:45

如果要用powershell來列出stop的services
指令碼:get-service | where-object {$_.Status -eq "Stopped"}
參考網址:
http://technet.microsoft.com/zh-tw/library/dd125460.aspx

raytracy iT邦大神 1 級 ‧ 2010-07-10 02:28:20 檢舉

恩, 這個才對, 我一直要找這個答案卻找不到....

cooch iT邦研究生 3 級 ‧ 2010-07-13 20:12:13 檢舉

這個答案好像跟您的問題還差一大段...

這個指令只能查出執行該次查詢時的所有已停止服務,

您的問題是要 "監控並記錄" 原先已啟動之特定服務是在什麼時候的,
這意味您必須定期執行偵測或是持續執行偵測特定服務由啟動狀態變為停止狀態的狀態改變並加以記錄時間.

邏輯上很簡單,
但離完整的解答還差一截!

我要發表回答

立即登入回答