2016-04-23 17 views
0

Ich versuche, eine Möglichkeit zu entwickeln, eine Liste von Druckern (Namen und IPs mindestens) von einem Windows-Druckserver zu ziehen. Ich plane, diese Informationen in einer externen PHP-gestützten Status-Website zu verwenden, die auf einem Linux-Webserver läuft, der über SNMP einzeln mit den Druckern kommuniziert. Die SNMP-Kommunikation ist bereits funktionsfähig. Ich brauche nur eine Möglichkeit, die Liste der Drucker, mit denen ich rede, dynamisch zu generieren, anstatt alle IPs/DNS-Hostnamen hart zu codieren.Polling Druckerinformationen von einem Windows-Druckserver

Die Idee hier ist, dass ich dies vollständig tun, ohne die Druckserver, Drucker oder den zugrunde liegenden Webserver zu berühren oder zu ändern. Das einzige, was ich unter meiner Kontrolle habe, ist ein geteiltes, nicht-administratives CPanel-Konto.

Meine bisherigen Forschungen haben mich zu drei potenziellen Leads geführt. Ich habe fast keine Erfahrung mit irgendwelchen von ihnen.

1) Der PHP printer_list-Befehl, der Teil der PECL-Erweiterung ist. Im Moment ist auf unserem Webserver diese Erweiterung nicht installiert, und ich möchte diese Anfrage nicht machen, wenn ich nicht weiß, dass sie für meine Zwecke funktioniert.

2) Der Linux-Befehl lpstat, Teil von CUPS. Ich habe versucht, es auf der man-Seite zu benutzen und es scheint einfach da zu sitzen und nichts zu tun. Ich weiß nicht, ob dies der Fall ist, weil es eine CUPS-Antwort erwartet, von der ich annehme, dass sie nicht von einem Windows-Server kommt, oder wenn dies ein Firewall-Problem sein könnte.

3) SMB- oder WMI-Anfragen irgendeiner Art. Ich habe keine Ahnung, wie ich überhaupt damit anfangen soll.

Ich würde gerne nach einer Empfehlung fragen, wo ich anfangen soll. Dies war ein sehr beunruhigendes Forschungsprojekt, da 90% der Suchergebnisse von Menschen handeln, die drucken möchten. Bei weiteren 8% handelt es sich um Personen, die ein lokales System nach Druckerinformationen abfragen. Der Rest sind schwarze Magie und proprietäre Unternehmenslösungen.

Alle Einblicke werden sehr geschätzt. == Matt

Antwort

1

Ich bin mit WMI effektiv Druckerinformationen über das Netzwerk holen mit:

Select * FROM Win32_Printer 

Zunächst:

1 - Führen Sie wbemtest aus laufen Fenster.

2 - Stellen Sie eine Verbindung zu einem beliebigen Computer her, von dem Sie wissen, dass Drucker konfiguriert sind.

3 - Es gibt Abfrageoption, kopieren Select * FROM Win32_Printer

4 - Schritt 4 werden Sie Tabelle zurückzukehren, klicken Sie auf Show MOF, wird es Sie Druckerinformationen zur Verfügung stellen. Viola, du bist fertig.

5 - Ich habe C#ManagementObjectSearcher & ManagementObjectCollection verwendet, und es ist ziemlich einfach und leicht zu bedienen.

Es gibt einige Vor- und Nachteile der Verwendung von WMI. Lies es online.

+1

Vielen Dank. Das ist ein guter Anfang. – mmseng