Notes

查 Windows 服务时,先认准 Name

显示名称、服务名与 PowerShell 别名的几个容易混淆之处。

为《查 Windows 服务时,先认准 Name》确定性生成的文章图形
图形生成说明
函数家族
signal-clusters
简化公式
y(t)=w(t)·sin(ωt+φ), w(t)∈{0,1}
短哈希
2fd6d5587d76
生成器版本
2

这是由文章身份与结构生成的装饰图形,不是数据可视化。

下载 SVG下载生成清单

服务列表里能找到“Windows Time”,把这个名字交给 sc.exe 却可能查不到。先看名称列:显示名称给人看,Name 才是很多命令接受的服务标识。显示名称还可能随系统语言变化。

先查名称,再带入命令

在 Windows PowerShell 5.1 或 Windows 上的 PowerShell 7 中,只读查询可以这样写:

Get-Service -Name W32Time |
    Select-Object Name, DisplayName, Status
sc.exe query W32Time

只知道显示名称时,用 Get-Service -DisplayName '显示名称' 反查;不确定完整拼写,可以加通配符,但要逐项确认结果,别把模糊匹配直接接到停止或禁用命令后面。这几条查询不调整启动类型,也不重启服务。

sc 后面的 .exe 别省

Windows PowerShell 5.1 默认把 sc 作为 Set-Content 的别名。于是 sc query W32Time 可能变成向名为 query 的文件写内容,而不是查询服务。在不熟悉的会话中,先用 Get-Command sc -All 看命令解析;调用系统工具时明确写 sc.exe。其他 PowerShell 版本及个人配置可能不同,不要照搬别名假设。

返回“拒绝访问”时先查当前账户的查询权限;返回服务不存在时再核对名称和安装的系统角色。两种报错不要混为一谈,也不要因此直接重装组件。

最后只记一个边界:服务名确认了、查询也成功了,只能说明找对了对象。Running 并不证明它的时间源、网络请求或业务依赖正常,那是下一层检查。

参考:Get-Servicesc.exe query