SCCM IP Printer Install
We have a bunch of IP based printers that we need to install. Unfortunately, we have no print server to pull the drivers from and install the printers. I have the following script tha works great for installing printers...
regedit /s file.reg
net stop "print spooler"
net start "print spooler"
RUNDLL32 PRINTUI.DLL,PrintUIEntry /if /b "Printer Name" /f "\\location to INF" /r "IP_100.00.000.000" /m "RICOH Aficio MP C2050 PCL 6"
rundll32 printui.dll,PrintUIEntry /y /q /n “Printer Name”
The problem I am having is that we need to change the printer preferences (paper size, type, ect...) after the printers are install on the client. Is there anyway to script these changes or does anyone know any other options?
Thanks
EDIT: or is there a script to change the port afteR?
Answers (1)
This info is stored in the registry. Install the printer with the settings you want to migrate then export the following keys. Import them in this order or you may experience some problems:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86\Drivers\Versionâ€3\DRIVERNAME]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microso^\Windows NT\CurrentVersion\Print\Printers]
[HKEY_CURRENT_USER\Printers\DevModePerUser]
Comments:
-
Thanks, but I actually found a way to do what is needed. We are going to setup the printers on a system first, change settings, and then export those settings to a DAT file.
Then we are going to setup the IP printer via SCCM/script and import the DAT file with all the specific printer settings.
Would be much easier and less of a pain if they would just go back to using a print server. - anonymous_85746 11 years ago -
Question : How did you get past the 0x0000003 error that always popup when trying this command ? - kornboy82 11 years ago
-
We actually had issues using the DAT file to import the settings. As it turned out, the printer itself told the PC what the settings were and made adjustments so we didnt have to go that route. Look here at the script I am using to install printers....
cscript prnport.vbs -a -r IP_000.000.000.000 -h 000.000.000.000 >nul 2>nul
RUNDLL32 PRINTUI.DLL,PrintUIEntry /if /b "Printer Name" /f "path\to\drivers" /r "IP_000.000.000.000" /m "Printer name as listed in the driver INF file"
rundll32 printui.dll,PrintUIEntry /y /q /n "Printer Name" - anonymous_85746 11 years ago-
I'm already creating the port in the registry keys but when I use this command, nothing works.
Code :
:: InstImprimante.cmd
:: Script d'installation d'une imprimante reseau
:: (L) 2010 Badministrateur.com
rem @echo off
:: Remplacer les 3 champs suivants par vos valeurs
:: ATTENTION: Le nom de l'imprimante doit correspondre au nom de vortre imprimante dans le fichier INF (cf section [DriverName.xxxxx])
:: Le nom de la file d'attente LPR peut etre trouvé en installant l'imprimante manuellement et en verifiant les propriétés du port TCP/IP d'une installation "témoin"
:: Mettre un chemin absolu pour le pilote d'impression
set AdresseIP=10.57.30.131
set Imprimante=HP LaserJet 4050 Series PCL 6
set Pilote=v:\Partage\echange\pcl6\hpbf002i.inf
:: --- Ne pas toucher Â… la suite du fichier ---
echo Creation d'un port d'impression TCP/IP a l'adresse %AdresseIP%
set CLEPORT="HKLM\System\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports"
REG ADD %CLEPORT%\IP_%AdresseIP% /f > NUL
REG ADD %CLEPORT%\IP_%AdresseIP% /v Protocol /t REG_DWORD /d 0x00000002 /f > NUL
REG ADD %CLEPORT%\IP_%AdresseIP% /v Version /t REG_DWORD /d 0x00000001 /f > NUL
REG ADD %CLEPORT%\IP_%AdresseIP% /v HostName /t REG_SZ /d "" /f > NUL
REG ADD %CLEPORT%\IP_%AdresseIP% /v IPAddress /t REG_SZ /d %AdresseIP% /f > NUL
REG ADD %CLEPORT%\IP_%AdresseIP% /v PortMonMibPortIndex /t REG_DWORD /d 0x00000001 /f > NUL
REG ADD %CLEPORT%\IP_%AdresseIP% /v HWAddress /t REG_SZ /d "" /f > NUL
REG ADD %CLEPORT%\IP_%AdresseIP% /v PortNumber /t REG_DWORD /d 0x00000203 /f > NUL
REG ADD %CLEPORT%\IP_%AdresseIP% /v "SNMP Community" /t REG_SZ /d Public /f > NUL
REG ADD %CLEPORT%\IP_%AdresseIP% /v "SNMP Enabled" /t REG_DWORD /d 0x00000000 /f > NUL
REG ADD %CLEPORT%\IP_%AdresseIP% /v "SNMP Index" /t REG_DWORD /d 0x00000001 /f > NUL
:: Redemarrage du spooler d'impression
net stop spooler
net start spooler
:: Installation de l'imprimante
echo Installation de l'imprimante %Imprimante% sur le port TCP_%AdresseIP%. Veuillez patienter...
rundll32 printui.dll,PrintUIEntry /if /f "%Pilote%" /b "%Imprimante%" /r IP_%AdresseIP% /m "%Imprimante%"
:: Mettre l'imprimante par defaut
rundll32 printui.dll,PrintUIEntry /y /n "%Imprimante%"
pause - kornboy82 11 years ago
-
For most of my printers, Canons, I use the VBS method of creating the port. Like I posted before, here is a sample script.
---------------------------------------------------------------
cscript prnport.vbs -a -r IP_000.000.000.000 -h 000.000.000.000 >nul 2>nul
RUNDLL32 PRINTUI.DLL,PrintUIEntry /if /b "Printer Name" /f "path\to\drivers\inffilename.inf" /r "IP_000.000.000.000" /m "Printer name as listed in the driver INF file"
rundll32 printui.dll,PrintUIEntry /y /q /n "Printer Name"
---------------------------------------------------------------
Other printers, HPs, the VBS method of creating the port does not work so I have to import using a registry file. Here is a sample...
---------------------------------------------------------------
regedit /s NameOfRegFile.reg >nul 2>nul
net stop "print spooler" >nul 2>nul
net start "print spooler" >nul 2>nul
RUNDLL32 PRINTUI.DLL,PrintUIEntry /if /b "Printer Name" /f "Path\Driver\Inf\inffilename.inf" /r "IP_000.000.000.000" /m "Name of printer in INF"
rundll32 printui.dll,PrintUIEntry /y /q /n "Printer Name"
---------------------------------------------------------------
Here is a sample Registry file that I use...
---------------------------------------------------------------
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\IP_000.000.000.000]
"Protocol"=dword:00000001
"Version"=dword:00000001
"HostName"="000.000.000.000"
"IPAddress"=""
"HWAddress"=""
"PortMonMibPortIndex"=dword:00000000
"PortNumber"=dword:0000238c
"SNMP Community"="public"
"SNMP Enabled"=dword:00000000
"SNMP Index"=dword:00000001
---------------------------------------------------------------
Also, make sure you are running this as admin or giving people permission to edit the following registry key and all sub keys...
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\
If users cannot edit the above reg key, then this will not work because the script cannot create the port. I gave permission to all systems via group policy. - anonymous_85746 11 years ago-
When I try you prnport.vbs synthax, I always get an error that the file is used by another process. Do you have any clue ?
EDIT : Sorry... I was using >null instead of >nul LOL !
EDIT #2 : And I managed to make it work but not with prnport.vbs but with the registry key import method. Thank you ! I will now be able to make my SCCM task sequence to install the printer in the school lab I need to have it. I have 4 printers I need to install this way because they are not compatible (too old) with our print server. - kornboy82 11 years ago
-
wrong post - anonymous_85746 11 years ago