certutil -ping失败,超时时间为30秒 – 该怎么办?

我的Win7盒子上的证书存储是不断悬挂的。 注意:


 C:\> 1.cmd

 C:\> certutil  - ?  |  findstr /我平
   -ping  -  Ping Active Directory证书服务请求界面
   -pingadmin  -  Ping Active Directory证书服务pipe理界面

 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)> set PROMPT = $ P $ G

 C:\>

说明:

  • 第一个命令显示了certutil的–pingadmin–pingadmin参数
  • 尝试任何ping参数失败,30秒超时(在提示中看到当前时间)

这是一个严重的问题。 它在我的应用程序中将所有的安全通信都locking 如果有人知道如何解决这个问题,请分享。

谢谢。

PS

1.cmd只是这些命令的一批:

 certutil -? | findstr /i ping set PROMPT=$P($t)$G certutil -ping certutil -pingadmin set PROMPT=$P$G 

EDIT1

我已经成功地locking导致问题的单个窗口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结构中的正确的域控制器名称。

现在的问题是什么是我的工作站上找不到这个APIfind正确的域控制器?

请检查以下内容

  1. 您能否从受影响的主机运行certutil -ping -config "cadnsname\CA logical name"
  2. 谁有权限在CA请求证书(是否有人将已validation的用户更改为域用户)?
  3. 查看DCOM权限以确保经身份validation的用户在CA具有正确的权限。 CA证书服务的DCOM权限DCOM访问组:

    访问权限级别 – >本地访问 – 允许,远程访问 – 允许启动和激活权限级别 – >远程启动 – 允许,远程激活 – 允许

有关更多详细信息,请参阅下面的URL进行故障排除。

http://blogs.technet.com/b/askds/archive/2007/11/06/how-to-troubleshoot-certificate-enrollment-in-the-mmc-certificate-snap-in.aspx