Windows-Server-2008

從腳本重新啟動 Windows 服務?

  • April 23, 2021

我知道關於這個主題有幾個類似的文章,但我想知道如何重新啟動已經停止的服務。是否有**.bat.vbs**腳本可以檢查服務是否停止,如果服務停止並循環執行,則重新啟動它?

感謝您的幫助!

更新 7.IX.2012 @ 11.25 我知道有幾篇文章詳細介紹了SCand net stop&的用法net start,其中大多數文章都涉及先停止服務然後重新啟動它。我正在處理已經崩潰或停止的服務,我需要檢查它是否停止然後重新啟動它。我希望我說得更清楚。附上一個日誌文件也很好。

例如,創建一個批處理文件 C:\derp.bat

批處理文件的內容可能如下所示:

net start "Service Name"

C:\derp.bat

第一行:如果服務已經在執行,那麼什麼都不會發生。如果它沒有執行,那麼它將嘗試啟動。

第二行:重新啟動批處理文件。

如果您希望它每 60 秒嘗試一次,您可以在中間拋出一個 ping 127.0.0.1 -n 60。

在 PowerShell 中啟動服務非常簡單(以 spooler 為例):

Start-Service spooler

您還可以通過以下方式檢查服務是否正在執行並重新啟動它:

$Service = Get-Service -Name spooler
if ($Service.Status -ne "Running")
{         
   (Get-Date).ToString() + " - Service stopped." >> C:\Scripts\log.txt
   Start-Service spooler
}

但是,我不建議無限循環腳本。一個快速而骯髒的解決方案是將此腳本設置為使用計劃任務每隔一段時間執行一次。

**編輯:**添加了一行以將條目添加到日誌文件。

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