Help with DNS script please

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • hotairguy
    New Member
    • Aug 2005
    • 2

    Help with DNS script please

    I want change DNS server setting on quite a few clients in a single domain env. They all have static IP setting which I can't change (can't use DHCP) so looking for a way to change settings with a script that can be applied via a system startup script setting in group policy. I have found one, copied below, that seems to work but needs user input to acknowledge all the popup windows. Can someone look over the script and tell me what I must remove or remark out to let the script just run with no user input? Or if you have something better, I would love to try it out. Just learning scripts and need an experts input. Thanks all, Peter.


    On Error Resume Next

    strComputer = "."
    strNewDNSServer = "192.168.0. 4"

    Set objWMIService = GetObject("winm gmts:" _
    & "{impersonation Level=impersona te}!\\" & strComputer & "\root\cimv 2")
    Set colNicConfigs = objWMIService.E xecQuery _
    ("SELECT * FROM Win32_NetworkAd apterConfigurat ion WHERE IPEnabled = True")

    WScript.Echo VbCrLf & "Computer: " & strComputer

    For Each objNicConfig In colNicConfigs
    intNewArraySize = 0
    WScript.Echo VbCrLf & " Network Adapter " & objNicConfig.In dex
    arrDNSServerSea rchOrder = objNicConfig.DN SServerSearchOr der
    WScript.Echo " DNS Server Search Order - Before:"
    If Not IsNull(arrDNSSe rverSearchOrder ) Then
    For Each strDNSServer In arrDNSServerSea rchOrder
    WScript.Echo " " & strDNSServer
    Next
    End If
    WScript.Echo " Adding " & strNewDNSServer & " to end of " & _
    "DNS search order."
    intNewArraySize = UBound(arrDNSSe rverSearchOrder ) + 1
    ReDim Preserve arrDNSServerSea rchOrder(intNew ArraySize)
    arrDNSServerSea rchOrder(intNew ArraySize) = strNewDNSServer
    intSetDNS = _
    objNicConfig.Se tDNSServerSearc hOrder(arrDNSSe rverSearchOrder )
    If intSetDNS = 0 Then
    WScript.Echo " Added " & strNewDNSServer & _
    " to end of DNS search order."
    Else
    WScript.Echo " Unable to change DNS server search order."
    End If
    Next

    WScript.Echo VbCrLf & String(80, "-")

    Set colNicConfigs = objWMIService.E xecQuery _
    ("SELECT * FROM Win32_NetworkAd apterConfigurat ion WHERE IPEnabled = True")

    For Each objNicConfig In colNicConfigs
    WScript.Echo VbCrLf & " Network Adapter " & objNicConfig.In dex
    WScript.Echo " DNS Server Search Order - After:"
    If Not IsNull(objNicCo nfig.DNSServerS earchOrder) Then
    For Each strDNSServer In objNicConfig.DN SServerSearchOr der
    WScript.Echo " " & strDNSServer
    Next
    End If
    Next
  • steeltips
    New Member
    • Aug 2006
    • 1

    #2
    may be this will help you some what your post is old and i am new to this site but here you go

    On Error Resume Next
    strComputer = "COMPUTERNA ME OR . FOR LOCAL"
    Set objWMIService = GetObject("winm gmts:\\" & strComputer & "\root\cimv 2")
    Set objNetworkSetti ngs = objWMIService.G et("Win32_Netwo rkAdapterConfig uration")
    rem set your domain name below
    arrDNSSuffixes = Array("domain.a c.uk")
    objNetworkSetti ngs.SetDNSSuffi xSearchOrder(ar rDNSSuffixes)

    Set objWMIService = GetObject("winm gmts:\\" & strComputer & "\root\cimv 2")
    Set colNetCards = objWMIService.E xecQuery _
    ("Select * From Win32_NetworkAd apterConfigurat ion Where IPEnabled = True")
    For Each objNetCard in colNetCards
    arrDNSServers = Array("172.16.1 .240", "172.16.1.2 45")
    objNetCard.SetD NSServerSearchO rder(arrDNSServ ers)
    Next
    rem the above ip address are set in the adapters search order left to right first and second watch for wraping in this text

    Comment

    • hotairguy
      New Member
      • Aug 2005
      • 2

      #3
      Thanks, I will test it out. Peter.

      Comment

      Working...