devtig
Goto Top

VBS - Drucker von Printserver via Script installieren

Hier zwei kleine Scripte zum installieren bzw. deinstallieren von Druckern, welche über einen Printserver bereitgestellt werden.

Drucker installieren:
Set objNetwork = CreateObject("WScript.Network")  
	objNetwork.AddWindowsPrinterConnection "\\PRINTSERVERNAME\DRUCKERNAME"  

	strDefaultPrinter = MsgBox("Set Printer DRUCKERNAME as default printer ?",vbYesNo + vbQuestion,"Default Printer...")  
	If strDefaultPrinter = vbYes Then
		objNetwork.SetDefaultPrinter "\\PRINTSERVERNAME\DRUCKERNAME"  
	End If

wscript.echo "DRUCKERNAME" & vbCrlf & "Printer successfully installed"  
wscript.Quit

Drucker deinstallieren:
Set objNetwork = CreateObject("WScript.Network")  
	objNetwork.RemovePrinterConnection "\\PRINTSERVERNAME\DRUCKERNAME"  

wscript.echo "DRUCKERNAME" & vbCrlf & "Printer successfully uninstalled"  
wscript.Quit

Viel Spaß beim Drucker installieren.

Content-Key: 122186

Url: https://administrator.de/contentid/122186

Printed on: April 23, 2024 at 12:04 o'clock

Member: bastla
bastla Aug 06, 2009 at 12:34:13 (UTC)
Goto Top
Hallo DevTig und willkommen im Forum!

Wenn in einem Script viermal eine Konstante ("DRUCKERNAME") vorkommt, wäre es empfehlenswert, diese auch als solche (oder auch als Variable) einzusetzen - macht's auf jeden Fall leichter wartbar.
Falls tatsächlich eine Rückfrage hinsichtlich "Default Printer" gewünscht ist, wäre diese vermutlich sinnvoller per "Popup" zu realisieren.
Zum "wscript.Quit" in der jeweils letzten Zeile: Was sollte denn das Script anderes tun als sich zu verabschieden? Insofern an dieser Stelle entbehrlich.

Grüße
bastla
Member: DevTig
DevTig Aug 06, 2009 at 12:51:57 (UTC)
Goto Top
Hi bastla,

erst mal Danke für das freundliche Willkommen.

Aber nun zum eigentlichen...

Die Variable ("DRUCKERNAME") zu setzen ist wie Du erwähnt hast wirklich sinnvoll.
Ebenso könnte man(n) - Frau auch - die Variable ("PRINTSERVERNAME") setzen.

Zum "Popup" - die MsgBox ist ist in diesem Fall ein "Popup" - siehe "strDefaultPrinter = MsgBox("Set Printer...." .

Und nun zum letzten Punkt. Ein explizites "WScript.Quit" kann auch bei selbst beendenden Scripts sinnvoll sein, da es schon vorgekommen sein soll, das Scripte keinen Ausstiegspunkt gefunden haben.

Aber alles in allem sollen diese Scriptbeispiele nur das sein was sie sind - Beispiele, welche auch von Script-Einsteigern verstanden werden sollen.

Sonnige Grüße

DevTig
Member: bastla
bastla Aug 06, 2009 at 12:54:40 (UTC)
Goto Top
Hallo DevTig!

"Popup" (mittlerweile mit Link face-wink) unterscheidet sich von einer "MsgBox" durch die Möglichkeit, nach Zeitablauf das Script fortzusetzen - bei Automatisierung (und darum geht es hier ja) sicherlich ein wichtiger Faktor ...

Aber alles in allem sollen diese Scriptbeispiele nur das sein was sie sind - Beispiele, welche auch von Script-Einsteigern verstanden werden sollen.
Kein Einwand - aber zumindest Punkt 1 sollte auch einem Einsteiger zumutbar sein ...

Grüße
bastla
Member: DevTig
DevTig Aug 06, 2009 at 15:05:07 (UTC)
Goto Top
@bastla:
Danke für die Idee.

Hier die Variante für die automatisierte Installation mit Popup.

strPrinterName = "DRUCKERNAME"  
strServerName = "PRINTSERVERNAME"  

Set objShell = CreateObject("WScript.Shell")  
Set objNetwork = CreateObject("WScript.Network")  
	objNetwork.AddWindowsPrinterConnection "\\" & strServerName & "\" & strPrinterName  

	strDefaultPrinter = objShell.Popup("Set Printer " & strPrinterName & " as default printer ?",5,"Default Printer...", 4 + 32)  
	If strDefaultPrinter = vbYes Then 
		objNetwork.SetDefaultPrinter "\\" & strServerName & "\" & strPrinterName  
	End If 	

wscript.Quit

Ansonsten kenne ich es so das ein Stockwerks oder Abteilungsdrucker direkt als Standard definiert wird, und das entsprechend ohne Abfrage gescripted wird.

Viel Spaß beim weiterentwickeln der Scripte.

Mit sonnigen Grüßen
Devtig
Member: bastla
bastla Aug 06, 2009 at 17:18:10 (UTC)
Goto Top
@DevTig
Ansonsten kenne ich es so das ein Stockwerks oder Abteilungsdrucker direkt als Standard definiert wird, und das entsprechend ohne Abfrage gescripted wird.
Deswegen auch meine Anmerkung oben ("Falls tatsächlich eine Rückfrage ...") ...

Grüße
bastla
Member: tobit-dlg
tobit-dlg Jan 17, 2017 at 09:20:14 (UTC)
Goto Top
Hallo zusammen,

ich finde Euer Skript sehr gut und will es gerne einsetzen. Wir haben allerdings vier Stockwerksdrucker mit unterschiedlichen Druckername.

Kann man vorher eine Dropdownliste zur Auswahl des Stockwerks aufnehmen, um dann den richtigen Drucker zu installieren?