Windows - Находит Название Принтера от IP-адреса

Domain Controller in Microsoft сети является центральным сервером для Active Directory. Это - сервер, который поддерживает базу данных аутентификации для всего домена. В дополнение к этой решающей роли это также делает:

  • Хранит информацию в самом каталоге. AD является X500-совместимым каталогом, что означает, что он может сделать что-либо, что LDAP может сделать. Это имеет расширяемую схему, которая полезна для дополнений, таких как Unix расширения LDAP.
  • Содержит доли SYSVOL, необходимые для обработки Объекта Групповой политики
  • Может сохранить копию Глобального Каталога, уменьшенный набор информации для всего леса Active Directory.
  • Дополнительно выполнения любые Центры сертификации PKI.

Ключевая вещь иметь в виду состоит в том, что база данных, которую сохраняет Контроллер домена, является распределенной базой данных. Контроллеры домена в том же домене, у всех есть копия той же базы данных, что означает, что они должны смочь копировать изменения друг в друге. Кроме того, база данных является мультиосновной базой данных, что означает, что изменения в базе данных могут быть применены к любой копии.

С Сервером 2008 там является новым типом Контроллера домена, Контроллера домена Только для чтения. Этот Контроллер домена имеет всю базу данных за исключением частей аутентификации; выбранная группа пользователей может содержать их детали аутентификации о DC R/O. Причина этого состоит в том, чтобы лучше служить удаленным офисам в случае сбоя соединений WAN, и минимизировать информационное воздействие должно Контроллер домена R/O красться.

Это - представление на 1000 м.

3
задан 16 January 2013 в 17:36
1 ответ

У вас есть IP-адрес самого принтера (для управления или для прямой печати) и вы хотите знать, на каком сервере печати Windows он используется совместно ? Это правильно?

Вы можете «вручную» выполнить поиск на каждом сервере печати (что, как я полагаю, было бы проще, чем запрашивать их все, поскольку я полагаю, что вы, вероятно, логически поймете, где он может находиться, например, сузив его до 5 серверов печати, которые являются локальными для подсети, в которой находится принтер).

Использование Powershell (где $ printservername - вероятное имя хоста сервера печати):

Get-WMIObject -class Win32_Printer -computer $printservername | Select Name,DriverName,PortName | Where-Object {$_.PortName -eq "IP_x.x.x.x"}

Обратите внимание, что вы можете продолжить и запустить его без части Where-Object чтобы увидеть, как выглядит вывод PortName, но он должен быть похож на IP_10.10.10.10 или аналогичный.

Если вы не получите никаких результатов, тогда этот сервер печати не тот, на котором размещен этот IP-адрес.


ОБНОВЛЕНИЕ: поскольку вам нужен входной файл, я пошел дальше и сделал это за вас. Вам потребуются 2 входных файла: один со списком серверов печати, а другой с указанным IP-адресом или IP_x.xxx. Пожалуйста, поймите, что если вы используете что-то еще для своих имен портов, например имя хоста / DNS, вам нужно будет поместить их в свой файл printerIP.txt как таковые. Если вы не знаете точное имя порта, этот скрипт не вернет никакого результата. Кроме того, поместите только одно «имя порта» в printerIP.txt, иначе он не вернет никакого совпадения.

# --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Script: Find-WhichPrintServer.ps1
# Author: TheCleaner, serverfault.com
# Date: 1/16/2013
# Comments: This script will query each of the computers in the input file and look for a particular printer's IP address on that print server.  If found it will output the name of the print server and printer name and info
# --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
$printservers = Get-Content -Path C:\PSinput\PrintServers.txt
$printerIP = Get-Content -Path C:\PSinput\printerIP.txt #note this must be the correct format such as IP_x.x.x.x
Get-WMIObject -class Win32_Printer -computer $printservers | Select SystemName,Name,DriverName,PortName | Where-Object {$_.PortName -eq $printerIP} |
Format-Table -Property SystemName, PortName, Name, DriverName -AutoSize

Надеюсь, что это поможет!

один со списком серверов печати и один с указанным IP-адресом или IP_x.xxx. Пожалуйста, поймите, что если вы используете что-то еще для своих имен портов, например имя хоста / DNS, вам нужно будет поместить их в свой файл printerIP.txt как таковые. Если вы не знаете точное имя порта, этот скрипт не вернет никакого результата. Кроме того, поместите только одно «имя порта» в printerIP.txt, иначе он не вернет никакого совпадения.

# --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Script: Find-WhichPrintServer.ps1
# Author: TheCleaner, serverfault.com
# Date: 1/16/2013
# Comments: This script will query each of the computers in the input file and look for a particular printer's IP address on that print server.  If found it will output the name of the print server and printer name and info
# --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
$printservers = Get-Content -Path C:\PSinput\PrintServers.txt
$printerIP = Get-Content -Path C:\PSinput\printerIP.txt #note this must be the correct format such as IP_x.x.x.x
Get-WMIObject -class Win32_Printer -computer $printservers | Select SystemName,Name,DriverName,PortName | Where-Object {$_.PortName -eq $printerIP} |
Format-Table -Property SystemName, PortName, Name, DriverName -AutoSize

Надеюсь, что это поможет!

один со списком серверов печати и один с указанным IP-адресом или IP_x.xxx. Пожалуйста, поймите, что если вы используете что-то еще для своих имен портов, например имя хоста / DNS, вам нужно будет поместить их в свой файл printerIP.txt как таковые. Если вы не знаете точное имя порта, этот скрипт не вернет никакого результата. Кроме того, поместите только одно «имя порта» в printerIP.txt, иначе он не вернет никакого совпадения.

# --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Script: Find-WhichPrintServer.ps1
# Author: TheCleaner, serverfault.com
# Date: 1/16/2013
# Comments: This script will query each of the computers in the input file and look for a particular printer's IP address on that print server.  If found it will output the name of the print server and printer name and info
# --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
$printservers = Get-Content -Path C:\PSinput\PrintServers.txt
$printerIP = Get-Content -Path C:\PSinput\printerIP.txt #note this must be the correct format such as IP_x.x.x.x
Get-WMIObject -class Win32_Printer -computer $printservers | Select SystemName,Name,DriverName,PortName | Where-Object {$_.PortName -eq $printerIP} |
Format-Table -Property SystemName, PortName, Name, DriverName -AutoSize

Надеюсь, что это поможет!

4
ответ дан 3 December 2019 в 06:11

Теги

Похожие вопросы