Jump to content

Wins Server eintragen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen

 

Ich bastle grad an einem Script um einer gewissen menge von Computern gewisse WINS Server zu setzen.

 

Das Script läuft soweit ganz gut. Ausser wenn bereits Wins Server gesetzt wurden. Ich hab bis jetzt nicht rausgefunden woran es liegt.

 

1. aus irgend einem Grund liefert For Each oAssociator In cAssociators mehr als nur eine Instanz. Ich weiss nicht genau wieso, aber ich habs mal dadurch gelöst, dass ich unten ein Wscript.quit() durchführe wenns erfolgreich oder halt nicht erfolgreich gesetzt wurde. Eventuell hilft das jemandem weiter.

 

2. Ist schon ein Server gesetzt, crasht das Script bei Set objInParam = oAssociator.Methods_("SetWINSServer").InParameters.SpawnInstance_() mit dem Fehler "not found" Code "88041002" source "SWbemMethodSet"

Wieso passiert das? Muss ich erst die Server entfernen bevor ich sie neu setzen darf?

 

Ich dacht mir ich frag erst hier bevor ich wild drauflos Code.

 

arrComputers = Array("localhost")

sPrimaryWINS	= "1.2.3.4"
sSecondaryWINS	= "1.2.4.3"

For Each sComputer In arrComputers 
MsgBox sComputer
Set objInstances = GetObject("winmgmts:{impersonationLevel=impersonate}//" & sComputer & "/root/CIMV2").ExecQuery("SELECT * FROM Win32_NetworkAdapter WHERE AdapterType=" & Chr(34) & "Ethernet 802.3" & Chr(34) & " AND NetConnectionStatus=2", "WQL")

For Each objInstance In objInstances
	msgbox objInstance.name

	Set cAssociators = objInstance.Associators_(,Win32_NetworkAdapterConfiguration)
	For Each oAssociator In cAssociators
		Set objInParam = oAssociator.Methods_("SetWINSServer").InParameters.SpawnInstance_()
		objInParam.WINSPrimaryServer = sPrimaryWINS
		objInParam.WINSSecondaryServer = sSecondaryWINS
		Set objOutParam = oAssociator.ExecMethod_("SetWINSServer", objInParam)


		If objOutParam.returnValue = 0 Then
			WScript.Echo "Wins Server values written"
			wscript.quit(0)
		Else
			WScript.Echo "Wins Server values could not be written. Error Number " & objOutParam.returnValue
			wscript.quit(objOutParam.returnValue)
		End If
	Next

Next
Next

 

Gruss Tacher

Link zu diesem Kommentar

Hallo tacher,

 

ich bin so frei und gehe jetzt nicht auf Dein Script ein. Hier ist eines, welches ich einmal eingesetzt hatte, vielleicht hilft Dir dies. Gruß THUMB

 

On Error Resume Next

 

strComputer = "."

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

strPrimaryServer = "192.168.1.100"

strSecondaryServer = "192.168.1.200"

objNetCard.SetWINSServer strPrimaryServer, strSecondaryServer

Next

Link zu diesem Kommentar

Wie ist das eigentlich? gibts PCweit nur 2 WINSSERVER? Oder sind die Interface spezifisch?

 

Ich muss das Script auf Servern mit bis zu drei Interfaces ausführen. Muss ich diese Setting Pro Interface setzen? Sprich muss ich aufpassen was ich setz, weil sonst das falsche Interface meine WINS Server setting bekommt?

 

Wenn ja ist dein Script leidern icht benutzbar, da es einfach überall die WINS Server setzt. Ansonsten wärs eine Alternative die ich in Betracht ziehen könnte.

Link zu diesem Kommentar

Hallo Tacher,

 

Du kannst die TCP/IP Eigenschaften, also auch den WINS für jede NIC konfigurieren.

 

Die Zeile ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")

wählt alle NICs aus für die IP enabled ist. Diese musst Du abändern dass nur die von Dir gewünschte NIC ausgewählt wird. Entweder schon in der WMI Abfrage, oder erst in der FOR Schleife die die Collection durchsucht.

 

Gruß THUMB

Link zu diesem Kommentar

Hi Tacher,

 

Guck mal, hier habe ich eine Ausgabe der Netzwerkkarten Caption eingebaut, sodass Dir nun angezeigt wird, für welche Karten der WINS gesetzt wird. In der FOR Schleife wird dann nur für die angegebene Karte (in meinem Falle "[00000001] Broadcom NetXtreme Gigabit Ethernet for hp") der WINS gesetzt. Hier musst Du dann die von Dir gewünschte Karte eintragen.

 

Gruß THUMB

 

PS: Die MsgBox musst Du natürlich im Betrieb entfernen, sie ist nur da, um Dir die NIC Beschreibung auszugeben, um den Namen in die IF-Abfrage zu übernehmen.

 

 

 

strComputer = "."

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

MsgBox objNetcard.Caption

 

If objNetcard.Caption = "[00000001] Broadcom NetXtreme Gigabit Ethernet for hp" Then

 

strPrimaryServer = "192.168.1.100"

strSecondaryServer = "192.168.1.200"

 

objNetCard.SetWINSServer strPrimaryServer, strSecondaryServer

End If

 

Next

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...