Jump to content
Sign in to follow this  
MrCocktail

SBS2003 - Problem mit Login Script

Recommended Posts

Ich habe ein kleines Problem mit einem Login Script, ja nach Rechner sollen die entsprechenden Drucker gemappt werden, die Auswahl per IF und computername funktioniert aber leider nicht (mehr?).

 

Das Script sieht wie folgt aus:

\\SERVER\Clients\Setup\setup.exe /s SERVER
if /i %computername==server GOTO END

rem ** Alle Netzlaufwerke der Clients werden geloescht **
net use * /delete /y

rem **  Mapping der Laufwerke, die allen zur Verfuegung stehen **
net use f: \\192.168.6.2\server_daten
net use Y: \\192.168.6.2\Daten
rem ** Netzlaufwerke hinzufuegen

if /i %computername==server GOTO END

rem **  Alle Netzwerkdrucker der Clients werden geloescht **
\\Server\Server_Daten\con2prt.exe /f

rem ** Der Hauptdrucker wird auf allen Clients hinzugefuegt **
rundll32 printui.dll,PrintUIEntry /in /n \\server\Drucker1


rem ** Sprung zu den Clients und Zuweisung der benoetigten Drucker**
if /i "%computername"=="PC1" goto PC1
if /i "%computername"=="PC2" Goto PC2
if /i "%computername"=="PC3" Goto END

:PC1
rundll32 printui.dll,PrintUIEntry /in /n \\server\Drucker2
rundll32 printui.dll,PrintUIEntry /in /n \\server\A3
GOTO END

:PC2
rundll32 printui.dll,PrintUIEntry /in /n \\server\Drucker3
rundll32 printui.dll,PrintUIEntry /in /n \\server\A3
GOTO END

:END
rem ** Der default Drucker wird gesetzt **
\\Server\Server_Daten\con2prt.exe /cd "\\Server\Drucker1"

 

Es wird immer der PC1 abgearbeitet und dann erfolgt der Sprung an das Ende. Jemand eine Idee?

Share this post


Link to post
Share on other sites

Hi,

 

wenn du Variablen abfragst dann werden diese komplett in % gesetzt.

 

echo %computername% liefert den aktuellen Computername, echo %computername gibt auch %compuername als Wert aus.

Share this post


Link to post
Share on other sites

Stimmen die Bedingungen für den Sprung, die Sprünge (noch), wurde da etwas verändert, wirkt das noch?

 

Wurde das Auführen des Skriptes schon mal beobachtet, Pause(s) eingefügt.

 

Setze mal ein Pause eine Zeile unter die letzte Sprungbedingung!

Share this post


Link to post
Share on other sites
....@lefg:

Leider kann ich das nicht nachvollziehen.

 

Solch ein Programm testet man sozusagen schritt-, abschnitts-, blockweise, setzt dafür Unterbrechungen, Pausen ein, der Befehl dafür heisst Pause.

 

Um zu Prüfen, ob überhaupt eine Bedingung zutrifft, was in der Variablen steht, es zu einem Sprung kommt, ein Pause des Blocks oder hinter die Vergleichsoperation.

 

rem ** Sprung zu den Clients und Zuweisung der benoetigten Drucker**
if /i "%computername"=="PC1" Pause
if /i "%computername"=="PC2" Goto PC2
if /i "%computername"=="PC3" Goto END
Pause

 

Gehört die Variable überhaupt in Anführungszeichen? Ich meine nein, nur der Vergleichsstring wird darin gefasst, anstelle von == verwendet man equ; schaue dir mal if /? an oder die Hilfe dazu.

 

Bei einem schweren Syntaxfehler beendet der der Komandoprozessor die Batch ohne warnung und Erklärung.

Share this post


Link to post
Share on other sites

@lefg:

Mit ich kann es nicht nachvollziehen, war gemeint, ob etwas geaendert wurde, nicht wie man ein debugging im Script durchfuehrt.

 

Der Hinweis von XP Fan war goldrichtig, vorne und hinten das Prozentzeichen und es geht, danke dennoch für deine Mühe

Share this post


Link to post
Share on other sites
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...