2012-12-14 40 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"

相關問題