98345
Goto Top

Umbenennung vieler NIC über das Netzwerk

Hallo Gemeinde, ich habe da ein "kleines" Problem. Kleine einzelne Lösungen habe ich gefunden, aber leider nichts zusammenhängende.

Ich habe ein verstreutes Netzwerk mit ca. 300 APC. Als OS ist W2k SP4 in einer Domäne im Einsatz. Einen DHCP ist nicht im Einsatz (Wird auch leider nicht kommen). Die LAN-Verbindung der einzelnen Clients sind alle unterschiedlich umbenannt worden. Nach der statischen IP Adresse.

Ziel des ganzen ist den WINS in die NIC per batch oder Script über das Netzwerk eintragen zulassen. Wobei mit Script´s tue ich mich schwer.

Meine Frage/Problem ist nun, wie kann ich ohne an jeden APC selbst zugehen, die NIC umbenennen in einen einheitlichen Namen und den WINS in die NIC eintragen lassen??

Die lokale Umbenennung mit
netsh interface set interface name="alter Name" newname="neuer Name"
und
netsh interface ip set wins name="LAN-Verbindung" static 192.168.0.1
klappt. Aber mein Ziel ist dieses für die ca. 300 APC über das Netzwerk zu machen.


Gruss

Content-Key: 162260

Url: https://administrator.de/contentid/162260

Printed on: April 19, 2024 at 00:04 o'clock

Member: redocomp
redocomp Mar 08, 2011 at 19:42:00 (UTC)
Goto Top
hi ich-halt,

wie wäre es denn, wenn du dein bereits funktionierendes / getestetes Script per GPO oder logonscript verteilst ?
Mitglied: 98345
98345 Mar 08, 2011 at 19:47:39 (UTC)
Goto Top
Das wird nicht klapppen. Da jede NIC einen anderen Namen hat (die entsprechende IP) müssen ca. 300 Scripte verteilt werden. Daher sehe ich es als sinnvoller an, erstmal die NIC´s umzubenennen und dann den WINS eintragen zulassen. Dieses ist dann per Logon Script oder ähnliches möglich.
Das derzeitige Problem ist, das ich nicht jede NIC auf einmal ansprechen kann.Wegen den 300 unterschiedlichen Namen.
Member: marinux
marinux Mar 08, 2011, updated at Oct 18, 2012 at 16:46:06 (UTC)
Goto Top
Warum 300 unterschiedliche Skripte. Du kannst doch in deinem Skript die aktuelle IP abfragen und die als "alterName" setzen.

Siehe z.B. IP oder hostname Abfrage über if
Mitglied: 98345
98345 Mar 08, 2011 at 20:25:35 (UTC)
Goto Top
Richtig. Aber beim nächsten APC passt es nicht mehr, da hier der Name der LAN-Verbindung wieder anders ist. Daher die 300 Srcipte. Und dieses müsste für jeden APC mit einer eigenen Richtlinie umgesetzt werden.
Wenn es ein Platzhalter oder allgemeines Zeichen das als Ersatz für den alten Namen der LAN-Verbindung dienen kann, dann reicht eines. Aber einen Hinweis darauf habe ich noch nirgends gefunden.

Das Script verstehe ich nicht. Mit Scripten stehe ich noch auf Kriegsfuss.
Was macht dieses???
Member: marinux
marinux Mar 08, 2011 at 20:31:43 (UTC)
Goto Top
???

Du sagst, das die NIC nach ihrer zugewiesenen statischen IP benannt ist. Also kannst du im Skript die statische IP abfragen auf dem jeweiligen PC abfragen und als "alterName" setzen.

Sprich wenn das Skript auf APC1 ausgeführt wird gibt es die IP der NIC von APC1 aus
Bei APC2 die IP der NIC von APC2
Mitglied: 98345
98345 Mar 08, 2011 at 20:37:05 (UTC)
Goto Top
Das Script verstehe ich nicht. Mit Scripten stehe ich noch auf Kriegsfuss.
Was macht dieses???
Member: marinux
marinux Mar 08, 2011 at 20:42:46 (UTC)
Goto Top
Das ist nur ein Beispiel, was an Deine Bedürfnisse angepasst und erweitert gehört.

Sry, aber ich habe keine Zeit dir jetzt Batch und/oder VBS zu scheiben. Vllt macht es ja jemand Anders oder du beschäftigst dich mit der Materie.

