我需要列出所有具有特殊名称和索引的服务及其自动启动状态。我的想法是使用批处理和诸如sc查询之类的东西,但这没有给我必要的信息。
这是我尝试过的
sc query service
sc query service2
sc query service3
pause
哪个命令适合列出服务的开始设置?
答案 0 :(得分:1)
我宁愿使用Powershell,因为sc query
默认不显示启动类型:
要按显示名称查看启动类型,请打开cmd.exe
并键入(或粘贴):
powershell "Get-Service | select -property displayname,starttype"
或使用actaul服务名称:
powershell "Get-Service | select -property name,starttype"
或者您可以通过创建文件并给其一个.ps1
扩展名并添加以下内容来创建Powershell脚本:
Get-Service | select -property name,starttype
或者如果您确实要使用批处理文件,只需创建扩展名为.cmd
或.bat
的批处理文件并添加:
powershell "Get-Service | select -property name,starttype"
但是,如果您确实确定要使用批处理,则可以运行此程序,该程序运行2个for循环,一个用于获取所有服务,第二个将获取每个服务的启动类型。 set
只是在这里清理一些不需要的项目。
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=:" %%i in ('sc query ^|findstr "SERVICE_NAME"') do (
set serv=%%j
set serv=!serv: =!
for /f "tokens=1,2 delims=:" %%a in ('sc qc !serv! ^| findstr "START_TYPE"') do set type=%%b
set type=!type: =!
set type=!type:1=!
set type=!type:2=!
set type=!type:3=!
echo !serv! : !type!
)