Я хочу иметь возможность создать BATCH-скрипт, который добавит принтер локально, используя порт TCP/IP. Я предполагаю, что необходимыми аргументами будут имя принтера, расположение драйвера (.inf), IP-адрес и имя компьютера.
Кто-нибудь может помочь?
решение1
Это можно сделать с помощью нескольких вызовов printui -более подробную информацию см. на этой странице. Похоже, вы хотели бы позвонить
rundll32 printui.dll,PrintUIEntry /ga
Хотя я не уверен, как указать принтер через INF-файл по сети.
Несколько лет назад я написал скрипт для установки принтеров по сети. Этот скрипт предназначен для использования с принтерами, которые расшарены через Samba, поэтому вам не нужно указывать драйвер. Если вы пытаетесь добавить принтер, который не расшарен таким образом, я не уверен, что это сработает. Возможно, вы можете использовать это как отправную точку, чтобы понять, как это сделать.
@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
Просто сохраните этот текст в файле .cmd и запустите его, если хотите попробовать.