maschder 10 Geschrieben 13. September 2003 Melden Teilen Geschrieben 13. September 2003 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 Zitieren Link zu diesem Kommentar
auer 10 Geschrieben 13. September 2003 Melden Teilen Geschrieben 13. September 2003 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 Zitieren Link zu diesem Kommentar
Netranger 10 Geschrieben 15. September 2003 Melden Teilen Geschrieben 15. September 2003 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. Zitieren Link zu diesem Kommentar
Viewer 10 Geschrieben 15. September 2003 Melden Teilen Geschrieben 15. September 2003 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... Zitieren Link zu diesem Kommentar
klausk 10 Geschrieben 15. September 2003 Melden Teilen Geschrieben 15. September 2003 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. Zitieren Link zu diesem Kommentar
auer 10 Geschrieben 15. September 2003 Melden Teilen Geschrieben 15. September 2003 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 Zitieren Link zu diesem Kommentar
Netranger 10 Geschrieben 16. September 2003 Melden Teilen Geschrieben 16. September 2003 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". Zitieren Link zu diesem Kommentar
klausk 10 Geschrieben 16. September 2003 Melden Teilen Geschrieben 16. September 2003 Ich überprüfe immer auf die Existenz des Verzeichnisses "%windir%\csc": if exist %windir%\csc\. goto win2k Zitieren Link zu diesem Kommentar
maschder 10 Geschrieben 17. September 2003 Autor Melden Teilen Geschrieben 17. September 2003 Vielen Danke für Eure Hilfe. Werde jetzt kräftig ausprobieren! viele Grüße maschder Zitieren Link zu diesem Kommentar
vlu 10 Geschrieben 4. Dezember 2003 Melden Teilen Geschrieben 4. Dezember 2003 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 Zitieren Link zu diesem Kommentar
nospoon 10 Geschrieben 5. Dezember 2003 Melden Teilen Geschrieben 5. Dezember 2003 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. Zitieren Link zu diesem Kommentar
dieseyer 10 Geschrieben 5. Dezember 2003 Melden Teilen Geschrieben 5. Dezember 2003 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 Zitieren Link zu diesem Kommentar
Nick22 11 Geschrieben 5. Dezember 2003 Melden Teilen Geschrieben 5. Dezember 2003 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.