Il negozio di certificati sulla mia scatola Win7 è costantemente sospeso. Osservare:
C: \> 1.cmd C: \> certutil -? | findstr / i ping -ping - Interfaccia richiesta ping Servizi certificati Active Directory -pingadmin: interfaccia di amministrazione dei servizi certificati Ping Active Directory C: \> set PROMPT = $ P ($ t) $ G C: \ (13: 04: 28.57)> certutil -ping CertUtil: -ping command FAILED: 0x80070002 (WIN32: 2) CertUtil: il sistema non riesce a trovare il file specificato. C: \ (13: 04: 58.68)> certutil -pingadmin CertUtil: comando -pingadmin NON RIUSCITO: 0x80070002 (WIN32: 2) CertUtil: il sistema non riesce a trovare il file specificato. C: \ (13: 05: 28.79)> imposta PROMPT = $ P $ G C: \>
spiegazioni:
- Il primo comando mostra che ci sono
–ping
e–pingadmin
parametri da certutil - Tentare qualsiasi parametro ping ha esito negativo con timeout di 30 secondi (l'ora corrente è visualizzata nel prompt)
Questo è un problema serio Avvita tutta la comunicazione sicura nella mia app. Se qualcuno sa come risolvere questo problema, ti preghiamo di condividere.
Grazie.
PS
1.cmd è semplicemente un batch di questi comandi:
certutil -? | findstr /i ping
set PROMPT=$P($t)$G
certutil -ping
certutil -pingadmin
set PROMPT=$P$G
EDIT1
Sono riuscito a fissare l'API di Windows singola che causa il problema - DsGetDcName
Secondo il windbg, la certutil -ping lo invoca in questo modo:
PDOMAIN_CONTROLLER_INFO pdci;
DWORD ret = ::DsGetDcName(NULL, NULL, NULL, NULL, DS_DIRECTORY_SERVICE_PREFERRED, &pdci);
Sulla mia workstation scade per 30 secondi e quindi restituisce il codice di errore 1355, ovvero ERROR_NO_SUCH_DOMAIN
Nessun controller di dominio disponibile per il dominio specificato o il dominio non esiste.
Su un altro computer, che è accidentalmente un server Windows 2003, restituisce quasi immediatamente con il nome del controller di dominio corretto all'interno della DOMAIN_CONTROLLER_INFO
struttura restituita .
Ora la domanda è cosa manca sulla mia stazione di lavoro affinché quell'API trovi il controller di dominio corretto?