GCDS 错误消息

您在使用 Google Cloud Directory Sync (GCDS) 时可能会看到以下错误消息。请参考下表来排查错误。

试用日志分析器

此工具在您提交日志后的一段时间内即可确定大部分问题。

详细了解如何启用跟踪记录级别的日志记录

错误消息和解决方案

错误消息 说明和解决方案

Network problem: Unable to connect to the specified LDAP server: simple bind failed: servername:636, reason: SSLHandshakeException - No subject alternative names present

Network problem: Unable to connect to the specified LDAP server: simple bind failed: servername:636, reason: SSLHandshakeException - No subject alternative DNS name matching servername found

证书的通用名称 (CN) 和主题备用名称 (SAN) 与您的 GCDS 配置文件中 LDAP 服务器的名称不一致。

如需解决此问题,请执行以下任一操作:

  • 更正您的 GCDS 配置文件。如果您已在 GCDS 配置中添加 LDAP 服务器 IP 地址,请同时输入其完全限定域名 (FQDN),例如 dc01.solarmora.com
  • 将 SAN 添加到证书中 - 确保 SAN 包含您在 GCDS 配置中使用的 LDAP 服务器的名称。

作为临时解决方法,您可以通过向 GCDS 安装文件夹中的 config-manager.vmoptionssync-cmd.vmoptions 文件添加新行来关闭端点识别。在添加到文件之前,请移除换行符:

-Dcom.sun.jndi.ldap.object. disableEndpointIdentification=true

sun.security.provider.certpath.SunCertPathBuilder Exception: unable to find valid certification path to requested target

ldap_simple_bind_s() failed: Strong Authentication Required

按照排查证书相关问题中的步骤操作。

InvalidCipherTextException:加密参数无效。Salt/Iteration/Initialization Vector

如果您正在没有 GUI 的计算机上运行 GCDS,您可能未正确导入密钥。如需了解相关步骤,请参阅如何在没有图形界面 (GUI) 的设备上授权 GCDS?

java.lang.RuntimeException: Encountered unrecoverable SQLException. 指定的状态数据库为“path-to-folder\syncState\folder-name

找到并删除消息中指出的文件夹。然后,重新开始同步。

java.sql.SQLException: Invalid checksum on Page

其他进程与 GCDS 正在同时访问缓存文件夹或文件。

如要进行问题排查,请下载并运行 Microsoft 的 Process Monitor,然后创建过滤器。在过滤条件选项中,使用 PathContainspath-to-folder\syncState 来识别正在访问相应文件夹或文件的进程。

如需了解详情,请前往 Process Monitor

输入无效:查询

您在用户搜索查询字段中输入了无效的查询。移除搜索查询或确保其符合搜索用户中所述的搜索准则。

如需详细了解用户搜索查询,请参阅利用排除规则和查询来省略数据

SocketException - 连接重置

如果您在连接 LDAP 服务器时收到此消息,则表示该服务器已关闭连接。可能的原因包括:

  • 您正在使用 LDAP+SSL,且 LDAP 服务器未配置为接受 GCDS 支持的 TLS 参数(例如加密套件)。请确保您的 LDAP 服务器已安装最新的安全更新并采用最新设置。
  • 一条防火墙规则阻止了连接。
在请求的时间内无法获取锁

如要排查此问题,请执行以下操作:

  1. 确保您的计算机上仅运行一个 GCDS 实例。

    您一次只能使用同一个 XML 文件运行一个 GCDS 实例。

  2. 请重启系统,以确保没有其他进程正在访问 GCDS 缓存数据库。然后,再次运行同步。
  3. 如果问题仍然存在,请找到并重命名 SyncState 文件夹,以强制 GCDS 创建新的缓存数据库。您可以在用户个人资料文件夹 (Windows) 或主目录 (Linux) 下找到该文件夹。
400 错误:invalid_request: The version of the app you're using doesn't include the latest security features to keep you protected. 请务必从可信来源下载应用,并更新至最新、最安全的版本。

确保您使用的是最新版 GCDS。有关详情,请参阅更新 GCDS

java.sql.SQLException: Directory <directory> cannot be created.

GCDS 需要目录的完整权限,以便维护同步状态数据库。在以下情况下,您可能会看到此错误:

  • 目前使用 GCDS 的用户与之前安装 GCDS 的用户不同
  • 安装后权限发生了变更
org.jdom.input.
JDOMParseException:
Error on line 1: Content is not allowed in prolog

GCDS 正在尝试加载包含不受支持的字符编码的配置文件。

