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

Windows 네트워크 프린터 연결 오류 0x0000007e 해결 방법 완벽 가이드

네트워크 프린터 연결 시 발생하는 오류 0x0000007e는 Windows 10과 Windows 7 모두에서 매우 자주 나타나는 문제입니다. 이 오류는 대부분 프린터가 다른 Windows 컴퓨터(프린트 서버)에 직접 연결되어 있고, 네트워크를 통해 다른 컴퓨터에서 공유 프린터로 사용하는 환경에서 발생합니다.

오류 발생 상황

실제 사례를 들어보겠습니다. 32비트(x86) 버전의 Windows Server 2008에 여러 대의 HP( Hewlett-Packard ) 공유 프린터가 연결된 프린트 서버가 있다고 가정해 보겠습니다. 이 서버의 프린터를 64비트 클라이언트(Windows 10 또는 Windows 7) 컴퓨터에서 연결하려고 하면, 운영체제는 프린트 서버에서 올바른 버전의 HP 프린터 드라이버를 정상적으로 다운로드하지만 설치 단계에서 0x0000007e 오류와 함께 실패하게 됩니다.

Windows 7에서는 다음과 같은 메시지가 표시됩니다.

"Windows cannot connect to the printer.
Operation failed with error 0x0000007e."
(Windows가 프린터에 연결할 수 없습니다. 작업이 오류 0x0000007e(으)로 인해 실패했습니다.)

Windows 10 컴퓨터에서는 오류 메시지가 조금 다르게 표시됩니다.

"Operation could not be completed (error 0x0000007e). The specified module could not be found."
(작업을 완료할 수 없습니다(오류 0x0000007e). 지정된 모듈을 찾을 수 없습니다.)

오류의 원인

흥미로운 점은 동일한 프린트 서버에 32비트 Windows에서 연결할 때는 아무런 문제가 없다는 것입니다.

즉, 0x0000007e 오류는 64비트 클라이언트에서 32비트 프린트 서버(Windows Server 2003 x86 또는 Windows Server 2008 x86)에 설치된 공유 HP 프린터에 연결하려 할 때만 발생합니다. 또한 모든 HP 프린터에서 나타나는 것이 아니라, 주로 HP Universal Print Driver(HP 범용 프린터 드라이버) PCL 버전을 사용하는 프린터에서만 문제가 발생합니다.

기본 점검 사항: 드라이버 버전 확인

먼저 프린트 서버에 32비트(x86)와 64비트(x64) 드라이버가 모두 설치되어 있는지 확인해야 합니다. HP Universal Printing PCL 6 드라이버의 x64 및 x86 버전이 모두 설치되어 있는지 제어판의 프린터 서버 속성에서 확인하시기 바랍니다.

근본 원인: 잘못된 스풀러 파일 경로

HP 및 Microsoft Technet 포럼 등을 조사한 결과, HP Universal Printing 드라이버 설정에 32비트 시스템 전용 스풀러 파일(인쇄 대기열) 경로(spool\drivers\w32x86\3)가 고정되어 지정되어 있고, 64비트 클라이언트는 이 경로를 찾지 못해 0x0000007e 오류가 발생하는 것으로 밝혀졌습니다.

이 파일 경로는 프린트 서버의 프린터 드라이버 설정에 지정되어 있습니다. 실제 사례에서는 spool\DRIVERS\W32X86\3\hpcpn112.dll 경로가 지정되어 있었으며, DLL 파일명은 HP Universal Printing 드라이버 버전에 따라 달라집니다. 결국 32비트 버전의 HP Universal Printing 드라이버는 x64 버전 Windows와 호환되지 않지만, 수동으로 수정이 가능합니다.

해결 방법 1: 레지스트리에서 BIDI 키 삭제

이 문제를 해결하려면 공유 프린터가 직접 연결된 프린트 서버(컴퓨터)에서 HP 프린터 드라이버의 잘못된 레지스트리 키를 삭제해야 합니다. 32비트 프린트 서버에서 진행하는 절차는 다음과 같습니다.

  1. 레지스트리 편집기(regedit.exe)를 실행합니다.
  2. 다음 레지스트리 키로 이동한 후, 해당 프린터 이름의 분기를 확장합니다(여기서는 HP Color LaserJet 5550 PCL 6).
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\
  3. 문제가 발생하는 프린터의 레지스트리 키에서 CopyFiles 섹션 안의 BIDI 키를 삭제합니다.
    참고: 운영 환경이라면 삭제하기 전에 해당 레지스트리 키를 별도의 .reg 파일로 미리 내보내 두는 것을 권장합니다. 이렇게 하면 문제가 생길 경우 원래 설정으로 쉽게 되돌릴 수 있습니다.
  4. 클라이언트에서 인쇄 스풀러 서비스를 재시작합니다:
    net stop spooler
    net start spooler
  5. 서버 측에서 BIDI 레지스트리 키를 삭제한 후, Windows 10 x64 클라이언트에서 공유 HP 프린터에 다시 연결해 봅니다. 이제 오류 없이 정상적으로 설치될 것입니다.

해결 방법 2: 로컬 포트를 통한 우회 연결

위 방법이 효과가 없거나, HP가 아닌 프린터에서 0x0000007e 오류가 발생하는 경우에는 로컬 포트를 통해 프린터를 연결하는 우회 방법을 사용할 수 있습니다.

  1. 제어판에서 새 프린터 추가 시 "로컬 프린터"(수동 설정)를 선택합니다. 반드시 로컬 프린터로 추가해야 합니다.
  2. 새 로컬 포트(Local Port 유형) 생성을 선택합니다.
  3. 포트 이름에는 공유 프린터의 전체 UNC 경로를 입력합니다. 예를 들어 프린터가 연결된 컴퓨터 이름이 ManchPC1이고 공유 프린터 이름이 Xerox2320이라면, UNC 주소는 다음과 같습니다:
    \\ManchPC1\Xerox2320
    컴퓨터 이름 대신 IP 주소를 사용할 수도 있습니다:
    \\192.168.1.55\Xerox2320
  4. 마지막으로 적절한 프린터 드라이버를 선택하거나 새로 설치합니다.

해결 방법 3: LPT 포트 매핑 활용

유사한 또 다른 방법으로, LPT 포트 매핑을 통해 네트워크 프린터를 연결할 수 있습니다.

  1. 드라이버 저장소에서 해당 프린터 드라이버를 제거합니다. 인쇄 서버 속성드라이버 탭 → 드라이버 선택(32비트 및 64비트 모두) → 제거를 클릭합니다.
  2. 새 로컬 LPT2 포트를 통해 연결되는 로컬 프린터를 생성합니다.
  3. 다음 명령어를 사용하여 가상 LPT 포트를 공유 프린터의 UNC 주소에 영구적으로 매핑합니다:
    net use LPT2 \\ManchPC1\Xerox2320 /persistent:yes
  4. 프린터 드라이버를 설치하고 테스트 문서를 출력하여 정상 작동 여부를 확인합니다.

마무리

오류 0x0000007e는 32비트 프린트 서버와 64비트 클라이언트 간의 HP Universal Print Driver 호환성 문제로 발생하지만, 위에서 소개한 세 가지 방법 중 하나를 적용하면 대부분 해결할 수 있습니다. 가능하면 첫 번째 레지스트리 수정 방법을 먼저 시도하고, 그래도 해결되지 않을 경우 로컬 포트 또는 LPT 매핑 방식을 활용해 보시기 바랍니다.