我怎样才能让 MS Exchange 认为 samba PDC 正在运行高于 Server 2003 的 Windows 版本?

我怎样才能让 MS Exchange 认为 samba PDC 正在运行高于 Server 2003 的 Windows 版本?

我正忙于将我的 Active Directory 迁移到运行 Sernet 企业 samba 包(版本 4.1.14-SerNet-RedHat-9.el7)的 Linux 服务器(Centos 7)

域控制器似乎在所有身份验证方面都运行良好,Exchange 除外。Informatino Store 启动后,在“正在启动”时挂起。

事件日志显示以下警告:

Process STORE.EXE (PID=3100). The domain controller pdc.*.*.*is running 
Windows (Unknown Operating System) (Unknown Service Pack). 
Exchange Active Directory Provider requires that domain controllers are running 
Windows Server 2003 Service Pack 1 or later versions of Windows.

我如何配置 Samba 来欺骗 Exchange 认为该服务器满足其要求?

PS 我正在运行 Exchange 2010

答案1

您是否尝试过“提升域功能级别”?

默认情况下,samba4 看起来像“Windows server 2003”

答案2

Exchange 会进行许多检查。其中一项非常具体的检查是查看 Schema 版本(即:在 Schema 分区中)。出于兴趣,迁移到基于 Samba 的 DC 背后的理由是什么?

答案3

要伪造 Windows 操作系统签名,请找到您的 samba DC 的计算机帐户。在正确配置的目录中,您会在 找到它OU=Domain Controllers,DC=mydomain,DC=myforest,DC=mytld。编辑以下属性:

  • 操作系统
  • 操作系统服务包
  • 操作系统ServicePack级别

当 Exchange 准备工具开始探究您的基础设施实际运行的操作系统级别时,您将遇到进一步的麻烦。

根据Active Directory 技术规范,此信息存储nTDSDSA在配置 NC 中代表每个 DC 上的目录服务代理的对象上。

有问题的属性是msDS-Behavior-Version,文档提供了可能的值和相应的操作系统级别的列表。

我真的不相信这是可行的,但如果你想尝试,你可能还必须在许多其他地方模拟 Windows 行为。

msDS-Behavior-Version属性用于存储林上的林功能级别crossRefContainer(在中找到CN=Partitions,CN=Configurations,DC=myforest,DC=tld)和每个域的域 NC 根对象上的域功能级别

对于哪些版本可以共存存在一些限制:

  • 每个域的域功能级别不能超过该域中“最旧”的 DC 的域功能级别
  • 林功能级别不能超过“最旧”域的功能级别

为了更好地理解 Exchange 的“期望”,你可能需要阅读本章介绍 Active Directory 林中的特殊对象和行为

相关内容