@dshumov
Олдскул - Фигурнов форева

Как найти все принтеры в сети?

Здравствуйте, есть такая задача, не знаю, как подступиться к ней. Суть: в компании много территориально удаленных филиалов. Там есть принтеры, сетевые. Печать на них идёт на прямую, не через сервер печати. Сейчас нужно завести их на сервер печати. Но не это проблема. Вот как их просканировав все, выявив ip и модели? Списки если и есть, то неактуальные. "Рук" в филиалах нет. Есть ли какой сканер, утилита, которой можно выявить все сетевые принтеры?
  • Вопрос задан
  • 6830 просмотров
Решения вопроса 2
@OmarKhayyam
Я бы посоветовал утилиту Kyocera NetViewer, ловит все сетевые принтеры как свои так и других производителей, удобный интерфейс.
Ответ написан
Комментировать
@AAT666
На ПоШе когда-то баловался... Но работает по SNMP, если на принтерах спецом закрыли 161 порт, то не прокатит...

$SNMP      = new-object -ComObject olePrn.OleSNMP
$NET       = '10.2.2.'
$IP_all    = @()
1..254 | %{ $IP_all += ($NET+$_) }

$udpobject = new-Object system.Net.Sockets.Udpclient
$udpobject.client.ReceiveTimeout = 1000
$a  = new-object system.text.asciiencoding 
$kk = @(48,36,2,1,1,4,6,112,117,98,108,105,99,161,23,2,2,117,6,2,1,0,2,1,0,48,11,48,9,6,5,43,6,1,2,1,5,0) # magic packet

foreach($IP in $IP_all)
{
  if(!(Test-Connection -CN $IP -Count 1 -BufferSize 16 -Quiet)) { continue }
  
  $conn = $udpobject.Connect($IP,161)
  $ans  = [void]$udpobject.Send($kk,$kk.length)
  $remoteendpoint = New-Object system.net.ipendpoint([system.net.ipaddress]::Any,0)
  $receivebytes   = $udpobject.Receive([ref]$remoteendpoint) 

  [string]$returndata = $a.GetString($receivebytes)
  
  $snmp.open($IP,'public',1,500)

  $IP
  $snmp.Get(".1.3.6.1.2.1.25.3.2.1.3.1")         # ОИД Device Description - стандарт.
  $snmp.Get(".1.3.6.1.2.1.1.5.0")                # ОИД System Name        - стандарт.
  $snmp.Get(".1.3.6.1.2.1.43.5.1.1.17.1").Trim() # ОИД серийника          - не стандарт!
  "-------------------------------------------------------------------------------------"
}

$SNMP.Close()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
anthtml
@anthtml
Системный администратор программист радиолюбитель
Идеальный вариант, если на филиалах нет местных попингуев, создать на основе portable aida64 или чего подобного создающий отчет.
Ну или просто portable aida64 + подробнейшая, в картинках, инструкция как создать отчет выгрузить в текстовый файл, переименовать в филиал-отдел-сотрудник.txt и отправить на admin@companyname.ru
+ у бухгалтеров по ОС собрать результаты последней инвентаризации, чтоб можно было как-то сопоставить
Ответ написан
Комментировать
@immaculate
Программист-путешественник
Если есть Linux, то можно найти сетевые принтеры при помощи bonjour: lpinfo --include-schemes dnssd -v (более подробно здесь).
Ответ написан
Комментировать
@StarterSysadmin
Какой принтер, сканер, факс? Какая марка принтера, сканера, факса? Ищите на оф.сайте принтеров, сканеров, факсов, там найдёте ПО. Посмотреть на самом сервере какие ip у принтеров модели можно посмотреть на самих принтеров.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы