用vbscript脚本实现返回 IP 配置数据的代码

时间:2022-06-02 00:16:47

用以返回配置数据(类似于IPCONFIG命令返回信息)的WMI脚本。

  1. ' Returning IP Configuration Data 
  2. ' WMI script that returns configuration data similar to that returned by IpConfig. 
  3. strComputer = "." 
  4. Set objWMIService = GetObject("winmgmts:\\"& strComputer & "\root\cimv2") 
  5. Set colAdapters = objWMIService.ExecQuery _ 
  6.   ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True"
  7. n = 1 
  8. WScript.Echo 
  9. For Each objAdapter in colAdapters 
  10.    WScript.Echo "Network Adapter " & n 
  11.    WScript.Echo "=================" 
  12.    WScript.Echo "  Description: " & objAdapter.Description 
  13.    WScript.Echo "  Physical (MAC) address: " & objAdapter.MACAddress 
  14.    WScript.Echo "  Host name:              " & objAdapter.DNSHostName 
  15.    If Not IsNull(objAdapter.IPAddress) Then 
  16.       For i = 0 To UBound(objAdapter.IPAddress) 
  17.          WScript.Echo "  IP address:             " & objAdapter.IPAddress(i) 
  18.       Next 
  19.    End If 
  20.    If Not IsNull(objAdapter.IPSubnet) Then 
  21.       For i = 0 To UBound(objAdapter.IPSubnet) 
  22.          WScript.Echo "  Subnet:                 " & objAdapter.IPSubnet(i) 
  23.       Next 
  24.    End If 
  25.    If Not IsNull(objAdapter.DefaultIPGateway) Then 
  26.       For i = 0 To UBound(objAdapter.DefaultIPGateway) 
  27.          WScript.Echo "  Default gateway:        " & objAdapter.DefaultIPGateway(i) 
  28.       Next 
  29.    End If 
  30.    WScript.Echo 
  31.    WScript.Echo "  DNS" 
  32.    WScript.Echo "  ---" 
  33.    WScript.Echo "    DNS servers in search order:" 
  34.    If Not IsNull(objAdapter.DNSServerSearchOrder) Then 
  35.       For i = 0 To UBound(objAdapter.DNSServerSearchOrder) 
  36.          WScript.Echo "      " & objAdapter.DNSServerSearchOrder(i) 
  37.       Next 
  38.    End If 
  39.    WScript.Echo "    DNS domain: " & objAdapter.DNSDomain 
  40.    If Not IsNull(objAdapter.DNSDomainSuffixSearchOrder) Then 
  41.       For i = 0 To UBound(objAdapter.DNSDomainSuffixSearchOrder) 
  42.          WScript.Echo "    DNS suffix search list: " & objAdapter.DNSDomainSuffixSearchOrder(i) 
  43.       Next 
  44.    End If 
  45.    WScript.Echo 
  46.    WScript.Echo "  DHCP" 
  47.    WScript.Echo "  ----" 
  48.    WScript.Echo "    DHCP enabled:        " & objAdapter.DHCPEnabled 
  49.    WScript.Echo "    DHCP server:         " & objAdapter.DHCPServer 
  50.    If Not IsNull(objAdapter.DHCPLeaseObtained) Then 
  51.       utcLeaseObtained = objAdapter.DHCPLeaseObtained 
  52.       strLeaseObtained = WMIDateStringToDate(utcLeaseObtained) 
  53.    Else 
  54.       strLeaseObtained = "" 
  55.    End If 
  56.    WScript.Echo "    DHCP lease obtained: " & strLeaseObtained 
  57.    If Not IsNull(objAdapter.DHCPLeaseExpires) Then 
  58.       utcLeaseExpires = objAdapter.DHCPLeaseExpires 
  59.       strLeaseExpires = WMIDateStringToDate(utcLeaseExpires) 
  60.    Else 
  61.       strLeaseExpires = "" 
  62.    End If 
  63.    WScript.Echo "    DHCP lease expires:  " & strLeaseExpires 
  64.    WScript.Echo 
  65.    WScript.Echo "  WINS" 
  66.    WScript.Echo "  ----" 
  67.    WScript.Echo "    Primary WINS server:   " & objAdapter.WINSPrimaryServer 
  68.    WScript.Echo "    Secondary WINS server: " & objAdapter.WINSSecondaryServer 
  69.    WScript.Echo 
  70.    n = n + 1 
  71. Next 
  72. Function WMIDateStringToDate(utcDate) 
  73.    WMIDateStringToDate = CDate(Mid(utcDate, 5, 2)  & "/" & _ 
  74.                                Mid(utcDate, 7, 2)  & "/" & _ 
  75.                                Left(utcDate, 4)    & " " & _ 
  76.                                Mid (utcDate, 9, 2) & ":" & _ 
  77.                                Mid(utcDate, 11, 2) & ":" & _ 
  78.                                Mid(utcDate, 13, 2)) 
  79. End Function