Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 766
  • Last Modified:

GPO WINS Script not Working

I have a simple script here that seems to execute but, doesn't change the DNS or WINS on the computer it runs on.  I have tried running it manually and from GPO.  Can I get a second set of eyes on this?

Please note that this is the third itteration of the script that I have found on the net.  None of them work!

I am trying to run these on my local computer as well to see if anything changes.  I am the domain admin and am logged in as such so, there shouldn't be any permission issues here.

I have even debugged the script to make sure the values are correct and that the .SetWINSServer  function is available and the right adapter is being worked on (I only have 1 adapter on this machine).

I am running Windows XP with all updates and service packs and my AD server is Windows 2003 Enterprise R2.


On Error Resume Next

Const STR_NEWDNS1 = "10.0.1.35" 
Const STR_NEWDNS2 = "0.0.0.0"
Const STR_NEWWINS1= "10.0.1.35" 
Const STR_NEWWINS2= "0.0.0.0"

SetDnsWins		

Sub SetDnsWins
	strWinMgmt = "winmgmts:{impersonationLevel=impersonate}!//."
	Set objNICs = GetObject( strWinMgmt ).InstancesOf( "Win32_NetworkAdapterConfiguration" )

	For Each objNIC In objNICs
		If objNIC.IPEnabled Then
			objNIC.SetWINSServer STR_NEWWINS1,STR_NEWWINS2
			objNIC.SetDNSServerSearchOrder Array(STR_NEWDNS1,STR_NEWDNS2)
		End If
	Next

End Sub

Open in new window

0
cefranklin
Asked:
cefranklin
  • 3
  • 2
1 Solution
 
xchangeCommented:
Hi there!,

 For start, I found that it doesn't like the "0.0.0.0" address that you supplied for WINS2.
Change it to WINS1's address and all should be fine.

Check it and let me know how it goes.

Theo
0
 
xchangeCommented:
...or change:
Const STR_NEWWINS2= "0.0.0.0"
to:
Const STR_NEWWINS2= ""
0
 
xchangeCommented:
I tested successfully with WINS, you may have to change:
Const STR_NEWDNS2 = "0.0.0.0"
to:
Const STR_NEWDNS2 = ""

See how it goes and let me know, OK?
0
Has Powershell sent you back into the Stone Age?

If managing Active Directory using Windows Powershell® is making you feel like you stepped back in time, you are not alone.  For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why.

 
markdmacCommented:
Give this a shot.

Change the IPs as needed.  

To run in a GPO change the line:
              strComputer = InputBox("Enter Computer Name","Enter Target")
To be:
              strComputer = "."


Also if you only have one WINS and DNS server let me know, there are additional tweaks to make and I will be happy to make them for you.
'==========================================================================
'
' NAME: Set_DNS_WINS_Remotely.vbs
'
' AUTHOR: Mark D. MacLachlan , The Spider's Parlor
' URL   : http://www.thespidersparlor.com    
' COPYRIGHT (C) 2009 All rights reserved
' DATE  : 4/24/2009
'
' COMMENT: 
'
'
'    THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
'    ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
'    THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
'    PARTICULAR PURPOSE.
'
'    IN NO EVENT SHALL THE SPIDER'S PARLOR AND/OR ITS RESPECTIVE SUPPLIERS 
'    BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
'    DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
'    WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
'    ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
'    OF THIS CODE OR INFORMATION.
'==========================================================================
On Error Resume Next
strComputer = InputBox("Enter Computer Name","Enter Target")  

strWins1 = "192.168.20.150"
strWins2 = "192.168.20.41"
strDNS1 = "192.168.20.150"
strDNS2 = "192.168.20.41"
 
Set objWMIService = GetObject("winmgmts:" _  
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  
  
Set colNetCards = objWMIService.ExecQuery _  
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled =  True")  
  
For Each objNetCard in colNetCards  
  arrDNSServers = Array(strDNS1, strDNS2)  
  objNetCard.SetDNSServerSearchOrder(arrDNSServers)  
  intSetWINS = objNetCard.SetWINSServer(strWINS1, strWINS2)
  If intSetWINSServer = 0 Then
    WScript.Echo "Success! WINS & DNS servers configured."
  ElseIf intSetWINSServer = 1 Then
    WScript.Echo "WINS  & DNS servers configured, please reboot."
  Else
    WScript.Echo "Error!! Unable to configure WINS & DNS servers."
  End If
Next

Open in new window

0
 
cefranklinAuthor Commented:
Will test Monday thanks for the replies.
0
 
cefranklinAuthor Commented:
Alright, I thought I tried that but, since it works now, I guess I will chalk it up to me being an idiot :P
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Making Bulk Changes to Active Directory

Watch this video to see how easy it is to make mass changes to Active Directory from an external text file without using complicated scripts.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now