В Windows 7/8 [.1] вы можете настроить принтер и информацию о портах через командную строку как администратор, например:
cd /d %WINDIR%\System32\Printing_Admin_Scripts\en-US
prnmngr -s computer-01 -l
перечислю принтеры, подключенные к computer-01
, используя мои учетные данные для входа. Это производит много строк вывода, включая порт принтера. Моя цель - найти порт принтера, предполагая, что это порт TCP/IP, а затем запустить команду prnport
чтобы отключить состояние SNMP для этого порта. Ниже приведен пример вывода двух разных принтеров, для которых используется USB, а для другого - принтер TCP/IP:
Server name
Printer name JMC-KMC224-BW
Share name
Driver name KONICA MINOLTA C364SeriesPCL
Port name IP_192.168.0.11
Comment
Location
Print processor KOAYTJ_P
Data type RAW
Parameters
Attributes 2628
Priority 1
Default priority 0
Average pages per minute 0
Printer status Idle
Extended printer status Unknown
Detected error state Unknown
Extended detected error state Unknown
Server name
Printer name DYMO LabelWriter 400
Share name
Driver name DYMO LabelWriter 400
Port name USB001
Comment
Location
Print processor winprint
Data type RAW
Parameters
Attributes 2624
Priority 1
Default priority 0
Average pages per minute 0
Printer status Idle
Extended printer status Unknown
Detected error state Unknown
Extended detected error state Unknown
(Примечание: это не проблема XY, проблема известна производителю, и отключение SNMP является известным решением.)
Как я могу найти имя порта, которое является портом TCP/IP, и поместить его в переменную, которую я могу запустить с командой prnport
?