Oli*_*lay 22 windows-services batch-file windows-server-2003
我需要知道我的批处理脚本结束时服务的状态,它使用"net stop thingie"和"net start thingie"重新启动服务.
在我最喜欢的理想世界中,我想通过电子邮件将状态发送给自己,在寒冷的冬夜里阅读,以确保我知道运行正常的服务器的温暖和舒适.
只是为了让您知道,我使用的是Windows Server 2003平台,批处理文件似乎是最佳选择.我不介意使用别的东西,而将建议很开放,但只是为知识的缘故(如僵尸渴望的大脑,我想,为什么不吹我自己),是有一个命令,让我检查关于服务的状态,在命令行?
我应该将命令的输出重定向到文件吗?
我的裤子到底在哪里?(天哪,我真的希望插入这里的幽默不会侮辱任何人.这是星期三早上,幽默我也需要:P)
[编辑:]我使用的解决方案(不再)可以从--link redacted--下载
它被用作在夜间执行的任务集,并在早上检查我的电子邮件,我看到该服务是否已正确重新启动.
Rôm*_*con 27
你试过sc.exe吗?
C:\> for /f "tokens=2*" %a in ('sc query audiosrv ^| findstr STATE') do echo %b
4 RUNNING
C:\> for /f "tokens=2*" %a in ('sc query sharedaccess ^| findstr STATE') do echo %b
1 STOPPED
Run Code Online (Sandbox Code Playgroud)
请注意,在批处理文件中,您需要将每个百分号加倍.
JRL*_*JRL 19
您可以致电net start "service name"您的服务.如果它没有启动,它将启动它并返回errorlevel = 0,如果它已经启动它将返回errorlevel = 2.
Mar*_*ell 12
使用pstools - 特别是psservice和"query" - 例如:
psservice query "serviceName"
Run Code Online (Sandbox Code Playgroud)
小智 10
看起来也很hier:
NET START | 查找"服务名称"> nul IF errorlevel 1 ECHO服务未运行
刚从http://ss64.com/nt/sc.html复制而来
如果PowerShell可供您使用......
Get-Service -DisplayName *Network* | ForEach-Object{Write-Host $_.Status : $_.Name}
Run Code Online (Sandbox Code Playgroud)
会给你...
Stopped : napagent
Stopped : NetDDE
Stopped : NetDDEdsdm
Running : Netman
Running : Nla
Stopped : WMPNetworkSvc
Stopped : xmlprov
Run Code Online (Sandbox Code Playgroud)
如果您只需要检查一项服务,则可以使用特定服务名称替换****Network****.
使用Windows脚本:
Set ComputerObj = GetObject("WinNT://MYCOMPUTER")
ComputerObj.Filter = Array("Service")
For Each Service in ComputerObj
WScript.Echo "Service display name = " & Service.DisplayName
WScript.Echo "Service account name = " & Service.ServiceAccountName
WScript.Echo "Service executable = " & Service.Path
WScript.Echo "Current status = " & Service.Status
Next
Run Code Online (Sandbox Code Playgroud)
您可以轻松过滤上述所需的特定服务.
| 归档时间: |
|
| 查看次数: |
144422 次 |
| 最近记录: |