Jak dodać standardowy port drukarki TCP / IP z wiersza poleceń?

8

Czy istnieje sposób użycia Rundll32.exe tcpmonui.dll, LocalAddPortUI z wiersza poleceń, aby dodać standardowy port TCP / IP dla drukarki?

Lub w jakikolwiek inny sposób, aby dodać standardowy port drukarki TCP / IP z wiersza polecenia.

Adam L.
źródło

Odpowiedzi:

1

Na tej stronie można użyć polecenia prnport w XP.

MALeamy
źródło
Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Kanadyjczyk Łukasz
2
Kciuk w dół za uszkodzony link
Grimtech
13

Aby inni mogli to znaleźć, oto dokładne polecenie (z cmd.exe), które uruchamiam, aby programowo dodać drukarkę sieciową pod Windows 7 (wydaje się to być dość rzadkie, nawet po długim googlingu):

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

(jeśli nie wiedziałeś, tak jak ja, ^to znak kontynuacji linii w cmd.exe). Prawdopodobnie będziesz musiał użyć innego pliku inf niż wymieniony powyżej. Przeglądam wszystkie pliki, C:\Windows\infszukając dokładnego tekstu sterownika drukarki (HP LaserJet 4200/4300 PCL6 "), aby znaleźć ten, którego potrzebuję.

Inną przydatną sztuczką jest uruchomienie jednowierszowego programu PowerShell, aby wyczyścić wszystkie stare drukarki, które mogą istnieć (jeśli nie jest to oczywiste, spowoduje to usunięcie wszystkich zainstalowanych obecnie drukarek):

powershell -command "foreach ($p in Get-WmiObject Win32_Printer) {$p.Delete()}"
Chris
źródło
Oto odniesienie MSDN do skryptu prnport.vbs technet.microsoft.com/en-us/library/cc754352.aspx
chris84948
2

masz na myśli:

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

Uwaga:

  • działa to z adresami IP, a nie tylko identyfikatorami URI
  • możesz zapętlić lokalną drukarkę NET USE LPT1: \\127.0.0.1:9100
Greg Buehler
źródło
Powiedział port drukarki TCP / IP. Podałeś instrukcje dotyczące dodawania drukarki SMB.
jedenaście81
Myślę, że musi rozwiązać ten problem za pomocą adresu IP, a nie udziału serwera. W moim krótkim wyszukiwaniu nie mogłem znaleźć sposobu, aby to zrobić, chyba że port TCP / IP został już utworzony lokalnie.
djhowell
który przyjmie argument „\\ 172.168.1.10” jako argument. LocalAddPortUI wymusi okno dialogowe.
Greg Buehler
0

Ta strona sugeruje, że nie jest to możliwe, chyba że port TCP / IP już istnieje:

Uwaga Następująca przykładowa składnia działa poprawnie, dopóki tworzone są standardowe porty 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

Jeśli nie podasz poprawnie nazwy drukarki lub określisz drukarkę, która nie jest podłączona do serwera, standardowe porty TCP / IP nie zostaną utworzone i może zostać wyświetlony następujący komunikat o błędzie ...

djhowell
źródło
0

Wątek jest Necro'd, ale oto jak mogę wykonać instalacje drukarki:

To jest skrypt, którego używam do instalowania kopiarek i drukarek, gdy przeprowadzamy ponowną instalację systemu 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"

Pamiętaj, aby zmienić 000 000 000 000 na adres IP drukarki. \ server \ file \ .inf to lokalizacja pliku inf dla twojego sterownika.

Dzięki temu nie będziesz mieć nic, a zainstalowaną funkcjonalną drukarkę.

ThatoneITguy
źródło