問題

問題

問題

由於 Windows Server 2003 的支援將於 7 月 14 日結束,因此我們將所有排程任務轉移到 Windows 2008 R2 伺服器。

我們使用 Microsoft(MS) Access 2003(mdb) 資料庫來處理各種後端進程,以補充使用者和客戶與我們系統的互動。

MS Access 內部的後端程序之一(導致此問題的原因)是在使用者未登入時拒絕列印。

後端程序填入一個臨時表,稍後用於填入要列印的報表。該報告具有嵌入的查詢、連結的圖像和已儲存的預設印表機。

執行計劃任務的使用者是網域使用者。

我們推測它可能是什麼

會話 0 隔離- Access 有一個非常小的列印窗口,顯示您位於第 X 頁,共 N 頁。我覺得這可能是罪魁禍首,但我們已經嘗試過的一切都無法阻止它。

我們的嘗試

  1. 在系統設定檔下建立桌面資料夾
  2. 確保使用者是具有提升權限的本機管理員
  3. 登入時手動運行它(這有效)
  4. 建立應用程式的微型版本,用於執行列印作業的小樣本。
  5. 設定排程任務在使用者登入或未登入時執行。無論如何,MS Access 資料庫中的其他進程仍在運行,並且我們得到未列印的進程的空報告。

目前的解決方法

我們保持網域用戶登入狀態。

答案1

如果您列印到會話印表機,則很容易出現此問題。

HKEY_Current_User\Printers\Connections(會話印表機)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers(本機印表機)

透過網路共用安裝的任何印表機都屬於此類別。請使用安裝有本機 TCP/IP 佇列的印表機重試,該印表機將在系統範圍內可用。

答案2

Elias 您是否查看了排程任務並選取了「無論使用者是否登入都會執行」的方塊?您的問題聽起來像是沒有檢查,所以當任務嘗試運行時它不能。

答案3

聽起來進程運作時沒有偵測到印表機本身。您是否嘗試添加一些調試代碼以輸出到文件並查看它在哪裡被捕獲?我發現 VBA 中掛起的進程不會在事件檢視器中產生太多信息,並且通常需要在程式碼中捕獲更多錯誤。

我已經看到了會話 0 隔離問題並且有解決方法,但我遇到的所有範例都與 Excel 相關。

以下是 Session 0 影響的解釋。

https://msdn.microsoft.com/en-us/library/windows/hardware/dn653293%28v=vs.85%29.aspx

答案4

如果將 UAC 設置為最低設置,情況會有所改善嗎?為此,按一下“開始”,然後按一下“執行” 在執行方塊/提示字元中鍵入msconfig,然後按一下“確定” 按一下“工具”標籤按一下“變更UAC 設定”,然後按一下“啟動” 將滑桿拖曳到底部確定視窗並重新啟動伺服器

您遷移任務時是否重新建立了任務?在 2003 和 2008 之間遷移任務的一個好方法是在 2008 上開啟任務規劃程序,連接到 2003 伺服器,然後匯出任務。然後,您可以將任務規劃程式指向 2008 伺服器並匯入任務。如果任務執行時結果為 0x0,我會說問題出在排程任務本身之外。

能否確認印表機測試頁時印表機是否可以列印?如果您還沒有比較新舊伺服器上的印表機設置,這可能是個好主意。

相關內容