Dav*_*ers 1 domain-name-system active-directory windows-server-2012-r2
我有两台服务器,一台旧的 AD 服务器(服务器 A)和一台全新的服务器(服务器 B)。我正在尝试从旧迁移到新,因此我按照这些说明设置了第二台服务器,并将第二台服务器添加为同一域中的域控制器。
因此,serverland 中的一切都很棒,两台服务器都在旧域上并配置为域控制器。现在我想关闭服务器 A(最终将退役,但我想暂时保留它作为备份)。所以我在服务器 B 上禁用AD 复制并调整 DNS 设置,以便服务器 B 不再指向服务器 A:
然后我关闭了服务器 A。突然(在服务器 B 上)我无法通过“Active Directory 用户和计算机”或“Active Directory 管理中心”访问 AD 的配置。我得到了以下的各种推导:
无法定位命名信息,因为:RPC 服务器不可用
无法连接到任何域。连接可用时刷新或重试。
无法联系以下域控制器:127.0.0.1。指定的域不存在或无法联系。
所以它看起来像它的工作(我可以使用域凭据登录,使用 AD 的第三方应用程序似乎可以工作),但我无法访问任何东西。我在这里遗漏了什么,我不明白为什么服务器 B 不只是将自己检测为新的 AD 服务器。我以为不再有神奇的“主”AD 服务器。互联网上的大多数人都建议将旧的 AD 服务器降级,但在这种情况下我宁愿不这样做。是否可以在不降级旧服务器的情况下完成 AD 迁移?
在更新 FSMO 角色后,@KatherineVillyard 建议我遇到了大部分相同的错误,但是在“Active Directory 管理中心”中,我得到了一个有趣的新角色,当您选择“更改域控制器”时,我得到:
在运行 Active Directory Web 服务 (ADWS) 的 DEV 域中找不到可用的服务器。
这很有趣,因为我检查过并且我确定该服务正在我的新机器上运行。我想知道问题是否与 DNS 相关。我已经尝试重新调整网络设置并重新启动服务器。很多时候遇到这些类型的问题,我似乎只是把东西扔到墙上,看看有什么坚持:(
我已经尝试了很多东西,但是似乎我可以通过关闭服务器 A 来重现该问题,只需禁用服务器 A 上的 NetLogin 服务。一旦服务器 A 上的此服务停止响应,您将不再有权访问该域(通过任一服务器上的任何管理单元控件抛出的类似类型错误)。
当您在服务器 B 上运行以下命令时,我还注意到一些有趣的事情:
nltest /DSGetDC:MYDOMAINHERE
Run Code Online (Sandbox Code Playgroud)
您得到以下信息(假设 netlogin 在两台服务器上运行):
DC:\\(SERVER A)
地址:\\(SERVER A IP 地址)
Dom Guid:XXXX
Dom 名称:(MYDOMAINHERE)
森林名称:(MYDOMAINHERE)
DC 站点名称:Default-First-Site-Name
我们的站点名称:默认-第一个站点名称...
我在新服务器(B)上注意到的另一件事是,如果您运行(“dcdiag /test:advertising”),您会收到以下消息(旧服务器(A)上没有问题):
测试服务器:Default-First-Site-Name\(Server B)
开始测试:广告
警告:DsGetDcName 返回了 \\(Server A).(MYDOMAINHERE) 的信息,当我们尝试访问(服务器 B)时。
服务器没有响应或被认为不合适。
.....................................(服务器 B)测试失败 广告
这确实让我觉得是新服务器(B)上某种 DNS 配置的问题,但我已经删除了服务器 B 的DNS 管理器中对服务器 A 的每一个引用,并重新启动了服务器。这整个事情有点像一个黑匣子,“DSGetDC”从哪里提取这些信息?该“(DNS)服务器”,这应该是服务器B,这不应该有到服务器A的任何引用,显然我在这里失去了一些东西:(
这里没有一个“神奇的主广告服务器”,但有 FSMO角色。根据您提供的信息,我相当确定服务器 A 拥有一个或所有 FSMO 角色。
您可能希望备份服务器 A,将所有 FSMO 角色优雅地转移到服务器 B,然后将其关闭。 本文将告诉您如何使用 PowerShell 执行此操作。在链接腐烂的情况下,这是主要要点:
查找当前的主人:
Get-ADForest example.com| ft DomainNamingMaster, SchemaMaster
Get-ADDomain example.com | ft InfrastructureMaster, PDCEmulator, RIDMaster
Run Code Online (Sandbox Code Playgroud)
加载 Active Directory powershell 模块:
Import-Module ActiveDirectory
Run Code Online (Sandbox Code Playgroud)
您可以根据名称或角色编号移动角色。
Move-ADDirectoryServerOperationMasterRole "Server B" –OperationMasterRole 0,1,2,3,4
Run Code Online (Sandbox Code Playgroud)
或者
Move-ADDirectoryServerOperationMasterRole "Server B" –OperationMasterRole PDCEmulator,RIDMaster,InfrastructureMaster,SchemaMaster,DomainNamingMaster
Run Code Online (Sandbox Code Playgroud)
如果失败,将 -force 添加到最后,如
Move-ADDirectoryServerOperationMasterRole “dc2” –OperationMasterRole 0,1,2,3,4 -force
Run Code Online (Sandbox Code Playgroud)
如果您愿意,也可以使用 GUI。