Я знаю, что под Windows 7 команды командной строки ...
tasklist
получает мне процессы (включая службы), запущенные в настоящее время, по его исполняемому имениnet start
показывает мне все отображаемые имена запущенных служб. ("хорошенький" отображаемые имена, не короче, без места названия служб)В командной строке я бы хотел
Если бы была команда, которая, скажем, перечисляет все это (исполняемый файл (+, возможно, включая путь), имя службы, отображаемое имя), и я могу использовать grep для нужных мне строк, это было бы идеально.
Я не понимаю, применяются ли отдельные правила для svchost-Services.
Пример: В настоящее время я пытаюсь найти сервис позади C:\Windows\System32\wmiserv.exe
, который блокирует некоторые файлы. При поиске в Google только такое количество спама в поисковой выдаче и хитрых «Download 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"