Sau khi cài đặt các bản cập nhật bảo mật mới nhất trên Windows 10 / Windows Server 2016, người dùng bắt đầu phàn nàn về sự cố liên tục của dịch vụ CDPUserSvc. Trong bài viết này, chúng ta sẽ xem CDPUserSvc là gì, tại sao nó bị chấm dứt bất ngờ, cách khắc phục sự cố này và có thể vô hiệu hóa dịch vụ này trong Windows 10 / Windows Server 2016 hay không.
Lỗi: CDPUserSvc_xxxxx đã ngừng hoạt động
Gần đây, một số người dùng Windows 10 / Windows Server 2016 bắt đầu phàn nàn về lỗi sau xuất hiện khi khởi động Windows, tắt máy hoặc thậm chí mỗi vài phút:
CDPUserSvc_xxxxx has stopped working. A problem caused the program to stop working correctly. Close the program.

Trong nhật ký ứng dụng, liên tục xuất hiện lỗi như sau:
Faulting application name: svchost.exe_CDPUserSvc_12cff5, version: 10.0.14393.0, time stamp: 0x57899b1c Faulting module name: cdp.dll, version: 10.0.14393.1715, time stamp: 0x59b0d38c Exception code: 0xc0000005 Fault offset: 0x0000000000193cf5 Faulting process id: 0x4484 Faulting application start time: 0x01d35ebff3f9a7f5 Faulting application path: C:\WINDOWS\system32\svchost.exe Faulting module path: c:\windows\system32\cdp.dll Report Id: f7159168-5104-440e-34c1-6b42ed6649ee Faulting package full name: Faulting package-relative application ID:

Trên máy tính Windows 10, một số người dùng báo cáo lỗi này sau khi cài đặt Anniversary Update (1607) hoặc Fall Creators Update (1709). Trong trường hợp này, bạn nên thử khởi động dịch vụ CDPUserSvc trong tiến trình riêng biệt hoặc vô hiệu hóa nó hoàn toàn (xem bên dưới).
Trong hầu hết các trường hợp, lỗi này do bản cập nhật tháng 11 KB4048953 cho Windows Server 2016 và Windows 10 gây ra.
Nếu bạn đã cài đặt bản cập nhật này, để khắc phục sự cố, chỉ cần gỡ cài đặt đúng cách bản cập nhật KB4048953 (wusa.exe /uninstall /kb:4048953) hoặc chờ gói cập nhật tích lũy tiếp theo, trong đó lỗi nên được sửa.
Dịch vụ CDPUserSvc là gì?
CDPUserSvc có nghĩa là Connected Devices Platform User Service. Tên đầy đủ của dịch vụ là động và bao gồm chuỗi CDPUserSvc_ và 5 ký tự ngẫu nhiên (trong ví dụ của tôi là CDPUserSvc_65bd2).
Trong các bản build Windows 10 khác nhau, CDPUserSvc có loại khởi động khác nhau:
- Windows 10 1507 – khởi động thủ công;
- 1511 – dịch vụ bị vô hiệu hóa;
- 1607, 1703, 1709, 1803 – loại khởi động Tự động.
sc query| find "CDPUser"
sc query CDPUserSvc_65bd2

Dịch vụ được khởi động trong tiến trình svchost: svchost.exe -k UnistackSvcGroup
File thực thi là %WinDir%\System32\CDPSvc.dll
Thú vị là nếu bạn mở console danh sách dịch vụ (Services.msc) và tìm CDPUserSvc, bạn sẽ thấy trong mô tả có văn bản sau:
“Failed to read description. error code 15100”

Không rõ tại sao lại xảy ra như vậy.
Tôi không tìm thấy thông tin chính thức từ Microsoft về dịch vụ này. Nếu bạn phân tích các kết nối của CDPUserSvc, bạn có thể thấy dịch vụ này thường xuyên kết nối đến máy chủ Microsoft và OneDrive và gửi một số dữ liệu qua HTTPS. Hãy xem các tiến trình chạy trong UnistackSvcGroup trông như thế nào. Chạy Process Explorer, mở thuộc tính svchost.exe và xem chúng.
Năm dịch vụ đang chạy trong tiến trình này (lưu ý tất cả đều chứa cùng định danh 5 ký tự như CDPUserSvc):
- CDPUserSvc_xxxxx
- OneSyncSvc_xxxxx – chịu trách nhiệm đồng bộ hóa thư, liên hệ, lịch và dữ liệu người dùng khác;
- PimIndexMaintenanceSvc_xxxxx – dịch vụ lập chỉ mục liên hệ để tìm kiếm nhanh hơn;
- UnistoreSvc_xxxxx – lưu trữ dữ liệu người dùng có cấu trúc (liên hệ, lịch, thư);
- UserDataSvc_xxxxx – cung cấp quyền truy cập vào dữ liệu người dùng có cấu trúc.

Có khả năng CDPUserSvc cũng chịu trách nhiệm đồng bộ hóa dữ liệu người dùng với máy chủ MSFT. (Đây có phải là telemetry? Bạn có thực sự cần nó?) Vì vậy, CDPUserSvc có thể được vô hiệu hóa mà không gây hại cho hệ điều hành (tất nhiên, nếu bạn không sử dụng ứng dụng mail, lịch, liên hệ gốc của Windows 10).
Cách ly dịch vụ CDPUserSvc
Giải pháp khác có thể khắc phục sự cố dịch vụ CDPUserSvc_xxxxx bị lỗi liên tục là chạy nó ở chế độ cô lập. Để làm điều đó, chạy lệnh sau trong command prompt với quyền admin:
sc config cdpusersvc type= own
[SC] ChangeServiceConfig SUCCESS

Sau đó CDPUserSvc sẽ khởi động trong tiến trình svchost.exe riêng. Kiểm tra xem vấn đề lỗi CDPUserSvc có tiếp diễn hay không. Nếu vẫn còn, hãy thử vô hiệu hóa dịch vụ.
Cách vô hiệu hóa dịch vụ CDPUserSvc
Nếu bạn dừng CDPUserSvc_6b511 thủ công và đặt nó thành Disabled trong Quản lý dịch vụ (services.msc), sau một thời gian nó sẽ tự khởi động lại (dưới tên khác).
Lưu ý. Thú vị là nếu bạn xóa dịch vụ này khỏi registry, sau một thời gian nó xuất hiện lại dưới tên khác. Hệ thống cố gắng ngăn chặn việc xóa dịch vụ này. (Dường như Microsoft áp dụng các phương pháp hay nhất của các nhà phát triển virus 😉.)
Bạn có thể vô hiệu hóa khởi chạy dịch vụ này trong registry. Để làm điều đó, thay đổi giá trị tham số Start từ 2 (Khởi động tự động) thành 4 (Vô hiệu hóa) trong khóa registry HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CDPUserSvc.

Hoặc chạy các lệnh sau:
sc config CDPUserSvc start= disabled
reg add "HKLM\SYSTEM\CurrentControlSet\Services\CDPUserSvc /v "Start" /t REG_DWORD /d "4" /f