WMI,列出服务器进程信息及系统服务信息及管理帐号等。 VBS代码转成vb.net比较简单,感觉学WIN32 WMI还是比较重要的。 '*************************************************************************' 目的:获取本机IP' 函数:getLocalIP' 参数:无' 返回值:本机IP'*************************************************************************Function getLocalIP Set IPConfigSet = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select IPAddress from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") For Each IPConfig IN IPConfigSet If Not IsNull(IPConfig.IPAddress) Then For i = LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress) strIP = strIP & IPConfig.IPAddress(i) & " " Next End If Next getLocalIP = strIPEnd Function'*************************************************************************' 功能:列出服务器驱动器可用磁盘空间'*************************************************************************Function listDiskFreeSpace() On Error Resume Next 'XP/2003 Dim strDiskSpace' strComputer = "."' Set objWMIService = GetObject("winmgmts:" _' & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")'' Set colDiskDrives = objWMIService.ExecQuery _' ("Select * from Win32_PerfFormattedData_PerfDisk_LogicalDisk Where " _' & "Name <> '_Total'")'' For Each objDiskDrive in colDiskDrives' strDiskSpace = strDiskSpace & objDiskDrive.Name & _' "可用空间: " & objDiskDrive.FreeMegabytes & "MB" & VbCrLf' Next 'All Const HARD_DISK = 3 strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colDisks = objWMIService.ExecQuery _ ("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "") For Each objDisk in colDisks strDiskSpace = strDiskSpace & objDisk.DeviceID & vbTab & _ "空闲磁盘空间: "& vbTab & objDisk.FreeSpace /1024/1024 & " MB" & VbCrLf Next listDiskFreeSpace = strDiskSpaceEnd Function'*************************************************************************' 目的:列出服务器进程' 函数:strProcess' 参数:无' 返回值:字符串'*************************************************************************Function strProcess() strComputer = "." Dim oWMI, oProcs, oProc, strSQL,strPro strSQL = "SELECT * FROM Win32_Process" Set oWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set oProcs = oWMI.ExecQuery(strSQL) For Each oProc In oProcs strPro = strPro & VbCrLf & "名称: " & oProc.Name & VbCrLf & _ "路径: " & oProc.ExecutablePath & VbCrLf &_ "===========================================================" Next Set oProc = Nothing Set oProcs = Nothing Set oWMI = Nothing strProcess = strProEnd Function'*************************************************************************' 目的:列出系统服务名字及路径和状态' 函数名:strServicr()' 参数:无' 返回值:字符串'*************************************************************************Function strService() dim strTemp strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Service") For Each objItem in colItems strTemp = strTemp & VbCrLf & "名称: " & objItem.DisplayName & VbCrLf & VbCrLf &_ "路径: " & objItem.PathName & VbCrLf &_ "状态: " & objItem.State & VbCrLf &_ "===========================================================" Next strService = strTemp Set colItems = Nothing Set objWMIService = NothingEnd Function'*************************************************************************' 目的:列出系统用户名及状态' 函数名:strWinUser()' 参数:无' 返回值:字符串'*************************************************************************Function strWinUser() strComputer = "." dim strTemp Set objWMIWinUser = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIWinUser.ExecQuery("Select * from Win32_UserAccount") For Each objItem in colItems strTemp = strTemp & VbCrLf & "名称: " & objItem.Caption & VbCrLf &_ "状态: " & objItem.Status & VbCrLf &_ "===========================================================" Next strWinUser =strTemp Set colItems = Nothing Set objWMIWinUser = NothingEnd Function