Login Scripts für Fortgeschrittene
Infos zu Loginscripten mit anlegen von Outlookprofilen und Signaturen
Dieses Script ist noch nicht fertig, ich stelle es aber trotzdem einmal Online vielleicht kann ich damit schon jemand helfen.
Echo OFF = Blendet nur Rückgabewerte der Befehle ein
Echo ON = Blendet alles ein
Erstellung von Kommentaren
Variablen deklaration
Sprungmarke
um Ergebnisse von aufrufen zu speichern
Beispiel 1
Beispiel 2
Dies ist sehr nützlich wenn man sich eine Dokumentation des Loginvorganges erstellen lassen will.
Durchsucht eine Datei oder Variable nach einem bestimmten Wert.
%Computername% = PC-Peter
So kann man z.B. den Benutzern von Notebooks die den Standort öfters wechseln:
Standort1 = 192.168.0.
Standort2 = 192.168.1.
Standort1 = Fileserver1
Standort2 = Fileserver2
verschiedene Login Scripte zuweisen ohne etwas umzustellen.
Dieses Script ist noch nicht fertig, ich stelle es aber trotzdem einmal Online vielleicht kann ich damit schon jemand helfen.
Allgemeine Befehle
Echo ON/OFF
Echo OFF = Blendet nur Rückgabewerte der Befehle einEcho ON = Blendet alles ein
REM
Erstellung von KommentarenREM ======Begin Login Script ========
SET
Variablen deklarationSET NAME=Ich bin der Peter
echo %Name%
Ich bin der Peter
GOTO
SprungmarkeREM START
GOTO PETER
REM ZIEL
:PETER
>/ >>
um Ergebnisse von aufrufen zu speichernBeispiel 1
Echo Peter > C:\Text.txt
REM Bei diesem Aufruf wird das Wort Peter in
REM die Datei C:\Text geschrieben, wenn die
REM Datei besteht wird jeglicher Inhalt gelöscht.
Echo Peter > C:\Text.txt
Echo Maria >> C:\Text.txt
REM Bei diesem Beispiel wird das Wort Peter in
REM der ersten Zeile und das Wort Maria in der
REM zweiten Zeile geschrieben.
Dies ist sehr nützlich wenn man sich eine Dokumentation des Loginvorganges erstellen lassen will.
findstr
Durchsucht eine Datei oder Variable nach einem bestimmten Wert.%Computername% = PC-Peter
SET >>"C:\computername.txt"
REM Speichert die Computervariablen in C:\computername.txt
findstr /C:"PC-" "C:\computername.txt"
REM Durchsucht die Datei C:\computername.txt nach dem Wert "PC-"
if not errorlevel 1 goto XYZ
Wenn "PC-" in der Datei vorkommt springt er an die stelle XYZ im Script
So kann man z.B. den Benutzern von Notebooks die den Standort öfters wechseln:
Standort1 = 192.168.0.
Standort2 = 192.168.1.
Standort1 = Fileserver1
Standort2 = Fileserver2
verschiedene Login Scripte zuweisen ohne etwas umzustellen.
ipconfig >"C:\ipconfig.txt"
REM schreibt die werte von IP Config in C:\ipconfig.txt
findstr /C:"192.168.0." "C:\ipconfig.txt"
if not errorlevel 1 goto Standort1
REM Durchsucht die Datei C:\ipconfig.txt nach dem Wert "192.168.0."! Wenn dieser vorkommt, springt er weiter zu Standort1
findstr /C:"192.168.1." "C:\ipconfig.txt"
if not errorlevel 1 goto Standort2
REM Durchsucht die Datei C:\ipconfig.txt nach dem Wert "192.168.1."! Wenn dieser vorkommt, springt er weiter zu Standort2
:Standort1
NET USE L: \\Fileserver1\Daten
exit
:Standort2
NET USE L: \\Fileserver2\Daten
exit
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 98761
Url: https://administrator.de/tutorial/login-scripts-fuer-fortgeschrittene-98761.html
Ausgedruckt am: 26.04.2025 um 03:04 Uhr
8 Kommentare
Neuester Kommentar

