fire78
Goto Top

TCP-IP Ports mit Konfiguration auflisten - Win2008Server - Printserver

Hallo zusammen!
Ich bin auf der Suche nach einer Lösung für folgendes Problem:

Ich sitze bei einem Kunden, bei dem wir die Wartung für den Prinserver übernommen haben, leider exestieren, wie so häufig, kaum Dokumentationen.
Nun bin ich dabei auf folgendes Problem gestoßen:
es sind eine Menge Printer-Queues per TCP-Port angebunden (so um die 200) und ich möchte jetzt die Konfiguration der Ports auslesen (welcher Printerport verweist auf welche IP-Adresse?) ... leider finde ich nicht das passende Bordmittel dazu, kann auch sein, das ich gerade nur etwas Gefechtsblind bin. Vllt. kann mir da wer auf die Sprünge helfen.
Wir nutzen hier einen W2008 Server als Printserver.

Lg

Fire

Content-ID: 178319

Url: https://administrator.de/contentid/178319

Ausgedruckt am: 05.11.2024 um 07:11 Uhr

Karo
Karo 03.01.2012 um 15:25:36 Uhr
Goto Top
Hi,
vielleicht hilft das ...
Ausgabedatei ist printerResult_<ComputerName>.txt


' Aufruf mit cscript printerData.vbs <optional: servername>  

Set oArgs = WScript.Arguments
if WScript.Arguments.Count <> 1 then
	strComputer = "."  
Else
	strComputer = oArgs(0)
End If


Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  
Set OpSysSet = objWMIService.ExecQuery("select * from Win32_ComputerSystem")  
for each i in OpSysSet
		computerDomain = i.Domain
		computerName = i.DNSHostName
Next

strOutFile = "printerResult_" & computerName & ".txt"  
set fso = createobject("scripting.filesystemobject")  
fso.createtextfile(strOutFile)
set out = fso.opentextfile(strOutFile, 2)

out.writeline "DomainName	ServerName	PrinterName	ShareName	Location (GNS 4.3 konform)	Comment	PortName	PortHostAddress	SAP-Name	DNS-Name	IP-Address	MAC (xx-xx-...)	DriverName	PortNumber	Datatype RAW or LPR	LPRQueue	Owner (email address)	Devicetype (MuFu or normal printer)	Fax enabled	mail enabled	print enabled"  


Set colInstalledPrinters =  objWMIService.ExecQuery("Select * from Win32_Printer")  

For Each objPrinter in colInstalledPrinters
	PrinterName = objPrinter.Name
	ShareName = objPrinter.ShareName
	PrinterLocation = objPrinter.Location
	Comment = objPrinter.Comment
	PortName = objPrinter.PortName
	DriverName = objPrinter.DriverName

	Set colPorts =  objWMIService.ExecQuery("Select * from Win32_TCPIPPrinterPort where Name='" & objPrinter.PortName & "'")  
	For Each objPort in colPorts
		P_HostAddress = objPort.HostAddress
		P_Name = objPort.Name
		P_Number = objPort.PortNumber
		If (objPort.Protocol = 1) Then
			P_Protocol = "RAW"  
		ElseIf (objPort.Protocol = 2) Then
			P_Protocol = "LPR"  
		End If
		P_Queue = objPort.Queue
		P_SNMPEnabled = objPort.SNMPEnabled
	Next

	out.writeline computerDomain & "	" & computerName & "." & computerDomain & "	" & PrinterName & "	" & ShareName & "	" & PrinterLocation & "	" & Comment & "	" & PortName & "	" & P_HostAddress & "					" & DriverName & "	" & P_Number & "	" & P_Protocol & "	" & P_Queue  
Next

out.close


Karo
Fire78
Fire78 03.01.2012 um 16:28:53 Uhr
Goto Top
Hallo!

Danke für das Script, es gibt mir soweit auch alle Daten aus, nur leider bleiben bei mir die Zeilen mit der IP-Adresse leer.

LG Fire
Karo
Karo 03.01.2012 um 16:52:44 Uhr
Goto Top
...dann bastel Dir ein Script mit dem Du die Sachen aus der Reg auslesen kannst:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\<DRUCKERNAME>\IPADDRESS

... man hätte die Drucker aber auch ins DNS mit aufnehmen können. Wäre hübscher ...

Karo
Karo
Karo 05.01.2012 um 12:27:09 Uhr
Goto Top
bin grad in meinem Fundus über etwas gestolpert:

http://www.christowles.com/2011/04/powershell-api-for-windows-2008-prin ...
(nicht nur für W2K8)

Bei Bedarf kann ich das Script auch posten.

Karo