WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Samples from Users

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Get TCP IP Configuration From Each Domain Controller


Question:

As our Active Directory continues to grow, it seems like it would be nice to have a script go out and get all the TCP/IP configuration from each domain controller and build a simple report out of it. Currently, we have to connect to each DC one at a time (using Hyena or terminal services). Has anyone already written a script I could modify to do this easily? If not, what would be the easiest way to do this?

Answer:

This is undebugged, and may need some tuning. Use ADSI and WMI to get the info.
AddExtender("wwads34i.dll")

sAdsiPath="LDAP://rootDSE"
sValue=dsGetProperty(sAdsiPath,"defaultNamingContext")             
sDomainDNS=StrCat("LDAP://",sValue)
domain=dsGetProperty("LDAP://rootDSE","defaultNamingContext")

sFilter = "(OU=Domain Controllers)"
sResult = dsFindPath(sDomainDNS, sFilter)

count=ItemCount(sResult,@TAB)
For i = 1 to count
   ConnectServer=ItemExtract(i,sResult,@TAB)
   objLocator = ObjectOpen("WbemScripting.SWbemLocator")
   objService = objLocator.ConnectServer()
   objSecurity = objService.Security_
   objSecurity.ImpersonationLevel = 3
   class =  "Win32_NetworkAdapterConfiguration"
   ; query instances
   query = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Index = '0'"
   objInstances = objService.ExecQuery(query)
   
   ; loop once for each instance
   hEnum = ObjectCollectionOpen(objInstances)
   While @true 
      obj = ObjectCollectionNext(hEnum)
      If obj == 0 Then Break
      ; obtain properties
      varArpAlwaysSourceRoute = obj.ArpAlwaysSourceRoute
      varArpUseEterSNAP = obj.ArpUseEtherSNAP
      varCaption = obj.Caption
      varDatabasePat = obj.DatabasePath
      varDeadGWDetectEnabled = obj.DeadGWDetectEnabled
      varDefaultIPGateway = obj.DefaultIPGateway
      varDefaultTOS = obj.DefaultTOS
      varDefaultTTL = obj.DefaultTTL
      varDescription = obj.Description
      varDCPEnabled = obj.DHCPEnabled
      varDCPLeaseExpires = obj.DHCPLeaseExpires
      varDCPLeaseObtained = obj.DHCPLeaseObtained
      varDCPServer = obj.DHCPServer
      varDNSDomain = obj.DNSDomain
      varDNSDomainSuffixSearcOrder = obj.DNSDomainSuffixSearchOrder
      varDNSEnabledForWINSResolution = obj.DNSEnabledForWINSResolution
      varDNSostName = obj.DNSHostName
      varDNSServerSearcOrder = obj.DNSServerSearchOrder
      varDomainDNSRegistrationEnable = obj.DomainDNSRegistrationEnabled
      varForwardBufferMemory = obj.ForwardBufferMemory
      varFullDNSRegistrationEnabled = obj.FullDNSRegistrationEnabled
      varGatewayCostMetric = obj.GatewayCostMetric
      varIGMPLevel = obj.IGMPLevel
      varIndex = obj.Index
      varIPAddress = obj.IPAddress
      varIPConnectionMetric = obj.IPConnectionMetric
      varIPEnabled = obj.IPEnabled
      varIPFilterSecurityEnabled = obj.IPFilterSecurityEnabled
      varIPPortSecurityEnabled = obj.IPPortSecurityEnabled
      varIPSecPermitIPProtocols = obj.IPSecPermitIPProtocols
      varIPSecPermitTCPPorts = obj.IPSecPermitTCPPorts
      varIPSecPermitUDPPorts = obj.IPSecPermitUDPPorts
      varIPSubnet = obj.IPSubnet
      varIPUseZeroBroadcast = obj.IPUseZeroBroadcast
      varIPXAddress = obj.IPXAddress
      varIPXEnabled = obj.IPXEnabled
      varIPXFrameType = obj.IPXFrameType
      varIPXMediaType = obj.IPXMediaType
      varIPXNetworkNumber = obj.IPXNetworkNumber
      varIPXVirtualNetNumber = obj.IPXVirtualNetNumber
      varKeepAliveInterval = obj.KeepAliveInterval
      varKeepAliveTime = obj.KeepAliveTime
      varMACAddress = obj.MACAddress
      varMTU = obj.MTU
      varNumForwardPackets = obj.NumForwardPackets
      varPMTUBDetectEnabled = obj.PMTUBHDetectEnabled
      varPMTUDiscoveryEnabled = obj.PMTUDiscoveryEnabled
      varServiceName = obj.ServiceName
      varSettingID = obj.SettingID
      varTcpipNetbiosOptions = obj.TcpipNetbiosOptions
      varTcpMaxConnectRetransmission = obj.TcpMaxConnectRetransmissions
      varTcpMaxDataRetransmissions = obj.TcpMaxDataRetransmissions
      varTcpNumConnections = obj.TcpNumConnections
      varTcpUseRFC1122UrgentPointer = obj.TcpUseRFC1122UrgentPointer
      varTcpWindowSize = obj.TcpWindowSize
      varWINSEnableLMostsLookup = obj.WINSEnableLMHostsLookup
      varWINSostLookupFile = obj.WINSHostLookupFile
      varWINSPrimaryServer = obj.WINSPrimaryServer
      varWINSScopeID = obj.WINSScopeID
      varWINSSecondaryServer = obj.WINSSecondaryServer
   
   EndWhile
   ObjectCollectionClose(hEnum)
   
   ; close object handles
   ObjectClose(objInstances)
   ObjectClose(objSecurity)
   ObjectClose(objService)
   ObjectClose(objLocator)
   
   
   ;*************************************
   ;*     Display results
   ;*************************************
   #DefineSubroutine udfFormat4Display(vname)
      value = %vname%
      if VarType(value)==256 ; Value is an array
         ;if array then create pipe delimited list
         arraylist=""
         for item = 0 to ArrInfo(value,1)-1
            arraylist = Strcat(arraylist,"|",value[item])
         next
         ;remove leading pipe
         value=strsub(arraylist,2,-1)
      endif
       return(value)
   #EndSubroutine
   
   
   
   ; build display list
   displaylist = ""
   displaylist=strcat(displaylist,@LF, "ArpAlwaysSourceRoute         = ", UDFFormat4Display("varArpAlwaysSourceRoute"))
   displaylist=strcat(displaylist,@LF, "ArpUseEtherSNAP              = ", UDFFormat4Display("varArpUseEterSNAP"))
   displaylist=strcat(displaylist,@LF, "Caption                      = ", UDFFormat4Display("varCaption"))
   displaylist=strcat(displaylist,@LF, "DatabasePath                 = ", UDFFormat4Display("varDatabasePat"))
   displaylist=strcat(displaylist,@LF, "DeadGWDetectEnabled          = ", UDFFormat4Display("varDeadGWDetectEnabled"))
   displaylist=strcat(displaylist,@LF, "DefaultIPGateway             = ", UDFFormat4Display("varDefaultIPGateway"))
   displaylist=strcat(displaylist,@LF, "DefaultTOS                   = ", UDFFormat4Display("varDefaultTOS"))
   displaylist=strcat(displaylist,@LF, "DefaultTTL                   = ", UDFFormat4Display("varDefaultTTL"))
   displaylist=strcat(displaylist,@LF, "Description                  = ", UDFFormat4Display("varDescription"))
   displaylist=strcat(displaylist,@LF, "DHCPEnabled                  = ", UDFFormat4Display("varDCPEnabled"))
   displaylist=strcat(displaylist,@LF, "DHCPLeaseExpires             = ", UDFFormat4Display("varDCPLeaseExpires"))
   displaylist=strcat(displaylist,@LF, "DHCPLeaseObtained            = ", UDFFormat4Display("varDCPLeaseObtained"))
   displaylist=strcat(displaylist,@LF, "DHCPServer                   = ", UDFFormat4Display("varDCPServer"))
   displaylist=strcat(displaylist,@LF, "DNSDomain                    = ", UDFFormat4Display("varDNSDomain"))
   displaylist=strcat(displaylist,@LF, "DNSDomainSuffixSearchOrder   = ", UDFFormat4Display("varDNSDomainSuffixSearcOrder"))
   displaylist=strcat(displaylist,@LF, "DNSEnabledForWINSResolution  = ", UDFFormat4Display("varDNSEnabledForWINSResolution"))
   displaylist=strcat(displaylist,@LF, "DNSHostName                  = ", UDFFormat4Display("varDNSostName"))
   displaylist=strcat(displaylist,@LF, "DNSServerSearchOrder         = ", UDFFormat4Display("varDNSServerSearcOrder"))
   displaylist=strcat(displaylist,@LF, "DomainDNSRegistrationEnabled = ", UDFFormat4Display("varDomainDNSRegistrationEnable"))
   displaylist=strcat(displaylist,@LF, "ForwardBufferMemory          = ", UDFFormat4Display("varForwardBufferMemory"))
   displaylist=strcat(displaylist,@LF, "FullDNSRegistrationEnabled   = ", UDFFormat4Display("varFullDNSRegistrationEnabled"))
   displaylist=strcat(displaylist,@LF, "GatewayCostMetric            = ", UDFFormat4Display("varGatewayCostMetric"))
   displaylist=strcat(displaylist,@LF, "IGMPLevel                    = ", UDFFormat4Display("varIGMPLevel"))
   displaylist=strcat(displaylist,@LF, "Index                        = ", UDFFormat4Display("varIndex"))
   displaylist=strcat(displaylist,@LF, "IPAddress                    = ", UDFFormat4Display("varIPAddress"))
   displaylist=strcat(displaylist,@LF, "IPConnectionMetric           = ", UDFFormat4Display("varIPConnectionMetric"))
   displaylist=strcat(displaylist,@LF, "IPEnabled                    = ", UDFFormat4Display("varIPEnabled"))
   displaylist=strcat(displaylist,@LF, "IPFilterSecurityEnabled      = ", UDFFormat4Display("varIPFilterSecurityEnabled"))
   displaylist=strcat(displaylist,@LF, "IPPortSecurityEnabled        = ", UDFFormat4Display("varIPPortSecurityEnabled"))
   displaylist=strcat(displaylist,@LF, "IPSecPermitIPProtocols       = ", UDFFormat4Display("varIPSecPermitIPProtocols"))
   displaylist=strcat(displaylist,@LF, "IPSecPermitTCPPorts          = ", UDFFormat4Display("varIPSecPermitTCPPorts"))
   displaylist=strcat(displaylist,@LF, "IPSecPermitUDPPorts          = ", UDFFormat4Display("varIPSecPermitUDPPorts"))
   displaylist=strcat(displaylist,@LF, "IPSubnet                     = ", UDFFormat4Display("varIPSubnet"))
   displaylist=strcat(displaylist,@LF, "IPUseZeroBroadcast           = ", UDFFormat4Display("varIPUseZeroBroadcast"))
   displaylist=strcat(displaylist,@LF, "IPXAddress                   = ", UDFFormat4Display("varIPXAddress"))
   displaylist=strcat(displaylist,@LF, "IPXEnabled                   = ", UDFFormat4Display("varIPXEnabled"))
   displaylist=strcat(displaylist,@LF, "IPXFrameType                 = ", UDFFormat4Display("varIPXFrameType"))
   displaylist=strcat(displaylist,@LF, "IPXMediaType                 = ", UDFFormat4Display("varIPXMediaType"))
   displaylist=strcat(displaylist,@LF, "IPXNetworkNumber             = ", UDFFormat4Display("varIPXNetworkNumber"))
   displaylist=strcat(displaylist,@LF, "IPXVirtualNetNumber          = ", UDFFormat4Display("varIPXVirtualNetNumber"))
   displaylist=strcat(displaylist,@LF, "KeepAliveInterval            = ", UDFFormat4Display("varKeepAliveInterval"))
   displaylist=strcat(displaylist,@LF, "KeepAliveTime                = ", UDFFormat4Display("varKeepAliveTime"))
   displaylist=strcat(displaylist,@LF, "MACAddress                   = ", UDFFormat4Display("varMACAddress"))
   displaylist=strcat(displaylist,@LF, "MTU                          = ", UDFFormat4Display("varMTU"))
   displaylist=strcat(displaylist,@LF, "NumForwardPackets            = ", UDFFormat4Display("varNumForwardPackets"))
   displaylist=strcat(displaylist,@LF, "PMTUBHDetectEnabled          = ", UDFFormat4Display("varPMTUBDetectEnabled"))
   displaylist=strcat(displaylist,@LF, "PMTUDiscoveryEnabled         = ", UDFFormat4Display("varPMTUDiscoveryEnabled"))
   displaylist=strcat(displaylist,@LF, "ServiceName                  = ", UDFFormat4Display("varServiceName"))
   displaylist=strcat(displaylist,@LF, "SettingID                    = ", UDFFormat4Display("varSettingID"))
   displaylist=strcat(displaylist,@LF, "TcpipNetbiosOptions          = ", UDFFormat4Display("varTcpipNetbiosOptions"))
   displaylist=strcat(displaylist,@LF, "TcpMaxConnectRetransmissions = ", UDFFormat4Display("varTcpMaxConnectRetransmission"))
   displaylist=strcat(displaylist,@LF, "TcpMaxDataRetransmissions    = ", UDFFormat4Display("varTcpMaxDataRetransmissions"))
   displaylist=strcat(displaylist,@LF, "TcpNumConnections            = ", UDFFormat4Display("varTcpNumConnections"))
   displaylist=strcat(displaylist,@LF, "TcpUseRFC1122UrgentPointer   = ", UDFFormat4Display("varTcpUseRFC1122UrgentPointer"))
   displaylist=strcat(displaylist,@LF, "TcpWindowSize                = ", UDFFormat4Display("varTcpWindowSize"))
   displaylist=strcat(displaylist,@LF, "WINSEnableLMHostsLookup      = ", UDFFormat4Display("varWINSEnableLMostsLookup"))
   displaylist=strcat(displaylist,@LF, "WINSHostLookupFile           = ", UDFFormat4Display("varWINSostLookupFile"))
   displaylist=strcat(displaylist,@LF, "WINSPrimaryServer            = ", UDFFormat4Display("varWINSPrimaryServer"))
   displaylist=strcat(displaylist,@LF, "WINSScopeID                  = ", UDFFormat4Display("varWINSScopeID"))
   displaylist=strcat(displaylist,@LF, "WINSSecondaryServer          = ", UDFFormat4Display("varWINSSecondaryServer"))
   displaylist = StrSub(displaylist,2,-1)
   ; use fixed pitch font
   IntControl(28,1,0,0,0)
   ; define coordinates for AskItemList
   IntControl(63,200,200,800,800)
   AskItemList(class,displaylist,@LF,@unsorted,@single)
Next

Article ID:   W16331
File Created: 2005:02:18:12:19:48
Last Updated: 2005:02:18:12:19:48