GCDS 使用 UTF-8 作为默认字符编码。尽管其他编码是兼容的,但您应该对配置文件使用相同的编码。

要解决此问题,请执行以下操作:

  1. 将配置文件的编码方式更改为 UTF-8:
    1. 打开文本编辑器。
    2. 换一种编码方式保存该文件。
  2. 确认配置文件的内容是否正确无误。
  3. 再次尝试在 GCDS 中加载配置文件。

最常见的不受支持的编码方式是 UTF-7 和 UTF-8 BOM。

javax.net.ssl.
SSLHandshakeException:
connection during handshake

由于网络连接问题,GCDS 无法与 Google 服务器完成安全套接字层 (SSL) 握手。如果计算机传输数据包的速度过慢,或者是您的 ISP 暂时无法提供服务,则可能会导致此问题。

GCDS 最多会尝试三次 SSL 握手。如果您在日志中看到以下消息,则表明 GCDS 在后续尝试时成功完成了握手,因而无需再采取进一步措施:[usersyncapp.sync.FullSyncAgent] No differences detected, no changes necessary.

请与您的本地网络管理员联系,了解可能是什么原因导致网络超时。

已超出当前请求的配额

如果您在日志中看到此错误,则表示 GCDS 已被暂时禁止使用 Google API。GCDS 会重试这些 API,您的同步应该会按预期继续。

如果您在同步摘要报告中看到该错误,并且同步未正确完成,请与支持团队联系。有关详情,请参阅与支持团队联系之前需要准备哪些 GCDS 信息?

java.lang.RuntimeException:
Unknown LDAP search rule scope "null"

配置管理器中的以下某个部分包含一条空规则:

  • LDAP 配置 然后组织部门 然后搜索规则
  • LDAP 配置 然后用户 然后用户同步
  • LDAP 配置 然后群组 然后群组搜索规则
  • LDAP 配置 然后用户个人资料 然后用户个人资料同步
  • LDAP 配置 然后共享联系人 然后联系人同步

有关详情,请参阅利用配置管理器设置同步

密码的摘要长度无效

未在配置管理器中正确配置同步密码所用的加密方法,或者 GCDS 不支持您的 LDAP 服务器所使用的加密方法。明文以及 Base64、MD5 和 SHA1 等加密方法均受支持。要与 Microsoft Active Directory 同步密码,请使用 Password Sync

有关详情,请参阅“如何同步密码?”更新 GCDS

0 个嵌套群组

GCDS 未能正确地区分您的 LDAP 服务器上的用户和嵌套群组。要解决此问题,请执行以下操作:

  1. 将下面这行内容添加到配置文件的 <features> 部分:
    GROUP_NESTED_GROUPS_AS_USERS
  2. 请将该行内容括在 <optional> 标记中。
  3. 保存配置文件并进行同步。
暂停用户

如果您利用在配置管理器之外复制的配置文件执行同步,GCDS 可能会试图做出意外更改。新配置文件与原配置文件使用的是同一缓存,而这两者之间的不一致会导致用户被暂停。

要复制 GCDS 配置文件,请务必使用配置管理器中的另存为选项。这样做可以确保新配置文件能够拥有自己的缓存。

如需了解详情,请参阅使用配置文件

跳过未知成员

您使用的是旧版 GCDS XML 配置文件,而且 GCDS 发现有群组成员不在配置的用户搜索规则范围之内。用户搜索规则应覆盖所有群组成员和所有者,即使您不希望将相关用户同步到 Google 网域中,也应如此配置。GCDS 需要提取这些用户的电子邮件地址,以便对群组进行适当处理。

另外,您也可以新建空白的 XML 配置文件。然后,GCDS 会启用独立的群组同步,这样无论用户同步规则如何,都可以强行让 GCDS 解析群组成员。如果您不确定,建议使用此选项。

更改配置或新建配置文件时,请务必先进行模拟并检查结果,然后再全面执行同步。

如需了解详情,请参阅定义用户列表

com.google.data.client.
GoogleServiceException:
Invalid credentials

您在配置管理器中指定的管理员账号不属于管理员,或者用户名和密码有误。

在“配置管理器”中,依次点击 Google Domain 然后设置,然后验证管理员电子邮件地址中指定的管理员账号信息。

如需了解详情,请参阅确定 Google 网域设置

com.google.gdata.util.
ResourceNotFoundException:

在配置管理器的共享联系人部分指定同步键属性后,从 LDAP 服务器中返回了空值。请为所有资源从 LDAP 服务器选择一个包含同步键值的属性,切勿返回 null 或空字符串。

