Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Werte (IPs) aus Excel-Datei suchen, finden und in andere datei kopieren

Frage Microsoft

Mitglied: ufo2012

ufo2012 (Level 1) - Jetzt verbinden

02.11.2009 um 10:33 Uhr, 5725 Aufrufe, 12 Kommentare

Hallo,

ich muss in meinem Netzwerk alle Subnetzmasken ändern und hatte mir überlegt, da ich die IPs in einer Exceldatei habe, irgendwie eine Batchdatei zu erstellen, die diese Inhalte sucht und in eine Datei schreibt. ich hätte mit netsh interface ip set address name="LAN-Verbindung" source=static addr=192.168.52.42 mask=255.255.255.0 die Subnetzmasken der ca. 160 Pcs geändert. Also mit einem Skript könnte ich mir vielleicht viel Arbeit sparen. Danach hätte ich die neuen Skripte per GPO verteilt.
Ein weiteres problem ist, dass in der Exceldatei die PCs nach Gebäude sortiert sind und diese in den Tabellen wieder zu finden sind. (Eine Tabelle=ein Geäude).

Vielen Dank für Eure Hilfe jetzt schon einmal


mfg
heiko
Mitglied: bastla
02.11.2009 um 11:15 Uhr
Hallo ufo2012!

Deine Beschreibung ist ziemlich herbstlich (ich zumindest seh' nicht so richtig durch den Nebel) ...

Zumindest irgendeine Art von Struktur müsste doch in Deinen Exceldaten zu erkennen (und demnach auch zu beschreiben) sein.

Im Übrigen ist auch der geplante Ablauf der Aktion nicht nachvollziehbar: Wie/wo willst Du den Batch starten, wie soll die neue Maske aussehen (wenn nicht einheitlich: nach welchem Schema soll die Zuordnung erfolgen), ...

Grüße
bastla
Bitte warten ..
Mitglied: ufo2012
02.11.2009 um 11:25 Uhr
Sorry der Kaffee war heute schwach,

also nochmals von vorne.
Ich habe eine Exceldatei mit allen IPs der Pc. Diese ist aufgeteilt in Tabellen, die Gebäuden zugeordnet sind.
Jetzt kommt mein Problem: Wie kann ich ein Skript erstellen um diese Information abzugreifen und dann für jeden einzelnen PC eine eigene GPO erstellen zu können? Ich muss die Subnetzmaske aller PCs ändern.

Also kurz gesagt, ich bräuchte viele Batchdatei mit den IP Addressen der PCs aus der Exceltabelle, die ich dann manuell in GPOs packen kann.

Danke nochmals
Bitte warten ..
Mitglied: bastla
02.11.2009 um 11:37 Uhr
Hallo ufo2012!

Wäre es nicht einfacher, per "StartUp"-Script jeden Rechner seine IP auslesen (Stichwort: "ipconfig" oder, besser, "WMI") und damit die Einstellung neu setzen zu lassen? Eine "Rückmeldung" könnte durch ein
echo %date%;%time%;%computername%;%ausgeleseneIP% >> \\Server\Share\ChangeSubnetMask.log
in eine Logdatei geschrieben werden (mit ";" als Trennzeichen ließe sich diese auch wieder in Excel importieren) ...

[Edit] Bessere Variante für das Auslesen:
netsh interface ip dump|findstr "mask"|findstr "LAN-Verbindung"
Der entsprechende Einzeiler, um die Änderung durchzuführen, könnte so aussehen (Demo am Prompt - wegen des echo wird der netsh-Befehl nur angezeigt, nicht ausgeführt):
for /f "tokens=1-5 delims==" %a in ('netsh interface ip dump^|findstr "mask"^|findstr """LAN-Verbindung"""') do @echo netsh interface ip %a=%b=%c=%d=neueMaske
Mit (angedeutetem) Logging:
for /f "tokens=1-5 delims==" %a in ('netsh interface ip dump^|findstr "mask"^|findstr """LAN-Verbindung"""') do @echo netsh interface ip %a=%b=%c=%d=neueMaske && @for /f %i in ("%d") do @echo Computer: %computername%;IP: %i
[Edit 2] Zusätzliche Anführungszeichen für konkrete Suche nach "LAN-Verbindung" (und nícht zB "LAN-Verbindung 2") nachgetragen [/Edit 2]
[/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: ufo2012
02.11.2009 um 13:38 Uhr
Hallo bastla,

erstmals vielen Dank für die schnelle Antwort und die tolle Lösung.
Leider klappt das nicht so wie Du dir das sicher gedacht hast nicht so.

Der Fehler kommt prompt:
Ich habe Dein Ansatz umgeschrieben:

netsh interface ip dump|findstr "mask"|findstr "LAN-Verbindung"
for /f "tokens=1-5 delims==" %a in ('netsh interface ip dump^|findstr "mask"^|findstr "LAN-Verbindung"') do @echo netsh interface ip %a=%b=%c=%d=255.255.0.0 && @for /f %i in ("%d") do @echo Computer: %computername%;IP: %i
pause


Danach spuckt er dies aus:

D:\test>netsh interface ip dump | findstr "mask" | findstr "LAN-Verbindung"

set address name="LAN-Verbindung" source=static addr=166.1.37.42 mask=255.255.255.0
"a" ist syntaktisch an dieser Stelle nicht verarbeitbar.
D:\test>for /f "tokens=1-5 delims==" a=c=i in (" GERS2008007;IP: i



Zwei Bitten habe ich da noch. Kannst Du bitte nur kurz die oben genannten Schritte erklären? Und ich hätte doch gerne gewußt, wie ich Felder aus einer Exceldatei rausziehen kann. Das wäre super.


Danke Dir.

grüßle
heiko
Bitte warten ..
Mitglied: bastla
02.11.2009 um 14:04 Uhr
Hallo ufo2012!

In einem Batch müssen Laufvariable einer "for"-Schleife immer mit doppelten Anführungszeichen geschrieben werden, daher:
01.
netsh interface ip dump|findstr "mask"|findstr "LAN-Verbindung" 
02.
for /f "tokens=1-5 delims==" %%a in ('netsh interface ip dump^|findstr "mask"^|findstr "LAN-Verbindung"') do @echo netsh interface ip %%a=%%b=%%c=%%d=255.255.0.0 && @for /f %%i in ("%%d") do @echo Computer: %computername%;IP: %%i 
03.
pause
Die Schritte:
Da
netsh interface ip dump
zuviel Information (ev auch für mehrere Netzwerkadapter) liefert, muss gefiltert werden - mit
netsh interface ip dump|findstr "mask"^|findstr """LAN-Verbindung"""
(die zusätzlichen Anführungszeichen - trage ich oben auch noch nach - um "LAN-Verbindung" herum sorgen dafür, dass eine "LAN-Verbindung 2" ebenfalls aussortiert wird) werden nur noch jene Zeilen (sollte ja nur noch eine sein) weiterverarbeitet, die die Begriffe "mask" und "LAN-Verbindung" beinhalten.

Anhand der in dieser Zeile enthaltenen "=" kann eine Aufteilung in die 5 Teile ("Tokens") %%a bis %%e vorgenommen werden. Diese Teile werden dann (bis auf den letzten Teil mit der Subnetmaske) wieder kombiniert und durch die gewünschte Maske ergänzt.

Um die IP auslesen zu können, muss der vierte Teil (%%d enthält lt Deinem Beispiel "166.1.37.42 mask") nochmals zerlegt werden (das Leerzeichen, das hiefür benötigt wird, ist ein Standardtrennzeichen und muss nicht angegeben werden, ebenso wird ohne anderweitige Angabe immer das erste Token, hier also alles vor dem ersten Leerzeichen, zurückgegeben) - in %%i steht dann die IP-Adresse.

Die Verknüpfung der beiden Befehle mit "&&" soll schließlich im "Ernstfall" dafür sorgen, dass die Ausgabe der Daten in die Logdatei nur erfolgt, wenn der "netsh"-Befehl mit einem Errorlevel 0 (also ohne Fehler) beendet wurde.
Zum Auslesen einer Excel-Datei mit Batch:
Das ist zunächst eigentlich nur über ein VBScript (und dann kannst Du das Ganze gleich aus Excel heraus per VBA abfackeln) oder den Umweg über (da mehrere Tabellen) mehrere Textdateien (TAB-delimited oder CSV) möglich, und dann müssen immer noch Kriterien dafür vorliegen, was denn nun als IP-Adresse zu interpretieren ist (deshalb auch oben der Hinweis auf die Struktur) - per RegEx ließen sich zwar vermutlich die Adressen auch extrahieren, aber das ganze Verfahren wäre mE unnötig kompliziert (da würde ich noch eher die Daten in Excel zusammenkopieren und ggf per Sortierung eine Liste der Adressen erzeugen).

Grüße
bastla
Bitte warten ..
Mitglied: ufo2012
02.11.2009 um 14:48 Uhr
Super! Funktioniert echt toll.
Langsam verstehe ich netsh.

Vielen Dank bastla.


Noch ein Kleinigkeit: Kann man damit auch das Gateway ändern? Ich muss dafür ein Bsp geben. Ist kompliziert bei uns. Und zwar haben wir noch viele verschiedene Netze, aber weisen auf ein Gateway nur zu (166.1.37.1). Das ist das Problem bei z.B. Symantec Endpoint Protection 11 (routingprobleme). Deshalb wollen wir diese Gateways ändern, wenn unser neuer Router kommt. Zur Zeit haben wir z.B. IPs: 166.1.51.41 255.255.255.0 Gw:166.1.37.1.
Microsoft verträgt das, als übergang wollen wir aus diesem Netz ein B netzmachen, zwar unschön, aber ist ja nur übergangsweise.
Ich hoffe es ist verständlich was ich da versucht habe zu erklären/fragen.

danke nochmals

grüßle

heiko
Bitte warten ..
Mitglied: bastla
02.11.2009 um 16:07 Uhr
Hallo ufo2012!

Freut mich, dass es soweit klappt.

Zum Thema "Gateway setzen": Schau Dir einfach das (ungefilterte) Ergebnis von
netsh interface ip dump
an - dann brauchst Du vermutlich noch nicht einmal
netsh interface ip /?
Grüße
bastla
Bitte warten ..
Mitglied: ufo2012
02.11.2009 um 16:31 Uhr
Hallo bastla,

ich habe mich doch etwas kompliziert ausgedrückt
Ich wollte die Gateway ändern und zwar so dass z.B. von der Ip: 166.1.52.41 Gateway 166.1.37.1 auf ip 166.1.52.41 und dem neuen Gateway 166.1.52.1 zugewiesen wird

geht das auch so schön wie die Subnetmasks?

schönen Abend

grüßle

heiko
Bitte warten ..
Mitglied: bastla
02.11.2009 um 16:37 Uhr
Hallo ufo2012!
netsh interface ip set address name="LAN-Verbindung" gateway=166.1.52.1 gwmetric=0
tut's nicht?

Grüße
bastla
Bitte warten ..
Mitglied: ufo2012
03.11.2009 um 07:42 Uhr
Guten Morgen bastla,

nochmals Danke für die immer schnelle Antwort.
Jetzt will ich das noch ein bißchen schwieriger machen indem der wie im Beispiel oben sich die IP nimmt und dem entsprechend das Gateway anpasst. Im Klartext,

Gegeben PC1: Ip: 166.1.52.41 Gateway 166.1.37.1
Soll: netsh interface ip set address name="LAN-Verbindung" gateway=166.1.52.1 gwmetric=0

Gegeben PC2: Ip: 166.1.28.46 Gateway 166.1.37.1
Soll: netsh interface ip set address name="LAN-Verbindung" gateway=166.1.28.1 gwmetric=0

Kann man beim 3ten Byte eine Variable setzen in diese dann für an das 3te vom Gateway setzen?

Jetzt hol ich mir erst einmal noch nen Kaffee, ich hoffe es war ein bißchen verständlich, was ich da frage

mfg
Bitte warten ..
Mitglied: bastla
03.11.2009 um 11:29 Uhr
Hallo ufo2012!

Sollte etwa so gehen:
for /f "tokens=1-5 delims==" %%a in ('netsh interface ip dump^|findstr "mask"^|findstr "LAN-Verbindung"') do for /f "tokens=1-4 delims=. " %%i in ("%%d") do echo netsh interface ip set address name="LAN-Verbindung" gateway=166.1.%%k.1 gwmetric=0
Grüße
bastla
Bitte warten ..
Mitglied: ufo2012
03.11.2009 um 14:01 Uhr
Danke bastla,

damit hast Du uns sehr geholfen. Funktioniert einwandfrei!!

Bis zum nächsten mal.


grüßle
heiko
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Wert in einer TXT Datei suchen
Frage von nolle99Batch & Shell11 Kommentare

Hallo Leute Ich habe ein Problem Ich habe mir von meiner Seite alle URLs in einer TXT gespeichert (30.000 ...

Microsoft Office
Excel Zellinhalte aus einer Datei in eine andere Excel Datei kopieren und auch aktualisieren
gelöst Frage von Rene1976Microsoft Office4 Kommentare

Hallo, bis jetzt habe ich immer eine Referenz von einer Excelzelle aus einer Datei in eine andere Excelzelle einer ...

Batch & Shell
Dateien suchen, kopieren und sortieren
Frage von BAD1HORBatch & Shell6 Kommentare

Hallo, folgendes Problem: Dateien, die auf einem Laufwerk monatsweise in Ordnern abgelegt sind, sollen per Batch auf ein anderes ...

Batch & Shell
In einer Datei nach Wert suchen und nummerischen Wert wiedergeben.
gelöst Frage von trallerBatch & Shell4 Kommentare

Hallo, ich kann ja unter Linux mit einen Suchbegriff in einer Datei suchen und als Variable festlegen. Wie bekomme ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...