Printer Maestro 服務無法啟動,重印控制台無法列印,出現 CLSID 錯誤:類別未註冊
症狀
當嘗試啟動 Printer Maestro 服務時,服務會拒絕啟動,並顯示一個不明確的錯誤訊息。
如果你在事件檢視器的應用程式日誌中查看,會發現一則錯誤訊息,顯示 COMException,指出 CLSID 未註冊。
無法啟動服務。System.Runtime.InteropServices.COMException (0x80040154):
無法取得 CLSID {EAC071C3-2CC4-4201-9B5D-76E209673C10} 的 COM 類別工廠,原因如下:
80040154 類別未註冊(來自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG) 的例外狀況)。
於 Maestro.Service.MaestroService.OnStart(String[] args)
於 System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
在分析系統的印表機設定檔時,我們的驅動程式版本顯示為 v1.0
安裝日誌或其他地方沒有出現其他錯誤。
由於 Maestro 服務無法啟動,Reprint Console 會將所有列印工作的狀態顯示為「未知」,並且完全不允許使用者重新列印。任何依賴 Maestro 印表機資料的服務都會錯誤地將所有印表機列為「未知」。
適用環境
BarTender 2019 及之後版本
Drivers by Seagull
原因說明
在 BarTender 和我們的驅動程式底層,有一個叫做 Driver Automation Library(DAL)的元件。DAL 通常有兩種安裝方式:
- 隨 Drivers by Seagull 一起安裝
- 隨 BarTender 一起安裝,通常用於 Printer Maestro
DAL 是一組登錄機碼,負責向我們的驅動程式和依賴狀態及驅動資訊的系統回報印表機狀態。主要依賴這個元件的有 Printer Maestro、Reprint Console,以及 History Explorer 的印表機區段。某種程度上,Integration Services 也可能會依賴它。
如何找到 DAL
DAL 位於登錄檔中特定的 CSLID 路徑下:
HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{EAC071C3-2CC4-4201-9B5D-76E209673C10}
在這種 Printer Maestro 服務出現未註冊錯誤的情況下,DAL 未能正確註冊,整個 CSLID 都會消失。這可能是因為原廠印表機驅動程式與 Drivers by Seagull 之間發生衝突所致,但也可能有其他原因。
這不是常見的問題。
如何修復 DAL 問題
DAL 必須透過自動化程序新增。無法透過手動建立登錄機碼來新增。
重新安裝印表機驅動程式
第一步是將受影響的印表機從系統中移除。
- 如果尚未完成,請從我們的網站下載驅動程式安裝程式並解壓縮。
- 如果已經解壓縮,請從資料夾中執行 DriverWizard.exe
- 選擇「移除印表機驅動程式」
- 選擇「使用進階印表機驅動程式移除選項」
- 勾選所有使用 Drivers by Seagull 的印表機,然後點選下一步
- 相符的驅動程式應該會被選取。對於某些型號,如果有原廠驅動程式,也一併移除。
- 繼續點選下一步,精靈會自動填入其他選項。
- 到最後一步時,點選完成,將驅動程式從系統中移除。
- 重新啟動電腦以完成程序。請勿跳過這一步。
- 使用精靈重新安裝印表機。如果有多台印表機,先從其中一台開始。
當系統中至少有一台印表機時,嘗試重新啟動 Printer Maestro 服務。如果服務仍無法啟動,請繼續下一步。
修復 Printer Maestro
你可以按照以下步驟修復 Printer Maestro:
- 前往「新增/移除程式」或控制台中的相應選項。
- 選取 BarTender。
- 點選「修改」按鈕。
- 從選單中選擇「修復」。
修復完成後,請確認 Maestro 服務已在 Windows 服務清單中啟動並運作。
修復 DAL 問題的注意事項
這個修復方式無法追溯處理。任何在 DAL 損壞期間處理的工作,狀態仍會顯示為「未知」,且無法在 Reprint Console 中重新列印。這個修復僅適用於之後的列印工作。
如果在套用修復後檢查登錄檔,DAL 的機碼可能仍然沒有顯示。只要 Maestro 服務正在運作,並且能正確將印表機狀態回報給 Reprint Console,就可以放心認為 DAL 已正確註冊。