Wir haben in unserer Firma 3 Windows-Printserver. Wie in den meisten IT-Landschaften sind die Strukturen mit der Zeit gewachsen und somit lassen auch die Bezeichnungen der Drucker keine Rückschlüsse auf den verwendeten Printserver zu. Da heißt es Suchen – z.B.: mit Powershell.
In diesem Beitrag geht es nur um den Powershell-Befehl selber, mit dem man die installierten Drucker auslesen kann. Dass daraus dann noch ein kleiner Skripting-Spaß wurde, lest Ihr in den folgenden Beiträgen:
Zum „Endprodukt“ gehören dann noch diese Beiträge
Der Powershell-Befehl zum Auslesen der installierten Drucker lautet
1 |
Get-WmiObject -class Win32_Printer |
Und erzeugt die Ausgabe:
1 2 3 4 5 6 |
Location : 122 - Werk 1 Name : HP533-Raum2 PrinterState : 0 PrinterStatus : 3 ShareName : HP533-Raum2 SystemName : Printserver01 |
Was mir hier fehlt ist der Drucker Port – also die IP-Adresse des Netzwerkdruckers.
Für mich sind zur Suche folgende Angaben wichtig:
Das ergibt dann folgenden Befehl
1 |
Get-WmiObject -class Win32_Printer | select Name, PortName, Sharename, Location, Systemname |
Mit der Ausgabe
1 2 3 4 5 |
name : HP533-Raum2 portname : 172.0.35.23 sharename : HP533-Raum2 location : Gebaeude2 systemname : Printserver01 |
Suche ich nun z.B.: nach einer IP-Adresse, kann ich die Ausgabe wie folgt filtern.
1 |
Get-WmiObject -class Win32_Printer | select Name, PortName, Sharename, Location, Systemname | where portname –contains xxx.xxx.xxx.xxx |
Analog kann die Suche natürlich auch auf die anderen Werte ausgeführt werden.
Mit dem Parameter „-Computer“ kann man nun andere Printserver im (Domänen-)Netzwerk angeben und man muss sich nicht auf jeden einzelnen Druckserver anmelden.
Der Befehl wäre
1 |
Get-WmiObject -class Win32_Printer | -Computer Printserver02.firma.lan | select Name, PortName, Sharename, Location, Systemname |
Im kokreten Fall war die Idee, das Ganze in eine Excelliste zusammenzuführen und diese auf einer Freigabe als “Nachschlagewerk” zu nutzen.
(Gleich vorweg – eine blöde Idee. Aber dazu später.)
So habe ich von jedem Printserver eine CSV–Datei der Abfrage generiert.
Als Beispiel „Printserver02“
1 |
Get-WmiObject -class Win32_Printer | -Computer Printserver02.firma.lan | select Name, PortName, Sharename, Location, Systemname | Export-Csv -NoTypeInformation C:\Users\testuser\Desktop\PS02.csv |
So hatte ich danach 3 CSV-Dateien (PS01.csv, PS02.csv, PS03.csv) welche ich in einer Excelliste zusammengeführt habe.
Dann noch den Filter aktiviert und man kann einfach und schnell nach Druckern suchen.
Schön ….
aber ….
Das Hauptproblem war nun die Aktualität der Daten (Drucker ändern sich nun mal).
So musste dann der Datenbestand manuell nachgepfelgt, oder eben wieder neu ausgelesen, werden.
Irgendwie war es noch zu händisch. Es sollte einfacher …. automatischer funktionieren.
Weiter gehts im Teil 2