Windows下查询开启的服务及相关参数解读

我们经常需要在windows下查询已经开启的服务,正常的做法如使用Dos下的命令:net start;然而,正常的服务实际上带有很多参数,如下:
SERVICE_STATUS MyServiceStatus;
SERVICE_STATUS_HANDLE MyServiceStatusHandle;
VOID WINAPI MyServiceCtrlHandler(DWORD Opcode)
{
switch(Opcode)
{
case SERVICE_CONTROL_PAUSE:
MyServiceStatus.dwCurrentState = SERVICE_PAUSED;
break;
case SERVICE_CONTROL_CONTINUE:
MyServiceStatus.dwCurrentState = SERVICE_RUNNING;
break;
case SERVICE_CONTROL_STOP:
MyServiceStatus.dwWin32ExitCode = 0;
MyServiceStatus.dwCurrentState = SERVICE_STOPPED;
MyServiceStatus.dwCheckPoint = 0;
MyServiceStatus.dwWaitHint = 0;
}
SetServiceStatus (MyServiceStatusHandle, &MyServiceStatus);
}
想要获取这么多参数启示不容易,但是windows提供了接口帮我们完成这件工作在wmic下:
使用命令
WMIC SERVICE LIST FULL
可以将结果输出到列表:
lALOapJ03BzNBNY_1238_28.png_620x10000q90
其他项都好理解,但是最前面的acceptpasue 和acceptstop比较特殊,代表了该服务是否支持暂停和停止的布尔值。
更多服务的属性可以参考微软官方:https://msdn.microsoft.com/zh-cn/library/ms186369(v=sql.120).aspx

发表评论