As promised. IP addresses have been changed to protect the innocent. The
script relies on a text file with server names. I'm sure there will be
questions as to why it was written the way it was so I'll do my best to
answer those as they come up.

========================================================
Option Explicit
'On Error Resume Next
'Variable Declarations
Dim
arrNewDNSServers,objWMIService,colNetCards,objNetCard,arrCurrentDNS,strWINSOne,strWINSTwo,strMACAdd
Dim
objFSO,objFileList,strLine,i,strWINSPrime,strWINSSec,strDNSPrime,strDNSSec
strWINSPrime="10.10.10.10"
strWINSSec="10.10.10.11"
strDNSPrime="10.10.10.12"
strDNSSec="10.10.10.13"
Set objFSO=CreateObject("Scripting.FileSystemObject") 'Create the
FileSystemObject for accessing the filesystem on the local pc
Set
objFileList=objFSO.OpenTextFile("c:\Scripts\NICSettings\ServerList.txt",1)
'Open the list file
ErrorTrap "NULL","NULL",err.Number,err.Description,"Opening List File"

arrNewDNSServers = Array(strDNSPrime,strDNSSec) 'Array containing new DNS
information
'Loop through the list file.
Do Until objFileList.AtEndOfStream
 strLine = objFileList.ReadLine 'Read a line from the list file
 ErrorTrap strLine,"NULL",err.Number,err.Description,"Reading List File"

 Set objWMIService = GetObject("winmgmts:\\"&strLine&"\root\CIMV2")'Connect
