Script in Abhängigkeit der IP
Siehe BEitrag: https://www.administrator.de/index.php?content=166689
Kann man ein Script schreiben indem in abhängigkeit der IP- Netzwerkbereiches aktionen ausgeführt werden.
Leider funktioniert der Befehl %logonserver% nicht da beide Server von den Clients (gesehen) werden.
Worinn sich die Netzwerke unterscheiden ist jedoch die IP.
if %IP% 10.2.*.* goto DC1
if %IP% 10.3.*.* goto DC2
vereinfacht ausgedrückt
Kann man ein Script schreiben indem in abhängigkeit der IP- Netzwerkbereiches aktionen ausgeführt werden.
Leider funktioniert der Befehl %logonserver% nicht da beide Server von den Clients (gesehen) werden.
Worinn sich die Netzwerke unterscheiden ist jedoch die IP.
if %IP% 10.2.*.* goto DC1
if %IP% 10.3.*.* goto DC2
vereinfacht ausgedrückt
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 01.06.2011 um 06:35:31 Uhr
Originaltitel "Script in abhängikeit der IP" angepasst.
Content-ID: 167133
Url: https://administrator.de/forum/script-in-abhaengigkeit-der-ip-167133.html
Ausgedruckt am: 24.12.2024 um 13:12 Uhr
14 Kommentare
Neuester Kommentar
Hallo "Siehe BEitrag: http",
Gruß, (auch an "vereinfacht ausgedrückt")
Peter
Zitat von @Quickly0815:
Kann man ein Script schreiben indem in abhängigkeit der IP- Netzwerkbereiches aktionen ausgeführt werden
vereinfacht ausgedrückt
Ja.Kann man ein Script schreiben indem in abhängigkeit der IP- Netzwerkbereiches aktionen ausgeführt werden
vereinfacht ausgedrückt
Gruß, (auch an "vereinfacht ausgedrückt")
Peter
auch dir
- keinen Gruß - kostet ja Zuschlag und grade am Sonntag muß es schnell gehen
- den Tipp die Suchmaschine anzuwerfen.
Kann man ein Script schreiben indem in abhängigkeit der IP- Netzwerkbereiches aktionen ausgeführt werden.
- ja und siehe suchfunktion wurde das auch schon x mal gemacht
Leider funktioniert der Befehl %logonserver% nicht da beide Server von den Clients (gesehen) werden.
- Da %logonserver% eine Variable ist und kein Befehl....
vereinfacht ausgedrückt
so siehts aus.Zitat von @Quickly0815:
Danke für die überaus hilfreichen Kommentare:
Aber leider ist nicht jeder als Admin auf die Welt gekommen daher auch mein Level "Frischling"
Was natürlich alles entschuldigt...Danke für die überaus hilfreichen Kommentare:
Aber leider ist nicht jeder als Admin auf die Welt gekommen daher auch mein Level "Frischling"
aber ich dachte das jeder der sich hier tummelt erkennt das ich den Befehl IF mit der Variable ...... meine
... und ich dachte wohl - genauso wie pjodorf, dass der doppelte Wink mit dem Zauhnpfahl vereinfacht 0815mäßig....Nur damit ihr nicht glaubt ich hätte nicht gesucht.
merke - nur weil einer sich nach einem deutschen Nachriegsmopped mit 0815 suffix und dann auch noch Grußlos als Frischling hier auftaucht, bedeutet es noch lange nicht, dass er die Suchfunktion benutzt... (wie war das mit der einen Ausname, der eine Zahl im Nick hat?)
Die Antwort auf alle Fragen == 42
Zitat von @Quickly0815:
Hallo Timo
Verzeih die etwas barsche art, aber ich hätte meine Kiste vor lauter wut am liebsten in die Ecke geworfen:
Hallo Timo
Verzeih die etwas barsche art, aber ich hätte meine Kiste vor lauter wut am liebsten in die Ecke geworfen:
- Dafür kann die Kiste doch nix und in dem Fall muß man ja noch froh sein, dass du dich nicht zum schämen in die Ecke gestellt hast.
kann man in der IP auch einen Platzhalter einbauen wie: 192.168.*.*
ping -n 1 %computername%|find "192.168." && echo 192.168
btw:
goto ohneAD
echo Fehler, unbekannter Anmeldeserver, keine Laufwerke und Drucker werden verbunden
echo Fehler, unbekannter Anmeldeserver, keine Laufwerke und Drucker werden verbunden
Vielleicht wäre es ja mal Zeit, dass du dein Stillschweigen, welches Ziel das ganze haben soll etwas lüftest....
Denn das vommt mir spanischer als das gejammere von Alfons O. vor.
Also ohne Herrn TimoBell nahe treten zu wollen:
Mit einem Ping würde ich es nicht lösen. Wenn sich alle Rechner am Netz anmelden am morgen und ich einen Ping loslaufen lasse, dann habe ich erstmal Traffic. Klar kann man sagen, für diese Lösung und warum das jetzt so tragisch nehmen.
Es ist eine Grundeinstellung. Wenn man einmal so eine Lösung macht, dann macht man die immer und am Schluss hat man einen riesen Brei.... Hier sollte man immer sauber arbeiten.
Also sorry Timo... das ist nicht persönlich, aber wäre nicht mein Weg....
So Quickly... ich kenne dich ja schon von dem anderen Thread, da tauchte die Frage schon auf wegen dem DC. Erstmal zur Erklärung. Scheinbar arbeitest du mit richtigen AD Standorten über eine Domäne. Wenn das so ist, dann können beide DCs gesehen werden.
Deine Idee mit der IP-Adresse ist ganz nett, hat aber auch ein paar Denkfehler. Wenn ein Client beispielsweise mehrere IP-Adressen hat oder das Standardgateway im selben Netz liegt, dann hilft die Form erstmal so nicht weiter:
Ein Beispiel:
Führe auf dem Command-Prompt folgendes aus: ipconfig|find /i "10.2." >%temp%\IP.txt
Ich habe mich bei der IP mal nach dir gerichtet. Dann könnte folgendes bei dem Befehl
type %temp%\ip.txt
herauskommen:
IPv4-Adresse . . . . . . . . . . : 10.2.1.1
Standardgateway . . . . . . . . . : 10.2.1.250
Das soll natürlich nur ein Beispiel sein.
Auch das oben genannte Problem würde sich lösen lassen, dann müßte man nur mehr abfangen, aber gehen wir jetzt einfachheitshalber mal davon aus, dass die Rechner entweder nur eine Netzwerkkarte haben oder diese Netzwerkarten sich dann in andere Netze befinden würden und die Rechner sind alle Windows 7 Clients. (Dann ist die Textung gleich). Wie gesagt, alles andere geht auch, ist nur etwas komplexer, aber soll das mal erklären:
Dann könntest du folgendes machen:
ipconfig|find /i "IPv4-Adresse" >%temp%\ip.txt
type %temp%\ip.txt|find /i "10.2" >%temp%\ip2.txt
Nach diesem Beispiel solltest du zumdinest schon die Zeile der IP-Adresse isoliert haben. Jetzt mußt du aus dem String nur noch diese extrahieren.
Bitte nicht falsch verstehen, das ist nur Ansatz und soll nur beispielhaft zeigen, was geht und auf was du achten sollst. Im Batch würde ich es anders schreiben. Aber grundsätzlich geht was du vorhast, nur eben mußt du die Bedingungen beachten.
Mit einem Ping würde ich es nicht lösen. Wenn sich alle Rechner am Netz anmelden am morgen und ich einen Ping loslaufen lasse, dann habe ich erstmal Traffic. Klar kann man sagen, für diese Lösung und warum das jetzt so tragisch nehmen.
Es ist eine Grundeinstellung. Wenn man einmal so eine Lösung macht, dann macht man die immer und am Schluss hat man einen riesen Brei.... Hier sollte man immer sauber arbeiten.
Also sorry Timo... das ist nicht persönlich, aber wäre nicht mein Weg....
So Quickly... ich kenne dich ja schon von dem anderen Thread, da tauchte die Frage schon auf wegen dem DC. Erstmal zur Erklärung. Scheinbar arbeitest du mit richtigen AD Standorten über eine Domäne. Wenn das so ist, dann können beide DCs gesehen werden.
Deine Idee mit der IP-Adresse ist ganz nett, hat aber auch ein paar Denkfehler. Wenn ein Client beispielsweise mehrere IP-Adressen hat oder das Standardgateway im selben Netz liegt, dann hilft die Form erstmal so nicht weiter:
Ein Beispiel:
Führe auf dem Command-Prompt folgendes aus: ipconfig|find /i "10.2." >%temp%\IP.txt
Ich habe mich bei der IP mal nach dir gerichtet. Dann könnte folgendes bei dem Befehl
type %temp%\ip.txt
herauskommen:
IPv4-Adresse . . . . . . . . . . : 10.2.1.1
Standardgateway . . . . . . . . . : 10.2.1.250
Das soll natürlich nur ein Beispiel sein.
Auch das oben genannte Problem würde sich lösen lassen, dann müßte man nur mehr abfangen, aber gehen wir jetzt einfachheitshalber mal davon aus, dass die Rechner entweder nur eine Netzwerkkarte haben oder diese Netzwerkarten sich dann in andere Netze befinden würden und die Rechner sind alle Windows 7 Clients. (Dann ist die Textung gleich). Wie gesagt, alles andere geht auch, ist nur etwas komplexer, aber soll das mal erklären:
Dann könntest du folgendes machen:
ipconfig|find /i "IPv4-Adresse" >%temp%\ip.txt
type %temp%\ip.txt|find /i "10.2" >%temp%\ip2.txt
Nach diesem Beispiel solltest du zumdinest schon die Zeile der IP-Adresse isoliert haben. Jetzt mußt du aus dem String nur noch diese extrahieren.
Bitte nicht falsch verstehen, das ist nur Ansatz und soll nur beispielhaft zeigen, was geht und auf was du achten sollst. Im Batch würde ich es anders schreiben. Aber grundsätzlich geht was du vorhast, nur eben mußt du die Bedingungen beachten.
Du kannst mal folgendes Tool ausprobieren:
http://robkennedy.com/wp-content/uploads/2011/05/myip.1.0.final_.window ...
Das Tool installiert sich unter: C:\Program Files (x86)\RobKennedy.com\myIP
Wechsle in das Verezichnis und rufe folgenden Befehl auf:
myip -adapter -ip4 -localonly
Vielleicht hilft dir das weiter. Wenn es das ist, brauchst du die Ausgabe nur in eine Variable packen.
http://robkennedy.com/wp-content/uploads/2011/05/myip.1.0.final_.window ...
Das Tool installiert sich unter: C:\Program Files (x86)\RobKennedy.com\myIP
Wechsle in das Verezichnis und rufe folgenden Befehl auf:
myip -adapter -ip4 -localonly
Vielleicht hilft dir das weiter. Wenn es das ist, brauchst du die Ausgabe nur in eine Variable packen.
moin,
Das sehe ich fast genauso...
- ist leicht abgekupferter Schmarren durchs Knie in den Kopf geschossen
der reinen Lehre nach /? (und ich sitze mal wieder vor einem Mac...)
Last but not least:
In einem richtig geplanten und eingerichteten Netzwerk - kann nur durch den Ausfall eines Standortdcs ein anderer DC aus einem anderen Standort den netlogon machen.
Das die sich theoretisch sehen ist bedingung - aber bedeutet nur im Worstcase etwas.
Und nochmal - das scheint ein Loginskript werden zu wollen - und ein loginscript liegt üblicherweise auf dem Server - macht das meiste also ......
..nix genaues schreibt er ja nicht.
Zitat von @linkit:
Also ohne Herrn TimoBell nahe treten zu wollen:
Mit einem Ping würde ich es nicht lösen. Wenn sich alle Rechner am Netz anmelden am morgen und ich einen Ping loslaufen
lasse, dann habe ich erstmal Traffic. Klar kann man sagen, für diese Lösung und warum das jetzt so tragisch nehmen.
Es ist eine Grundeinstellung. Wenn man einmal so eine Lösung macht, dann macht man die immer und am Schluss hat man einen
riesen Brei.... Hier sollte man immer sauber arbeiten.
Also sorry Timo... das ist nicht persönlich, aber wäre nicht mein Weg....
Also ohne Herrn TimoBell nahe treten zu wollen:
Mit einem Ping würde ich es nicht lösen. Wenn sich alle Rechner am Netz anmelden am morgen und ich einen Ping loslaufen
lasse, dann habe ich erstmal Traffic. Klar kann man sagen, für diese Lösung und warum das jetzt so tragisch nehmen.
Es ist eine Grundeinstellung. Wenn man einmal so eine Lösung macht, dann macht man die immer und am Schluss hat man einen
riesen Brei.... Hier sollte man immer sauber arbeiten.
Also sorry Timo... das ist nicht persönlich, aber wäre nicht mein Weg....
Das sehe ich fast genauso...
- Ein einzelner "normaler" Ping - ohne Big Paket und Trallala - auf seinen eigenen Rechner - wessen Netz das nicht aushält, der hat ganz andere Sorgen.
- dein Ansatz - via doppeltem temp Files zu werkeln - wäre dagegen schon eher "brei"
type %temp%\ip.txt|find /i "10.2" >%temp%\ip2.txt
der reinen Lehre nach /? (und ich sitze mal wieder vor einem Mac...)
find "10.2" %temp%\ip.txt>%temp%\ip2.txt
- Bei zahlen gibts kein /i
- typen auch flüssiger als flüssig.
Bitte nicht falsch verstehen, das ist nur Ansatz und soll nur beispielhaft zeigen, was geht und auf was du achten sollst. Im Batch würde ich es anders schreiben.
- nochmal - fast das gleiche gilt auch bei meinen Beispielen - und wenn du es im Batch anders schreiben würdest - warum machst du es dann nicht gleich?
Last but not least:
Vielleicht wäre es ja mal Zeit, dass du dein Stillschweigen, welches Ziel das ganze haben soll etwas lüftest....
Denn das vommt mir spanischer als das gejammere von Alfons O. vor.
Denn das vommt mir spanischer als das gejammere von Alfons O. vor.
Leider funktioniert der Befehl %logonserver% nicht da beide Server von den Clients (gesehen) werden.
Das die sich theoretisch sehen ist bedingung - aber bedeutet nur im Worstcase etwas.
Und nochmal - das scheint ein Loginskript werden zu wollen - und ein loginscript liegt üblicherweise auf dem Server - macht das meiste also ......
..nix genaues schreibt er ja nicht.
Hallo Timo,
natürlich macht man das nicht mit doppelten Textfiles. Das habe ich auch geschrieben, dass man das in der Batchdatei anders machen würde. Aber ich versuche erstmal den Ansatz von dem Scheriber aufzunehmen und mit den beiden einfachen Befehlen deutlich zu machen. In den beiden Textdateien kann man dann reinsehen (deswegen auch der Type) und sieht, was geschrieben wurde bzw. was passierte.
Mit den DCs ist das nicht nur theoretisch bedingt. Wenn einer ausfällt, dann möchte ich das genauso sicherstellen, als wenn dieser da wäre.
Dem Loginskript ist erstmal egal wo es liegt, denn die Abfrage würde trotzdem auf dem Client ausgeführt werden. Grundlegend gäbe es noch die Möglichkeit das ganze über die Gruppenrichtlinien zu machen. Das Skript kann man mit dem WMI Filter auch in Abhängigkeit des Standortes starten.
Letzter Punkt ist Ping: Es geht nicht darum, ob das Netz das aushält oder nicht. Da sehe ich schon den Wiederspruch zum sauber konfigurierten Netz. In einem sauber konfigurierten Netz macht man solche Übungen nicht. Es wird sozusagen dadurch impliziert.
natürlich macht man das nicht mit doppelten Textfiles. Das habe ich auch geschrieben, dass man das in der Batchdatei anders machen würde. Aber ich versuche erstmal den Ansatz von dem Scheriber aufzunehmen und mit den beiden einfachen Befehlen deutlich zu machen. In den beiden Textdateien kann man dann reinsehen (deswegen auch der Type) und sieht, was geschrieben wurde bzw. was passierte.
Mit den DCs ist das nicht nur theoretisch bedingt. Wenn einer ausfällt, dann möchte ich das genauso sicherstellen, als wenn dieser da wäre.
Dem Loginskript ist erstmal egal wo es liegt, denn die Abfrage würde trotzdem auf dem Client ausgeführt werden. Grundlegend gäbe es noch die Möglichkeit das ganze über die Gruppenrichtlinien zu machen. Das Skript kann man mit dem WMI Filter auch in Abhängigkeit des Standortes starten.
Letzter Punkt ist Ping: Es geht nicht darum, ob das Netz das aushält oder nicht. Da sehe ich schon den Wiederspruch zum sauber konfigurierten Netz. In einem sauber konfigurierten Netz macht man solche Übungen nicht. Es wird sozusagen dadurch impliziert.
moin linkit,
sei mir nicht böse -aber ...
Der "Scheriber" von dem Schnippsel ipconfig |find "1, wäre ich und ich sehe da bei Verwendung von Ziffern keine Veranlassung /i einzusetzen.
dann ist es nicht egal, wo es liegt...
Ich vermute du hast 1.001 bessere Ideen und alle schon komplett so durchexerziert, dass du hier die 1.002 Variante postest - ohne - es sei denn du hast eine bessere Kristallkugel oder PN - zu wissen, was das denn sein werden soll.
btw:
Zuerst nehmen wir üblicherweise die einfachen Geschosse, erst wenn Spatzen kommen holen wir die große |Kanone
Darf ich widerschreiben?
btw2: Dein Vorschlag wäre ja ein Trittpartybrettfahrertool - da nehm ich lieber den OnboardJoker und bin dann draussen.
sei mir nicht böse -aber ...
Der "Scheriber" von dem Schnippsel ipconfig |find "1, wäre ich und ich sehe da bei Verwendung von Ziffern keine Veranlassung /i einzusetzen.
Dem Loginskript ist erstmal egal wo es liegt, denn die Abfrage würde trotzdem auf dem Client ausgeführt werden.
Jein, wennin dem Script sowas steht:echo Fehler, unbekannter Anmeldeserver, keine Laufwerke und Drucker werden verbunden
Ich vermute du hast 1.001 bessere Ideen und alle schon komplett so durchexerziert, dass du hier die 1.002 Variante postest - ohne - es sei denn du hast eine bessere Kristallkugel oder PN - zu wissen, was das denn sein werden soll.
btw:
Zuerst nehmen wir üblicherweise die einfachen Geschosse, erst wenn Spatzen kommen holen wir die große |Kanone
Da sehe ich schon den Wiederspruch zum sauber konfigurierten Netz. In einem sauber konfigurierten Netz macht man solche Übungen nicht.
- in einem sauber konfigurierten Netz macht das OS im Hintergrund noch ganz andere Sachen, und Üben tun wir ja nicht.
btw2: Dein Vorschlag wäre ja ein Trittpartybrettfahrertool - da nehm ich lieber den OnboardJoker und bin dann draussen.
- es ging u.a darum, dass - wenn wir dir einen Weg zeigen, dieser möglichst "einfach" sein sollte.
Hier mein Vorhaben:
Wir haben ca. 30 Client alle Win7, 2 DC mit win 2008 R2 die über VPN-SSL Repliziert werden.
Wir haben ca. 30 Client alle Win7, 2 DC mit win 2008 R2 die über VPN-SSL Repliziert werden.
- was wird da repliziert - dfs all inclusive oder nur netlogon?
Ich hätte jetzt gerne ein Anmeldescript für Mobile User die in Abhängikeit des jeweiligen Standorts bestimte Drucker und Netzfreigaben zugewiesen bekommen
- Und so, wie ich deinen Ansatz verstanden habe, willst du das auf den Clients speichern - sonst macht das mit dem kein Netz ja keinen sinn.
Unsere Files werden z.B. immer auf LW D: gemappt, nur liegen die Files am einen Standort auf einem Fileserver und am anderen Standort direkt auf dem DC
Er könnte natürlich immer das gleiche Laufwerk behalten, wenn er jedoch nicht in seinem Stamm-Standort ist ladet er alle
Files über die 2Mbit SDSL Leitung, von seinem DC, was bei teilweisen 1GB-Großen Files nicht lustig ist.
Files über die 2Mbit SDSL Leitung, von seinem DC, was bei teilweisen 1GB-Großen Files nicht lustig ist.
also kein dfs?
:parameter
setlocal
set server=
tracert -h 1 SDC01 |find "10.2.1.250" && set "server=SFileserver"
if "%logonserver%"=="\\%computername%" echo falls das Script lokal gespeichert wäre und noch kein vpn Tunnel aufgesetzt ist - dann...
if "%server%"=="" set "server=SDC01"
:map
net use d: %server%\freigabe.
wobei man nun beim nächsten Weg wäre - wenn Tracert über das Gateway laufen muß - dann ist das Ziel nicht im gleichen Netz.
Dabei und weil es schneller geht - hilft es den Abschnitt auf 1. zu setzen - der Rest wird nicht angezeigt (braucht man auch nicht)
Das ganze setzt dir eine Variable und die nimmst du dann im ganzen Script.
Gruß