sc qc 是什么
sc qc 查看单个服务的配置详情:可执行文件路径、启动类型、以哪个账户运行、依赖哪些服务。要回答“这个服务到底跑的是哪个程序”时,它是第一条该执行的命令。sc query 看的是运行状态,sc qc 看的是配置本身,两者配合使用。
基本信息
| 适用平台 | Windows CMD(cmd.exe),跨机查询加 \\主机名 |
|---|---|
| 语法 | sc qc 服务名 [type= own|share] |
| 关键输出 | SERVICE_NAME 内部名、BINARY_PATH_NAME 可执行路径与参数、START_TYPE 启动类型、SERVICE_START_NAME 运行账户、DEPENDENCIES 依赖项 |
| 权限要求 | 本机查询普通账户即可,跨机与改写配置需管理员 |
| 结构化替代 | Get-CimInstance Win32_Service 便于脚本判断 |
典型使用场景
- 排查来源不明的服务,从显示名反查它真正执行的程序路径
- 安全巡检:确认二进制路径是否指向可疑目录或存在未加引号的路径
- 服务启动失败时核对程序文件是否真的存在于该路径
- 迁移或重建服务前记录原始配置,方便比对与回滚
- 确认依赖关系,为后续按正确顺序启停做准备
常用示例
常用示例
sc qc Spooler
REM 只看可执行文件路径
sc qc wuauserv | findstr /i BINARY_PATH
REM 看运行账户与依赖
sc qc MSSQLSERVER
REM 结构化写法,方便脚本判断
powershell -c "Get-CimInstance Win32_Service | Where-Object Name -eq Spooler | Select-Object Name,PathName,StartMode,StartName"
REM 列出所有服务名,核对内部名
sc query type= service state= all | findstr SERVICE_NAME关键字段读法
| 字段 | 含义 | 要留意的点 |
|---|---|---|
| BINARY_PATH_NAME | 可执行文件完整路径与启动参数 | 路径含空格却未加引号存在劫持风险 |
| START_TYPE | AUTO_START 自动、DEMAND_START 手动、DISABLED 禁用 | 已禁用却期待它运行是最常见的误判 |
| SERVICE_START_NAME | 运行账户,LocalSystem 权限最高 | 用域账户的服务要留意密码过期导致启动失败 |
| DEPENDENCIES | 该服务依赖的组件 | 依赖未启动会引发启动超时类失败 |
| DISPLAY_NAME | 面向用户的显示名 | 命令行必须用内部名,写显示名会报未安装 |
二进制路径是安全排查的重点:正常的系统服务多位于 System32 或 Program Files,若指向用户临时目录、AppData 等位置,需要进一步确认程序来源与签名。
若返回“指定的服务未安装”,通常是把显示名当成了服务名。先用 sc query type= service state= all 或 Get-Service 拿到准确的内部短名再查。