Cửa hàng chứng chỉ trên hộp Win7 của tôi liên tục bị treo. Quan sát:
C: \> 1.cmd C: \> certutil -? | tìm kiếm / tôi ping -ping - Giao diện yêu cầu dịch vụ chứng chỉ Ping Active Directory -pingadmin - Giao diện quản trị dịch vụ chứng chỉ thư mục hoạt động Ping C: \> đặt PROMPT = $ P ($ t) $ G C: \ (13: 04: 28.57)> certutil -ping CertUtil: -ping lệnh FAILED: 0x80070002 (WIN32: 2) CertUtil: Hệ thống không thể tìm thấy tệp được chỉ định. C: \ (13: 04: 58,68)> certutil -pingadmin CertUtil: -pingadmin lệnh FAILED: 0x80070002 (WIN32: 2) CertUtil: Hệ thống không thể tìm thấy tệp được chỉ định. C: \ (13: 05: 28,79)> đặt PROMPT = $ P $ G C: \>
Giải thích:
- Lệnh đầu tiên cho bạn thấy rằng có
–ping
và–pingadmin
các tham số cho certutil - Thử bất kỳ tham số ping nào đều thất bại với thời gian chờ 30 giây (thời gian hiện tại được nhìn thấy trong lời nhắc)
Đây là một vấn đề nghiêm trọng. Nó vít tất cả các giao tiếp an toàn trong ứng dụng của tôi. Nếu bất cứ ai biết làm thế nào điều này có thể được sửa chữa - xin vui lòng chia sẻ.
Cảm ơn.
PS
1.cmd chỉ đơn giản là một loạt các lệnh này:
certutil -? | findstr /i ping
set PROMPT=$P($t)$G
certutil -ping
certutil -pingadmin
set PROMPT=$P$G
EDIT1
Tôi đã thành công trong việc xác định API windows đơn gây ra sự cố - DsGetDcName
Theo Windbg , certutil -ping gọi nó như vậy:
PDOMAIN_CONTROLLER_INFO pdci;
DWORD ret = ::DsGetDcName(NULL, NULL, NULL, NULL, DS_DIRECTORY_SERVICE_PREFERRED, &pdci);
Trên máy trạm của tôi, nó hết thời gian trong 30 giây và sau đó trả về mã lỗi 1355, ERROR_NO_SUCH_DOMAIN
không có bộ điều khiển miền nào khả dụng cho tên miền được chỉ định hoặc tên miền không tồn tại.
Trên một máy khác, vô tình là máy chủ windows 2003, nó trả về gần như ngay lập tức với tên bộ điều khiển miền chính xác bên trong DOMAIN_CONTROLLER_INFO
cấu trúc được trả về .
Bây giờ câu hỏi là cái gì còn thiếu trên máy trạm của tôi cho API đó để tìm bộ điều khiển miền chính xác?