Windowsで共有ネットワークプリンターに接続しようとすると、特に最近のセキュリティアップデートの後では、エラーが発生することは珍しくありません。「プリンターに接続できません」という厄介なメッセージが表示され、エラーコードが0x0000011bや0x00000002などと表示されたとしても、慌てる必要はありません。これらのエラーは通常、ドライバーの問題、セキュリティパッチの競合、またはネットワークパスの不具合が原因です。正直言って、Windowsのアップデートでセキュリティが強化され続けているにもかかわらず、簡単なプリンター共有でさえ面倒なことになるので、少しイライラします。このガイドでは、私が試してみた一般的な修正方法をいくつか紹介します。これらの修正により、エラーを回避して印刷できるようになるかもしれません。
Windowsで共有プリンターの接続エラーを修正する方法
エラー 0x0000011b: Windows はプリンターに接続できません
この問題は、2021年にMicrosoftがPrintNightmare脆弱性を修正するためのセキュリティパッチをリリースした後に頻繁に発生しています。基本的に、Windowsは一部のプリンタードライバーや接続を信頼しなくなります。特にプリントサーバーが古いドライバーやType 4以外のドライバーを実行している場合、この問題が顕著になります。症状としては、共有プリンターに接続しようとすると、あの恐ろしいエラーが発生します。
Connect to Printer Windows cannot connect to the printer. Operation failed with error 0x0000011b.
役立つ理由:修正には、ドライバーのセキュリティレベルの更新または調整、あるいはセキュリティポリシーの微調整が含まれます。通常、より新しく「安全な」ドライバーを導入するか、サーバーのセキュリティ設定を一部下げることで解決します。適用対象:最近Windowsのアップデートをインストールしたばかりで、特に古いサーバー上の共有プリンターを突然追加できなくなった場合。期待される効果:修正を適用した後、再度接続を試みても問題なく動作するはずです。ただし、Windowsの仕様上、最初の試行が失敗する場合があります。手順を繰り返すか、システムを軽く再起動してください。
例えば、プリントサーバー上のプリンタードライバーをType 4ドライバーに更新することは良いスタートです。「デバイスとプリンター」でドライバーを確認するか、管理者権限のコマンドプロンプトからprintui.exe /s を実行してください。Type 3ドライバーしか利用できない場合は、RpcAuthnLevelPrivacyEnabledレジストリエントリを作成することで、セキュリティ制限を一時的に緩和できます。
REG ADD "HKLM\System\CurrentControlSet\Control\Print" /v RpcAuthnLevelPrivacyEnabled /t REG_DWORD /d 0 /f
変更を加えた後は、印刷スプーラーを再起動することを忘れないでください。
Restart-Service Spooler -Force
これは少し技術的に思えるかもしれませんが、実際には、セットアップ中に Windows に接続をもう少し信頼するように指示し、その後で再びロックダウンするだけです。
修正1: 印刷スプーラーサービスを再起動する
画期的なことではありませんが、Windows ではスプーラーを再起動するだけで済む場合もあります。一部のマシンでは、このサービスを再起動することで、プリンターが問題なく接続できるようになりました。管理者権限の PowerShell またはコマンドプロンプトを開いて、次のコマンドを実行してください。
net stop spooler & net start spooler
少しの間待つ必要がありますが、プリンターがリストから消えて再び表示されるので、接続が修復されているはずです。正直なところ、設定によってはこれだけでネットワーク接続エラーが修正されることもあります。
修正2: プリンタドライバを削除して再インストールする
ドライバーが破損しているか古くなっていると、Windows が不調になります。管理者権限のコマンドプロンプトで printui.exe /s /t2 を実行してドライバー一覧を表示してください。問題のあるドライバーを見つけて削除し、関連するプリンターインスタンスもすべて削除してください。以下のコマンドも実行できます。
Remove-PrinterDriver -Name "HP Universal Printing PCL 5"
実際のプリンタドライバ名に置き換えてください。古いドライバを削除した後、スプーラを再起動し、共有プリンタを新規にセットアップしてみてください。一部のマシンでは、これにより0x00000002エラーの原因となるドライバの破損が修正されます。
修正3: ドライバーファイルとレジストリキーを徹底的にクリーンアップする
これは「最後の手段」のようなものですが、私の場合はこれで数台のプリンターが動作しなくなりました。古いドライバーのエントリや保留中のファイル操作が動作を妨げている場合は、以下のレジストリキーを手動で削除してください。
- regedit.exe を開き、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperationsを削除します。これは少し奇妙ですが、Windows は古いファイル操作をそのまま残し、プリンターエラーを引き起こすことがあります。
- フォルダ内を確認し
c:\Windows\System32\spool\prtprocs\x64、\x86winprint.dll 以外のすべてのフォルダを削除してください。残っているドライバーファイルは、新規インストール時に問題を引き起こす可能性があります。 - HKLM\SYSTEM\CurrentControlSet\Control\Print\Environmentsから、デフォルト以外のすべてのプリントプロセッサとドライバーを削除します。これは、regedit または PowerShell スクリプトを使用して実行できます。
その後、再起動してプリンターを再度追加します。あまり目新しい方法ではありませんが、一部のユーザーにとってはドライバー破損による競合が解消されました。
回避策: UNCパスを使用してローカルポートを使用して接続する
それでもうまくいかない場合は、Windows による自動設定に頼るよりも、UNC パスを使用してローカルポート経由で共有プリンターを接続する方がうまくいく場合があります。その場合は、以下の手順に従ってください。
- まず、共有プリンターのUNC名を調べます。
net view \\192.168.13.200ネットワークエクスプローラーを実行するか、使用してください。UNCは次のようになります\\192.168.13.200\HPM2727_1。 - プリンタ管理コンソールがまだインストールされていない場合はインストールします
dism /Online /add-Capability /CapabilityName:Print. Management. Console~~~~0.0.1.0。 - printmanagement.msc を開きます(スタートメニューで検索)。サーバーの下にある プリンター を右クリックし、プリンターの追加 を選択します。
- ポートの種類を尋ねられたら [ローカル ポート] を選択し、ポート名として UNC を入力します (例: )
\\192.168.13.200\HPM2727_1。 - ドライバーの選択を続け、必要に応じてドライバーをインストールし、プリンター名を設定して印刷テストを行います。これにより、ネットワーク共有の不具合を完全に回避できます。
すでに経験済みですが、驚くべきことに、この回避策は難しい環境では最も信頼できる可能性があります。