Jump to content

Anmeldeskript Terminalserver


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

Wir haben Citrix Metaframe XP laufen, unsere Administratoren wollen auch von zuHause aus Arbeiten! Mir ist gesagt worden das 99% der Abstürze bzw. Fehler bei Citrix, ein Druckerproblem ist! Also Automatische Druckerzuordnung Deaktivieren! Das habe ich nun gemacht, nun will ich über ein Script, mittels der variablen %clientname% den Drucker abfragen!

 

//

@echo on

cls

net time \\10.49.10.13 /set /yes

net use p: /d

net use p: \\opidata\public

net use g: /d

net use g: \\opidata\edv

net use h: /d

net use h: \\opidata\%username%

 

echo %clientname%

pause

 

if %clientname%=="FIRMENWS" goto firma

if %clientname%=="LOU" goto home

 

:firma

rem -- Drucker verbinden --

rundll32 printui.dll,PrintUIEntry /in /n"\\FIRMA\fs600edw"

rundll32 printui.dll,PrintUIEntry /in /n"\\FIRMA\fs600edv"

rem -- Standarddrucker setzen --

rundll32 printui.dll,PrintUIEntry /y /n"\\FIRMA\fs600edv"

goto weiter

 

:home

rem -- Drucker verbinden --

rundll32 printui.dll,PrintUIEntry /in /n"\\LOU\fs680"

rem -- Standarddrucker setzen --

rundll32 printui.dll,PrintUIEntry /y /n"\\LOU\fs680"

goto weiter

 

:weiter

pause

//

 

aber es ist egal, welches Client ankommt, es wird IMMER die :firma routine durchgespielt :/

 

Kann mir jmd helfen?

 

MfG Marius

Link zu diesem Kommentar

Die if-Ausdrücke müssen lauten:

 

if "%clientname%" == "FIRMENWS"

 

Wenn man das Script ohne Anführungszeichen verwendet, werden beide Abfragen verneint und es wird einfach die nächste Zeile ausgeführt - zufälligerweise der Firmenpart.

 

Wäre %clientname% nicht gesetzt, so würde bei fehlenden Anführungszeichen ein nicht auswertbarer Ausdruck (if == "") entstehen, deshalb diese Syntax.

 

Test von Scripts - immer ohne @echo off - dann werden solche Dinge im Output sichtbar.

 

Falls es mit der Groß/Kleinschreibung Schwierigkeiten gibt, kann man besser

 

echo "%clientname%" | find /i /c "FIRMENWS"

if "%errorlevel%" == "0"

 

verwenden, das /i bei find ignoriert.

 

---------

Gruß, Auer

Link zu diesem Kommentar

Hallo auer,

 

das mit den "" funktioniert, besten Dank!!

 

könntest du mir das mit

 

//

Falls es mit der Groß/Kleinschreibung Schwierigkeiten gibt, kann man besser

 

echo "%clientname%" | find /i /c "FIRMENWS"

if "%errorlevel%" == "0"

 

verwenden, das /i bei find ignoriert.

//

 

noch einmal genauer erklären, ich kann dir da nicht so folgen ;) was machen die beiden Zeilen genau?

 

mfg Marius

Link zu diesem Kommentar

Das Problem besteht darin, daß die Gleichheitsabfrage bytegenau ist, "maier" ist also etwas anderes als "MAIER". Bei den Namen von Umgebungsvariablen wird Groß/Klein ignoriert, bei den Werten jedoch nicht. Setzt also jemand seine Variable %clientname% auf 'FirmenWS', so enthält das Script einen ziemlich versteckten Fehler, nach dem man lange suchen darf.

 

Dieses Problem läßt sich prinzipiell vermeiden, indem man mit echo %clientname% eine Ausgabe erzeugt und diese dem find übergibt, das mit dem /i - Parameter Groß/Klein ignoriert und die Variable %errorlevel% auf 0 bei gefundenem Wert, ansonsten auf 1 setzt. WinXP kennt zwar für den IF - Ausdruck ebenfalls einen /I (ignore) - Parameter, ich weiß allerdings nicht, ob dieser schon unter W2K vorhanden war - deshalb habe ich diese Version weggelassen.

 

-------

Gruß, Auer

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...