Active Directory (AD) 診斷工具是 PowerShell 指令碼公用程式,可協助您排解 Google Cloud中地端部署網域和 SQL Server 適用的 Cloud SQL 執行個體的 AD 設定問題。
這項工具會執行各種檢查,找出通訊埠關閉、FQDN 查詢和 DNS 等問題。它在地端部署 Windows VM 上執行,該 VM 是地端部署網域的其中一個網域控制器。
本頁面說明如何使用 Cloud SQL 的 Active Directory 診斷工具,並說明該工具執行的檢查。
必要條件
請先確認您已設定下列元件,再繼續使用 AD 診斷工具:
- 已啟用 AD 的地端部署網域。
- Google Cloud 控制台中的 Managed AD 網域。
- 已加入 Managed AD 網域的 SQL Server 適用的 Cloud SQL 執行個體。
如何使用廣告診斷工具
如要使用 AD 診斷工具,請按照下列步驟操作:
- 登入任何一個地端部署網域控制站,或加入地端部署網域的 VM。
- 將
diagnose_ad.ps1指令碼下載到 VM。 - 以管理員身分啟動 PowerShell。
在 PowerShell 視窗中使用下列指令,執行
diagnose_ad.ps1指令碼:powershell -command "& { . C:\\<var>SCRIPT_PATH</var>\\diagnose_ad.ps1; Run-Tool }"在系統提示時輸入以下內容:
- 地端部署網域名稱,例如
my-onprem-domain.com - Managed AD 網域名稱,例如
my-ad-domain.com - SQL Server Active Directory FQDN 和私人 IP 位址清單。您可以在 Google Cloud 控制台的執行個體「Overview」(總覽) 頁面中找到這份清單。
- 地端部署網域名稱,例如
接著,工具會執行多項檢查,詳情請參閱「AD 診斷工具執行的檢查」。
AD 診斷工具執行的檢查
| 檢查 | 說明 | 附註和建議 |
|---|---|---|
| 可用的網域控制站 | 對地端部署網域中每個網域控制站的 IP 位址發出連線偵測 (ping),確保這些位址可連線。 | 其餘檢查會針對可連線的 IP 位址進行。如果這項檢查失敗,請確認其餘地端部署網域控制器的網路連線。詳情請參閱「建立網路基礎架構」。 |
| 通訊埠 | 確認所有地端部署網域控制站上,AD 所需的 TCP 和 UDP 通訊埠皆已開啟。 | 這項檢查會針對 RPC 通訊埠範圍 (49152-65535) 傳回警告狀態,因為該範圍沒有一致的開放通訊埠清單。建議您確認是否已設定防火牆規則集,允許這個範圍。詳情請參閱「開啟防火牆通訊埠」 |
| DNS 伺服器 | 檢查 AD 設定是否正常運作且具備容錯能力。 | 如果指令碼不是在地端部署網域控制器上執行,這項檢查會傳回警告。建議您設定主要和次要 DNS 伺服器,部署容錯 AD 設定。 |
| FQDN (Managed AD 網域) | 對您提供的 Managed AD 網域名稱執行 nslookup。 | 這項檢查會驗證是否能從地端部署網域控制器連上 Managed AD 網域。如果失敗,請嘗試在地端部署網路和 Google Cloud 虛擬私有雲 (VPC) 之間建立網路連線。詳情請參閱「建立網路連線」。 |
| FQDN (SQL Server) | 對您提供的 SQL Server FQDN 執行 nslookup。 | 這項檢查會驗證是否能從地端部署網域控制器連線至執行個體。如果失敗,請嘗試在地端部署網路和 Google Cloud 虛擬私有雲 (VPC) 之間建立網路連線。詳情請參閱「建立網路連線」。 |
| DC 複製 | 尋找地端部署網域控制站之間的 AD 複製失敗。 | 如果指令碼是在加入地端部署網域的 VM 上執行,且 Powershell 不是以 Active Directory 網域使用者身分執行,則會顯示失敗狀態。如果這項檢查失敗,請按照「測試安裝」中的步驟操作。 |
| DNS 轉送 | 尋找地端部署網域控制站上的條件式 DNS 轉送設定,這是將要求從地端部署網域控制站轉送至 Managed AD 網域控制站的必要條件。 | 如果指令碼不是在地端部署網域控制站上執行,這項檢查可能會失敗。建議您設定 DNS 條件轉寄站。 |
| 信任設定 | 驗證地端部署網域和 Managed AD 網域之間是否已設定 AD 信任。 | 這項檢查會驗證地端部署和 Managed AD 網域之間是否已設定 AD 信任。建議您在地端部署網域和 Managed Microsoft AD 網域之間建立信任關係。詳情請參閱「設定信任關係」一文。 |
| 本機安全性政策 |
檢查是否已設定本機安全性政策設定 Network access: Named pipes that can be accessed anonymously。您需要進行這項檢查,才能建立 AD 信任。 |
如果指令碼不是在地端部署網域控制器上執行,這項檢查預期會失敗。這項檢查需要您以管理員身分執行 Powershell,才能檢查本機安全性政策設定。如果失敗,建議您驗證地端部署網域的本機安全性政策。 |
| 名稱後置字串轉送 | 檢查地端部署網域控制器是否已啟用名稱尾碼轉送至 Managed AD 網域的功能。您必須執行這項檢查,才能將要求從地端部署樹系轉送至 Managed AD 樹系。 | 這項檢查需要您以管理員身分執行 Powershell,才能檢查名稱尾碼轉送設定。如果失敗,建議您重新整理地端部署信任的名稱尾碼轉送。 |
| 地端部署網域的 Kerberos 票證 | 驗證地端部署網域是否已啟用 Kerberos 驗證。系統會尋找地端部署網域現有的 Kerberos 票證。如果找不到,則會嘗試產生新的票證。 | 這項檢查會嘗試尋找地端部署 DC 的現有 Kerberos 票證。如果失敗,系統會嘗試產生新的票證做為驗證形式。其他檢查項目發生錯誤,可能會導致這項檢查也發生錯誤。如果解決其他檢查的失敗問題,這項檢查的失敗問題應該也會解決。 |
| SQL Server 的 Kerberos 票證 |
驗證地端部署網域是否已啟用 Kerberos 驗證。系統會為您提供的每個 SQL Server 服務主體名稱 (SPN) 尋找現有的 Kerberos 票證。SQL Server 的 SPN 為 MSSQLSvc/{SQL Server FQDN}:1433。如果無法取得 SPN 票證,Cloud SQL 會檢查是否已設定 Windows 登錄值,允許在主機名稱中使用 IP。如果已設定,請嘗試使用 SPN MSSQLSvc/{SQL Server IP}:1433 取得票證。詳情請參閱 Microsoft 說明文件。 |
這項檢查會嘗試尋找 SQL Server 現有的 Kerberos 票證。如果失敗,系統會嘗試產生新的票證做為驗證形式。其他檢查項目發生錯誤,可能會導致這項檢查也發生錯誤。解決其他檢查的失敗問題,應該就能解決這項檢查的失敗問題。 |
| Cloud SQL 連線能力 |
測試從地端部署網域到提供的 Cloud SQL 執行個體 IP 位址,透過 TCP 通訊埠 1433 的網路連線。 |
這項檢查會驗證資料庫的網路路徑是否開放。如果失敗,請確認地端部署防火牆和 Google Cloud 虛擬私有雲防火牆規則,分別允許 TCP 通訊埠 1433 的傳出和傳入流量。 |
| Kerberos 服務 (SRV) 記錄 |
查詢本機 DNS 的 _kerberos._tcp 和 _kerberos._udp SRV 記錄,並確認目標主機與提供的網域名稱正確相符。
詳情請參閱 Microsoft 的 SRV 記錄說明文件。 |
如果這項檢查失敗,請確認 Active Directory 網域的 DNS SRV 記錄存在且設定正確。 |
後續步驟
- 如要提供意見,請使用 GitHub Issues。