Jump to content
Sign in to follow this  
duff

Drucker per Logon-Script (Batch) mappen

Recommended Posts

Hallo,

 

habe folgendes Problem:

 

Ich mappe die Drucker pro Abteilung per Logon-Script .CMD (Server: w2k3, Clients XP: 2000, NT), das im Druckerausschnitt wie folgt aussieht:

 

 

-----------------------------------------------------------------------------------

REM *** " Drucker werden gemappt" ***

 

rundll32 printui.dll,PrintUIEntry /in /n \\DWS1\ODV_1120

rundll32 printui.dll,PrintUIEntry /in /n \\DWS1\ODV_KFM1

rundll32 printui.dll,PrintUIEntry /in /n \\DWS1\ODV_LexE232

rundll32 printui.dll,PrintUIEntry /in /n \\DWS1\ODV_HP700

 

 

 

 

REM *** "Standard Drucker" ***

 

rundll32 printui.dll,PrintUIEntry /y /n \\DWS1\ODV_1120

 

-----------------------------------------------------------------------------------

 

Leider beschweren sich immer wieder die User, dass nach einem Reboot die Drucker allesammt wieder gemappt werden, das dauert unter Umständen in eingen Abteilungen mit vielen Druckern ein "bissel".

 

Ich habe mir jetzt überlegt ob man da nicht ne "IF" Abfrage mit machen kann? Also so ne Art :

 

"IF PRINTER \\DWS1\ODV_1120 EXIST GOTO IRGENDWAS"

 

Leider bin ich wirklich nicht der Batch oder Script Guru und das Googel spuckt auch nix aus, aber evtl. hat ja hier jemand ne Lösung.

 

Wäre echt Dankbar,

 

Gruss Duff

Share this post


Link to post

Hi,

 

habe gerade heute etwas ähnliches geschrieben, mit kixtart (http://www.kixtart.org).

 

Er prüft eine Workstation auf deren Namen und fügt dann einen entsprechenden Drucker ein und löscht einen anderen. Haben wir so gemacht, da wir unseren jetzigen printserver umbenennen und nicht auf allen Workstations die Pfade manuell ändern wollen.

Hier ein kleiner Ausschnitt aus dem Quellcode:

 

If @WKSTA = "hg3wk2kbecks" OR @WKSTA = "hg3wk2kfsand"

If AddPrinterConnection ("\\srvprinter\hpdj9650dev") = 0

? "Neuer Druckerpfad HP Deskjet 9650 wurde hinzugefügt..."

If SetDefaultPrinter ("\\srvprinter\hpdj9650dev") = 0

? "Der Standarddrucker wurde gesetzt..."

Endif

Endif

If DelPrinterConnection ("\\srvdata\hpdj9650dev") = 0

? "Alter Druckerpfad HP Deskjet 9650 wurde gelöscht..."

Endif

Endif

 

Wenn du noch Fragen hast, schreib einfach...

 

Gruß,

Whitewater

Share this post


Link to post

hi whitewater,

 

thx für deine antwort. ich werde mir das tool mal anschauen.

 

aber mein problem löst dein script ja nicht. soweit ich das nachvollziehen kann installiertst du mit dem script die neuen drucker und deinstallierst die alten drucker - das funzt mit meinem script auch. aber ich will nur dann den drucker installieren, wenn er noch nicht vorhanden ist.

 

ich habe mir schon überlegt wie ich evtl. registrywerte in dem batch abfragen kann - das geht aber scheinbar nur mit XP (reg.exe /?) - nicht aber mit 2000 und NT

 

naja - danke trotzdem. evtl gibt ja das tool was her was mit noch gefehlt hat.

 

 

gruss duff

Share this post


Link to post

hi duff,

 

für die überprüfung, ob der drucker bereits vorhanden ist, könntest du doch einen wert in der registry setzen. das geht mit ein paar kixtart befehlen auch sehr gut zu lösen.

 

gruß,

whitewater

Share this post


Link to post

hi,

 

habe mein Problem gelöst :D

 

nach etwas 'rumprobieren mit der Registry habe ich folgende Löung für mein Problem gefunden:

 

Ich habe die Datei "reg.exe" (Version 3.0) aus Windows XP in das "Netlogon" Verzeichnis eines Active-directory Domain Controllers kopiert, und folgende Zeilen in das Anmelde-Script geschrieben:

 

 

 

 

-----------------------------------------------------------------------------------

 

echo *** " Registry wird abgefragt und Drucker werden gemappt" ***

 

%logonserver%\netlogon\reg.exe query HKEY_CURRENT_USER\Printers\Connections\,,DWS1,ODV_1120

if errorlevel 1 rundll32 printui.dll,PrintUIEntry /in /n \\DWS1\ODV_1120

 

%logonserver%\netlogon\reg.exe query HKEY_CURRENT_USER\Printers\Connections\,,DWS1,ODV_KFM1

if errorlevel 1 rundll32 printui.dll,PrintUIEntry /in /n \\DWS1\ODV_KFM1

 

%logonserver%\netlogon\reg.exe query HKEY_CURRENT_USER\Printers\Connections\,,DWS1,ODV_LexE232

if errorlevel 1 rundll32 printui.dll,PrintUIEntry /in /n \\DWS1\ODV_LexE232

 

%logonserver%\netlogon\reg.exe query HKEY_CURRENT_USER\Printers\Connections\,,DWS1,ODV_HP700

if errorlevel 1 rundll32 printui.dll,PrintUIEntry /in /n \\DWS1\ODV_HP700

 

 

 

 

echo *** "Standard Drucker" ***

 

rundll32 printui.dll,PrintUIEntry /y /n \\DWS1\ODV_1120

 

------------------------------------------------------------------------------------

 

 

 

 

Das Programm "reg.exe" ist standrad mässig nur bei XP dabei, läuft aber auch unter 2000 und NT. Auch der Registry Pfad zu den Druckern ist gleich. Dadurch kann man das relativ flächendeckend nutzen.

"Reg.exe" gibts auch im Ressource Kit für NT4.0 - scheint aber ein ältere Version zu sein.

 

Wenn der Drucker schon gemappt ist, was ich über die ERrorlevel aus dem Prog "reg.exe" bekomme, überspringt er einfach den mapping Befehl. Wenn nicht zieht der mapping Befehl. Klappt Super!! :p

 

 

Ich setze wenn möglich eben gerne Boardmittel bzw. MS-Tools ein - Trotzdem Danke für den Tip mit Kixtart! :)

 

 

Gruss Duff

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