我的Win7盒子上的证书存储区一直在挂。观察:
C:\> 1.cmd C:\> certutil-?| findstr / i ping -ping-Ping Active Directory证书服务请求界面 -pingadmin-Ping Active Directory证书服务管理界面 C:\>设置PROMPT = $ P($ t)$ G C:\(13:04:28.57)> certutil -ping CertUtil:-ping命令失败:0x80070002(WIN32:2) CertUtil:系统找不到指定的文件。 C:\(13:04:58.68)> certutil -pingadmin CertUtil:-pingadmin命令失败:0x80070002(WIN32:2) CertUtil:系统找不到指定的文件。 C:\(13:05:28.79)>设置PROMPT = $ P $ G C:\>
说明:
- 第一条命令显示你有
–ping
和–pingadmin
参数的certutil - 尝试任何ping参数失败,并显示30秒超时(在提示符中显示当前时间)
这是一个严重的问题。它把我所有的安全通信都搞砸了。如果有人知道如何解决-请分享。
谢谢。
聚苯乙烯
1.cmd只是这些命令的一部分:
certutil -? | findstr /i ping
set PROMPT=$P($t)$G
certutil -ping
certutil -pingadmin
set PROMPT=$P$G
编辑1
我已经成功确定了导致问题的单个Windows API- DsGetDcName
根据windbg,certutil -ping如下调用它:
PDOMAIN_CONTROLLER_INFO pdci;
DWORD ret = ::DsGetDcName(NULL, NULL, NULL, NULL, DS_DIRECTORY_SERVICE_PREFERRED, &pdci);
在我的工作站上,它超时30秒钟,然后返回错误代码1355,这是ERROR_NO_SUCH_DOMAIN
指定域没有可用的域控制器,或者该域不存在。
在另一台机器(偶然是Windows Server 2003)上,它几乎立即以返回的DOMAIN_CONTROLLER_INFO
结构内的正确域控制器名称返回。
现在的问题是,在我的工作站上缺少哪个API来查找正确的域控制器?