Active-Directory

持續檢查與域控制器的 LDAP 連接(LDAP 心跳檢查)

  • July 7, 2014

致力於開發通過計劃任務執行的腳本;它的全部目的是針對少數域控制器並連續(每 2 秒)針對該特定 DC 執行 ldap 查詢並將輸出轉儲到 csv find.Essentially,我正在執行以下步驟。

$root = [ADSI]"LDAP://CN=$TargetDCName,OU=Domain Controllers,DC=Fabricom,DC=com"
$search = [adsisearcher]$root
$Search.Filter = "(&(objectClass=computer))"
$Search.SearchScope = "base"
$Obj = $Search.Findone()
$Obj = $Obj.Path
$DateFormatted = Get-Date -uformat "%Y-%m-%d_%I-%M-%S-%p"
$Data = $DateFormatted + "," + $TargetDCName+ "," + "$Obj"
Add-Content -Path $Path -Value $Data

現在我幾乎沒有疑問了;1.)我在上面所做的是否對 LDAP 連接檢查有意義,因為我正在使用與 ROOT/Base 相同的 DC 查詢 DC。(上面的程式碼是否確認從任何應用程序到該特定 DC 的 LDAP 連接存在是否正確配置?)

2.) 這個問題是關於 powershell 的,如何在 powershell 中獲取 LDAP 錯誤日誌?我想針對不存在或已關閉的 DC 對其進行測試,我應該期待什麼日誌事件以及如何擷取它。

3.) 與問題 2 相同,如果 DC 存在複製問題,是否會影響 LDAP 連接?應該擷取哪些日誌以及如何擷取?以下是一些複製錯誤,這些事件是否會導致 LDAP 連接問題?

** -> (1256) 遠端系統不可用。有關網路故障排除的資訊,請參閱 Windows 幫助。->(1722) RPC 伺服器不可用。->(8206) 目錄服務正忙。->(8438) 此時目錄服務太忙,無法完成複制操作。**

4.) 如何辨識 LDAP 查詢的延遲?由於這個腳本是獨立執行的,有沒有辦法確定它所花費的時間或測量它的延遲?

如果需要更多資訊,請告訴我。

我在上面所做的是否有意義作為 LDAP 連接檢查

每 2 秒執行一次是多餘的。太多了。如果您要這樣做,請考慮將間隔延長為每 5 分鐘左右檢查一次。LDAP 伺服器不太容易崩潰,以至於您需要每 2 秒檢查一次。

上面的程式碼是否確認存在從任何正確配置的應用程序到該特定 DC 的 LDAP 連接?)

是的,它將測試 LDAP 連接。這不是唯一的方法,它可能是也可能不是最好的方法,但它是一種方法。

我也懷疑您如何在腳本的每次迭代(每 2 秒!)上輸出到 CSV,並且每次迭代都簡單地覆蓋相同的 CSV。如果您改為將輸出發送到 SQL 數據庫並在每次腳本執行時添加一行,您將擁有更多的上下文數據。例如,您可以查詢數據庫,發現從上午 10:00 到上午 10:30 中斷了 30 分鐘,然後在 7 月 7 日上午 11:45 到上午 11:50 中斷了 5 分鐘, ETC。

這個問題是關於 powershell 的,如何在 powershell 中獲取 LDAP 錯誤日誌?我想針對不存在或已關閉的 DC 對其進行測試,我應該期待什麼日誌事件以及如何擷取它。

您需要創建自己的事件日誌記錄。Powershell 不會在沒有您要求的情況下自動記錄每個錯誤和異常。考慮使用Start-Transcript將您的 Powershell 會話記錄到文件中。或者,您可以使用New-Eventcmdlet 創建您自己的自定義事件日誌消息。使用 Try/Catch 塊輕鬆擷取異常。您還可以在腳本中使用 $Error 變數來查看最後一個錯誤。

與問題 2 相同,如果 DC 存在複製問題,應擷取哪些日誌以及如何擷取?

這不是在域控制器上測試複製問題的合適方法。您應該使用repadmin.exe /showreps目錄服務事件日誌等來監控複製執行狀況。

**編輯:**為了解決您的更新,

RPC 錯誤不等同於 Active Directory 複製錯誤。RPC 伺服器可用性是一個單獨的問題……儘管 RPC 伺服器可用性問題的根本原因當然也可能導致巧合的複制問題。需要更多故障排除。

如何辨識 LDAP 查詢的延遲?由於這個腳本是獨立執行的,有沒有辦法確定它所花費的時間或測量它的延遲?

從客戶端的角度來看,該Measure-Commandcmdlet 擅長告訴您某事花費了多長時間。或者,您可以使用底層 System.Diagnostics.Stopwatch .NET 對象。這是相當準確的。

從伺服器的角度來看,您可能希望查看性能監視器。(Perfmon)查看“目錄服務”和 NTDS perfmon 對象——它們有各種性能計數器,與每秒執行多少目錄讀取、平均時間、隊列長度等有關。Perfmon 計數器有利於整體健康,但伺服器可能不會跟踪每個單獨的 LDAP 查詢的延遲。如果您對該測量感興趣,您可能希望從客戶那裡進行測量。

引用自:https://serverfault.com/questions/610668