Computed differences exceed
configured deletion limits,
not applying changes

达到了 GCDS 中设置的删除或暂停限制。要避免此错误,请更改 GCDS 中的删除限制设置;您也可以查看同步日志以详细了解哪些内容会被删除或暂停,并确定是否需要更改限制。

InvalidEmail

GCDS 尝试创建的用户或电子邮件别名所在的网域不属于您的 Google 账号。请尝试按以下方法操作:

  • 配置管理器中,依次点击用户账号 然后排除规则,然后创建用户排除规则,以排除外部网域中的用户。
  • 更改您的用户搜索规则,以免返回外部网域中的用户。
  • 将缺少的网域添加为您的 Google 账号的辅助网域。
Domain user limit reached

GCDS 同步的用户数超过了为您账号配置的上限。请尝试按以下方法操作:

  • 配置管理器中,依次点击用户账号 然后搜索规则,并限制用户搜索的范围以返回较少用户。
  • 确保您在配置管理器中指定的 DN 所指向的根目录仅包含需要导入至 Google 网域的用户。
  • 您也可以获取更多用户许可。如需了解详情,请参阅购买更多用户许可
java.lang.RuntimeException:
javax.naming.InvalidNameException:
[LDAP: error code 34 - invalid DN]

配置管理器中指定的基准 DN 所指向的对象可能不在您的 LDAP 服务器上。请检查在 LDAP 连接、用户、群组、个人资料和共享联系人过滤器部分中指定的基准 DN,并确保各部分均将现有对象作为基准 DN。

java.security.cert.
CertPathValidatorException:
revocation status check failed:
no CRL found

GCDS 为获取用于 API 的 HTTPS 证书而与证书授权机构联系时,遭到了另一服务或网络设备的阻止。请检查是否有防火墙或代理规则限制与运行 GCDS 的计算机建立连接。

如果在运行 GCDS 的计算机上需要通过代理才能访问网络,则必须正确配置代理。

为解决此问题,一种权宜之计是禁止检查证书吊销列表 (CRL)。如要禁止检查 CRL,请向 GCDS 安装目录中的 config-manager.vmoptionssync-cmd.vmoptions 文件添加以下两行代码:
-Dcom.sun.net.ssl.checkRevocation=false
-Dcom.sun.security.enableCRLDP=false

如需了解详情,请参阅 GCDS 如何检查证书吊销列表

javax.naming.directory.
InvalidSearchFilterException:
Unbalanced parenthesis; remaining name

配置管理器的以下一个或多个页面中指定的查询没有成对的括号:

  • LDAP 配置 然后组织部门 然后搜索规则
  • LDAP 配置 然后用户 然后用户同步
  • LDAP 配置 然后群组 然后群组搜索规则
  • LDAP 配置 然后用户个人资料 然后用户个人资料同步
  • LDAP 配置 然后共享联系人 然后联系人同步
Root exception is javax.naming.
CommunicationException:
servername:389

GCDS 无法解析指定的 LDAP 服务器名称。请务必为 LDAP 服务器输入完全限定域名,并确保运行 GCDS 的计算机能够解析该域名。

注意:使用 Active Directory 时,服务器名称必须是您网域的完全限定域名。

SSL peer shut down incorrectly

此问题通常是由强制通过代理传输的流量导致的。如果您使用代理,则必须配置 GCDS 代理设置。

完成允许访问网址和端口中的步骤,确保 GCDS 能够连接到这些特定的网址和端口。

本地计算机上的安全软件可能会引起连接问题。请让您的管理员停用客户端计算机上的所有安全软件,然后重试。

您无权访问此 API

请确认您已启用所需的 Google API。

如需了解详情,请参阅授权您的 Google 账号

网域用户数超出上限

您尝试添加的用户超过了用户许可数量。请与您的销售代表联系,以购买更多的用户许可。您也可以更改 LDAP 查询,以减少同步的用户数量。

java.lang.RuntimeException: Failed to execute query because the object at Base DN: "DC=domain,DC=com" is missing or inaccessible

请先检查 LDAP 配置标签中的 DN,以及您指定了基本 DN 覆盖的所有搜索规则中的 DN。

如果问题仍未解决,且您确定 DN 有效,则该问题可能与 DNS 解析有关。您可能会在日志中看到其他错误消息,如:

  • javax.naming.PartialResultException [Root exception is javax.naming.CommunicationException: domain.com:389 [Root exception is java.net.ConnectException: Connection refused: connect]]
  • javax.naming.PartialResultException [Root exception is javax.naming.CommunicationException: domain.com:389 [Root exception is java.net.ConnectException: Connection timed out: connect]]

