2024年1月19日发(作者:)
域控制器关机时间很长
导致DC重启时间过长的系统层面的原因。我这边有一台新服务器,刚刚安装了Windows Server 2008 R2 SP1的操作系统,并且成功提升为DC。但现在发现一个问题,就是这台DC在重启的时候时间过长,重启一次需要40分钟的时间,接上显示 器观察后,发现是关机时间很长,关机画面一直停留在Shutdowning的画面。但关机操作完成之后再次启动需要7分钟的时间,也就是说此服务器关机过 程是有问题的,启动过程是没有问题的。
此服务器是新的服务器,应该不存在硬件的问题。并且此服务器在未提升为DC之前的重启时间约为10分钟,是正常的。所以想问,从系统的层面来说,会有什么样的原因导致重启时间过长?
回答:根据您的描述,我了解到您想知道是什么原因会导致DC重启时间过长。
在这里,我想先为您解释下系统关机的整个过程,以及那些因素会导致关机时间变长。您看到的文章来自活动目录seo /category/active-directory/
1. 当用户发起关机指令以后,将调用系统关机程序, 该程序会通知windows子系统程序进程, 收到通知以后会和做一个数据交换,做好关机准备工作,接着由通知 开始关闭系统的流程。系统会首先结束登录用户打开的所有程序,保护用户的设置和系统设置,然后停止系统服务和操作系统大部分进程。
2. 第一个过程中windows子系统进程收到的通知后,会依次查询拥有顶层窗口的用户进程,如常见的用 户程序,杀毒软件,防火墙等,让这些进程退出。如果某一个用户进程在一个默认的超时时间5000毫秒(可以通过修改注册表键 值 HKEY_CURRENT_USERControl
PanelDesktop HungAppTimeout设定超时时间)内没有退出的话,Windows会显示一个结束任务对话框用于询问用户是否结束这个任务。默认情况下将显示这 个对话框并一直保持而不会自动关闭。对于控制台程序来说,情况类似,Windows使用HKEY_CURRENT_USERControl
PanelDesktop WaitToKillAppTimeout值来设置超时时间。
3. 在关闭用户进程后,开始进入到关闭系统进程阶段,正常使用状态下无法结束的系统进程,如,等将被终止。终止系 统进程和终止用户进程略有不同,windows在终止系统进程的时候并不像终止用户进程那样,如果无法在规定时间内种植提示用户,则直接跳过这个进程,去 执行下一个系统进程的终止操作。其中使用的超时时间和第2步使用的时间相同。
4. 在完成上面关机软保护过程后,调用一个原生API函数ZwShutdownSystem()或NtShutdownSystem()来命令系统执行后面的扫尾工作,断开主板给各硬件设备的电源。
如果系统开启的服务过多,处于运行的进程过多,终止它们所需时间就长,即关机时间就会变长。另外,安装的驱动程序有问题时也会导致关机时间过长。
在关机原理里提到两个注册表键值,对应相关程序的超时响应时间,我们可以修改减小这两个键值,HKEY_CURRENT_USERControl PanelDesktop
HungAppTimeout和HKEY_CURRENT_USERControl PanelDesktop
WaitToKillAppTimeout,这确实是有效的,如前面所述,原因在于前一键值设定的是用户进程自动退出的超时时间,后一键值设定的是控制台 程序自动退出的超时时间。减小这两个键值会加快用户和控制台进程的退出速度,从而加快关机速度。但我们并不建议用户修改,因为这可能导致应用程序数据丢 失,操作系统文件也可能被破坏进不了系统。
我的建议是尽量减少应用程序对关机过程的影响,如在关机前尽量关闭用户程序,尽量不要再电脑处于忙的状态时关机,减小DC的负载等。
根据我的调查,基本就这些原因了。这篇KB 中也有提到
/kb/320423
Jessica Zhu
域控制器关机时间很长的相关文章请参看
域控制器同步
—gnaw0725


发布评论