撰寫網路應用程式時,開發者習慣想到 System.Net 與 System.Net.Sockets。但 .NET Framework 其實還提供了 System.DirectoryServices 命名空間,內含 DirectoryEntry 與 DirectorySearcher 兩大核心類別,能直接操作 ADSI (Active Directory 服務介面),以分層樹狀結構存取網路資源(域、工作群組、電腦、印表機等),極大簡化了原本需呼叫 Win32 API 的複雜度。
關鍵限制:用戶端電腦必須安裝 ADSI 2.5 或更新版本。Windows 2000 內建;Windows 98/Me 須手動安裝,否則無法被查詢顯示。這也是為何舊版作業系統電腦不會出現在樹狀圖中的原因。
| 屬性 | 說明 |
|---|---|
| AuthenticationType | 取得/設定驗證類型 |
| Children | 取得子節點集合 (DirectoryEntries) |
| Name | 取得目錄服務命名的物件名稱 |
| NativeObject | 取得底層 ADSI COM 物件 |
| Parent | 取得父節點 |
| Path | 取得/設定此 DirectoryEntry 路徑 |
| Properties | 取得屬性集合 (PropertyCollection) |
| SchemaClassName | 取得結構描述類別名稱 (如 "Computer") |
| Username / Password | 驗證用帳號/密碼 |
| 方法 | 說明 |
|---|---|
| Close() | 關閉並釋放資源 |
| CommitChanges() | 儲存對 Active Directory 的變更 |
| CopyTo() | 複製節點至指定父容器 |
| DeleteTree() | 刪除節點及其整個子樹 |
| Exists(path) | 檢查指定路徑節點是否存在 |
| Invoke() | 在原生 ADSI 物件上呼叫方法 |
| MoveTo() | 移動節點至新父容器 |
| RefreshCache() | 重新載入屬性快取 |
| Rename() | 重新命名節點 |
掌握上述基礎,下一篇將進入專案建立與介面設計的實際操作。