1 @echo off
2 setlocal enabledelayedexpansion
3
4 :: 检查是否以管理员身份运行
5 >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
6
7 if '%errorlevel%' NEQ '0' (
8 echo 请求管理员权限...
9 goto run_as_admin
10 ) else (
11 goto main
12 )
13
14 :run_as_admin
15 powershell -Command "Start-Process '%~f0' -Verb RunAs"
16 exit
17
18 :main
19 :: 脚本主体
20
21
22 @echo off
23 setlocal enabledelayedexpansion
24
25 :: 定义服务名称前缀
26 set "servicePrefix=CDPUserSvc_"
27
28 :: 查找所有以 servicePrefix 开头的服务
29 for /f "tokens=2 delims=: " %%i in ('sc query type^= service state^= all ^| findstr /i /c:"SERVICE_NAME: %servicePrefix%"') do (
30 :: 保存服务名称
31 set "currentService=%%i"
32
33 :: 查询服务状态
34 for /f "tokens=3" %%a in ('sc query "!currentService!" ^| findstr /i /c:"STATE"') do (
35 set "state=%%a"
36 )
37
38 :: 如果服务在运行,则停止
39 if /i "!state!" neq "STOPPED" (
40 echo 正在停止服务: !currentService!
41 net stop "!currentService!"
42 )
43 )
44
45 echo 服务关闭完成。
46 pause