2016-04-23 13 views
0

Windowsプリントサーバーからプリンタのリスト(少なくとも名前とIP)を取得する方法を開発しようとしています。私はこの情報を、Linuxウェブサーバ上で動作する外部PHP駆動のステータスウェブサイトで使用する予定です。これは、SNMP経由でプリンタと個別に通信します。 SNMP通信はすでに機能しています。私は、すべてのIP/DNSホスト名をハードコーディングするのではなく、話しているプリンタのリストを動的に生成する方法が必要です。Windowsプリントサーバーからのプリンタ情報のポーリング

ここで考えているのは、プリントサーバー、プリンター、または基盤となるWebサーバーに触れたり変更したりすることなく、これを行うことです。私の管理下にある唯一のものは、管理されていないCPanelの共有アカウントです。

これまでの私の研究は、3つの可能性のあるリードにつながっています。私はそれらのどれにも経験がない。

1)PECL拡張の一部であるPHPのprinter_listコマンド。現時点では、私たちのWebサーバにはこの拡張機能がインストールされていません。私の目的のために動作することがわかっていない限り、その要求をしたくないです。

2)lpstat Linuxコマンド、CUPSの一部。私はマニュアルページごとにそれを使用しようとしましたが、何もしないでそこに座っているようです。私は、これがWindowsサーバから取得しないと思うCUPSの応答を期待しているか、またはこれがファイアウォールの問題である可能性があるので、これが正しいかどうかわかりません。

3)何らかのSMBまたはWMIクエリ。私はこれらから始める方法も知らない。

私はどこから始めるべきかについてお勧めします。これは、検索結果の90%が印刷したいと思っている人々に関するものであるため、研究が非常に面倒なプロジェクトでした。別の8%は、プリンタ情報についてローカルシステムをポーリングする人々に関するものです。残りは黒の魔法と独自のエンタープライズソリューションです。

洞察力は非常に高く評価されています。 ==マット

答えて

1

私が使用してネットワーク上でプリンタ情報を取得するために効果的にWMIを使用しています:

Select * FROM Win32_Printer 

を開始するには:

1 - 実行ウィンドウからwbemtestを実行します。

2 - プリンタが設定されていることがわかっているマシンに接続します。

3 - 、queryオプションがありSelect * FROM Win32_Printer

4コピー - ステップ4をShow MOFをクリックして、あなたのテーブルを返します、それはあなたのプリンタ情報を提供します。ヴィオラ、あなたは終わった。

5 - 私は使用しましたC#ManagementObjectSearcher & これはかなり簡単で使いやすいです。

WMIを使用する際の賛否両論があります。オンラインで読む。

+1

ありがとうございます。これは素晴らしいスタートです。 – mmseng

関連する問題