如何将Windows服务及其状态列表提取到文本文件中?


18

我想获得运行时看到的屏幕的文本转储services.msc(“描述”列除外)。这样一来,我可以在安装向该屏幕添加服务的其他软件之后运行diff。

这可能吗?

如果有帮助,我可以访问Powershell,但不知道如何从中检索此类信息。

Answers:


18

在“服务”窗口中,Action > Export...菜单可以将列表显示为.txt或.csv文件。它也为您提供了描述列,但您可以使用Excel之类的程序轻松将其删除。

您也可以从Powershell中执行此操作。

Get-Service | Export-Csv -path "C:\services.csv"

此外,您可以过滤列表。例如,您可以通过执行以下命令仅获取启动的服务:

Get-Service | where {$_.Status -eq "Running"} | Export-Csv -path "C:\services.csv"

这似乎只能得到我用户的服务或其他东西。我有一些没有显示在此列表中的服务?
2014年

如果使用.csv导出,请确保Unicode Text (Tab Delimited) (*.txt)使用。如果使用逗号分隔,说明字段中的逗号可能会溢出并弄乱输出。
Ivan Chau

2
在这里找到了一种导出和导入配置的方法:winhelponline.com/blog/backup-windows-services-configuration
JinSnow

12

在不使用powershell的情况下,它列出了正在运行的服务:

 sc query > running_services.txt

这列出了所有正在运行或未运行的服务:

 sc query state= all > all_services.txt

1
在这种情况下,PowerShell效果更好,因为可以轻松自定义其输出。但是很高兴知道还有其他选择,谢谢!
亚历克斯·安加斯

1
PowerShell很不错,但并非总是在每台机器上。
沃伦·P

显然WMI也可以做到这一点。
沃伦·P


3

我还需要完整的路径,所以我结束了使用

Get-WmiObject win32_service | select Name, DisplayName, State, PathName | Export-Csv -path "C:\services.csv"

0

在服务器8(2012 Beta)上,“导出”选项已消失。

开始菜单也消失了,任务栏上只有指向Powershell的链接。幸运的是,所有程序仍然存在,我只需要手动为每个程序创建快捷方式。


1
在Server 2012 R2上,存在以下选项:Action -> Export List...
Ivan Chau
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.