Verschiedene Methoden einen Drucker per Script zu verbinden.
Con2Prt.exe
Zu Windows NT Zeiten brachte Microsoft das Zero Administration Kit (ZAK) heraus. Dieses beinhaltete das Programm con2prt.exe. Bis Server 2008R2, bzw. bis Windows 10, habe ich das Programm erfolgreich eingesetzt, um Drucker über Logonscripte oder ein kleines AutoIt-Programm zu verbinden. Inzwischen kann man die Drucker auch über Gruppenrichtlinien verbinden. Wer eine Alternative sucht ist hier aber richtig.
Nutzung:
Die Exe Datei im Netlogon Verzeichnis ablegen, dann im Script/Programm
\\domain.name\Netlogon\con2prt /c \\Druckserver\FreigabenameDesDruckers /q
Das Programm gibt es hier zum Download (Nutzung auf eigene Gefahr).
Drucker auf Windowsebene verbinden
Wenn der Benutzer nicht in der Domäne ist, muss zuerst ein Laufwerksmapping durchgeführt werden, damit Windows ein Kerberos Ticket anfordert. Danach kann man die Drucker im Kontext dieses Benutzers hinzufügen. Dabei werden ab Server2008 auch die Treiber installiert. Per Powershell kann man das Objekt auch ansprechen. Hier ein Beispiel für VBScript.
'AddPrinter.vbs ON ERROR RESUME NEXT Set WshNet = CreateObject("WScript.Network") ' Bei Bedarf alle Netzwerkdrucker vorher löschen Set wshPrn = wshNet.EnumPrinterConnections For x = 0 To wshPrn.Count - 1 Step 2 If Left(wshPrn.Item(x+1),2) = "\\" Then wshNet.RemovePrinterConnection wshPrn.Item(x+1),True,True Next wshnet.MapNetworkDrive "", "\\server\druckername1", False, "domäne\benutzername", "passwort" wshnet.AddWindowsPrinterConnection "\\server\druckername1" wshnet.AddWindowsPrinterConnection "\\server\druckername2" wshnet.SetDefaultPrinter "\\server\druckername1"
Drucker auf DOS Ebene an einen Druckerport mappen
Nach Absetzen des Kommandos ist der Drucker für DOS Programme unter dem Druckerport LPT1 ansprechbar. Der Drucker wird aber nicht in WIndows verfügbar.
net use LPT1: \\server\druckername /user:domäne\benutzername passwort
Oder als .vbs Script. Doku zu AddPritnerConnection.
Set WshNet = CreateObject("WScript.Network") wshnet.AddPrinterConnection "LPT1", "\\server\druckername", True, "benutzername", "passwort"