2012-12-14 39 views
46

有一些Windows服务托管,其显示名称以通用名称(此处为NATION)开头。例如:如何获取以常见单词开头的所有Windows服务名称?

  • NATION-CITY
  • 民族国家
  • 民族村

有一些命令来获取所有喜欢 '民族一' 的服务。最后,我需要使用命令promt停止,启动和重新启动这些服务。

+0

PowerShell是安装在你的机器?服务器或工作站? SO? – Kiquenet

回答

106

明白了:)

sc queryex type= service state= all | find /i "NATION" 
  • 使用/i为不区分大小写
  • type=后的空格是故意和所需
+3

顺便说一句,查找区分大小写,做一个更好的搜索,使用find /我“民族” http://www.microsoft.com/resources/documentation/windows /xp/all/proddocs/en-us/find.mspx?mfr=true – fedmich

+1

请记住在type =和state =之后使用空格,我没有:( –

+2

请注意,find将搜索服务名称并显示名称 - 仅筛选服务名称:'sc queryex type = service state = all | find/i“SERVICE_NAME:NATION”';)。 –

16

使用PowerShell,您可以使用以下

Get-Service | Where-Object {$_.displayName.StartsWith("NATION-")} | Select name 

这将显示一个列表关闭其显示名称与“民族一”开头的所有服务。

您也可以直接停止或启动服务;

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 
+0

感谢Wimmel的回复,但我正在寻找创建一个简单的.cmd文件,而不是shell脚本。一些命令像SC STOP SERVICE_STARTS_WITH(“NATION-”) –

-2

保存为一个名为.ps1文件,然后执行

powershell -file "path\to your\start stop nation service command file.ps1"

相关问题