duff 10 Geschrieben 6. September 2004 Melden Teilen Geschrieben 6. September 2004 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 Zitieren Link zu diesem Kommentar
Whitewater 10 Geschrieben 7. September 2004 Melden Teilen Geschrieben 7. September 2004 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 Zitieren Link zu diesem Kommentar
duff 10 Geschrieben 7. September 2004 Autor Melden Teilen Geschrieben 7. September 2004 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 Zitieren Link zu diesem Kommentar
Whitewater 10 Geschrieben 8. September 2004 Melden Teilen Geschrieben 8. September 2004 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 Zitieren Link zu diesem Kommentar
duff 10 Geschrieben 8. September 2004 Autor Melden Teilen Geschrieben 8. September 2004 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 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.