Here’s a script to install network printers from the command line in Windows. It works on XP, Vista and 7 and I think it will in Windows 8.
You’ll need the location to the exact driver the client needs. This could be a mapped share. I used a usb key and since all machines I ran it on were identical I knew the exact volume name beforehand. If you don’t, you could get it by capturing the output of the CD command, like this:
for /f %i in ('cd') do set vol=%~di
The current volume name is then stored in the %vol% variable.
Since I needed to add three printers each time I wrote a little for-loop that called the routine to install the printer.
The location is freestyle but the convention is to ‘zoom in’ on the printer so it’s easy to find it from a list, like so: Country/Locality/Street or office/floor number/printer number. Anything will work but if you stick to (a variation on) this example your users will always be able to quickly find a nearby printer.
Here’s a TechNet Library article that explains more about Prnport.vbs.
@echo off
:: Install printer
cd /d c:\windows\system32
:: Usage:
:: Call :AddPrinter [ip address] [path to .inf driver] [driver name] [printer name] [printer location]
:: Example:
:: Call :AddPrinter 10.0.0.7 "E:\Drivers\Oce\KOAZ8JA_.inf" "Generic 36C-1SeriesPCL" "Oce copier" "NL/Rotterdam/Weena/Floor 5"
goto :eof
:AddPrinter
set ip=%1
set inf=%2
set drivername=%3
set printername=%4
set location=%5
echo Installing printer %printername%...
echo.
::Errorhandling
if [%5]==[] goto :NotEnoughParams
::Create port
cscript prnport.vbs //NoLogo //B -a -r IP_%ip% -h %ip% -o raw
::Add driver
cscript prndrvr.vbs //NoLogo //B -a -i %inf% -m %drivername%
::Install printer
cscript prnmngr.vbs //NoLogo //B -a -p %printername% -r IP_%ip% -m %drivername%
::Configure printer
cscript prncnfg.vbs //NoLogo //B -t -p %printername% -l %location%
goto :eof
:NotEnoughParams
echo Missing parameter(s)
goto :eof