Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

[해결] Windows 10/Windows Server 2016에서 CDPUserSvc가 작동을 멈췄습니다 오류 수정 방법

Windows 10 / Windows Server 2016에 최신 보안 업데이트를 설치한 이후, CDPUserSvc 서비스가 지속적으로 비정상 종료되는 문제가 발생한다는 사용자 불만이 이어지고 있습니다. 이 글에서는 CDPUserSvc 서비스가 무엇인지, 왜 주기적으로 예기치 않게 종료되는지, 이 문제를 해결하는 방법과 Windows 10 / Windows Server 2016에서 해당 서비스를 비활성화할 수 있는지까지 자세히 살펴보겠습니다.

오류: CDPUserSvc_xxxxx의 작동이 멈췄습니다

최근 일부 Windows 10 / Windows Server 2016 사용자들이 Windows 시작 또는 종료 시, 심지어 몇 분마다 다음과 같은 오류가 반복해서 나타난다고 보고하고 있습니다.

"CDPUserSvc_xxxxx의 작동이 멈췄습니다. 프로그램이 올바르게 작동하지 못하게 하는 문제가 발생했습니다. 프로그램을 닫으십시오."

[해결] Windows 10/Windows Server 2016에서 CDPUserSvc가 작동을 멈췄습니다 오류 수정 방법

응용 프로그램 로그에는 아래와 같은 오류가 계속해서 기록됩니다.

Faulting application name: svchost.exe_CDPUserSvc_12cff5, version: 10.0.14393.0
Faulting module name: cdp.dll, version: 10.0.14393.1715
Exception code: 0xc0000005
Faulting application path: C:\WINDOWS\system32\svchost.exe
Faulting module path: c:\windows\system32\cdp.dll

[해결] Windows 10/Windows Server 2016에서 CDPUserSvc가 작동을 멈췄습니다 오류 수정 방법

Windows 10 컴퓨터에서 일부 사용자는 Anniversary Update(1607) 또는 Fall Creators Update(1709) 설치 후 이 오류가 발생했다고 보고했습니다. 이 경우에는 CDPUserSvc 서비스를 격리된 프로세스로 시작하거나 완전히 비활성화해 보는 것이 좋습니다(아래 내용 참조).

대부분의 경우 이 버그는 Windows Server 2016 및 Windows 10용 11월 업데이트 KB4048953에 의해 발생합니다.

해당 업데이트가 설치되어 있다면, KB4048953 업데이트를 올바르게 제거하거나(wusa.exe /uninstall /kb:4048953), 버그가 수정된 다음 누적 업데이트 패키지가 배포될 때까지 기다리면 문제를 해결할 수 있습니다.

CDPUserSvc 서비스란 무엇인가?

CDPUserSvc는 'Connected Devices Platform User Service(연결된 장치 플랫폼 사용자 서비스)'를 의미합니다. 서비스의 전체 이름은 고정되어 있지 않으며, CDPUserSvc_ 문자열 뒤에 무작위로 생성된 5개의 문자가 붙는 형태입니다(예: CDPUserSvc_65bd2).

Windows 10 빌드 버전에 따라 CDPUserSvc의 시작 유형은 다음과 같이 다릅니다.

  • Windows 10 1507 — 수동 시작
  • Windows 10 1511 — 서비스 비활성화
  • Windows 10 1607, 1703, 1709, 1803 — 자동 시작

명령 프롬프트에서 다음 명령으로 서비스 상태를 확인할 수 있습니다.

sc query | find "CDPUser"
sc query CDPUserSvc_65bd2

[해결] Windows 10/Windows Server 2016에서 CDPUserSvc가 작동을 멈췄습니다 오류 수정 방법

이 서비스는 svchost 프로세스에서 시작됩니다: svchost.exe -k UnistackSvcGroup

실행 파일 경로는 %WinDir%\System32\CDPSvc.dll입니다.

흥미로운 점은 services.msc(서비스 관리 콘솔)를 열어 CDPUserSvc 항목을 찾으면 설명 부분에 다음과 같은 문구가 표시된다는 것입니다.

"Failed to read description. error code 15100" (설명을 읽지 못했습니다. 오류 코드 15100)

