Jump to content
Sign in to follow this  
marka

NT & XP: Standarddrucker zurücksetzen Script

Recommended Posts

Hallöchen,

ich mal wieder mit einer Frage an die Scriptingprofis:

 

Wir setzen eine Branchensoftware ein, die fälschlicherweise den Standarddrucker verändert, wenn die Anwender z.B. von dem Netzwerkdrucker auf FreePDF umstellen.

 

Nun möchte ich den betroffenen usern ein Script an die Hand geben, dass den Stndarddrucker wieder zurückstellt.

 

Unsere Netzwerkdrucker sind größtenteils über zentrale Druckserver (Linux und W2K3) angebunden. Einige wenige sind lokal auf Standard IP-Ports installiert.

 

Entsprechend werden die Drucker dann auch z.B. "Monolaser_Versand an PRINTSRV02"

oder "Farblaser_Verwaltung an PRINTSRV01" angezeigt.

 

Im Zuge meiner Recherche bin ich auf diesen Beitrag gestoßen: https://www.mcseboard.de/windows-vista-forum-55/default-drucker-per-batch-datei-101096.html?highlight=Standarddrucker

 

Hier die Codeauszüge von lefg, auf die ich mich beziehe:

'VBS-Code
Dim net
Set net = CreateObject("WScript.Network")    
net.SetDefaultPrinter "HP LaserJet 5"

 

Auch als Batching hat lefg eine Lösung:

rundll32 printui.dll,PrintUIEntry /y /n "Drucker"

 

Nun besteht das Problem, dass die Netzwerkdrucker, die nicht als lokale IP-Ports gebunden sind, nicht von den Scripten erfasst werden.

Sprich "Monolaser_Versand an PRINTSRV02" führt zu einem Fehler, ebenso wenn ich als Drucker im Script "Monolaser_Versand" eintrage.

 

Ich bekomme dann die Fehlermeldung, dass der Drucker nicht existiert oder der Server nicht erreichbar. Aber beides ist definitiv nicht der Fall.

 

Wer kennt das Problem und hat ggf. einen Workaround?

Share this post


Link to post
Share on other sites

Probiers mal hiermit. Vielleicht Hilft Dir das weiter.

 

Dim WSHNetwork
Set WSHNetwork = CreateObject("WScript.Network")
WshNetwork.AddWindowsPrinterConnection "\\Server\Druckerfreigabe" 
WshNetwork.SetDefaultPrinter "\\Server\Druckerfreigabe"

Share this post


Link to post
Share on other sites

Hi,

 

nur mal so eine Idee:

Wieso lässt du die Drucker denn nicht alle übers Logonscript verbinden, dann sind die Namen auch garantiert überall gleich und du kannst die oben genannten Scripte nutzen.

 

Ich lösche im Logonscript erstmal alle Drucker auf den PCs und verbinde dann die jeweils benötigten Drucker (Abfrage auf Gruppen basierend).

 

Gruß

Chris

Share this post


Link to post
Share on other sites

@angoletti1:

Ich hatte, glaube ich, oben kurz beschrieben, dass eine Anwendung den Standarddrucker im laufenden Betrieb verändert.

Wenn z.B. ein Lieferschein als PDF generiert werden soll und der Anwender wählt den Drucker "freepdfXP" aus, dann wird dieser Drucker in Windows ab sofort zum Standarddrucker.

Und dies soll dann als Workaround, bis der Hersteller das gebugfixed hat, per Script wieder zurückgestellt werden.

 

Lösung entwickelt, danke an alle, insbes. lefg und Hanghuhn, dein Tip mit UNC-Pfad war es dann!

Ich habe das dann entsprechend wegen universeller Einsetzbarkeit mit Variablen ausgestattet und eine abschließende Popupmeldung eingebaut.

 

' Script zum Rücksetzen des Standarddruckers für Windows NT und XP
'
' How to:
' Bitte in Zeile 25 den Druckernamen eintragen. Der entsprechende
Drucker muss auf dem System schon installiert sein!
'Netzwerkdrucker bitte folgendermaßen eintragen:
\\<Servername>\<Druckername> .'
'Variablen definieren
Dim net
Dim defprinter
Dim copyright
defprinter = "\\<Servername>\<Druckername>" ' <-- Hier den Druckernamen
eintragen, Anführungsstriche stehen lassen.
copyright = "Scriptversion 1.0, 01|2007," & VbCr & "Erstellt von
Markus Kafurke, www.marka-it.net" & VbCr & "Publiziert im: www.mcseboard.de"
Set net = CreateObject("WScript.Network")
net.SetDefaultPrinter defprinter
Set Shell = CreateObject("WScript.Shell")
Meldung = "Folgender Drucker wurde erfolgreich als Standarddrucker
eingerichtet: '" &VbCr & defprinter &"'"& VbCr & VbCr & copyright
Shell.Popup Meldung, 10, "Standarddrucker geändert", vbOKOnly +
vbinformationGgf.

 

speichern als *.vbs ;)

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