일부 Windows 사용자들이 응용 프로그램을 실행할 때마다 '오류 87: 매개변수가 잘못되었습니다(Error 87 The Parameter is Incorrect)'라는 메시지가 나타난다고 보고하고 있습니다. 경우에 따라 'LoadLibrary failed with error 87: 매개변수가 잘못되었습니다'라는 형태로 표시되기도 합니다. 일부 사용자는 특정 한두 개의 프로그램에서만 문제가 발생한다고 하지만, 다른 사용자들은 거의 모든 응용 프로그램을 열 때마다 오류가 발생한다고 보고했습니다. 이 문제는 특정 Windows 버전에만 국한되지 않으며, Windows 7, Windows 8, Windows 10 전반에서 발생하는 것으로 확인되었습니다.
오류 87 '매개변수가 잘못되었습니다'의 원인
다양한 사용자 사례와 검증된 복구 방법을 분석한 결과, 이 문제를 유발할 수 있는 주요 원인은 다음과 같습니다.
- 소프트웨어 충돌 – 특정 응용 프로그램이나 타사 서비스가 디스플레이 드라이버와 충돌하면서 이 문제를 일으키는 것으로 알려져 있습니다. 클린 부팅을 수행한 후 비활성화된 항목을 하나씩 다시 활성화하면 원인을 찾을 수 있습니다.
- 시스템 파일 손상 – 손상된 시스템 파일도 이 오류의 원인이 될 수 있습니다. CHKDSK, SFC 또는 DISM 검사를 실행한 후 문제가 완전히 해결되었다는 사용자 사례가 많습니다.
- 손상되었거나 부적절한 디스플레이 드라이버 – 불완전하거나 손상된 그래픽 드라이버, 특히 전용 드라이버와 충돌하는 경우 이 오류가 발생할 수 있습니다. 드라이버를 롤백하거나 최신 버전을 강제 설치하여 해결할 수 있습니다.
- Windows Update 서비스 손상 – 기본값이 변경되어 레지스트리 항목이 손상된 Windows Update 서비스도 흔한 원인입니다. 서비스 설정을 기본값으로 복원하면 해결됩니다.
- 분할 터널링(Split Tunneling) 비활성화 – VPN 응용 프로그램을 실행할 때 오류가 발생한다면 분할 터널링이 꺼져 있기 때문일 가능성이 높습니다. PowerShell 명령으로 다시 활성화할 수 있습니다.
- Messaging 서비스의 비정상적인 비활성화 – Windows 10에서 Messaging 서비스를 일반적인 방법으로 비활성화하려 할 때 이 오류가 발생하는 것으로 알려져 있습니다. 레지스트리 편집기를 통해 비활성화하면 해결됩니다.
- DLL 파일이 편집 프로그램 실행을 차단 – ATI 그래픽 카드 사용자가 Sony Vegas 같은 영상 편집 프로그램을 실행할 때 반복적으로 발생하는 문제입니다. OS가 해당 DLL 파일을 무시하도록 설정하면 해결됩니다.
방법 1: 클린 부팅 수행
클린 부팅은 최소한의 드라이버와 시작 프로그램만으로 Windows를 시작하는 방식입니다. 이 절차를 통해 소프트웨어 충돌이 오류 87의 원인인지 확인할 수 있습니다.
실제로 클린 부팅 상태에서는 오류가 발생하지 않았다는 사용자 사례가 많습니다. 원인이 되는 프로그램이나 드라이버를 확인한 후에는 정상 부팅 상태에서도 오류가 사라질 때까지 설치된 소프트웨어 구성 요소를 하나씩 제거해 나갔습니다.
클린 부팅을 수행하고 원인이 되는 소프트웨어를 찾는 방법은 다음과 같습니다.
- 먼저 관리자 권한이 있는 계정으로 로그인했는지 확인합니다.
- Windows 키 + R을 눌러 실행(Run) 대화 상자를 연 다음, 'msconfig'를 입력하고 Enter 키를 눌러 시스템 구성(System Configuration) 창을 엽니다. UAC(사용자 계정 컨트롤) 창이 나타나면 예(Yes)를 클릭하여 관리자 권한을 허용합니다.
- 시스템 구성 창에서 상단의 서비스(Services) 탭을 선택하고, 먼저 모든 Microsoft 서비스 숨기기(Hide all Microsoft services) 체크박스에 체크합니다. 그런 다음 남아 있는 서비스 목록 아래의 모두 사용 안 함(Disable all) 버튼을 클릭하여 다음 시스템 시작 시 타사 서비스가 실행되지 않도록 합니다.
- 적용(Apply)을 눌러 변경 사항을 저장한 후, 시작 프로그램(Startup) 탭을 선택하고 작업 관리자 열기(Open Task Manager)를 클릭합니다.
- 작업 관리자의 시작 프로그램 탭에서 각 항목을 개별적으로 선택한 후 사용 안 함(Disable)을 클릭하여 다음 부팅 시 실행되지 않도록 합니다.
- 필요한 모든 항목을 비활성화한 후 작업 관리자를 닫고 컴퓨터를 재시작합니다.
- 다음 부팅부터 시스템은 클린 부팅 상태로 시작됩니다.
- 이전에 '오류 87'을 유발했던 동작을 반복하여 문제가 해결되었는지 확인합니다.
- 절차가 성공적이었다면 3~5단계로 돌아가 비활성화했던 시작 프로그램과 서비스를 재부팅과 함께 하나씩 다시 활성화하여 원인을 특정합니다.
이 방법으로 문제가 해결되지 않았다면 다음 방법으로 넘어가십시오.
방법 2: CHKDSK, SFC 및 DISM 검사 수행
이 문제는 디스플레이 드라이버에 영향을 주는 시스템 파일 손상으로 인해 발생할 수도 있습니다. CHKDSK, SFC 또는 DISM 검사를 실행한 후 문제가 해결되었다는 사용자 사례가 많으며, 이 유틸리티들은 시스템 파일 관련 문제를 해결하는 데 효과적인 내장 도구입니다.
Windows PC에서 이 검사를 수행하는 방법은 다음과 같습니다.
- 검사를 시작하기 전에 Windows 키 + R을 눌러 실행 대화 상자를 연 후, 'cmd'를 입력하고 Ctrl + Shift + Enter를 눌러 관리자 권한 명령 프롬프트를 엽니다.
참고: UAC(사용자 계정 컨트롤) 창이 나타나면 예(Yes)를 클릭합니다. - 관리자 권한 명령 프롬프트에 다음 명령을 입력하고 Enter 키를 눌러 CHKDSK 검사를 시작합니다.
chkdsk X: /r 중요: X는 단순한 자리표시자입니다. 검사하려는 드라이브 문자로 바꿔서 입력하세요.
참고: CHKDSK 검사는 전체 드라이브를 스캔하여 무결성 위반 및 논리 오류를 찾습니다. 문제가 발견되면 유틸리티가 소프트 배드 섹터를 복구하고 하드 배드 섹터가 재사용되지 않도록 처리합니다. - 검사가 완료되면 컴퓨터를 재시작하고 문제가 해결되었는지 확인합니다. 동일한 오류가 계속 발생하면 다음 단계로 진행합니다.
- 1단계를 다시 수행하여 관리자 권한 명령 프롬프트를 연 후, 다음 명령을 입력하고 Enter 키를 눌러 SFC 검사를 시작합니다.
sfc /scannow
참고: 시스템 파일 검사기(SFC)는 보호된 모든 시스템 파일을 스캔하고 손상된 파일을 압축 폴더(%WinDir%\System32\dllcache)에 저장된 로컬 복사본으로 교체합니다. - 절차가 완료되면 컴퓨터를 재시작하고 문제가 해결되었는지 확인합니다.
- 여전히 문제가 발생한다면 1단계를 한 번 더 수행하여 새로운 관리자 권한 명령 프롬프트를 연 후, 다음 명령을 입력하고 Enter 키를 눌러 DISM(Deployment Image Servicing and Management) 검사를 시작합니다.
DISM.exe /Online /Cleanup-image /Restorehealth
참고: DISM 검사는 Windows Update를 통해 손상된 파일을 복구하는 데 필요한 파일을 가져옵니다. 따라서 이 마지막 단계를 수행하기 전에 안정적인 인터넷 연결이 되어 있는지 확인하는 것이 중요합니다. - 절차가 완료되면 컴퓨터를 재시작하고 문제가 해결되었는지 확인합니다.
동일한 오류가 계속 발생한다면 다음 방법으로 넘어가십시오.
방법 3: 디스플레이 드라이버 롤백(또는 제거)
이 문제는 손상되었거나 불완전하게 설치된 디스플레이 드라이버 때문에 발생할 수도 있습니다. 장치 관리자를 통해 그래픽 드라이버를 롤백하거나(롤백 옵션이 없는 경우) 드라이버를 제거한 후 문제가 사라졌다는 사용자 사례가 많습니다.
Windows 10에는 누락된 드라이버를 자동으로 다시 설치하는 기능이 있으므로, 이 방법이 컴퓨터에 지속적인 부작용을 일으키지 않습니다.
디스플레이 드라이버를 롤백 또는 제거하는 방법은 다음과 같습니다.
- Windows 키 + R을 눌러 실행 대화 상자를 연 후, 'devmgmt.msc'를 입력하고 Enter 키를 눌러 장치 관리자(Device Manager)를 엽니다.
- 장치 관리자에서 디스플레이 어댑터(Display Adapters) 항목을 확장합니다.
- 그래픽 어댑터를 마우스 오른쪽 버튼으로 클릭하고 바로 가기 메뉴에서 속성(Properties)을 선택합니다.
참고: 두 개의 디스플레이 드라이버(전용 그래픽과 통합 그래픽)가 있는 경우 두 드라이버 모두에 대해 작업하는 것이 좋습니다. - 속성 화면에서 드라이버(Driver) 탭으로 이동한 후 드라이버 롤백(Roll Back Driver)을 클릭하고 화면의 지시에 따라 절차를 완료합니다.
참고: 드라이버 롤백 옵션을 사용할 수 없는 경우 대신 장치 제거(Uninstall Device)를 클릭합니다. - 절차가 완료되면 컴퓨터를 재시작합니다. 다음 부팅 시 운영체제가 설치를 완료하며, 드라이버가 제거되었다면 Windows가 자동으로 최신 드라이버를 검색하여 설치합니다.
- 디스플레이 드라이버가 변경되었으면 이전에 오류 87을 유발했던 동작을 다시 수행하여 문제가 지속되는지 확인합니다.
동일한 오류가 계속 발생한다면 다음 방법으로 넘어가십시오.
방법 4: Windows Update 서비스 복원
Windows Update 서비스를 시작하려고 할 때 '오류 87: 매개변수가 잘못되었습니다'가 발생한다면, 기본 서비스 설정이 변경되어 일부 레지스트리 항목이 손상되었을 가능성이 높습니다.
서비스와 설정을 기본값으로 복원하는 절차를 수행한 후 문제가 완전히 해결되었다는 사용자 사례가 많습니다.
중요: 아래 단계는 Windows 10에만 적용됩니다.
Windows Update 서비스를 복원하는 방법은 다음과 같습니다.
- Windows 키 + R을 눌러 실행 대화 상자를 연 후, 'notepad'를 입력하고 Enter 키를 눌러 메모장을 엽니다.
- 메모장에 다음 코드를 붙여넣습니다:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv] "PreshutdownTimeout"=dword:036ee800 "DisplayName"="@%systemroot%\\system32\\wuaueng.dll,-105" "ErrorControl"=dword:00000001 "ImagePath"=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,\ 74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\ 00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\ 6b,00,20,00,6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00 "Start"=dword:00000003 "Type"=dword:00000020 "Description"="@%systemroot%\\system32\\wuaueng.dll,-106" "DependOnService"=hex(7):72,00,70,00,63,00,73,00,73,00,00,00,00,00 "ObjectName"="LocalSystem" "ServiceSidType"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv\Parameters] "ServiceDllUnloadOnStop"=dword:00000001 "ServiceMain"="WUServiceMain"
- 코드를 붙여넣은 후 상단 메뉴에서 파일 > 다른 이름으로 저장(File > Save As)을 선택합니다.
- 다른 이름으로 저장 창에서 파일 이름은 임의로 지정하되, 확장자를 반드시 .txt에서 .reg로 변경합니다. 저장 위치를 지정한 후 저장(Save) 버튼을 클릭합니다.
- .reg 파일을 더블클릭하고 확인 메시지에서 예(Yes)를 클릭하여 레지스트리에 필요한 변경 사항을 적용합니다.
방법 5: 분할 터널링 활성화(해당되는 경우)
일부 사용자의 경우, 최신 버전의 Windows 10에서 보안상의 이유로 분할 터널링(Split Tunneling)이 자동으로 비활성화되면서 문제가 발생했다고 보고했습니다. VPN 응용 프로그램을 실행할 때 이 오류가 발생한다면, PowerShell 명령을 실행하여 분할 터널링을 다시 활성화함으로써 문제를 해결할 수 있습니다.
수행 방법은 다음과 같습니다.
- Windows 키 + R을 눌러 실행 대화 상자를 연 후, 'powershell'을 입력하고 Ctrl + Shift + Enter를 눌러 관리자 권한 PowerShell 창을 엽니다. UAC(사용자 계정 컨트롤) 창이 나타나면 예(Yes)를 클릭하여 관리자 권한을 허용합니다.
- 관리자 권한 PowerShell 창에 다음 명령을 입력하고 Enter 키를 눌러 VPN 연결 정보를 확인합니다.
Get-VPNConnection
- VPN 이름과 분할 터널링 기능 상태를 포함한 정보 목록이 표시됩니다. 분할 터널링 값이 False로 설정되어 있다면, 이후 단계에서 필요하므로 VPN 이름을 기록해 둡니다.
- 다음 명령을 입력하고 Enter 키를 눌러 분할 터널링을 활성화합니다.
Set-VPNConnection -Name "VPN 이름" -SplitTunneling $True
참고: 'VPN 이름'은 3단계에서 확인한 실제 VPN 연결 이름으로 바꿔야 하는 자리표시자입니다. - 명령이 성공적으로 처리되면 컴퓨터를 재시작하고 다음 부팅 시 문제가 해결되었는지 확인합니다.
방법 6: 레지스트리 편집(해당되는 경우)
MessagingService_48ab2 또는 OneSyncSvc_54186de 서비스를 비활성화하려고 할 때 '오류 87: 매개변수가 잘못되었습니다'가 발생한다면, 간단한 레지스트리 편집으로 문제를 해결할 수 있습니다. 이 방법은 주로 Windows 10 환경에서 효과적인 것으로 알려져 있습니다.
레지스트리 편집기를 사용하여 MessagingService를 비활성화하는 방법은 다음과 같습니다.
- Windows 키 + R을 눌러 실행 대화 상자를 연 후, 'regedit'를 입력하고 Enter 키를 눌러 레지스트리 편집기를 엽니다. UAC(사용자 계정 컨트롤) 창이 나타나면 예(Yes)를 클릭합니다.
- 레지스트리 편집기에서 왼쪽 창을 이용해 비활성화하려는 서비스에 해당하는 다음 위치 중 하나로 이동합니다.
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OneSyncSvc_48ab2 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OneSyncSvc_54186de
- 올바른 키에 도달하면 오른쪽 창으로 이동하여 Start DWORD 값을 더블클릭합니다.
- 기수(Base)를 16진수(Hexadecimal)로 설정한 후, 값 데이터(Value data)를 4(비활성화)로 변경합니다.
- 레지스트리 편집기를 닫고 컴퓨터를 재시작한 후, 다음 부팅 시 문제가 해결되었는지 확인합니다.
문제가 계속 발생한다면 다음 방법으로 넘어가십시오.
방법 7: atig6pxx.dll 파일 이름 변경
Vegas Pro 또는 유사한 영상 편집 프로그램을 실행할 때 'LoadLibrary failed with error 87: 매개변수가 잘못되었습니다' 오류가 발생하고 ATI 그래픽 카드를 사용 중이라면, 비슷한 상황의 많은 사용자에게 나타난 반복적인 문제를 겪고 있을 가능성이 큽니다.
동일한 문제를 겪은 여러 사용자가 atig6pxx.dll이라는 DLL 파일의 이름을 수정하여 문제를 해결했다고 보고했습니다. 이 조치를 취한 후 이전에 오류로 인해 실행되지 않던 편집 프로그램이 정상적으로 열렸다고 합니다.
수행 방법은 다음과 같습니다.
- Windows 작업 표시줄의 검색 기능을 사용하여 'atig6pxx.dll'을 검색합니다. Windows 키 + S를 누르면 검색 기능을 즉시 실행할 수 있습니다.
- 검색 결과 목록에서 atig6pxx.dll을 마우스 오른쪽 버튼으로 클릭하고 파일 위치 열기(Open File Location)를 선택합니다. System32 폴더로 직접 이동됩니다.
- atig6pxx.dll 파일을 마우스 오른쪽 버튼으로 클릭하고 이름 바꾸기(Rename)를 선택합니다. 그런 다음 .dll 확장자 끝에 .bak을 추가합니다. 이렇게 하면 OS가 해당 파일을 무시하게 됩니다. 확인 메시지에서 예(Yes)를 클릭하고, UAC(사용자 계정 컨트롤) 창이 나타나면 다시 한 번 예(Yes)를 클릭합니다.
참고: 파일 확장자가 처음부터 표시되지 않는다면, 파일 탐색기 상단의 보기(View) 메뉴에서 파일 이름 확장명(File name extensions) 체크박스가 선택되어 있는지 확인하십시오. - 변경이 완료되면 컴퓨터를 재시작한 후, 영상 편집 소프트웨어를 실행했을 때 문제가 여전히 발생하는지 확인합니다.