Gruß
Mitglied: 98345
98345 Mar 08, 2011 at 20:53:44 (UTC)
Goto Top
Das ich mich mit Scripten beschäftigen muss bleibt sicher nicht aus. Ich will ja auch nichts einsetzen was ich nicht verstehe.
Nur mir fehlt bei dem Problem derzeit überhaupt ein Ansatz.. Eine Batchdatei wäre für mich am einfachsten, wenn es eine Bezeichnung für name="alter Name" (wie immer er auch sei) gibt.

Aber ich befürchte, dieses gibt es nicht.
Member: marinux
marinux Mar 08, 2011 at 20:58:37 (UTC)
Goto Top
Ja ich denke "alter Name" ist die IP der NIC?
Mitglied: 98345
98345 Mar 08, 2011 at 21:24:51 (UTC)
Goto Top
So ist es. Wollte mir ersparen mehrere IP zu schreiben.
Member: marinux
marinux Mar 09, 2011 at 07:26:25 (UTC)
Goto Top
Das obige VBS liest dir alle NICs auf einem PC aus, das musst du nur noch so umbasteln, dass es dir nur die IP deiner gewollten NIC ausgibt (z.B. durch einen Abgleich mit deinem IP-Bereich) und an eine Batch übergibt. Dann kannst du mit netsh arbeiten.
Mitglied: 98345
98345 Mar 09, 2011 at 07:59:02 (UTC)
Goto Top
Ich habe das Script mal auf einen Testrechner laufen lassen. Gibt mir soweit das raus was ich benötige. Und ein bischen mehr.
Ändern das es nur die IP ausgibt und in den Autostart legen. Soweit gut.

Dann muss nur noch die Ausgabe erntfernt werden und die Umbenennung erfolgen. Hast du eine vernünftige Seite, auf der ich mich einlesen für das Sript einlesen kann???
Denn wenn das Auslesen per Script läuft, dann kann die Umbenennung und Eintrag des WINS auch mit eingebaut werden.
Member: marinux
marinux Mar 09, 2011 at 09:39:06 (UTC)
Goto Top
nic.vbs
dim strIP_part1,strIP_part2, arrIP

'Setzen der Ip Bereiche zum Abgleich  
strIP_part1="192"  
strIP_part2="168"  
strIP_part3="1"  

Set IPConfigSet = GetObject("winmgmts://.").ExecQuery("select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")  
    For Each IPConfig In IPConfigSet
            If Not IsNull(IPConfig.IPAddress) Then
                    For i=LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)
		    If Not InStrB(1,IPConfig.IPAddress(i),".")=0 Then	  
		    	arrIP=Split(IPConfig.IPAddress(i),".")  
		    Else
		    	arrIP=Split(IPConfig.IPAddress(i),":")  
		    End If
		    If (arrIP(0)=strIP_part1 AND arrIP(1)=strIP_part2 AND arrIP(2)=strIP_part3) Then
		    	Set WshNetwork = WScript.CreateObject("WScript.Network")  
		    	WScript.Echo WshNetwork.ComputerName & "," & IPConfig.IPAddress(i) & "," & IPConfig.IPSubnet(i) & "," & IPConfig.MACAddress  
		    End If
                    Next
            End If
    Next

nic.bat
for /f  "delims=, tokens=1-4" %%a in ('cscript //nologo nic.vbs') do (  
	set ip=%%b
)

Du musst in nic.vbs lediglich Deinen IP-Bereich einstellen, damit dir alle anderen NICs die ein APC haben kann nicht auch ausgewählt werden (z.B. virtuelle NICs, OnBoard NIC etc). So wird wirklich nur die NIC im APC gewählt, die mit deinem Netzwerk verbunden ist.
D.h. in der Voreinstellung werden nur die NICs gefunden, die eine IP haben, die mit "192.168.1" anfängt. Sprich es können IPs von 192.168.1.0-255 darunter fallen.

Da du vermutlich kein /24 Netz haben wirst (mehr als 300 PCs), musst die nic.vbs dahingehend anpassen.

z.B.
strIP_part4="2"  
und
If (arrIP(0)=strIP_part1 AND arrIP(1)=strIP_part2 AND (arrIP(2)=strIP_part3 OR arrIP(2)=strIP_part4 )) Then
hinzufügen.

So wird 192.168.1.0-192.168.2.255 abgedeckt.


Das Script funktioniert auch für IPv6 Adressen. z.B.
strIP_part3="fe80" ...  


