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