Name einer Netzwerkverbindung anhand dessen Adapterbeschreibung auslesen
Hallo zusammen,
habe wieder mal ein kleines Problem bei dem ich nicht weiter komme.
Ich möchte eine Netzwerkkarte per Batch parametrieren.
Generell bekomme ich das per "netsh" und dem entsprechenden Namen der Verbindung hin.
Allerdings ist es in dem Fall so, dass die Beschreibung immer gleich ist, aber der Name der Netzwerkverbindung variert.
Daher war meine Idee alle aktiven Karten auslesen um zu sehen ob die entsprechende dabei ist und diese dann im zweiten Durchlauf bzw. deren Namen auslesen zu können.
Das erste Auslesen habe ich über ein Skript, dass hier bereits schon vorgestellt wurde hinbekommen.
In der Log-Datei stehen nun alle Adapter, nur ich weiß nicht wie ich über die Beschreibung an den Namen der Verbindung komme.
Auf dem Bild ist die Beschreibung des Adapters "Netgear ..."
Über diese Beschreibung will ich nun, dass der Name der Verbindung - in dem Fall "WLan - Karte" ausgegeben wird.
Hat da jemand von euch eine Idee?
Danke schon mal ...
GW
habe wieder mal ein kleines Problem bei dem ich nicht weiter komme.
Ich möchte eine Netzwerkkarte per Batch parametrieren.
Generell bekomme ich das per "netsh" und dem entsprechenden Namen der Verbindung hin.
Allerdings ist es in dem Fall so, dass die Beschreibung immer gleich ist, aber der Name der Netzwerkverbindung variert.
Daher war meine Idee alle aktiven Karten auslesen um zu sehen ob die entsprechende dabei ist und diese dann im zweiten Durchlauf bzw. deren Namen auslesen zu können.
Das erste Auslesen habe ich über ein Skript, dass hier bereits schon vorgestellt wurde hinbekommen.
@Echo Off & Setlocal
Set "Log=F:\Active_cards.txt"
Echo Active card adapter:>"%Log%"
For /f "tokens=2 delims=:" %%i In ('ipconfig /all^|findstr "Beschreibung"') Do Set "Name=%%i" & Call :WriteCards
Goto :EOF
:WriteCards
echo %Name:~1%>>"%Log%"
In der Log-Datei stehen nun alle Adapter, nur ich weiß nicht wie ich über die Beschreibung an den Namen der Verbindung komme.
Auf dem Bild ist die Beschreibung des Adapters "Netgear ..."
Über diese Beschreibung will ich nun, dass der Name der Verbindung - in dem Fall "WLan - Karte" ausgegeben wird.
Hat da jemand von euch eine Idee?
Danke schon mal ...
GW
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 190023
Url: https://administrator.de/contentid/190023
Ausgedruckt am: 08.11.2024 um 07:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo Ghost-Worker,
ich hab es diesmal wirklich glaub mir!!!
Mit dem Programm hat wohl nicht so richtig funktioniert, aber nun:
Diese Workstations mit den Dual GB Lan Karten sind doch zu einem LAG oder was auch immer zusammen geschlossen und hängen an einem Switch und Du willst nicht alles zu Fuß erledigen, richtig?
Du gehst an den Switch (mittels Verwaltungssoftware) und schaust einfach dort nach, mit welchen zwei Karten immer ein nennen wir es mal LAG aufgesetzt wurde denn ein LAG hat nun mal immer zwei Enden, dann schaust Du mit dem Programm nach welchen Hostnamen diese Rechner haben und welche IP´s sie besitzen und dann gehst Du noch einmal an das Script um für diesen Adapter die Parametrierung zusetzen, auch wenn
mehrere Karten in der Workstation verbaut sind, macht das ja jetzt nichts mehr aus, denn Du hast ja nun die MAC adressen und die sind/sollten nun mal einmalig sein.
Ich hoffe das war was diesmal.
P.S.
Ein netstat -r zeigt Dir die Routingtabelle der Workstation an, aber diese beginnt immer mit der Schnittstellenliste!
Adaptername und Mac Adresse
Routingtabelle
Schnittstellenliste
0x1 ...00 1b 21 70 ec c7 ...... Intel(R) PRO/1000 GT Desktop Adapter
Ein zweiter Befehl Hostname bringt Dir den Hostnamen derselben Workstation
nun muss das Script das alles nur noch in eine Datei schreiben und an Dich oder Deinen PC zurückschicken.
ich hab es diesmal wirklich glaub mir!!!
Mit dem Programm hat wohl nicht so richtig funktioniert, aber nun:
Diese Workstations mit den Dual GB Lan Karten sind doch zu einem LAG oder was auch immer zusammen geschlossen und hängen an einem Switch und Du willst nicht alles zu Fuß erledigen, richtig?
Du gehst an den Switch (mittels Verwaltungssoftware) und schaust einfach dort nach, mit welchen zwei Karten immer ein nennen wir es mal LAG aufgesetzt wurde denn ein LAG hat nun mal immer zwei Enden, dann schaust Du mit dem Programm nach welchen Hostnamen diese Rechner haben und welche IP´s sie besitzen und dann gehst Du noch einmal an das Script um für diesen Adapter die Parametrierung zusetzen, auch wenn
mehrere Karten in der Workstation verbaut sind, macht das ja jetzt nichts mehr aus, denn Du hast ja nun die MAC adressen und die sind/sollten nun mal einmalig sein.
Ich hoffe das war was diesmal.
P.S.
Ein netstat -r zeigt Dir die Routingtabelle der Workstation an, aber diese beginnt immer mit der Schnittstellenliste!
Adaptername und Mac Adresse
Routingtabelle
Schnittstellenliste
0x1 ...00 1b 21 70 ec c7 ...... Intel(R) PRO/1000 GT Desktop Adapter
Ein zweiter Befehl Hostname bringt Dir den Hostnamen derselben Workstation
nun muss das Script das alles nur noch in eine Datei schreiben und an Dich oder Deinen PC zurückschicken.
Hallo Ghost-Worker!
Versuch's mal damit:
Angegeben werden muss nur ein eindeutiger Bestandteil des Namens - falls es dennoch mehrere Treffer gibt, wird allerdings nur der letzte als Ergebnis geliefert ...
Grüße
bastla
Versuch's mal damit:
@echo off & setlocal
set "Name=NETGEAR"
set "G=%temp%\GetID.vbs"
>"%G%" echo Set Items=GetObject("winmgmts:\\.\root\CIMV2").ExecQuery("SELECT * FROM Win32_NetworkAdapter Where Name Like '%%%Name%%%'"):For Each Item In Items:WScript.Echo Item.NetConnectionID:Next
for /f "delims=" %%i in ('cscript //nologo "%G%"') do set "ID=%%i"
del "%G%"
echo %ID%
Grüße
bastla
Hallo Ghost-Worker!
Leider kann ich Dir nicht sagen, warum "TEAM : Team#0" nicht gefunden wird - gesucht wird jedenfalls nach einem zum Inhalt der Variablen passenden Teilstring. Wenn Du genau nach %Name% suchen willst (also nicht nur nach Namen, in denen %Name% enthalten ist), müsste Zeile 5 so aussehen:
Grüße
bastla
Leider kann ich Dir nicht sagen, warum "TEAM : Team#0" nicht gefunden wird - gesucht wird jedenfalls nach einem zum Inhalt der Variablen passenden Teilstring. Wenn Du genau nach %Name% suchen willst (also nicht nur nach Namen, in denen %Name% enthalten ist), müsste Zeile 5 so aussehen:
>"%G%" echo Set Items=GetObject("winmgmts:\\.\root\CIMV2").ExecQuery("SELECT * FROM Win32_NetworkAdapter Where Name = '%Name%'"):For Each Item In Items:WScript.Echo Item.NetConnectionID:Next
bastla