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