我正在尝试获取名称中包含空格的服务列表,例如 SQL Server 服务。令我惊讶的是,以下语句没有返回一条记录。似乎这个空间有特殊的含义,并没有像我预期的那样按字面意思解析。
get-service | where-object name -match 'sql server'
PowerShell 匹配包含空格的字符串的规范方法是什么?
我正在尝试获取名称中包含空格的服务列表,例如 SQL Server 服务。令我惊讶的是,以下语句没有返回一条记录。似乎这个空间有特殊的含义,并没有像我预期的那样按字面意思解析。
get-service | where-object name -match 'sql server'
PowerShell 匹配包含空格的字符串的规范方法是什么?
Windows 服务控制管理器 (SCM) 负责管理服务数据库。
sc.exe
当您使用命令行工具或直接使用 SCM Windows API 调用(例如(CreateServiceA ))创建新服务时,您可以指定 aServiceName
和DisplayName
。如果您在注册表中查看由 SCM 维护的服务列表,您将看到
ServiceName
以下键下的值作为唯一值:当您使用 SC.exe 等工具或 VBScript、PowerShell 等脚本语言与 SCM 交互时,您通常(但并非总是)必须使用
ServiceName
值而不是DisplayName
查询/停止/启动等...当您查看 MMC 服务管理单元 (services.msc) 时,该
Name
列实际上是DisplayName
服务的而不是ServiceName
值。任务管理器中的
Services
选项卡确实显示了两者,但它仍然令人困惑,因为该Description
列不是服务的描述(服务也可以有描述),而是ServiceName
. 他们混在一起是可以理解的。