Windows Server 2003 Enterprise Edition Service Pack 2 安装证书服务,
从硬盘和光盘复制时都提示:安装程序无法复制文件 scrdenrl.dl_
经过千辛万苦的寻找,最终完美解决,需要用以下命令修复系统的一个数据库:
esentutl /p %windir%/security/database/secedit.sdb
很多人可能遇到相似的错误,只是文件名不同,例如:
执行命令后,相信都能够解决。
操作方法:
1、打开命令提示符窗口:
开始菜单->运行或者同时按下WIndows+R键,输入cmd,回车;
2、执行命令“esentutl /p %windir%/security/database/secedit.sdb”
首先复制命令:
esentutl /p %windir%/security/database/secedit.sdb
在命令提示符窗口中单击鼠标右键,在弹出的菜单中选择“粘贴”
按下回车键,执行该命令,会弹出提示框
提示E文:You should only run repair on damaged or corrupted databases. Repair will not apply information in the transaction log files to the database and may cause information to be lost. do you wish to proceed?
E文水平有限,大概意义是:您只应该在被损坏或破坏的数据库上运行修复。修复不会应用该数据库的事务日志文件中的信息,并可能会导致信息丢失。您希望继续吗?
单击确定按钮,执行命令,结果如下:
Operation completed successfully in 38.313 seconds.
成功地在38.313秒内完成的操作。
OK了,再去安装,复制文件一切顺利!
esentutl语法参数
Windows有大量相互关联的系统数据库,众所周知的注册表就是其中最庞大的一名。其他还有如apph_sp.sdb、apphelp.sdb、drvmain.sdb、msimain.sdb、sysmain.sdb和secedit..sdb等等,这些数据库对系统来说都是非常重要的,他们用来跟踪安全或其他不在注册表中的系统设置。他们一旦出错,同样会导致系统无法正常启动。不过,并非所有sdb文件都是系统数据库。
管理这些数据库,微软提供了一个管理工具:esentutl,该工具位于windows/system32目录下,因其管理的数据库都是系统重要数据库,如无必要,请勿测试,轻则抹去安全信息,重则会导致系统崩溃。使用前,务请备份原数据库。
参数:
运行模式:
碎片整理:esentutl/d 数据库文件名
恢复:esentutl/r
完整性检查:esentutl/g 数据库文件名
修复:esentutl/p 数据库文件名
文件转储:esentutl/m 文件名
选项:
/8 数据库分页大小8kb
/o 禁用微软微标
/s 流文件名 为流数据输出设置文件名
/t 数据库文件名 设置临时数据库文件名
举例:域控制器出现“安全帐户管理器初始化失败,目录服务无法启动”提示,并要求你重启到目录恢复模式下进行恢复时,采用其他办法没有解决时,可以试运行esentutl /p c:/winnt/ntds/ntds.dit /!10240 /8 /v /x /o 命令对域控制器进行灾难修复。当然这是没有办法的办法,只是比重新安装系统省点时间而已。最好还是平常多做备份,尤其是要勤备份AD,尽量不要在DC上安装用不着的软件。