我正在 Amazon Web Services 上设置一个测试环境,其中包括 2 个 Web 服务器、1 个数据库服务器和 1 个域控制器。它们都是 Windows Server 2012 并已加入域。有时,成员服务器会随机抛出错误the trust relationship between this workstation and the primary domain failed
。我可以通过在有问题的计算机上进行本地登录然后执行 PowerShell 命令来修复此问题Reset-ComputerMachinePassword
。之后没有问题。
但是,我想知道问题的根本原因是否是因为组策略设置“禁用机器帐户密码更改”当前被禁用,因此迫使我手动重置机器密码。
我是否应该启用此策略?如果启用此策略,会有什么后果?
“机器账户密码最长使用期限”设置的值为 30 天。
答案1
禁用机器账户密码更改几乎永远不应启用此设置。它根据机器密码最长使用期限设置确定域计算机是否定期更改其计算机帐户密码。
链接的 Technet 文档中对此设置的 Microsoft 描述:
域成员:禁用计算机帐户密码更改策略设置确定域成员是否定期更改其计算机帐户密码。将其值设置为已启用可防止域成员更改计算机帐户密码。将其设置为已禁用可允许域成员更改计算机帐户密码,具体更改方式由域成员:最长计算机帐户密码使用期限策略设置的值指定,默认为每 30 天。
对于运行 Windows Server 2008 R2、Windows Server 2008 或 Windows Server 2003 且属于域的计算机,默认配置是它们需要每 30 天自动更改其帐户的密码。禁用此功能会导致运行这些操作系统的计算机保留与其计算机帐户相同的密码。无法再自动更改其帐户密码的计算机面临恶意用户确定系统域帐户密码的风险。
链接的 Technet 文档中介绍了此设置的 Microsoft 最佳实践:
不要启用此策略设置。计算机帐户密码用于在成员和域控制器之间以及域内的域控制器之间建立安全通道通信。建立安全通道后,安全通道将传输进行身份验证和授权决策所需的敏感信息。
不要使用此策略设置尝试支持使用相同计算机帐户的双启动方案。如果要双启动已加入同一域的安装,请为这两个安装指定不同的计算机名称。此策略设置已添加到 Windows 操作系统,以便于组织储存几个月后投入生产的预装计算机;这些计算机不必重新加入域。
如上所述,创建此设置是为了允许组织预先构建机器并在最长机器帐户密码使用期限之后将其投入生产,而不会导致您收到的信任关系失败错误。
产生该特定错误的原因是域控制器上的机器帐户密码与机器本地存储的机器帐户密码不匹配,或者机器帐户密码已超过最大使用期限设置,这意味着密码已过期。
通常,机器帐户密码过期是由于抛出错误的机器和域控制器无法在最大机器帐户密码使用期限内进行通信,或者无法安全地进行通信。例如,如果您将第二台计算机加入具有现有名称的域,则会发生机器帐户密码不匹配 - 机器帐户被覆盖,并创建新的机器帐户密码,因此第一台计算机不再具有正确的机器帐户密码来进行身份验证。
在您的具体情况下,我首先怀疑防火墙阻止了域控制器和不断生成此错误的计算机之间的 Active Directory 通信,特别是域控制器和计算机在生成新密码时同步密码的通信。机器在尝试创建该安全通信通道时也极有可能抛出错误,甚至在尝试自动更新其机器帐户密码时也有可能出错。无论如何,您应该能够通过查看此计算机和域控制器上的事件日志来确定问题所在。您正在寻找在两台服务器之间建立连接时的错误,以及任一台计算机上的任何安全子系统抛出的任何错误,以查明此问题的确切原因。
答案2
该策略或相应的注册表项在创建虚拟机时很有用,这些虚拟机将成为测试或开发实验室,尤其是当这些虚拟机可能长时间处于离线或断开连接状态时。
但一般来说,不建议在生产中使用。