使用WMI来得到系统的服务

原创 2004年08月09日 01:05:00

WMI是可伸缩的系统管理结构,该规范采用一个统一、基于标准且可扩展的面向对象接口。它提供与系统管理员信息和基础WMI API交互的标准方法,主要由系统管理应用程序开发人员和系统管理员用来访问和操作系统管理信息。

WMI可用来生成组织和管理系统信息的工具,使系统管理人员能够更密切的监视系统活动。

WMI提供了一套内置在Microsoft Windows操作系统中的丰富的系统管理服务,现在有大量的应用程序、服务和设备用其为信息技术操作和产品支持组织提供全方位的管理功能。基于WMI的管理系统的使用带来了更可靠的计算环境和更高的系统可靠性。

?????? 我们看看怎样通过WMI提供的强大功能来实现windows系统服务的浏览、启动和关闭。

?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Winxp+VB6+SP6

新建VB工程,在form上添加ListView,3个按钮控件。

'引用microsoft wmi scripting v1.2 library

?

代码如下:

Public Locator As SWbemLocator

Public services As SWbemServices

'Dim oWMINameSpace As SWbemServices

?

'引用microsoft wmi scripting v1.2 library

Private Sub Form_Load()

'Set oWMINameSpace = GetObject("winmgmts:")

??? ListView1.ListItems.Clear

??? ListView1.ColumnHeaders.Add , , "服务名", 1000

??? ListView1.ColumnHeaders.Add , , "详细信息", 4000

??? ListView1.ColumnHeaders.Add , , "状态", 1000

???

??? '实例化

??? Set Locator = New SWbemLocator

??? '连接计算机,”yang”是计算机名

??? Set services = Locator.ConnectServer("yang")

End Sub

?

Private Sub Command1_Click()

Dim Item As ListItem

Set ServiceSet = GetObject("winmgmts:").InstancesOf("Win32_Service")

?

For Each Service In ServiceSet

??? Set Item = ListView1.ListItems.Add(, Service.Name, Service.Name)

??? Item.SubItems(1) = Service.Description & ""

??? Item.SubItems(2) = Service.State & ""

Next

End Sub

?

Private Sub Command2_Click()

??? Dim ServiceObject As SWbemObject

??? Dim ServiceName

???

??? On Error Resume Next

??? ServiceName = ListView1.SelectedItem.Text

??? If Err.Number = 0 Then

??????? Set ServiceObject = services.Get("Win32_Service='" & ServiceName & "'")

??????? ServiceObject.StartService

??? End If

End Sub

?

Private Sub Command3_Click()

??? Dim ServiceObject As SWbemObject

??? Dim ServiceName

???

??? On Error Resume Next

??? ServiceName = ListView1.SelectedItem.Text

??? If Err.Number = 0 Then

???

??????? Set ServiceObject = services.Get("Win32_Service='" & ServiceName & "'")

??????? ServiceObject.StopService

??? End If

End Sub

?

运行后,点击按钮,ListView中就出现了系统的服务,然后可以选择任意一项,选择启动或者关闭操作。

VB 利用WMI进行服务监视

VERSION 5.00Begin VB.Form frmMain    Caption         =   "服务监视"   ClientHeight    =   2730   ClientL...
  • chenhui530
  • chenhui530
  • 2007年10月03日 11:25
  • 1455

WMI技术介绍和应用——查询系统服务

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客...
  • breaksoftware
  • breaksoftware
  • 2013年02月14日 21:51
  • 2218

WMI技术介绍和应用——查询系统信息

本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客...
  • breaksoftware
  • breaksoftware
  • 2013年02月05日 18:07
  • 6894

WMI获取系统信息 得到product name

利用WMI获取系统信息, 一般步骤: 1. 通过调用CoInitialzeEx来初始化COM参数. 2. 通过调用CoInitializeSecurity来初始化COM过程安全. ...
  • liyun123gx
  • liyun123gx
  • 2014年02月12日 17:47
  • 800

WMI访问系统服务

WMI访问系统服务 WMI是可以查询以及启动、停止系统中的服务程序的 于是我又为补充了几个函数 HRESULT CWMI::ExcuteServiceCtrl(UINT uControlCode) {...
  • linlin003
  • linlin003
  • 2014年02月19日 22:34
  • 577

Python用WMI模块获取Windows系统的硬件信息

Python用WMI模块获取Windows系统的硬件信息:硬盘分区、使用情况,内存大小,CPU型号,当前运行的进程,自启动程序及位置,系统的版本等信息。 本文实例讲述了python使用wmi模块获取...
  • xy2953396112
  • xy2953396112
  • 2017年01月18日 11:29
  • 1173

WMI服务不存在或标记为删除解决方案

Windows Management Instrumentation(WMI)服务不存在或标记为删除解决方案 ->问题描述安装 SQL Server,在检查系统配置是警告Windows Managem...
  • sinat_31141569
  • sinat_31141569
  • 2016年05月08日 01:30
  • 1956

WMI常见问题及解决方法

一. 常见问题及解决方法  1. 当通过WMI添加服务器、Microsoft .NET、Exchange服务器时,提示“验证失败。请确认用户名和密码”。  解决方法: 请以\格式输入用户名  注...
  • xcntime
  • xcntime
  • 2016年06月06日 17:06
  • 4536

100%纯java调用windows的wmi获取监控数据

转:http://my.oschina.net/noahxiao/blog/73163 纯java主要体现在可以跨平台调用com。所用的是j-Interop,它是100%纯java实现的com的...
  • u013578413
  • u013578413
  • 2014年07月21日 15:32
  • 1352

解决“无法连接到WMI提供程序,您没有权限或者该服务器无法访问。“

最近在学习PowerDesigner,在创建PDM模型的时候,遇到了一点儿小问题,本以为要重装SQLServer,百度了一下,问题就轻松解决了。问题的背景是这样的,在创建数据源的时候,总是测试连接不成...
  • u012904383
  • u012904383
  • 2015年02月25日 19:55
  • 4585
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用WMI来得到系统的服务
举报原因:
原因补充:

(最多只允许输入30个字)