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 = strIP
End 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 = strDiskSpace
End 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 = strPro
End 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 = Nothing
End 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 = Nothing
End Function
' 目的:获取本机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 = strIP
End 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 = strDiskSpace
End 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 = strPro
End 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 = Nothing
End 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 = Nothing
End Function