![Как добавить принтер по IP в Windows с помощью BATCH-скрипта](https://rvso.com/image/1284413/%D0%9A%D0%B0%D0%BA%20%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%20%D0%BF%D0%BE%20IP%20%D0%B2%20Windows%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20BATCH-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B0.png)
Я хочу иметь возможность создать 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 и запустите его, если хотите попробовать.