設備環境使用版本: Windows 11 Version 22H2 22621.1702
最近有同事電腦壞掉救不回來了,買了一台新的,附上作業系統是 win11,該裝的應用裝一裝沒什麼問題,直到安裝印表機…
由於公司設備有些有點年紀,新版本的 windows 驅動無法運行,需要透過比較早期的電腦(xp)運作,所以要連線到遠端使用共用印表機,這時出現第一個問題:
無法連線到印表機
新增印表機的步驟就不多贅述了,當我來到這個步驟準備按下一步發生了問題
這個狀況通常就伴隨著無法使用網路位置(或是網路上的芳鄰),可以先檢查自己是否有儲存正確的使用這認證(路徑:控制台\使用者帳戶\認證管理員的 windows 認證)
如果都沒問題,而且網路位置也能正常連接,但還是無法正確連線到印表機,可以嘗試下面步驟
a. Win + R,輸入「optionalfeatures」叫出「開啟或關閉 windows 功能」,或是去控制台\程式集點選該選項b. 檢查 SMB1.0/CIFS 檔案共用支援有沒有勾選,這是共用印表機的主要協議
c.重新開機,問題解決
順利連接到之後發生第二個問題:
順利連接印表機但依舊無法列印(0x0000011b)
按了列印測試頁之後,訊息列跳出列印錯誤,我的檔案還卡在列印佇列,顯示錯誤,連接到遠端桌面看了一下印表機本身的佇列錯誤訊息是甚麼,發現檔案根本沒有傳過去遠端電腦!
這個問題源自於 2021 年 1 月的更新漏洞,RpcAuthnLevelPrivacyEnabled 這個機碼是加強了遠端操作的伺服器和客戶端之間行為的安全性,但因為 2021 年 1 月 12 日更新後的預設值為 0(不啟用),而同年 9 月 14 日或之後更新的預設行為為 1(啟用,代表我們要使用新的授權方式,假設伺服器端未使用這個新的授權方式則會中斷列印),手頭上這台機器未添加機碼則是根據預設值進行判斷,就不能夠操作遠端印表機了。
win+R 輸入 regedit,路徑: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print
新增 DWORD-32「RpcAuthnLevelPrivacyEnabled」設置為 0,重開電腦。
雖然這樣能解決目前問題,但 Microsoft 還是不建議設置為 0,畢竟他出這個功能就是希望提高設戶端及伺服器端的安全性,礙於實際因素就不拿 xp 做實驗了…
成功連接也傳送到遠端電腦但還是無法列印
這次看到遠端電腦佇列有文件了!但卡在多工緩衝狀態一下子又消失了,於是上網尋找列印多工緩衝列印失敗的相關解方,發現是 win11 的 22H2 更新導致的,有網友表示使用 21H2 版本的時候沒有問題,我照著這篇的做法做了一次,發現還是無效,閱讀他的指令發現是將檔案備份、重新命名
1 | net stop spooler |
去相對應資料夾觀察檔案,用系統管理員身分執行三次,重開機三次,發現根本沒有 spoolsv.exe.old 檔案,推測是腳本不起作用,再去搜尋發現也有人使用覆蓋檔案這類類似的方法解決,於是我嘗試了一下:
備份 C:\Windows\System32\路徑中的 spoolsv.exe 、 localspl.dll、win32spl.dll 這三個檔案先複製備份到別的資料夾
資源檔(上面提供的文章聯結有檔案載點)複製貼上在原本的路徑(C:\Windows\System32),覆蓋原檔並且重新開機,問題就解決了!另外,這三個檔案可以從列印功能正常的其他電腦複製過來覆蓋,也能達到同樣效果
參考資料
win11 22H2 版本,無法連線共享印表機
微軟證實 Windows 11 的 Bug 會讓部分印表機無法安裝
Win11 22H2 版本出现 0x000000709 无法访问打印机故障
解決微軟更新造成的問題,Win10 21H2/21H1/20H2 更新翻車,修正 KB5005565、KB5004945、KB5004760、KB5003690 造成的問題(區網印表機無法列印,網路印表機新增出現 0x0000011b 錯誤)
修复局域网共享打印机 0x0000011b 错误
管理針對 CVE-2021-1678 (KB4599464) 所做之印表機 RPC 繫結變更的部署