我想创建批处理脚本来启动服务关闭和启动类型是自动的

问题描述:

我能够拉下来的服务,并用下面的代码在一个文件中列出它们,但需要帮助来设计脚本,它可以检查服务,如果启动类型是自动启动它们。我想创建批处理脚本来启动服务关闭和启动类型是自动的

@echo off 

wmic service where started=false get name >> stoppedservices.txt 

echo "The program has completed" 

您可以在使用sc命令for循环来完成你的脚本:

@echo off 
for /f "tokens=*" %%s in ('wmic service where started^=false get name') do (
    for /f "tokens=3" %%t in ('sc qc %%s ^|findstr /c:"START_TYPE"') do (
     if "%%t"=="2" net start %%s 
    ) 
) 
echo "The program has completed" 
pause>nul 

如果需要,你可以使用sc start,而不是net start

net start将在启动任务完成后返回成功消息,而sc start将在处理服务启动时返回消息。如果你是一个喜欢看到这个过程一步一步完成的人,那么net start将是更好的选择。

您可以尝试使用相同的WMIC命令执行所有操作。

WMIC Service Where "StartMode='Auto' And Started='False'" Call StartService 

请记住,有些服务可能是延迟自动启动或挂起,这不考虑这些信息。

+0

谢谢,它的工作,但有像“iClarityQoSService,isaHelperSvc和O2FLASH”这样的服务,即使在自动后也不会启动。 –