In der nic.bat kannst Du dann deinen Code zum umbenennen einfügen. In der Variablen "ip" befindet sich die IP-Adresse der NIC und kannst du dann als "alterName" benutzen.
Mitglied: 98345
98345 Mar 09, 2011 at 18:01:16 (UTC)
Goto Top
Danke für Deinen Hirnschmalz und Zeit, das Du so schnell das Script doch geschrieben hast.
Meine Zeit habe ich heute mit dem Test verbracht.
Im lokalen Einsatz per gpupdate.msc klappt es einwandfrei. Hier habe ich die nic.bat und nic.vbs an die selbe Stelle im Startscript kopiert. Super

Im Netzwerk habe ich es vergleichbar eingesetzt. Als Startscript in der Computerkonfiguration die nic.bat.
In der Freigabe für verteilte Software (da die Rechte entsprechend passen) die Datei nic.vbs
In der nic.bat noch den Pfad für das Script angepasst
for /f "delims=, tokens=1-4" %%a in ('cscript //nologo \\192.168.1.8\freigabe\script\nic.vbs') do (
und den APC neugestartet. Leider hat es nicht geklappt.

An einem fehlenden Recht kann es meiner Meinung nach nicht liegen. Das es in der Computerkonfiguration als Startscript liegt ist der Benutzer nicht gefragt. Und in der Domäne / OU sind keine anderen Richtlinien konfiguriert. Alles Jungfräulich.

Habe ich da jetzt einen Gedankenfehler oder woran scheitert diese jetzt???
Member: marinux
marinux Mar 09, 2011 at 18:11:56 (UTC)
Goto Top
Hallo,

haben denn "Domänencomputer" Zugriff auf die Freigabe wo nic.vbs liegt?
Mitglied: 98345
98345 Mar 09, 2011 at 18:17:43 (UTC)
Goto Top
Jep, habe es extra geprüft. Andere Software wird ganz normal verteilt und installiert.
Zugriff für DomBenutzer, DomComputer und Authentifizierte Benutzer sind Leserechte.
Mitglied: 98345
98345 Mar 09, 2011 at 18:56:12 (UTC)
Goto Top
Der DC läuft in einer VM auf einem APC in der Testumgebung. Verbunden mit einer 100MB Leitung.
Kann es sein, das der Client beim starten "zu schnell" ist????

Dann sollte es doch helfen, als zweite Zeile in nic.bat den Befehl Wait 5 einzutragen.
Wenn ja, wo müsste die Wait.exe liegen??? Bei der nic.bat oder auf jedem Client????
Member: marinux
marinux Mar 09, 2011 at 19:25:32 (UTC)
Goto Top
Mit
ping -n 5 127.0.0.1 
kannst du verzögern, wobei die Zahl die variable Zeitdauer ist.

Ich glaube aber nicht, dass es daran liegt.

Hast du mal probiert das Skript in der Benutzerkonfiguration zu laden und dich als Admin am APC anzumelden.

Mal schauen ob das klappt, sollten da nämlich schon Fehler auftreten, dann kann man besser eingrenzen.
Mitglied: 98345
98345 Mar 09, 2011 at 19:43:03 (UTC)
Goto Top
Das werde ich morgen probieren. Beide Ansätze.
Danke Dir für Deine Zeit.
Member: marinux
marinux Mar 09, 2011 at 21:19:48 (UTC)
Goto Top
Halo,

nochmal eine Frage, du hattest das Skript schon mal lokal per gpedit.msc in der Computerkonfiguration als Startskript gesetzt und das hat funktioniert?
Mitglied: 98345
98345 Mar 10, 2011 at 08:26:12 (UTC)
Goto Top
Guten Morgen,

ich habe alles noch einmal getestet. Heute klappt es ohne Probleme.
Als Admin und als Benutzer.
Allerdings mit einer Änderung zu gestern.
Die Datei nic.vbs habe ich an den gleichen Ort wie die nic.bat abgelegt. In die Sysvol Freigabe.

Verstehe ich nicht ganz, da auf die andere Freigabe (für verteilte Software) die Zugriffsrechte passen. Vielleicht habe ich einen Fehler in der Pfadangabe gemacht. Aber das werde ich in Ruhe prüfen.

Ich Danke Dir für Deine Unterstützung und investierte Zeit.
Werde den Beitrag auf gelöst setzen.


Gruss