to the remote WMI
 ErrorTrap strLine,"NULL",err.Number,err.Description,"Setting objWMIService"

 Set colNetCards=objWMIService.ExecQuery("Select * From
Win32_NetworkAdapterConfiguration")'Query the remote network adapters
 ErrorTrap strLine,"NULL",err.Number,err.Description,"Loading Network Cards"
 For Each objNetCard in colNetCards 'Loop through each network adapter
  strMACAdd=objNetCard.MACAddress 'Load the remote MAC to a variable
  ErrorTrap strLine,"NULL",err.Number,err.Description,"Loading MAC Address
into variable"
  arrCurrentDNS=objNetCard.DNSServerSearchOrder 'Load current DNS into a
variable
  ErrorTrap strLine,strMACAdd,err.Number,err.Description,"Loading DNS
settings into an array"
  strWINSOne=objNetCard.WINSPrimaryServer 'Load primary WINS server into a
variable
  ErrorTrap strLine,strMACAdd,err.Number,err.Description,"Loading primary
WINS server into variable"
  strWINSTwo=objNetCard.WINSSecondaryServer 'Load secondary WINS server into
a variable
  ErrorTrap strLine,strMACAdd,err.Number,err.Description,"Loading secondary
WINS server into variable"

  If objNetCard.DHCPEnabled=False Then 'Check if DHCP is enabled.  If not,
proceed.

   If Not IsNull(arrCurrentDNS) Then 'Check if there are currently any DNS
settings
    For i = 0 to UBound(arrCurrentDNS) 'Cycle through DNS servers
     If (arrCurrentDNS(i)="20.20.20.20") Then 'Look for old DNS info, if
found, proceed.
      objNetCard.SetDNSServerSearchOrder(arrNewDNSServers)'Set new DNS info
      ErrorTrap strLine,strMACAdd,err.Number,err.Description,"Setting New
DNS Settings"
      'Exit For
     End If
    Next
   End If
   If strWINSONE="20.20.20.20" or strWINSOne = "20.20.20.21" Then 'Check for
old WINS info. If found, proceed.
    objNetCard.SetWINSServer strWINSPrime,strWINSSec ' Set new WINS info
    ErrorTrap strLine,strMACAdd,err.Number,err.Description,"Setting new WINS
settings"
   End If

  End If
 'MsgBox(strMACAdd&","&strWINSOne&","&strWINSTwo&","&strDNSSettings)
 Next
Loop
MsgBox("done")
' This is the error trapping subroutine.  It is called after any code is
executed with the exception of setting variables
Sub ErrorTrap(strWSName,strMACInfo,errNum,errDesc,strComments)
 Dim objLogFile
 If Not objFSO.FileExists("C:\scripts\NICSettings\LogFile.txt") Then 'Check
for the existence of a log file
  objFSO.CreateTextFile("C:\scripts\NICSettings\LogFile.txt") 'Create one if
there is none
 End If
 Set objLogFile =
objFSO.OpenTextFile("C:\scripts\NICSettings\LogFile.txt",8) 'Open the
logfile for appending
 objLogFile.WriteLine(Date&" "&Time&": "&strWSName&":"&strMACInfo&" -
"&strComments&", Error Number:"&errNum&", Error Description: "&errDesc)
'Write error info
 err.Clear 'Clear the error number and allow script to continue
 objLogFile.Close 'Close the logfile
End Sub
========================================================

On Wed, May 19, 2010 at 10:35 AM, Micheal Espinola Jr <
michealespin...@gmail.com> wrote:

> <hic!>  thso fwaht?!
>
> --
> ME2
>
>
>  On Tue, May 18, 2010 at 5:03 PM, Jonathan Link 
> <jonathan.l...@gmail.com>wrote:
>
>> Script lush!
>>
>>
>>  On Tue, May 18, 2010 at 7:21 PM, Micheal Espinola Jr <
>> michealespin...@gmail.com> wrote:
>>
>>> Its always welcomed to share useful scripts!
>>>
>>> --
>>> ME2
>>>
>>>
>>>
>>> On Tue, May 18, 2010 at 3:29 PM, Sean Martin <seanmarti...@gmail.com>wrote:
>>>
>>>> First, thanks for all of the feedback. Some interesting opinions out
>>>> there. I've always been open to change so it's good to hear all of the
>>>> positives/negatives regarding which route to take. It sounds like DHCP 
>>>> would
>>>> be the way to go with the majority of our servers, excluding the
>>>> infrastructure servers.
>>>>
>>>> With that said, it's probably a change that will occur through attrition
>>>> rather than changing our current method all at once. The main reason for
>>>> that is our network services department wants us to change the subnets our
>>>> servers currently reside on to further segment stuff. We've got way too 
>>>> much
>>>> work on our plates to investigate changing the addresses on all of our
>>>> servers so that will already be a slow transition.
>>>>
>>>> In the meantime, a co-worker and I put together what we hope is a
>>>> functional VB script that will make the necessary changes to the existing
>>>> WINs and DNS settings. If anyone's interested in seeing it (and maybe
>>>> reviewing it for validity), I'd be happy to pass it along.
>>>>
>>>> - Sean
>>>>
>>>>   On Tue, May 18, 2010 at 1:41 PM, Ben Scott <mailvor...@gmail.com>wrote:
>>>>
>>>>> On Tue, May 18, 2010 at 4:24 PM, Sean Martin <seanmarti...@gmail.com>
>>>>> wrote:
>>>>> > What are some of the pros/cons of using DHCP for servers...?
>>>>>
>>>>>  For an environment like you describe, with hundreds of servers, I
>>>>> would recommend DHCP for all but critical network infrastructure
>>>>> servers.  I'd use manual configuration for anything serving DHCP, DNS,
>>>>> WINS, or Active Directory.  Everything else, DHCP, with reservations.
>>>>>
>>>>>  Just to be clear: DHCP does not have to mean a dynamic IP address.
>>>>> You can statically assign an IP address via a DHCP reservation.  And
>>>>> there are tools to help you do things like automatically provision the
>>>>> reservations, based on name or MAC address or whatever.
>>>>>
>>>>> > I've heard mention of not using DHCP to prevent DHCP broadcasts
>>>>> > but with a properly designed lease interval, I can't imagine the DHCP
>>>>> > traffic being that much of burden on today's networks....
>>>>>
>>>>>  As ME2 says, it really depends on the environment, but I would
>>>>> generally agree.  You'll already be needing infrastructure to support
>>>>> DNS, prolly Active Directory, possibly WINS, Window Updates, etc.,
>>>>> etc.  If DHCP is going to push you over the edge you're already way
>>>>> too close to the edge.  :)
>>>>>
>>>>>  The one thing you *may* notice is a surge in broadcast traffic after
>>>>> rebooting or starting a large group of servers -- say, after a
>>>>> software update, or a long power outage.  In general, though, you're
>>>>> already going to be seeing that due to ARP and maybe NetBIOS
>>>>> registration.  So again, if this is a problem you're likely already
>>>>> experiencing it.  The usual solution is to stagger reboot/startup.
>>>>>
>>>>> -- Ben
>>>>>
>>>>> ~ Finally, powerful endpoint security that ISN'T a resource hog! ~
>>>>> ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/>  ~
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>
>
>
>
>

~ Finally, powerful endpoint security that ISN'T a resource hog! ~
~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/>  ~

Reply via email to