有没有办法获得 Win 7 中所有服务的完整列表,而无需安装诸如 Net Framework 4 之类的 API?我想尽可能地获取列表。
4 回答
以管理员身份运行 cmd 控制台,然后运行“sc query type= service state= all”
您可以使用 Win API OpenSCManager函数,然后使用EnumServicesStatus枚举服务及其状态
在Dev Center上有完整的 Services API 参考
下载工具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
我不知道这是否对您有帮助,但您可以通过进入 cmd 行并输入 net start 查看正在运行的服务列表
这会给你一个很好的清单,列出正在运行的内容。