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:
Nun gehe ich halt hin und schaue wie die LAN-Verbindung heißt, um diese händisch einzugeben. Da ich mir über netsh mit:
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
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 289779
Url: https://administrator.de/contentid/289779
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
3 Kommentare
Neuester Kommentar
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 , 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
Hallo Toni.
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 ...
Grüße
rubberman
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 daC:\>wmic nic where netenabled=true get NetConnectionID /format:list
NetConnectionID=Drahtlosnetzwerkverbindung
C:\>
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 ...
Grüße
rubberman