这些错误表明主机名正在拒绝连接或超时。请尝试在此主机名上运行 DNS 查询,确保返回的所有地址均有效,并允许您配置的端口上的连接。

注意:即使您在 GCDS 配置中指定了有效主机名或 IP 地址,这些错误也可能发生。Active Directory 可能发出 LDAP 引荐响应,让 GCDS 通过主机名进行连接,而此引荐最终可能导向无法解析的主机名。您可以使用全局目录端口(默认为 3268)连接到 Active Directory 服务器,以避免这些引荐。有关详情,请参阅相关 Microsoft 文档。

Character is invalid at location

自定义架构中的部分信息无效。如需查看适用于自定义架构的限制,请前往 Directory API:自定义用户字段

如果您启用了跟踪级别的日志记录,您还可以查看针对自定义架构的完整 HTTP 请求。

java.util.concurrent.
ExecutionException: java.lang.OutOfMemoryError: GC
overhead limit exceeded

超出了指定的内存上限。此事件会导致同步失败。

如需解决此问题,请参阅如果我看到与内存空间相关的错误,该怎么办?

Failed trying to connect to the specified LDAP server

GCDS 无法连接到 LDAP 服务器。请确保:

  • 您使用的是正确的通信协议。如果 LDAP 服务器要求使用安全协议,请使用 LDAP + SSL。
  • LDAP 服务器处于活跃状态,并且没有任何连接问题。
Network problem: Unable to connect to the specified LDAP server

GCDS 找不到 LDAP 服务器。请确保运行 GCDS 的计算机可以访问指定的主机和端口。

Authentication problem: Unable to connect using the credentials supplied

由于身份验证问题,LDAP 服务器拒绝了 GCDS 请求。

请确保授权用户及其密码正确无误。您应使用完整的 DN 添加授权用户。要详细了解如何添加授权用户,请参阅 LDAP 连接设置

Failed to execute query at Base DN <base-dn>

GCDS 无法连接到基本 DN。请确保:

  • LDAP 服务器中存在基本 DN。
  • 授权用户有权访问基本 DN。有关详情,请参阅 LDAP 连接设置
Failed to execute query at Base DN <base-dn> for attribute: <attribute>, reason: NameNotFoundException

GCDS 无法从 LDAP 服务器检索信息。请确保:

  • <base-dn> 对象已存在且可供授权用户访问。有关详情,请参阅 LDAP 连接设置
  • LDAP 服务器中存在 <base-dn> 对象的 <属性>。

Member already exists

在以下情况下,您可能会看到此错误:

  • 您的某位成员的主要 LDAP 地址是 Google Workspace 中的别名地址。请尽量避免这种情况(例如,使用其他用户名替代此别名地址)。
  • 某位用户账号的两个别名地址的用户名相同,而且您勾选了 Google Domain Configuration(Google 网域配置)页面的 Replace domain names in LDAP email addresses(替换 LDAP 电子邮件地址中的域名)复选框。

    如果您勾选此复选框,系统会更改两个电子邮件地址,以匹配备用电子邮件域名字段中列出的域名。

您可以取消选中此复选框,或更改其中一个别名地址的用户名。

如果日志中还显示以下消息:“由于地址冲突,将成员 user-email-address 添加到群组 group-email-address 时发生错误”,请检查是否存在以下情况:

  • GCDS 根据您的排除规则,将 user-email-address 用户从同步中排除了。请检查您的排除规则,然后重试。如需了解详情,请参阅使用排除规则和查询省略数据
  • 您在 GCDS 之外更新了用户或群组。请清除缓存,然后重试。
输入无效:INVALID_OU_ID

GCDS 尝试将某位用户归入您组织的 Google 账号中不存在的组织部门。请调整您的用户搜索规则,然后重试。有关详情,请参阅用户搜索规则

Quota exceeded for quota metric 'Queries' and limit 'Queries per minute per user' of service 'licensing.googleapis.com' "reason": "rateLimitExceeded"(服务“licensing.googleapis.com”的配额指标“查询”和限制“每位用户每分钟的查询次数”已超出配额,“原因”:“rateLimitExceeded”)

在 GCDS 配置 XML 文件中,确保将<maxResults> 值设置为 500。如有必要,请将其更改为 500,然后重新执行同步。

排查常见的 GCDS 问题


Google、Google Workspace 以及相关标志和徽标是 Google LLC 的商标。其他所有公司名和产品名是其各自相关公司的商标。