2

有没有办法获得 Win 7 中所有服务的完整列表,而无需安装诸如 Net Framework 4 之类的 API?我想尽可能地获取列表。

4

4 回答 4

5

以管理员身份运行 cmd 控制台,然后运行“sc query type= service state= all”

于 2012-04-30T15:01:22.810 回答
1

您可以使用 Win API OpenSCManager函数,然后使用EnumServicesStatus枚举服务及其状态

在Dev Center上有完整的 Services API 参考

于 2012-04-30T15:17:05.183 回答
1

下载工具Wmi Code Creator。它将帮助您在 C#、VB.Net 或 Visual Basic 脚本中制作 WMI 查询。

这是使用 VBScript 的解决方案

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_Service",,48) 
For Each objItem in colItems 
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Win32_Service instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "DisplayName: " & objItem.DisplayName
Next

什么是 WMI?(来自http://technet.microsoft.com/en-us/library/ee692772.aspx

Windows Management Instrumentation 是一项核心的 Windows 管理技术;您可以使用 WMI 来管理本地和远程计算机。WMI 提供了一种使用编程或脚本语言执行日常管理任务的一致方法。例如,您可以:

* Start a process on a remote computer.
* Schedule a process to run at specific times on specific days.
* Reboot a computer remotely.
* Get a list of applications installed on a local or remote computer.
* Query the Windows event logs on a local or remote computer.

WMI 中的“仪表”一词指的是 WMI 可以获取有关计算机系统内部状态的信息,就像汽车的仪表板仪表可以检索和显示有关发动机状态的信息一样。WMI 通过对对象(如磁盘、进程或 Windows 系统中的其他对象)进行建模来“工具”。这些计算机系统对象使用 Win32_LogicalDisk 或 Win32_Process 等类建模;如您所料,Win32_LogicalDisk 类模拟安装在计算机上的逻辑磁盘,而 Win32_Process 类模拟当前在计算机上运行的任何进程。类基于称为通用信息模型 (CIM) 的可扩展模式。CIM 模式是分布式管理任务组 (http://www.dmtf.org) 的公共标准。

WMI 功能还包括事件、远程处理、查询、视图、模式的用户扩展、检测等。 http://technet.microsoft.com/en-us/library/ee692772.aspx

于 2012-04-30T15:17:30.887 回答
0

我不知道这是否对您有帮助,但您可以通过进入 cmd 行并输入 net start 查看正在运行的服务列表

这会给你一个很好的清单,列出正在运行的内容。

于 2012-04-30T16:16:11.527 回答