Jump to content
Sign in to follow this  
maschder

Logon Scripts

Recommended Posts

Hallo Ihr,

 

wir haben eine gemischte Umgebung mit Win9x, NT4.0, Win2k und WinXP-Clients im Einsatz. Bestimmte Dateien müssen vom Server auf die Clients kopiert werden, z.T. in das windows bzw. das winnt- Verzeichnis. Momentan haben wir ein Script, wo alle möglichen Pfade angegeben werden. Nun wollen wir das sauber trennen, d.h. wenn sich z,B. ein Win98-Client anmeldet, soll es auch unter windows kopiert werden, und die anderen Pfade sollen nicht berücksichtigt werden.

Wie kann man das sauber in einem einzigen Script trennen? (Wenn win98, dann nimm diesen Pfad)

Gibt es irgendwo ausführliche Anleitungen darüber?

 

Über zahlreiche Antworten würde ich mich freuen!

 

maschder

Share this post


Link to post

Wenn das System in einer Umgebungsvariablen %running_system% drinsteht, kann man dies so machen:

 

 

if "%running_system%" == "win98" goto win98

if "%running_system%" == "w2k" goto w2k

goto end

 

:win98

REM Typische Befehle für w98

goto end

 

:w2k

REM Typische Befehle für w2k

goto end

 

:end

REM Scriptende

 

Hilfe zu den einzelnen Begriffen gibt es mit Befehl /?, alle Befehle mit help, ältere Systeme müssen Groß/Kleinschreibung beachten, bei XP gibt es dafür einen Schalter.

 

---------

Gruß, Auer

Share this post


Link to post

ich weiss ja net genau, ob ich da nen denkfehler habe.

aber unter win2k zumindest gibts die umgebungsvariable %running_system% nicht.

also wird die if-bedingung nie erfüllt werden.

Share this post


Link to post
Original geschrieben von Netranger

ich weiss ja net genau, ob ich da nen denkfehler habe.

aber unter win2k zumindest gibts die umgebungsvariable %running_system% nicht.

also wird die if-bedingung nie erfüllt werden.

 

Hi,

 

weiß zwar nicht ob es die Variable unter Win98 gibt, aber Du kannst es ja mal mit der Abfrage

 

if "%systemroot% "=="c:\windows\" goto...

Share this post


Link to post

Wenn es nur um das Windows-Verzeichnis geht, kannst Du auch die Variable %windir% anstelle von "C:\windows" bzw. "c:\winnt" verwenden.

Ansonsten kannst Du über die Variable "OS" das Betriebssystem ermitteln: IF %OS%==Windows_NT GOTO ...

 

Alternativ kannst Du Gruppen definieren und die PCs entsprechend hinzufügen, also W98 in die W98-Gruppe, W2k in die w2k-Gruppe, usw. Über "ifmember" kannst Du die Gruppen abfragen und hast damit auch die Unterscheidung der verschiedenen Betriebssysteme.

Share this post


Link to post

Es war natürlich so gemeint, sich eine spezielle Umgebungsvariable für die verschiedenen Clienttypen hinzuzubasteln, so daß diese ab der Installation fest existieren.

 

----------

Gruß, Auer

Share this post


Link to post

ok auer.

aber dann isses natürlich einiges einfacher, die schon existierende %windir% zu verwenden.

 

mal ne frage nebenbei:

läßt sich außer in der registry irgendwie herausfinden, ob ein system jetzt winnt oder win2k is?

weil die variable %OS% is ja unter winnt und win2k jeweils "Windows_NT".

Share this post


Link to post

Hi,

 

ich mache es immer über den DOS-Befehl "ver" ; Die Ausgabe wird per Pipe zum DOS-Befehl "find" geleitet,

"find" wiederum sucht in der Ausgabe nach dem übergebenen Parameter (in diesen Fall "Version 5") .

Bei Erfolg setzt "find" den ERRORLEVEL auf 0

Bei Mißerfolg setzt "find" den ERRORLEVEL auf 1.

 

 

<*.bat>

 

:: * zum debuggen einfach "ver" in der DOS-Box eingeben

 

 

:: /********** finde NT5x */

ver | find "Version 5"

 

:: /********** wenn nichts gefunden springe auf Standard NT4*/

@IF ERRORLEVEL 1 GOTO NT4

 

:: /********** wenn NT5x gefunden springen zu NT5*/

@IF ERRORLEVEL 0 GOTO NT5

 

:NT4

@ECHO NT4

GOTO ENDE

 

 

:NT5

@ECHO NT5

@GOTO ENDE

 

 

:ENDE

@PAUSE

 

</*.bat>

 

Viel Spass beim ausprobieren.

 

vlu

Share this post


Link to post

Welche Programmiersprache ist das eigentlich, mit der man diese Skripte programmier? Brauche ich dazu noch andere Programme oder ist alles in Win integriert? Wo finde ich eine gute online-Erklärung bzw. Dokumentation?

Würde mich auch gerne mal damit auseinander setzen...

 

Danke.

Share this post


Link to post

Hallo!

 

@maschder

Mit VBScript: für die Unterscheidung ob Win9x/ME oder WinNT/2k/Xp:

Version = "Win9x/ME"

If not "Windows_NT" = WScript.CreateObject("WScript.Shell").Environment("Process")("OS") then Version = "WinNT/2k/XP"

 

Oder ganz genau (mit Registry-Zugriff):

http://dieseyer.de/scr-html/winversp.html

 

@nospoon

Unter WinXX würde ich jetzt mit dieser Seite anfangen: http://dieseyer.de/dse-wsh-lernen.html

Share this post


Link to post

die umgebungsvariablen bei NT/2K und XP sind eigendlich identisch, desshalb reicht eigendlich eine abfrage, ob es ein winNT "basierendes" system ist oder nicht.

 

if %OS%==Windows_NT goto NT

 

rem hier fängt skript für win 9x und ME an

 

goto end

 

:NT

 

rem hier das skript für winNT/2k/XP

 

goto end

 

:end

 

 

um win9x/ME mit mehr variablen auszustatten (zb. %username%), kann ich dir das tool "putinenv.exe" empfehlen, das kann beim anmeldeskript einige sachen auslesen und packt die dann in die umgebungsvariablen.

 

anfang meiner skiptdatei:

 

if "%OS%"=="Windows_NT" goto WINNT

if exist %windir%\putinenv.exe goto WIN9X

 

copy \\server\NetLogon\putinenv.exe %windir%

 

:WIN9X

 

%windir%\putinenv.exe L

 

vielleicht konnte ich dir helfen

 

nick

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...