Jump to content
Sign in to follow this  
lou

Anmeldeskript Terminalserver

Recommended Posts

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

Share this post


Link to post

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

Share this post


Link to post

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

Share this post


Link to post

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

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...