今天我们从 Windows 2003 SBS 升级到 Windows Server 2012 Standard。我做了以下事情:
- 将 2012 服务器加入到 SBS 2003 域
- 在服务器上安装了 Active Directory 域服务(又名 dcpromo)
fsmo maintenance
在以下时间内将所有角色转移到新服务器ntdsutil
- 然后我删除了旧的 Windows Server 2003 SBS 服务器
一切似乎都运行正常,直到我看到由于缺少组策略文件夹而导致组策略无法应用的错误 - 仔细检查后,我发现没有 SYSVOL 或 NETLOGON 文件夹!
然后,我在新的 2012 服务器上使用 D4 标志运行了权威 FRS 还原过程(此时,2003 SBS 已被删除):
- 在命令框中,键入 net stop ntfrs。
- 在注册表中找到以下子项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NtFrs\Parameters\Backup/Restore\Process at Startup
- 在右侧窗格中,双击 BurFlags。
- 在“编辑 DWORD 值”对话框中,键入 D4,然后单击“确定”。
- 跑步
net start ntfrs
我在 Windows 资源管理器中检查了 \fkdxbsvr1\,现在可以看到 SYSVOL 共享,但仍然没有 NETLOGON 共享。
我看到有关 sysvol 共享中丢失文件的以下事件日志错误:
Log Name: System
Source: NETLOGON
Date: 27/03/2013 18:40:41
Event ID: 5706
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: FKDXBSVR1.mydom.local
Description:
The Netlogon service could not create server share C:\Windows\SYSVOL\sysvol\mydom.local\SCRIPTS. The following error occurred:
The system cannot find the file specified.
因此我创建了名为 scripts 的文件夹C:\Windows\SYSVOL\sysvol\mydom.local\SCRIPTS
并重新启动了 netlogon,然后就出现了 NETLOGON 共享。
我的问题如下:
- 为什么 netlogon 无法在启动时创建脚本文件夹?我没有读到任何有关手动创建文件夹的 KB,但似乎已经奏效了 - 这是好事还是骗人的?
- 我还应该检查什么?我需要确信迁移正常,没有任何其他隐藏错误。
- 我在迁移过程中做错了什么才导致上述奇怪的事情发生?
如果需要,请提供其他背景信息
答案1
我同意 joeqwerty 的观点,您在 Sysvol 复制完成之前删除了旧 DC。我认为您的用户无法登录到域,因为您没有 Sysvol 共享,因此您没有默认域策略和默认域控制器策略 ({6AC1786C-016F-11D2-945F-00C04fB984F9} 和 {31B2F340-016D-11D2-945F-00C04FB984F9})。我认为您的客户端是使用本地缓存凭据登录的。所以我认为您有两种方法可以解决您的问题。
恢复旧 DC 并将 Sysvol 复制到新 DC(不要手动复制!)。您可以在新 DC 上将 Bur Flags 设置为 D2,在旧 DC 上将其设置为 D4。在删除旧 DC 之前,请确保 Sysvol 已完全复制。为此,您可以查看 Windows 事件日志 -> 文件复制服务并等待事件 ID 13516:
描述:文件复制服务不再阻止计算机 DESCARTES 成为域控制器。系统卷已成功初始化,并且 Netlogon 服务已收到通知,系统卷现已准备好作为 SYSVOL 共享。
输入“net share”来检查 SYSVOL 共享。
收到此事件后,您可以删除旧的 DC
在新的 DC 上手动创建 Sysvol -> 您将丢失所有 GPO
有关这两种方式的详细说明,请参阅:http://support.microsoft.com/kb/315457
答案2
从 SBS 2003 升级到 Server 2012 Standard 时,我遇到了这个问题。 sysvol 和 netlogon 文件夹都丢失了。 对我有用的方法是停止两个合作伙伴上的 NTFRS 和 Netlogon 服务,然后转到注册表,如下所示:
在旧服务器上
- 点击开始,然后点击跑步。
- 在打开框中,键入
cmd
,然后按 ENTER。 在命令框中,键入
net stop ntfrs
。点击开始,然后点击跑步。
- 在打开框中,键入
regedit
,然后按 ENTER。 在注册表中找到以下子项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NtFrs\Parameters\Backup/Restore\Process at Startup
在右侧窗格中双击旗帜。
- 在“编辑 DWORD 值”对话框中,键入
D4
,然后单击“确定”。 退出注册表编辑器,然后切换到命令框。
在里面命令框, 类型
net start ntfrs
。- 退出命令框。
在新服务器上
- 点击开始,然后点击跑步。
- 在打开框中,键入
cmd
,然后按 ENTER。 在命令框中,键入
net stop ntfrs
。点击开始,然后点击跑步。
- 在打开框中,键入
regedit
,然后按 ENTER。 - 在注册表中找到以下子项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NtFrs\Parameters\Backup/Restore\Process at Startup
- 在右侧窗格中双击旗帜。
- 在“编辑 DWORD 值”对话框中,键入
D2
,然后单击“确定”。 退出注册表编辑器,然后切换到命令框。
在里面命令框, 类型
net start ntfrs
。- 退出命令框。
重新启动两台服务器上的服务。
我第一次这样做时没有成功,因为 sysvol\domain 中有一个名为 DO_NOT_REMOVE 的文件夹。我将策略和脚本从该文件夹复制到根目录并删除了该文件夹。之后一切都正常了。
答案3
在 Windows 2012 R2 上,DC2 上的 C:\Windows\SYSVOL\staging\domain..... 内有一个孤立对象,而 DC1 上不存在该对象,导致新加入的干净 DC3 上缺少 \HOST\netlogon 和 \HOST\sysvol 问题。微软,这么小的事情浪费了这么多时间!为什么 DC1 和 DC2 首先没有在 DC2 上指示 SYSVOL 中的任何不一致,并且继续成功复制??然后我会在正确的地方开始故障排除,而不是认为它与新加入的 DC3 有关。此外,我确实指出只从 DC1 复制,而不是任何其他服务器,例如 DC2 的 SYSVOL 损坏,包含孤立文件夹。因此,如果有人遇到上述问题,我会开始交叉引用 SYSVOL 内容并清理其他 DC 上缺少的任何孤立项目。