我想列出所有当前正在运行的服务并将其输出到.csv文件。 有谁知道如何做到这一点?
一个很好的旧 shell脚本:
@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
可能我是邪恶的,并build议Cygwin变种:
net start | sed -e '1,2d' -e ':a' -e N -e 's/\n /,/' -e ta > services.csv
最基本的方法就是做到这一点;
networking启动> services.csv
Sysinternals有很多工具可以在您的stream程中提供更详细的细节信息。 如PsService,将结果传递到文件的相同函数将根据需要导出“> filename.extension”
我有一个比上面的例子更简单的命令。 WMI在Windows XP或Windows 2k3及更高版本上默认安装,但使用wmic.exe程序时,机器可能需要在本地操作之前进行初始化。 从命令提示符发出命令:
WMIC path Win32_Service where state='Running' get /format:csv
或者,对于networking上的一台机器:
WMIC /node:myserver Win32_Service where state='Running' get /format:csv
将输出redirect到您select的文件。
更改/格式:CSV到/格式:列表使人类可读的输出。 我的一台服务器为其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
很可能,你对这些属性和价值没有兴趣。 假设您只需要每个正在运行的进程的名称,标题和path名,则可以发出以下命令,仅指定这些属性:
WMIC /node:myserver path Win32_Service where state='Running' get name,caption,pathname /format:csv
抢