Der Zertifikatspeicher auf meiner Win7-Box hängt ständig. Beobachten:
C: \> 1.cmd C: \> certutil -? | findstr / i ping -ping - Ping-Schnittstelle für Active Directory-Zertifikatdienste -pingadmin - Ping-Verwaltungsschnittstelle für Active Directory-Zertifikatdienste C: \> setze PROMPT = $ P ($ t) $ G. C: \ (13: 04: 28.57)> certutil -ping CertUtil: -ping Befehl FAILED: 0x80070002 (WIN32: 2) CertUtil: Das System kann die angegebene Datei nicht finden. C: \ (13: 04: 58.68)> certutil -pingadmin CertUtil: -pingadmin Befehl FEHLGESCHLAGEN: 0x80070002 (WIN32: 2) CertUtil: Das System kann die angegebene Datei nicht finden. C: \ (13: 05: 28.79)> setze PROMPT = $ P $ G. C: \>
Erklärungen:
- Der erste Befehl zeigt Ihnen, dass es
–ping
und–pingadmin
zu certutil Parameter gibt - Der Versuch eines Ping-Parameters schlägt mit einer Zeitüberschreitung von 30 Sekunden fehl (die aktuelle Zeit wird in der Eingabeaufforderung angezeigt).
Dies ist ein ernstes Problem. Es verschraubt die gesamte sichere Kommunikation in meiner App. Wenn jemand weiß, wie dies behoben werden kann - bitte teilen.
Vielen Dank.
PS
1.cmd ist einfach ein Stapel dieser Befehle:
certutil -? | findstr /i ping
set PROMPT=$P($t)$G
certutil -ping
certutil -pingadmin
set PROMPT=$P$G
EDIT1
Es ist mir gelungen, die einzelne Windows-API zu bestimmen , die das Problem verursacht - DsGetDcName
Laut Windbg ruft das certutil -ping es so auf:
PDOMAIN_CONTROLLER_INFO pdci;
DWORD ret = ::DsGetDcName(NULL, NULL, NULL, NULL, DS_DIRECTORY_SERVICE_PREFERRED, &pdci);
Auf meiner Workstation tritt eine Zeitüberschreitung von 30 Sekunden auf und es wird der Fehlercode 1355 zurückgegeben. Dies bedeutet, dass ERROR_NO_SUCH_DOMAIN
für die angegebene Domäne kein Domänencontroller verfügbar ist oder die Domäne nicht vorhanden ist.
Auf einem anderen Computer, bei dem es sich versehentlich um einen Windows Server 2003 handelt, wird fast sofort der richtige Domänencontrollername in der zurückgegebenen DOMAIN_CONTROLLER_INFO
Struktur zurückgegeben.
Die Frage ist nun, was auf meiner Workstation fehlt, damit diese API den richtigen Domänencontroller findet.
certutil -adca