Quiero poder crear un script BATCH que agregue una impresora localmente usando el puerto TCP/IP. Supongo que los argumentos necesarios serían el nombre de la impresora, la ubicación del controlador (.inf), la dirección IP y el nombre de la computadora.
¿Alguien puede ayudar?
Respuesta1
Puede lograr esto con algunas llamadas a printui:Vea esta pagina para mas informacion. Parece que quieres llamar
rundll32 printui.dll,PrintUIEntry /ga
Aunque no estoy seguro de cómo especificar una impresora mediante un archivo INF a través de la red.
Hace unos años, escribí un script para instalar impresoras a través de la red. Este script está diseñado para usarse con impresoras compartidas a través de samba, por lo que no es necesario especificar un controlador. Si está intentando agregar una impresora que no está compartida de esta manera, no estoy seguro de que funcione. Quizás puedas usar esto como punto de partida para descubrir cómo hacerlo.
@echo off
::
::This script adds a single printer to the default user profile.
::NOTE: Printer names with spaces will NOT be accepted.
::Usage: run addprinters and follow onscreen directions
cls
echo This script adds the specified local or network printer
echo to the deafult account for all existing/new users.
echo *IMPORTATNT* Printer names with spaces will NOT be accepted.
echo *******************************************************
SET /P target=Enter target computer name (this compupter)
SET /P printer=Enter Printserver/Printername (do not include \\)
echo Attempting to add %printer% for all users on %target%
rundll32 printui.dll,PrintUIEntry /ga /c\\%target% /n\\%printer%
echo New printers will NOT appear until spooler is restarted.
SET /P reset=Reset print spooler Y/N?
if "%reset%"=="y" goto spooly
goto end
:spooly
start /wait sc \\%target% stop spooler
start /wait sc \\%target% start spooler
echo Print Spooler Service restarted.
:end
Simplemente guarde este texto en un archivo .cmd y ejecútelo si quiere probarlo.