[해결] Windows 10/Windows Server 2016에서 CDPUserSvc가 작동을 멈췄습니다 오류 수정 방법

왜 이런 현상이 나타나는지에 대해서는 명확한 이유가 밝혀지지 않았으며, Microsoft에서도 이 서비스에 대한 공식적인 정보를 제공하지 않고 있습니다. 다만 CDPUserSvc의 네트워크 연결을 분석해 보면, 이 서비스가 Microsoft 및 OneDrive 서버에 주기적으로 연결하여 HTTPS를 통해 일부 데이터를 전송하는 것을 확인할 수 있습니다.

UnistackSvcGroup에서 실행되는 프로세스를 확인하려면 Process Explorer를 실행한 뒤 svchost.exe의 속성을 열어 살펴보면 됩니다. 이 프로세스에서는 다음 5개의 서비스가 함께 실행되고 있으며, 모든 서비스가 CDPUserSvc와 동일한 5자리 식별자를 공유합니다.

  • CDPUserSvc_xxxxx
  • OneSyncSvc_xxxxx — 메일, 연락처, 일정 등 사용자 데이터 동기화 담당
  • PimIndexMaintenanceSvc_xxxxx — 빠른 검색을 위한 연락처 인덱싱 서비스
  • UnistoreSvc_xxxxx — 구조화된 사용자 데이터(연락처, 일정, 메일) 저장
  • UserDataSvc_xxxxx — 구조화된 사용자 데이터 접근 제공

[해결] Windows 10/Windows Server 2016에서 CDPUserSvc가 작동을 멈췄습니다 오류 수정 방법

이를 통해 미루어 볼 때, CDPUserSvc 역시 Microsoft 서버와의 사용자 데이터 동기화를 담당하는 것으로 추정됩니다. 따라서 Windows 10의 기본 연락처, 메일, 일정 앱을 사용하지 않는다면, CDPUserSvc를 비활성화해도 운영체제에는 아무런 문제가 없습니다.

CDPUserSvc 격리(Isolation) 방법

CDPUserSvc_xxxxx 서비스가 반복적으로 충돌하는 문제를 해결하는 또 다른 방법은 이 서비스를 격리 모드로 실행하는 것입니다. 관리자 권한 명령 프롬프트에서 다음 명령을 실행하세요.

sc config cdpusersvc type= own

정상적으로 적용되면 [SC] ChangeServiceConfig SUCCESS라는 메시지가 출력됩니다.

[해결] Windows 10/Windows Server 2016에서 CDPUserSvc가 작동을 멈췄습니다 오류 수정 방법

이후 CDPUserSvc는 자체 svchost.exe 프로세스에서 독립적으로 시작됩니다. 그래도 오류가 계속된다면 아래 방법으로 서비스를 비활성화해 보세요.

CDPUserSvc 서비스 비활성화 방법

주의할 점은, services.msc에서 CDPUserSvc를 수동으로 중지하고 '사용 안 함'으로 설정하더라도 잠시 후 다른 이름으로 다시 시작된다는 것입니다.

참고: 레지스트리에서 이 서비스 항목을 직접 삭제해도 잠시 후 다른 이름으로 다시 나타납니다. 즉, 시스템이 이 서비스의 삭제를 스스로 방지하는 구조입니다. (마치 Microsoft가 바이러스 개발자들의 기법을 차용한 것처럼 보입니다 😉)

이 서비스를 확실하게 비활성화하려면 레지스트리 편집기를 이용해야 합니다. 레지스트리 키 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CDPUserSvc에서 Start 값의 데이터를 2(자동 시작)에서 4(사용 안 함)로 변경하세요.

[해결] Windows 10/Windows Server 2016에서 CDPUserSvc가 작동을 멈췄습니다 오류 수정 방법

또는 명령 프롬프트에서 다음 명령을 실행해도 됩니다.

sc config CDPUserSvc start= disabled
reg add "HKLM\SYSTEM\CurrentControlSet\Services\CDPUserSvc" /v "Start" /t REG_DWORD /d "4" /f

이후 시스템을 재부팅하면 설정이 적용되며, 더 이상 CDPUserSvc 관련 오류 창이 나타나지 않을 것입니다.