Windows-7
如何從執行檔獲取 Windows 服務名稱(Windows 7)
我知道在 Windows 7 下命令行命令…
tasklist
獲取目前按其可執行名稱執行的程序(包括服務)net start
向我顯示已啟動服務的所有顯示名稱。(“漂亮”的顯示名稱,而不是較短的、無空格的服務名稱)我想在命令行上實現的是
- 從執行檔名(wmiserv.exe)到後面的服務名
- 反之亦然(好的,這種方式也可以在 services.msc 面板中完成,查找服務屬性)
如果有一個命令,比如說,列出所有內容(執行檔(可能包括路徑)、服務名稱、顯示名稱),我可以用 grep 查找我需要的行,那將是完美的。
如果適用 svchost-Services 的單獨規則,我缺乏理解。
**範例:**我目前正在嘗試查找
C:\Windows\System32\wmiserv.exe
鎖定某些文件的服務。Google搜尋只會得到一大堆搜尋垃圾郵件和狡猾的“下載 FixingTool.exe”。我在 exe 的“屬性”對話框中可以找到的所有內容(假設它在第一個平面中是 benigm)聽起來不像我能想出的任何服務名稱。
我沒有找到一個突擊隊,但能夠為你製作一個批處理文件。
將以下程式碼保存在文件“GetServide.cmd”中並從命令行執行它。
要搜尋 wmiservice.exe,語法類似於:GetServide.cmd wmiservice.exe
@echo off REM Syntax: GetService.cmd [keyword] REM --- Get Keyword --- Set Keyword=%1 REM --- Get all services --- for /f "tokens=2" %%a in ('sc query^|find /i "SERVICE_NAME"') do Call :DoSearch %%a Goto :EOF REM --- Search Function --- :DoSearch REM --- Set service name, quit if empty --- Set FoundOutput= Set SrvName= Set srv=%1 if "%srv%"=="" goto :eof REM --- Serach keyword in services --- for /f %%a in ('sc qc "%1"^|find /i "%keyword%"') do set FoundOutput=%%a REM --- If keyword found, display info --- if "%FoundOutput%"=="" goto :eof ECHO. ECHO Service: %srv% sc qc "%1"|find /i "BINARY_PATH_NAME" sc qc "%1"|find /i "DISPLAY_NAME"