适用于 Cloud SQL 的客户管理的 Active Directory 诊断工具

客户管理的 Active Directory (CMAD) 诊断工具是一个实用程序 PowerShell 脚本,可帮助您在与 Google Cloud中的 Cloud SQL 集成之前或期间排查网域的 Active Directory 设置问题。

该工具会对相关问题(例如关闭的端口、网域控制器 (DC) 可访问性、账号状态以及组织部门 (OU) 存在性和权限)执行各种检查。它在 Windows 虚拟机上运行,该虚拟机应是 Active Directory 网域的网域控制器之一或已加入网域的机器。

本页面介绍如何使用适用于 Cloud SQL 的 CMAD 诊断工具,并说明了该工具执行的检查。

前提条件

在继续使用 CMAD 诊断工具之前,请确保已设置以下组件:

  • Active Directory 网域。
  • 有权将计算机加入目标组织部门的 Active Directory 管理员账号。
  • Active Directory 中将创建 Cloud SQL 计算机账号的组织部门 (OU)。
  • 如果是在已加入网域的虚拟机(而非网域控制器)上运行脚本,则必须安装 PowerShell 的 Active Directory 模块 (RSAT-AD-PowerShell)。

如何使用 CMAD 诊断工具

如需使用 CMAD 诊断工具,请执行以下步骤:

  1. 登录任一网域控制器或登录一个加入了 Active Directory 网域的虚拟机。
  2. 在虚拟机上下载 diagnose_cmad.ps1 脚本。
  3. 以管理员身份启动 PowerShell。
  4. 使用以下命令在 PowerShell 窗口中运行 diagnose_cmad.ps1 脚本:

    C:\SCRIPT_PATH\diagnose_cmad.ps1

    将 SCRIPT_PATH 替换为您下载脚本的目录的路径。

  5. 出现提示时,请输入以下信息:

    • 本地域名,例如 my-domain.com
    • AD 管理员账号,例如 myadmin
    • 目标组织部门,例如 OU=cloud,DC=my-domain,DC=com

之后,该工具会执行多项检查,具体请参阅使用 CMAD 诊断工具执行的检查部分。

使用 CMAD 诊断工具执行的检查

检查说明 备注和建议
可用的网域控制器 对本地网域上每个网域控制器的 IP 地址发出 ping 请求,以确保它们可以访问。 其余检查会继续对可访问的 IP 地址进行。如果有某个本地网域控制器未通过此检查,则需确保其余本地网域控制器的网络连接。如需了解详情,请参阅创建网络基础架构。
端口 验证 AD 的所有必需 TCP 和 UDP 端口在所有本地网域控制器上都处于打开状态。 此检查会针对 RPC 端口范围 (49152-65535) 返回警告状态(如果打开端口列表不一致)。建议您确认设置了允许此范围的防火墙规则集。如需了解详情,请参阅 客户管理的 Active Directory 防火墙规则。
DC 复制 查找本地网域控制器之间是否发生任何 AD 复制失败问题。 当脚本是在加入了本地网域的虚拟机上运行,如果 Powershell 未以 Active Directory 域用户身份运行,则该检查会返回失败状态。如果此检查未通过,请按照测试安装中指定的步骤操作。
Kerberos 服务 (SRV) 记录 查询本地 DNS 以获取 _kerberos._tcp 和 _kerberos._udp SRV 记录,并验证目标主机是否与提供的域名正确匹配。

如需了解详情,请参阅 Microsoft 关于 SRV 记录的文档。
如果此检查失败,请验证 Active Directory 网域的 DNS SRV 记录是否存在且配置正确。
AD 管理员账号状态 验证为 CMAD 集成指定的管理员账号是否存在、是否已启用、是否未被锁定,以及是否未过期。 如果此检查失败,请解锁用户账号,在 Active Directory 用户和计算机 (ADUC) 中启用该账号,或者在 Secret Manager 中更新凭据(如果密码已过期)。
组织部门 (OU) 验证目标组织部门 (OU) 标识名 (DN) 是否存在于 Active Directory 中。 如果此检查失败,请验证目标 OU 是否存在于 Active Directory 中,以及所提供的 DN(例如 OU=cloud,DC=my-domain,DC=com)是否格式正确。
组织部门权限 验证 Active Directory 管理员账号是否对目标 OU 拥有 Cloud SQL 所需的权限,包括该账号通过其群组成员身份获得的权限。

如果此检查失败,请按照 CMAD 概览中的准备工作部分所述,将缺少的权限委托给管理员账号,并移除 OU 中适用于该账号或其群组的所有 Deny 权限条目。

如果此检查返回警告,则表示该工具无法读取账号的群组成员资格。验证账号是否通过群组获得缺少的权限。

后续步骤

  • 如要提供反馈意见,您可以通过 GitHub 问题来提交反馈。