roniku
Goto Top

Anmeldescripte unter Windows 7

Hallo,

in unserem Windows Netzwerk mit Hauptsächlich XP Rechnern verwende ich folgende Zeile in den Anmeldescripten,
um die IP-Adresse zu ermitteln, und daraus den Standort zu ermitteln:

for /f \"Tokens=2 Delims= skip=1\" %%i in (\'ping -n 1 %computername%\') do set ipadress=%%i
if /i %ipadress:~8,3% == 122 goto paris
if /i %ipadress:~8,3% == 121 goto london
if /i %ipadress:~8,3% == 120 goto rom

usw.
Die Standorte haben einen eigenen, unterschiedlichen IP-Adress-Bereich.

Nun haben wir erste Windows 7 Clients. Und gerade die sind \"wandernde Benutzer\" (Notebook) wo dieser Scriptteil sehr wichtig ist.
Bei den Win 7 Clients funktioniert diese Batchzeile nicht.

Wer kann helfen.

Möchte erstmal nicht mit GPO arbeiten.

Vielen Dank.
R. Kusch

Content-Key: 159186

Url: https://administrator.de/contentid/159186

Printed on: May 4, 2024 at 19:05 o'clock

Mitglied: 60730
60730 Jan 21, 2011 at 23:35:03 (UTC)
Goto Top
Salü,

so ganz kann das Script aber auch unter XP nicht funktionieren...

Da sind ein paar (alle) \ zuviel (falsch) und dafür ein -4 (um ipv6 auszuschliessen) zuwenig.

Auch die Abfrage mit /i ist etwas überflüssig - den Unterschied zwischen a und A könnte man ja so herausfinden, aber bei ZahlenZiffern?
Warum überhaupt mit einer Schleife?

if /i "%logonserver%"=="\\%computername%" echo kein DC gefunden  
if /i "%logonserver%"=="\\dcparis" echo Bienvenue a Paris  
if /i "%logonserver%"=="\\dclondon" echo welcome to London  
if /i "%logonserver%"=="\\dcrom" echo Benvenuti a Roma  

wobei da die /i genauso überflüssig sind - aber Sinn machen "könnten"

Gruß
Member: roniku
roniku Jan 24, 2011 at 08:07:02 (UTC)
Goto Top
Hallo,

vielen Dank für die Antwort.
Doch, genau das funktioniert so.
Die erste Zeile ist zum indentifizieren der IP-Adresse.
Und genau danach möchte ich den Standort erkennen, da es auch Standorte ohne DC gibt.
Die Indendifizierung nach DC's mache ich zur Zeit als Notlösung.
Wenn ein Standort jedoch keinen DC hat, meldet der Rechner sich an irgendeinen an, und das gibt Probleme.

Das Script läuft so schon einige Jahre verlässlich in unserem Netzwerk.
Das Problem ist also die erste Scriptzeile.

Grüsse
R. Kusch
Mitglied: 60730
60730 Jan 24, 2011 at 08:55:26 (UTC)
Goto Top
Salü,

bitte überprüfe dein Script mit dem geposteten Teil und lese - was ich dir geschrieben habe.
^^UNd was das Script machten sollte - das ist uns doch klar.

for /f \"Tokens=2
kann so nicht funktionieren

skip=1
ist leicht überflüssig face-wink

Nimm zum Test mal:

for /f "Tokens=2 Delims=" %i in ('ping -n 1 -4 %computername%') do if not defined ipadress set ipadress=%i  

UNd bitte verschiebe deine Frage in den Bätsch & Shell Bereich - da gehört Sie hin.
Gruß
Member: miniversum
miniversum Jan 24, 2011 at 18:48:03 (UTC)
Goto Top
Der Vollständigkeit halber noch die Version ohne "if not defined":
for /f "Tokens=2 Delims=" %i in ('ping -n 1 -4 %computername% ^| find /i "%computername%"') do set ipadress=%i
Member: roniku
roniku Jan 24, 2011 at 19:21:31 (UTC)
Goto Top
Hallo,

vielen Dank für Eure Hilfe, das Problem ist gelöst.
Habe noch ein bischen probiert und die Zeile ergänzt:

for /f "Tokens=2 Delims=" %%i in ('ping -n 1 -4 %computername% ^| find /i "%computername%"') do set ipadress=%%i

So funktioniert sie auch in einem Batch (sonst nur direkt in der Eingabeaufforderung).
Alle Clients können so wieder das gleiche Anmeldescript verwenden.

Grüsse
R. Kusch