Friday, 25 July 2014

Powershell script to add printers from CSV and adjust driver

If you find yourself needing to do a printer migration but cant/don't want to re-install the old drivers (e.g. a cross architecture migration), you can import your printers from a .csv and change the driver as needed:
CSV Format:

XXX,HP Test,IP_x.x.x.x,x.x.x.x,printername,location test,comment test,printername


function CreatePrinter {

$server = $args[0]

$print = ([WMICLASS]"\\$server\ROOT\cimv2:Win32_Printer").createInstance()

$print.drivername = $args[1]

$print.PortName = $args[2]

$print.Shared = $true

$print.Sharename = $args[3]

$print.Location = $args[4]

$print.Comment = $args[5]

$print.DeviceID = $args[6]



function CreatePrinterPort {

$server = $args[0]

$port = ([WMICLASS]"\\$server\ROOT\cimv2:Win32_TCPIPPrinterPort").createInstance()

$port.Name= $args[1]



$port.HostAddress= $args[2]





$printers = Import-Csv c:\printers.csv

foreach ($printer in $printers) {

CreatePrinterPort $printer.Printserver $printer.Portname $printer.IPAddress

CreatePrinter $printer.Printserver $printer.drivername $printer.Portname $printer.Sharename $printer.Location $printer.Comment $printer.Printername


No comments:

Post a Comment