2016-04-23 170 views
0

我正試圖從Windows打印服務器開發一種方式來從打印機(至少名稱和IP)中提取列表。我打算在一個外部的PHP驅動的狀態網站上使用這個信息,它運行在一個Linux網絡服務器上,它通過SNMP單獨與打印機通信。 SNMP通信已經正常工作。我只需要一種動態生成它所涉及的打印機列表的方式,而不是對所有IP/DNS主機名進行硬編碼。從Windows打印服務器輪詢打印機信息

這裏的想法是,我完全沒有觸摸或更改打印服務器,打印機或底層網絡服務器。我控制的唯一一件事是共享的,非管理性的CPanel帳戶。

到目前爲止,我的研究已將我引向三個潛在的潛在客戶。我幾乎沒有任何經驗。

1)PHP printer_list命令,它是PECL擴展的一部分。目前我們的網絡服務器沒有安裝這個擴展,我不想提出這個請求,除非我知道它適用於我的目的。

2)lpstat Linux命令,CUPS的一部分。我已經嘗試使用它的每個人的頁面,它似乎只是坐在那裏什麼都不做。我不知道這是否是因爲它希望CUPS響應,我認爲它不會從Windows服務器獲得,或者這可能是防火牆問題。

3)某種SMB或WMI查詢。我不知道如何開始這些。

我想問一個關於從哪裏開始的建議。這是一個非常令人擔憂的研究項目,因爲90%的搜索結果都是關於想要打印的人。另有8%是關於人們對本地系統進行打印機信息投票的。其餘的都是黑魔法和專有企業解決方案。

任何見解都非常感謝。 ==馬特

回答

1

我使用WMI有效地通過網絡獲取使用打印機的信息:

Select * FROM Win32_Printer 

首先:

1 - 從運行窗口中運行wbemtest

2 - 連接到您知道打印機配置的任何機器。

3 - 有查詢選項,複製Select * FROM Win32_Printer

4 - 第4步將返回表格,點擊Show MOF,它會爲您提供打印機的信息。維奧拉,你完成了。

5 - 我已經使用C#ManagementObjectSearcher & ManagementObjectCollection而且它非常簡單易用。

使用WMI有一些優缺點。在線閱讀。

+1

非常感謝。這是一個很好的開始。 – mmseng