d4shoernchen
Goto Top

Interface-Namen auslesen, in Variable einspeichern und weiterverwenden

Moin Kollegen,

ich bräuchte mal Eure Hilfe.

Ich habe eine kleine Batch-Datei, mit der ich statische Routen auf einem PC setze und die IP-Konfiguration vornehmen möchte. Da diese Arbeiten an ca. 50 Clients getätigt werden müssen (Gruppenrichtlinien etc. gehen nicht), möchte ich das mit der Batch beschleunigen.

Im Moment sieht das Ganze bei mir so aus:
set /p interface=Interfacenamen eingeben:
set /p ip_alt=Alte IP (letztes Oktett) eingeben:
set /p ip_neu=Neue IP (letztes Oktett) eingeben:

netsh interface ipv4 set address name=%interface% source=dhcp
netsh interface ipv4 set address name=%interface% source=static address=192.168.XXX.%ip_alt% mask=255.255.255.0 gateway=192.168.XXX.XXX store=persistent
netsh interface ipv4 add address "%interface%" 172.XX.XXX.%ip_neu% 255.255.0.0  

[...]

Nun gehe ich halt hin und schaue wie die LAN-Verbindung heißt, um diese händisch einzugeben. Da ich mir über netsh mit:
netsh interface ip show interfaces
aber die verbundenen Interfaces anzeigen lassen kann, habe ich überlegt, ob man dieses auch via Batch auslesen kann (ausgenommen das Interface mit der ID 1, weil Loopback Pseudo-Interface) und in die Variable interface speichern kann?

Dann hätte ich noch eine weitere Frage, kann man über die Batch-Datei auch eine RDP-Verknüpfung auf dem Desktop des jeweiligen Benutzers anlegen und dort schon die Anmeldedaten (Servername, etc.) hinterlegen?

Vielen Dank.

Viele Grüße
Toni

Content-ID: 289779

Url: https://administrator.de/forum/interface-namen-auslesen-in-variable-einspeichern-und-weiterverwenden-289779.html

Ausgedruckt am: 22.12.2024 um 11:12 Uhr

114757
Lösung 114757 01.12.2015, aktualisiert am 11.12.2015 um 07:47:00 Uhr
Goto Top
for /f "tokens=2 delims==" %%a in ('wmic nic where netenabled^=true get NetConnectionID /format:list ^| findstr /i "NetConnectionID"') DO set "interface=%%a"  
Dann hätte ich noch eine weitere Frage, kann man über die Batch-Datei auch eine RDP-Verknüpfung auf dem Desktop des jeweiligen Benutzers anlegen und dort schon die Anmeldedaten (Servername, etc.) hinterlegen?
RDP-Dateien sind reine Textdateien, sollte also kein Problem sein die zu Erzeugen face-wink, einfach die Endung ändern. Öffne eine RDP einfach mal mit Notepad ...
Passwörter kannst du dort jedoch nicht hinterlegen, die gehören in den Windows-Tresor. Diese kannst du mit CMDKey hinterlegen.

Gruß jodel32
d4shoerncheN
d4shoerncheN 01.12.2015 um 14:16:19 Uhr
Goto Top
Hallo Jodel,

das mit der RDP-Verbindung hat super funktioniert. Bzgl. Passwort, das ist nicht so wichtig. Das können die Benutzer ruhig selber eintragen.

Das mit der Verbindung habe ich noch nicht ganz verstanden, also den oberen Teil.

Viele Grüße
Toni
rubberman
Lösung rubberman 01.12.2015, aktualisiert am 11.12.2015 um 07:47:02 Uhr
Goto Top
Hallo Toni.

Das mit der Verbindung habe ich noch nicht ganz verstanden, also den oberen Teil.
Führe mal den WMIC Part in einem CMD Prompt aus. Bei meinem Fritten-WLAN erscheint da
C:\>wmic nic where netenabled=true get NetConnectionID /format:list


NetConnectionID=Drahtlosnetzwerkverbindung




C:\>
In der FOR /F Schleife wird am = getrennt und die 2. Hälfte der Variablen zugewiesen.
Die Pipe an FINDSTR ist eine Besonderheit für WMIC. Wie du oben siehst, gibt es eine Reihe von Leerzeilen. Leider sind die buggy. Es sind nicht die normalen Windows Zeilenumbrüche <CR><LF>, sondern <CR><CR><LF>. Das heißt, die vermeintlichen Leerzeilen sind gar nicht leer, sondern enthalten ein (nicht sichtbares) <CR>. Deshalb wird oft mit FINDSTR gefiltert.
Andererseits ... hier wird das zweite Token hinter einem = zugewiesen. Das kommt nur in einer Zeile vor. Ergo funktioniert es in diesem Fall auch ohne FINDSTR. Naja, die üblichen Abgründe von Windows-Batch eben ... face-wink

Grüße
rubberman