Kürzlich stand ich vor der Herausforderung, mehrere hundert Drucker bei einem Kunden zu installieren. Nach kurzer Recherche war klar, dass sich das sehr einfach per PowerShell erledigen lässt:
Anlegen eines Druckerports mit dem Namen "Port001":
Write-Output "Creating printer port `"Port001`""
$port =([WMICLASS]"\\.\ROOT\cimv2:Win32_TCPIPPrinterPort").createInstance()
$port.Name="Port001"
$port.SNMPEnabled=$false
$port.Protocol=1
$port.HostAddress="Port001"
$port.Put()
Anlegen und freigeben eines Druckers mit dem Namen "Printer001":
Write-Output "Creating printer `"Printer001`""
$printer =([WMICLASS]"\\.\ROOT\cimv2:Win32_Printer").createInstance()
$printer.Name="Printer001"
$printer.DriverName="HP Universal Printing PCL 5 (v5.0)"
$printer.DeviceID="Printer001"
$printer.PortName="Port001"
$printer.Shared=$true
$printer.ShareName="Printer001"
$printer.Put()
Das ganze packt man dann in eine Schleife, die eine CSV-Datei mit den vorhandenen Druckern einliest und schon kann man beliebig viele Drucker auf Knopfdruck anlegen. :-)
Das Anlegen eines Druckers auf einem Printserver-Cluster funktioniert so übrigens nicht, da per WMI nicht auf den virtuellen Clusternamen zugegriffen werden kann. Stattdessen kann man dann allerdings z.B. per PowerShell erstellte Registry-Dateien importieren...
3 Kommentar(e):