Windows – 从IP地址查找打印机名称

尝试使用IP地址查找打印机队列名称。 打印机位于服务器上。

  • 在公元search知识产权 – 但没有运气。
  • nbtstat返回设备名称,但在AD中不存在。

我知道打印服务器上的打印机存在于networking中。 我们有大约40-50打印服务器。

任何帮助赞赏。

您有打印机本身的IP地址(用于pipe理或直接打印),并且想要知道它正在共享的Windows打印服务器是什么? 那是对的吗?

您可以“手动”search每个打印服务器(我认为比查询所有打印服务器要容易得多,因为我认为您可能会从逻辑上确定其可能驻留的位置,比如将其缩小到5个本地打印服务器打印机所在的子网)。

使用Powershell(其中$ printservername是可能的打印服务器主机名):

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

请注意,您可以继续运行它,而不使用Where-Object部分来查看PortName输出的外观,但应该类似于IP_10.10.10.10或类似的。

如果您没有得到任何结果,那么该打印服务器不是托pipe该IP地址的那个。


更新:因为你想要一个input文件,我继续为你做这个。 您需要2个input文件,其中一个带有打印服务器列表,另一个带有列出的IP地址或列出的IP_x.xxx。 请注意,如果您使用其他端口名称(例如hostname / DNS),则需要将其放入printerIP.txt文件中。 如果你不知道确切的PortName,那么这个脚本不会返回任何结果。 此外,只在printerIP.txt中放置一个“portname”,否则不会返回任何匹配的结果。

 # -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- # 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.xxx 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 

希望有所帮助!