如何获取以常用词开头的所有 Windows 服务名称?
Posted
技术标签:
【中文标题】如何获取以常用词开头的所有 Windows 服务名称?【英文标题】:How to get all Windows service names starting with a common word? 【发布时间】:2012-12-02 11:15:05 【问题描述】:托管的某些 Windows 服务的显示名称以通用名称(此处为 NATION)开头。例如:
国家-城市 民族国家 民族村是否有一些命令可以获取所有服务,例如“NATION-”。最后,我需要使用命令 promt 停止、启动和重新启动此类服务。
【问题讨论】:
Powershell 安装在你的机器上?服务器还是工作站?所以? 【参考方案1】:sc queryex type= service state= all | find /i "NATION"
使用/i
进行不区分大小写的搜索
type=
后面的空格是故意的并且是必需的
【讨论】:
顺便说一句,find 区分大小写,为了更好地搜索,使用 find /i "Nation" microsoft.com/resources/documentation/windows/xp/all/proddocs/… 记得用type=和state=后面的空格,我没有:( 请注意,find 将搜索服务名称并显示名称 - 仅过滤服务名称:sc queryex type= service state= all | find /i "SERVICE_NAME: NATION"
;)。
sc
可能是Set-Content
的简写。如果是这种情况,请使用sc.exe
太棒了。来自 Linux 的 Windows cmd 行环境毫无意义,所以这都是神奇的调味汁。【参考方案2】:
使用PowerShell,可以使用如下
Get-Service | Where-Object $_.displayName.StartsWith("NATION-") | Select name
这将显示显示名称以“NATION-”开头的所有服务的列表。
您也可以直接停止或启动服务;
Get-Service | Where-Object $_.displayName.StartsWith("NATION-") | Stop-Service
Get-Service | Where-Object $_.displayName.StartsWith("NATION-") | Start-Service
或者干脆
Get-Service | Where-Object $_.displayName.StartsWith("NATION-") | Restart-Service
【讨论】:
感谢 Wimmel 的回复,但我正在搜索创建一个简单的 .cmd 文件而不是 shell 脚本。一些命令,例如 SC STOP SERVICE_STARTS_WITH("NATION-") [code]Get-Service -Name *NATION-*[/code] 更简单更好!【参考方案3】:保存为.ps1文件,然后执行
powershell -file "path\to your\start stop nation service command file.ps1"
【讨论】:
以上是关于如何获取以常用词开头的所有 Windows 服务名称?的主要内容,如果未能解决你的问题,请参考以下文章