很多人可能會對Windows XP的一點感到奇怪:在Windows 2000 Professional中能夠對活動目錄進行搜 索,而在Windows XP中這個功能卻被去掉了。實際上,雖然用戶無法通過Windows XP提供的圖形用戶界面 使用這個活動目錄搜索的功能,但是它的確是存在的。
這裡有一個小技巧可以令用戶通過Windows來搜索活動目錄,那就是利用一個動態鏈接庫(DLL)文件 。
應用程序通過使用動態鏈接庫文件來避免重復編碼。舉例來說,幾乎在每個程序的“文件 ”菜單裡面都有一個“打開”命令,而當你不知道你想打開的文件的文件名時,你還可 以通過點擊“浏覽”按鈕來在你的硬盤或者一個網絡驅動器上查找你想要的文件。
盡管我不是一個程序員,我也知道這個“浏覽”的功能就是基於一個DLL文件或者類似的東 西,這樣不同的程序都可以方便的調用這個功能。如果不是這樣的話,那麼只要有人要想編寫一個基於 Windows的應用程序並且包含“文件打開”的功能,那麼他就不得不自己編寫關於浏覽文件的 代碼。在這種情況下,你可能會看到很多低端的程序都把這個功能去掉了,因為代碼編寫太麻煩。實際上 ,選擇了包含“浏覽”功能的應用程序都可以統一的實現它,因為這些應用程序都使用了共享 的代碼,而這些代碼被封裝在了DLL文件之中。
回到我們的主題上來,那麼DLL文件對我們搜索活動目錄有什麼幫助呢?要知道,很多應用程序都需要 對活動目錄進行搜索。而在Windows XP中,對活動目錄搜索的功能被封裝到了DLL文件中。只要能利用這 些DLL文件,就能允許用戶執行對活動目錄的查詢和搜索功能。
你可以通過另一個叫做RUNDLL32.EXE的操作系統組件來完成這些操作。請注意,盡管包含了很多模塊 和很多代碼,但是DLL文件本身並不是一個可執行文件。只有通過RUNDLL32.EXE,一個輔助的應用程序, 你才能執行一個DLL文件。更精確一些來說,實際上你不是執行一個DLL文件,而是在執行DLL文件中的一 些函數。大多數的DLL文件都包含了多個函數,所以在執行的時候你應該指定需要執行的具體的函數名稱 。
現在你知道DLL文件是如何工作的了,那我們來看看當你想開始一次活動目錄查詢時,相應的命令和參 數應當怎麼寫。請注意,下列命令區分大小寫:
rundll32 dsquery,OpenQueryWindow
DSQIERY是一個DLL文件的名字,而OpenQueryWindow是你調用的函數的名字。顧名思義,執行這條命令 後,系統會打開一個窗口,你可以在該窗口中活動目錄中不同的對象。
雖然通常我們都是使用“運行”來執行這條命令,但是你也可以把它做成一個批處理文件 ,然後為這個批處理文件創建一個桌面快捷方式。這樣你只需簡單的雙擊一下鼠標,就可以執行一次對活 動目錄的查詢操作了。