certutil -ping thất bại với thời gian chờ 30 giây - phải làm gì?


10

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–pingadmincá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_INFOcấ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?

Câu trả lời:


0

Vui lòng kiểm tra như sau

  1. Bạn có thể chạy certutil -ping -config "cadnsname\CA logical name"từ các máy chủ bị ảnh hưởng.
  2. Ai có quyền Yêu cầu chứng chỉ tại CA (ai đó đã thay đổi Người dùng được xác thực thành Người dùng tên miền)?
  3. Nhìn vào Quyền DCOM để đảm bảo rằng Người dùng được xác thực có quyền chính xác tại CA. Quyền DCOM trên CA cho Dịch vụ chứng chỉ Nhóm DCOM Access:

    Cấp quyền truy cập -> Truy cập cục bộ - Cho phép, Truy cập từ xa - Cho phép khởi chạy và Cấp quyền kích hoạt -> Khởi chạy từ xa - Cho phép, Kích hoạt từ xa - Cho phép

Để biết thêm chi tiết, bạn có thể tham khảo URL bên dưới để khắc phục sự cố.

http://bloss.technet.com/b/askds/archive 2007


Tôi rất tiếc khi phơi bày sự thiếu hiểu biết của mình, nhưng làm thế nào tôi có thể biết CADNSName? Sẽ rất hữu ích nếu bạn chỉ ra cách tôi khám phá "tên logic cadnsname \ CA" có liên quan. Bạn có thể giải thích thêm một chút về các bước mà bạn đề xuất không? Cảm ơn.
đánh dấu

Thật không may, tôi đã không làm theo các bước được mô tả trong bài viết mà bạn đã đính kèm, bởi vì nó có thể dành cho các máy Windows Server có quyền truy cập vào Active Directory. Mine là một máy trạm Windows 7 không có quyền truy cập như vậy.
đánh dấu

Tôi đã chỉnh sửa câu hỏi thêm.
đánh dấu

certutil -adca
chưa đăng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.