7

Есть ли способ использовать Rundll32.exe tcpmonui.dll, LocalAddPortUI из командной строки, чтобы добавить стандартный порт TCP/IP для принтера?

Или любой другой способ добавить стандартный порт принтера TCP/IP из командной строки.

5 ответов5

13

Просто для того, чтобы другие могли найти это, вот точная команда (из cmd.exe), которую я запускаю, чтобы программно добавить сетевой принтер под Windows 7 (это кажется довольно редким явлением даже после большого количества поиска в Google):

cscript c:\Windows\System32\Printing_Admin_Scripts\en-US\prnport.vbs ^
-a -r IP_10.0.0.100 -h 10.0.0.100

rundll32 printui.dll,PrintUIEntry /if /b "printer" /f %windir%\inf\prnhp002.inf^
/r "IP_10.0.0.100" /m "HP LaserJet 4200/4300 PCL6" /Z

(если вы не знали, как я, ^ - это символ продолжения строки в cmd.exe). Возможно, вам придется использовать файл inf, отличный от указанного выше. Я пролистываю все файлы в C:\Windows\inf поисках точного текста моего драйвера принтера (HP LaserJet 4200/4300 PCL6 "), чтобы найти тот, который мне нужен.

Другой полезный трюк - запустить однострочную оболочку PowerShell, чтобы очистить все старые принтеры, которые могут существовать (если это не очевидно, это приведет к удалению всех принтеров, которые вы в данный момент установили):

powershell -command "foreach ($p in Get-WmiObject Win32_Printer) {$p.Delete()}"
2

Вы имеете в виду, как:

NET USE [local port to bind to ie LPT1] \\ComputerName\printer_share /PERSISTENT:YES

нота:

  • это работает с IP-адресами, а не только с URI
  • Вы можете зациклить локальный принтер NET USE LPT1: \\127.0.0.1:9100
2

Согласно этой странице вы можете использовать команду prnport в XP.

0

Этот поток - Necro'd, но вот как я делаю установки принтера:

Это скрипт, который я использую для установки копиров и принтеров, когда мы переустанавливаем Windows.

::Creating a Printer Port
cd c:\windows\system32\printing_admin_scripts\en-us\
Cscript Prnport.vbs -a -r 000.000.000.000 -h 000.000.000.000

::Install Printer Driver
rundll32 printui.dll,PrintUIEntry /ia /m "EXACT NAME OF DRIVER AS WRITTEN IN .inf FILE" /f "\\server\file\.inf"

::Create Printer in System
rundll32 printui.dll,PrintUIEntry /if /b "PRINTER NAME GOES HERE" /f "\\server\file.inf" /r "000.000.000.000" /m "EXACT NAME OF DRIVER AS WRITTEN IN .inf FILE"

Убедитесь, что вы изменили 000 000 000 000 на IP-адрес вашего принтера. \server \file \.inf - это расположение файла .inf для вашего драйвера.

Это избавит вас от необходимости иметь установленный работающий принтер.

0

На этой странице предполагается, что это невозможно, если порт TCP/IP уже существует:

Примечание. Следующий пример синтаксиса работает правильно, пока создаются стандартные порты TCP/IP:

rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /f %windir%\inf\ntprint.inf /r  "IP_157.57.50.98" /m "HP Laserjet 4000 Series PCL" /Z

Если вы неправильно введете имя принтера или если вы укажете принтер, который не подключен к серверу, стандартные порты TCP/IP не будут созданы, и вы можете получить следующее сообщение об ошибке ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .