Email

未啟動自動服務時的電子郵件通知 (Windows Server 2012 R2)

  • November 11, 2015

我們的環境中有一些伺服器(Windows Server 2012 R2)會自動安裝更新並在之後重新啟動。

重新啟動後,我們要檢查所有設置為自動啟動的(Windows)服務的狀態。如果服務沒有啟動,腳本將嘗試啟動服務 3 次,如果所有嘗試都失敗,它應該發送電子郵件通知,以便我們可以檢查此伺服器上的該服務有什麼問題。

我想知道是否已經存在一個簡單的解決方案,也許是 PowerShell 腳本?

我建議您考慮獲得 NMS。我們使用 PRTG,它執行良好。您可以在其中創建使用 WMI 監視 Windows 服務的感測器。如果服務出現故障,您可以將感測器配置為發送郵件/啟動腳本。

PRTG 由感測器授權,但免費版本為您提供 100 個,這對於幾台伺服器應該足夠了(每個服務需要一個感測器來監控)

Powershell 將是監控這些服務的好方法。奇怪的是,我今天剛剛讀了一篇關於這個的部落格。如果我能找到它,我會嘗試連結腳本,但它的一般要點是:

1.) 查找設置為自動啟動的服務。

2.) 檢查服務的狀態。

訣竅是

get-service

cmdlet 不輸出任何類型的“StartupType”,因此您必須改用 Win32_Service WMI 對象。

Foreach($Server in $ServerList){
   Get-WmiObject -ComputerName $Server Win32_Service | 
   Where-Object {$_.StartMode -eq 'Auto' -AND $_.State -eq 'Stopped'}
}

這應該會為您提供適合您所需參數的服務列表。

對此有幾點說明**:**

1.) 我強烈建議您在伺服器啟動幾分鐘後啟動此腳本,因為 $_.StartMode -eq ‘Auto’ 將包含設置為在啟動後立即啟動的服務以及設置為在延遲後自動啟動的服務.

2.) 會有一些服務將通過這個單線返回,您可能不關心監控。(在我的筆記型電腦上的 IE 中,名為“TrustedInstaller”的服務符合此條件,並作為停止服務返回:/)因此您很可能還需要過濾掉這些。

引用自:https://serverfault.com/questions/728882