我知道这个主题有几个类似的post,但我想知道的是如何重新启动已经停止的服务。 是否有.bat或.vbs脚本检查服务是否停止,然后在停止并在循环中运行时重新启动它?
感谢您的帮助!
更新7.IX.2012 @ 11.25据我所知,有几个post详细介绍了SC和net stop & net start ,其中大多数post是关于先停止服务然后重新启动的。 我正在处理已经崩溃或停止的服务,我需要检查它是否停止,然后重新启动它。 我希望我更清楚。 也有一个附加的日志文件也是很好的。
例如,创build一个batch fileC:\ derp.bat
batch file的内容可能如下所示:
net start "Service Name"
C:\ derp.bat
第一行:如果服务已经运行,那么什么都不会发生。 如果没有运行,则会尝试启动。
第二行:重新启动batch file。
如果你想每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 }
不过,我不build议无限循环脚本。 一个快速和肮脏的解决scheme将是设置此脚本每隔一段时间运行一个计划任务。
编辑:添加一行以将条目添加到日志文件。
从阅读你的评论之后,你听到的就是这个问题,只要做到这一点就行了:
http://www.netwrix.com/windows_services_monitoring_freeware.html
NetWrix服务监视器是一个免费的工具来监视关键的Windows服务,并可select重新启动失败后。 该工具一次监控多个服务器上的所有自动启动服务,并在一个或多个服务意外停止时发送电子邮件警报。 可选的自动重新启动function可确保所有受监视的服务在运行时不会停机。 该工具非常轻便,configuration非常简单:安装,input计算机名称,并提供您的电子邮件地址。
特点和好处:
One installation watches multiple computers at a time; Monitors all Windows services with startup type set to Automatic; Sends alerts by e-mail when services stop or fail to start at boot time; Optionally starts failed services; Optionally reboots computers when one or more services fail; Available at absolutely no cost.
我们使用WUG,其他人使用NAGIOS,Zenoss,但是以上是免费的,具体到您的问题。
Sc命令。
试试sc /? 求助。
它可以检查服务的状态。 基于此,您可以(重新)如果需要启动。