有关 Windows 2000、Windows XP 和 Windows Server 2003的示例脚本包括:创建、罗列和重新命名 Active Directory 站点,取得域控制器的 SNMP MIB-II 信息和站点名称;以及枚举网络适配器的属性。

返回 IP 配置数据

描述信息

用以返回配置数据(类似于 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 



获取 SNMP MIB-II 接口表信息
描述信息

利用 WMI SNMP 提供程序获取并显示来自 SNMP 可管理节点的 SNMP MIB-II(RFC 1213)接口表信息。

脚本代码

  1. strTargetSnmpDevice = "192.168.0.1" 
  2. Set objWmiLocator = CreateObject("WbemScripting.SWbemLocator")  
  3. Set objWmiServices = objWmiLocator.ConnectServer("""root\snmp\localhost")  
  4. Set objWmiNamedValueSet = CreateObject("WbemScripting.SWbemNamedValueSet")  
  5. objWmiNamedValueSet.Add "AgentAddress", strTargetSnmpDevice  
  6. objWmiNamedValueSet.Add "AgentReadCommunityName""public" 
  7. Set colIfTable = objWmiServices.InstancesOf("SNMP_RFC1213_MIB_ifTable", , _  
  8.                                             objWmiNamedValueSet)  
  9. For Each objInterface In colIfTable  
  10.     WScript.Echo "ifIndex [Key]:        " & objInterface.ifIndex  & vbCrLf & _  
  11.         "   ifAdminStatus:     " & objInterface.ifAdminStatus     & vbCrLf & _  
  12.         "   ifDescr:           " & objInterface.ifDescr           & vbCrLf & _  
  13.         "   ifInDiscards:      " & objInterface.ifInDiscards      & vbCrLf & _  
  14.         "   ifInErrors:        " & objInterface.ifInErrors        & vbCrLf & _  
  15.         "   ifInNUcastPkts:    " & objInterface.ifInNUcastPkts    & vbCrLf & _  
  16.         "   ifInOctets:        " & objInterface.ifInOctets        & vbCrLf & _  
  17.         "   ifInUcastPkts:     " & objInterface.ifInUcastPkts     & vbCrLf & _  
  18.         "   ifInUnknownProtos: " & objInterface.ifInUnknownProtos & vbCrLf & _  
  19.         "   ifLastChange:      " & objInterface.ifLastChange      & vbCrLf & _  
  20.         "   ifMtu:             " & objInterface.ifMtu             & vbCrLf & _  
  21.         "   ifOperStatus:      " & objInterface.ifOperStatus      & vbCrLf & _  
  22.         "   ifOutDiscards:     " & objInterface.ifOutDiscards     & vbCrLf & _  
  23.         "   ifOutErrors:       " & objInterface.ifOutErrors       & vbCrLf & _  
  24.         "   ifOutNUcastPkts:   " & objInterface.ifOutNUcastPkts   & vbCrLf & _  
  25.         "   ifOutOctets:       " & objInterface.ifOutOctets       & vbCrLf & _  
  26.         "   ifOutQLen:         " & objInterface.ifOutQLen         & vbCrLf & _  
  27.         "   ifOutUcastPkts:    " & objInterface.ifOutUcastPkts    & vbCrLf & _  
  28.         "   ifPhysAddress:     " & objInterface.ifPhysAddress     & vbCrLf & _  
  29.         "   ifSpecific:        " & objInterface.ifSpecific        & vbCrLf & _  
  30.         "   ifSpeed:           " & objInterface.ifSpeed           & vbCrLf & _  
  31.         "   ifType:            " & objInterface.ifType            & vbCrLf  
  32. Next 



获取 SNMP MIB-II TCP 与 UDP 连接及监听端口

描述信息

利用 WMI SNMP 提供程序获取并显示来自 SNMP 可管理节点的 SNMP MIB-II(RFC 1213)TCP(与UDP)连接及监听端口。

脚本代码

  1. strTargetSnmpDevice = "192.168.0.1" 
  2. Set objWmiLocator = CreateObject("WbemScripting.SWbemLocator")  
  3. Set objWmiServices = objWmiLocator.ConnectServer("""root\snmp\localhost")  
  4. Set objWmiNamedValueSet = CreateObject("WbemScripting.SWbemNamedValueSet")  
  5. objWmiNamedValueSet.Add "AgentAddress", strTargetSnmpDevice  
  6. objWmiNamedValueSet.Add "AgentReadCommunityName""public" 
  7. Set colTcpConnTable = _  
  8.     objWmiServices.InstancesOf("SNMP_RFC1213_MIB_tcpConnTable", , _  
  9.                                objWmiNamedValueSet)  
  10. Set colUdpTable = _  
  11.     objWmiServices.InstancesOf("SNMP_RFC1213_MIB_udpTable", , _  
  12.                                objWmiNamedValueSet)  
  13. WScript.Echo "TCP Connections and Listening Ports" & vbCrLf & _  
  14.              "-----------------------------------" 
  15. For Each objTcpConn In colTcpConnTable  
  16.     WScript.Echo objTcpConn.tcpConnLocalAddress & ":"    & _  
  17.                  objTcpConn.tcpConnLocalPort    & " => " & _  
  18.                  objTcpConn.tcpConnRemAddress   & ":"    & _  
  19.                  objTcpConn.tcpConnRemPort      & " "    & _  
  20.                  "[State: " & objTcpConn.tcpConnState & "]" 
  21. Next 
  22. WScript.Echo vbCrLf & "UDP Ports" & vbCrLf & "---------" 
  23. For Each objUdp In colUdpTable  
  24.     WScript.Echo objUdp.udpLocalAddress & ":" & objUdp.UdpLocalPort  
  25. Next 



检索代理服务器信息

描述信息

返回有关计算机使用的 Internet 代理服务器的信息。

支持平台

Windows Server 2003 是
Windows XP 是
Windows 2000 否
Windows NT 4.0 否
 

脚本代码

  1. On Error Resume Next 
  2. strComputer = "." 
  3. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
  4. Set colItems = objWMIService.ExecQuery("Select * from Win32_Proxy")  
  5. For Each objItem in colItems  
  6.     Wscript.Echo "Proxy Port Number: " & objItem.ProxyPortNumber  
  7.     Wscript.Echo "Proxy Server: " & objItem.ProxyServer  
  8.     Wscript.Echo "Server Name: " & objItem.ServerName  
  9.     Wscript.Echo  
  10. Next 


添加一个终端服务帐户

描述信息

为 fabrikam_ob 添加一个新的终端服务帐户,使该帐户客人具有访问权限。

支持平台
Windows Server 2003 是
Windows XP 是
Windows 2000 否
Windows NT 4.0 否
 

脚本代码

  1. Const GUEST_ACCESS = 0  
  2. strComputer = "." 
  3. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
  4. Set colItems = objWMIService.ExecQuery("Select * from Win32_TSPermissionsSetting")  
  5. For Each objItem in colItems  
  6.     errResult = objItem.AddAccount("fabrikam\bob", GUEST_ACCESS)  
  7. Next 



配置终端服务客户端连接设置

描述信息

配置终端服务客户端,以便在登录时自动连接映射驱动器和打印机,并使打印作业能够直接发送到客户端的本地打印机。可通过设置适当的常量值来禁用这些设置。

支持平台
Windows Server 2003 否
Windows XP 是
Windows 2000 否
Windows NT 4.0 否
 

脚本代码

  1. Const CONNECT_CLIENT_DRIVES = 1  
  2. Const CONNECT_PRINTER = 1  
  3. Const USE_CLIENT_PRINTER = 1  
  4. strComputer = "." 
  5. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
  6. Set colItems = objWMIService.ExecQuery("Select * from Win32_TSClientSetting")  
  7. For Each objItem in colItems  
  8.       errResult = objItem.ConnectionSettings(CONNECT_CLIENT_DRIVES, CONNECT_PRINTER, USE_CLIENT_PRINTER)  
  9. Next 



配置终端服务加密级别

描述信息

配置终端服务,以使用高加密参数值 3。要使用低级别加密,可通过将值 1 传递给 SetEncryptionLevel 方法来实现。客户端兼容的加密使用值 2,而 FIPS 兼容的加密使用值 4。

支持平台

Windows Server 2003 是
Windows XP 是
Windows 2000 否
Windows NT 4.0 否
 

脚本代码

  1. Const HIGH_ENCRYPTION = 3  
  2. strComputer = "." 
  3. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
  4. Set colItems = objWMIService.ExecQuery("Select * from Win32_TSGeneralSetting")  
  5. For Each objItem in colItems  
  6.     errResult = objItem.SetEncryptionLevel(HIGH_ENCRYPTION)  
  7. Next 



配置终端服务主目录
更新日期: 2003年09月12日

描述信息

将终端服务服务器上的默认主目录配置为 C:TSUsers。

支持平台

Windows Server 2003 是
Windows XP 是
Windows 2000 否
Windows NT 4.0 否
 

脚本代码

  1. strComputer = "." 
  2. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
  3. Set colItems = objWMIService.ExecQuery("Select * from Win32_TerminalServiceSetting")  
  4. For Each objItem in colItems  
  5.     errResult = objItem.SetHomeDirectory("c:\tsusers")  
  6. Next 



配置显式终端服务登录
更新日期: 2003年09月12日

描述信息

配置登录到终端服务所需的凭据(名字、密码和域)。

支持平台

Windows Server 2003 是
Windows XP 是
Windows 2000 否
Windows NT 4.0 否
 

脚本代码

  1. Const TS_USER = "tsuser" 
  2. CONST TS_DOMAIN = "fabrikam" 
  3. CONST TS_PASSWORD = "password" 
  4. strComputer = "." 
  5. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
  6. Set colItems = objWMIService.ExecQuery("Select * from Win32_TSLogonSetting")  
  7. For Each objItem in colItems  
  8.     errResult = objItem.ExplicitLogon(TS_USER, TS_DOMAIN, TS_PASSWORD)  
  9. Next 



配置终端服务模式
更新日期: 2003年09月12日

描述信息

启用终端服务的每会话授权功能。要启用每会话授权,可通过将值 2(而非 4)传递给 ChangeMode 方法来实现。要启用远程桌面管理或个人终端服务授权,则需传递值 0。

支持平台

Windows Server 2003 是
Windows XP 是
Windows 2000 否
Windows NT 4.0 否
 
脚本代码

  1. Const PER_SESSION = 4  
  2. strComputer = "." 
  3. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
  4. Set colItems = objWMIService.ExecQuery("Select * from Win32_TerminalServiceSetting")  
  5. For Each objItem in colItems  
  6.     errResult = objItem.ChangeMode(PER_SESSION)  
  7. Next 



删除计算机上的所有影像副本
更新日期: 2003年09月12日

描述信息

删除存储在服务器上的所有影像副本。

支持平台

Windows Server 2003 是
Windows XP 否
Windows 2000 否
Windows NT 4.0 否

脚本代码

  1. Const ENABLE = 1  
  2. strComputer = "." 
  3. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
  4. Set colItems = objWMIService.ExecQuery("Select * from Win32_TSLogonSetting")  
  5. For Each objItem in colItems  
  6.     errResult = objItem.SetPromptForPassword(ENABLE)  
  7. Next 



创建影像副本存储区
更新日期: 2003年09月12日

描述信息

创建影像副本存储区(在驱动器 E 上),以便存储驱动器 C 的影像副本。本脚本为这些影像副本保留了 130,023,424 字节的存储空间。

支持平台

Windows Server 2003 是
Windows XP 否
Windows 2000 否
Windows NT 4.0 否

脚本代码

  1. strComputer = "." 
  2. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
  3. Set colItems = objWMIService.ExecQuery("Select * from Win32_TerminalSetting")  
  4. For Each objItem in colItems  
  5.   Wscript.Echo "Caption: " & objItem.Caption  
  6.   Wscript.Echo "Description: " & objItem.Description  
  7.   Wscript.Echo "Setting ID: " & objItem.SettingID  
  8.   Wscript.Echo "Terminal name: " & objItem.TerminalName  
  9. Next 



检索软盘控制器信息
更新日期: 2003年09月12日

描述信息

检索有关计算机中能检测到的全部软盘驱动器控制器的信息。

支持平台

Windows Server 2003 是
Windows XP 是
Windows 2000 是
Windows NT 4.0 是,需要安装WMI

脚本代码

  1. On Error Resume Next 
  2. strComputer = "." 
  3. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
  4. Set objNetworkSettings = objWMIService.Get("Win32_NetworkAdapterConfiguration")  
  5. objNetworkSettings.SetTCPMaxDataRetransmissions(10) 

有关 Windows 2000、Windows XP 和 Windows Server 2003的示例脚本包括:创建、罗列和重新命名 Active Directory 站点,取得域控制器的 SNMP MIB-II 信息和站点名称;以及枚举网络适配器的属性。

配置 WINS 服务器的网络适配器
更新日期: 2003年09月12日

描述信息

配置主从 WINS 服务器的 TCP/IP 绑定网络适配器。

支持平台

Windows Server 2003 是
Windows XP 是
Windows 2000 是
Windows NT 4.0 是,需要安装WMI
 

脚本代码

  1. On Error Resume Next 
  2. strComputer = "." 
  3. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
  4. Set colNetCards = objWMIService.ExecQuery _  
  5.     ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")  
  6. For Each objNetCard in colNetCards  
  7.     strPrimaryServer = "192.168.1.100" 
  8.     strSecondaryServer = "192.168.1.200" 
  9.     objNetCard.SetWINSServer strPrimaryServer, strSecondaryServer  
  10. Next 


添加 Terminal Services 直接连接许可证服务器

描述

将计算机 atl-ts-01 作为直接连接许可证服务器添加到运行 Terminal Services 的计算机。

有关在这段代码中使用的 AddDirectConnectLicenseServer 方法的更多信息,请单击 此处。

支持平台

Windows Server 2003 是
Windows XP 是
Windows 2000 否
Windows NT 4.0 否
 

脚本代码

  1. strComputer = "." 
  2. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
  3. Set colItems = objWMIService.ExecQuery("Select * from Win32_TerminalServiceSetting")  
  4. For Each objItem in colItems  
  5.     errResult = objItem.AddDirectConnectLicenseServer("atl-ts-01")  
  6. Next 



老化所有的 DNS 记录
更新日期: 2003年09月15日

描述

启用 DNS 区域 accounting.fabrikam.comEnables 中所有记录(除了名称服务器和权限记录的启动之外)的老化。

有关在这段代码中使用的 AgeAllRecords 方法的更多信息,请单击此处。

支持平台

Windows Server 2003 是
Windows XP 否(然而,可以在 Windows XP 计算机上对远程 DNS 服务器运行脚本)
Windows 2000 是,需要安装 DNS WMI 提供程序
Windows NT 4.0 否
 

脚本代码

  1. strComputer = "." 
  2. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\MicrosoftDNS")  
  3. Set colItems = objWMIService.ExecQuery _  
  4.     ("Select * from MicrosoftDNS_Zone Where Name = 'accounting.fabrikam.com'")  
  5. For Each objItem in colItems  
  6.     errResult = objItem.AgeAllRecords(,1)  
  7. Next 


指派 Terminal Services 初始程序

描述

将启动程序 C:\Accounting\Invoice.exe(以及启动文件夹 C:\Accounting\FY_2003)指派给登录到运行 Terminal Services 的用户。

有关在这段代码中使用的 InitialProgram 方法的更多信息,请单击 此处。

支持平台

Windows Server 2003 是
Windows XP 是
Windows 2000 否
Windows NT 4.0 否
 

脚本代码

  1. Const STARTUP_PROGRAM = "c:\accounting\invoice.exe" 
  2. Const STARTUP_FOLDER = "c:\accounting\fy_2003" 
  3. strComputer = "." 
  4. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
  5. Set colItems = objWMIService.ExecQuery("Select * from Win32_TSEnvironmentSetting")  
  6. For Each objItem in colItems  
  7.     errResult = objItem.InitialProgram(STARTUP_PROGRAM, STARTUP_FOLDER)  
  8. Next 


更改 DNS 区域类型
更新日期: 2003年09月15日

描述

将区域 accounting.fabrikam.com 的 DNS 区域类型更改为主 DNS 区域。

有关在这段代码中使用的 ChangeZoneType 方法的更多信息,请单击此处

支持平台

Windows Server 2003 是
Windows XP 否(然而,可以在 Windows XP 计算机上对远程 DNS 服务器运行脚本)
Windows 2000 是,需要安装 DNS WMI 提供程序
Windows NT 4.0 否

脚本代码

  1. intPrimaryZone = 1  
  2. strComputer = "." 
  3. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\MicrosoftDNS")  
  4. Set colItems = objWMIService.ExecQuery _  
  5.     ("Select * from MicrosoftDNS_Zone Where Name = 'accounting.fabrikam.com'")  
  6. For Each objItem in colItems  
  7.     errResult = objItem.ChangeZoneType(intPrimaryZone, true)  
  8. Next 
此文章由 flyinweb 于 2010-11-24 17:21:12 编辑

本日志由 flyinweb 于 2009-06-18 19:33:44 发表,目前已经被浏览 4077 次,评论 0 次;

作者添加了以下标签: 脚本网络

引用通告:http://www.517sou.net/Article/30/Trackback.ashx

评论订阅:http://www.517sou.net/Article/30/Feeds.ashx

相关文章

评论列表

    暂时没有评论
(必填)
(必填,不会被公开)