Zitat von @DocBrown:
Variablen deklaration
Hier würde ich noch Anmerken, dass bei deiner Variante die Anführungszeichen mit in der Variable deklariert sind. Wenn man die Anführungszeichen nicht mit in der Variable stehen haben möchte, können diese weggelassen werden.
SET
Variablen deklaration> SET NAME="Ich bin der Peter"
> echo %Name%
> "Ich bin der Peter"
>
++++ << / < / >/ >>
Wo erklärst du < und << ? Ich sehe leider nur > und >>.um Ergebnisse von aufrufen zu speichern
Echo Peter > C:\Text.txt
REM Bei diesem Aufruf wird das Wort Peter in
REM die Datei C:\Text geschrieben, wenn die
REM Datei besteht wird jeglicher Inhalt gelöscht.
Echo Peter >> C:\Text.txt
Echo Maria >> C:\Text.txt
REM Bei diesem Beispiel wird das Wort Peter in
REM der ersten Zeile und das Wort Maria in der
REM zweiten Zeile geschrieben.
ipconfig >"C:\ipconfig.txt"
REM schreibt die werte von IP Config in C:\ipconfig.txt
netsh interface ip dump
Außer den Anmerkungen sieht das aber ganz ordentlich aus.
MfG,
VW
... und wenn doch "ipconfig", dann vielleicht etwas abgekürzt:
oder noch kürzer (wenn tatsächlich nur ein Laufwerksmapping erfolgen soll):
Zu beachten wäre noch, dass es auch keines der beiden Netze sein könnte ...
Grüße
bastla
ipconfig|findstr /C:"192.168.0.">nul && (
REM Standort1
NET USE L: \\Fileserver1\Daten
goto :eof
)
ipconfig|findstr /C:"192.168.1.">nul && (
REM Standort2
NET USE L: \\Fileserver2\Daten
goto :eof
)
ipconfig|findstr /C:"192.168.0.">nul && (NET USE L: \\Fileserver1\Daten & goto :eof)
ipconfig|findstr /C:"192.168.1.">nul && (NET USE L: \\Fileserver2\Daten & goto :eof)
Grüße
bastla
Erst einmal danke für das Howto.
Wir nutzen unsere Firmennotebooks auch für private Zwecke und leider müsste ich dann für jeden Mitarbeiter ein seperates Script erstellen, da der zweite IP-Bereich meist unterschiedlich ist.
Da ich mich mit dem scripten nur annäherungsweise auskenne habe ich folgendes versucht:
Derzeit scheint alles Problemlos zu funktionieren.
Wir nutzen unsere Firmennotebooks auch für private Zwecke und leider müsste ich dann für jeden Mitarbeiter ein seperates Script erstellen, da der zweite IP-Bereich meist unterschiedlich ist.
Da ich mich mit dem scripten nur annäherungsweise auskenne habe ich folgendes versucht:
findstr /C:"192.168.0." "C:\ipconfig.txt"
if not errorlevel 1 goto Standort1
otherwise goto Standort2
Derzeit scheint alles Problemlos zu funktionieren.
@DerWoWusste
Der Hinweis auf %temp% ist sehr sinnvoll
...
... obwohl ich in diesem Fall (wie oben schon gezeigt) die Datei ganz weglassen und die Ausgabe von "ipconfig" direkt filtern/auswerten oder zumindest (wenn viele Möglichkeiten zu prüfen wären, also vermutlich sehr selten
) die IP in eine Variable anstelle der Datei schreiben würde:
Und um auch noch den Fall "mehrere IP-Adressen" abzudecken als Ersatz für die Zeile 1:
Grüße
bastla
Der Hinweis auf %temp% ist sehr sinnvoll
... obwohl ich in diesem Fall (wie oben schon gezeigt) die Datei ganz weglassen und die Ausgabe von "ipconfig" direkt filtern/auswerten oder zumindest (wenn viele Möglichkeiten zu prüfen wären, also vermutlich sehr selten
for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr /i "ip-adress"') do set IP=%%i
echo %IP%|findstr /c:"192.168.0.">nul && (NET USE L: \\Fileserver1\Daten & goto :eof)
echo %IP%|findstr /c:"192.168.1.">nul && (NET USE L: \\Fileserver2\Daten & goto :eof)
set IP=
for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr /i "ip-adress"') do call set IP=%%IP%%%%i
bastla