Я хочу перечислить все текущие запущенные службы и вывести их в файл .csv. Кто-нибудь знает как это сделать?
Могу ли я быть злым и предложить вариант Cygwin:
net start | sed -e '1,2d' -e ':a' -e N -e 's/\n /,/' -e ta > services.csv
Немного Старый добрый сценарий оболочки:
@echo off
setlocal
set SERVICES=
for /f "skip=1 tokens=*" %%S in ('%SystemRoot%\System32\net.exe start') do call :ADD_SERVICE %%S
echo Running services are : [%SERVICES%]
endlocal
goto END
:ADD_SERVICE
set SERVICE=%*
if "%SERVICE%" == "" goto END
if "%SERVICE%" == "The command completed successfully." goto END
set SERVICES=%SERVICES%%SERVICE%,
goto END
:END
У меня есть более простая команда, чем в приведенных выше примерах. WMI устанавливается по умолчанию в Windows XP или Windows 2k3 и выше, хотя для использования программы wmic.exe может потребоваться инициализация машины перед локальной работой. В командной строке введите команду:
WMIC path Win32_Service where state='Running' get /format:csv
или для машины в сети:
WMIC /node:myserver Win32_Service where state='Running' get /format:csv
Перенаправьте вывод в файл по вашему выбору.
Изменение / format: csv на / format: list делает вывод читабельным. Один из моих серверов дает это для службы HP Insight:
AcceptPause=TRUE
AcceptStop=TRUE
Caption=HP Insight Storage Agents
CheckPoint=0
CreationClassName=Win32_Service
Description=HP Insight Storage Agents
DesktopInteract=FALSE
DisplayName=HP Insight Storage Agents
ErrorControl=Normal
ExitCode=0
InstallDate=
Name=CqMgStor
PathName=C:\WINDOWS\system32\CpqMgmt\cqmgstor\cqmgstor.exe
ProcessId=1836
ServiceSpecificExitCode=0
ServiceType=Own Process
Started=TRUE
StartMode=Auto
StartName=LocalSystem
State=Running
Status=OK
SystemCreationClassName=Win32_ComputerSystem
SystemName=CRL500
TagId=0
WaitHint=0
Скорее всего, вас не интересуют многие из этих атрибутов и значений. Предполагая, что вам нужны только Name, Caption и Pathname для каждого запущенного процесса, вы можете выполнить следующую команду, указав только эти атрибуты:
WMIC /node:myserver path Win32_Service where state='Running' get name,caption,pathname /format:csv
Роб
самый простой способ сделать это:
чистый старт> services.csv
Sysinternals имеет множество инструментов, которые предоставят более детальную подробную информацию из ваших процессов. Например, PsService, та же функция, которая передает результат в файл, при необходимости будет экспортировать "> filename.extension"