文章編號: 906952 - 上次校閱: 2008年6月16日 - 版次: 5.0

記錄事件識別碼 2020年和事件識別碼 1000年,而且在應用程式伺服器模式和 Windows Server 2003 或 Windows 2000 中執行 「 終端機服務的電腦上超過登錄大小限制

可以下載 Hotfix下載 Hotfix
檢視和要求下載 hotfix
系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

徵狀

考慮下列案例:
  • 您的電腦執行 Microsoft Windows Server 2003 或 Microsoft Windows 2000。
  • 電腦在應用程式伺服器模式中執行 「 終端機服務。
  • 啟用印表機重新導向。
  • SetPrinter 函式會設定為層級 2。
在這種情況下,您會遭遇下列徵狀:
  • 已經超過登錄大小限制。此外,系統記錄檔會記錄下列事件訊息:

    事件類型: 錯誤
    事件來源: SRV
    事件類別: 無
    事件識別碼: 2020年
    日期: Date
    時間: Time
    使用者: N/A
    電腦: Server Name
    描述: 伺服器無法從系統分頁集區配置,因為是空的集區。

  • 使用者可能無法登入已啟用的終端機服務的伺服器。在這種情況下系統記錄檔會記錄下列事件訊息:

    事件類型: 錯誤
    事件來源: Userenv
    事件類別: 無
    事件識別碼: 1000年
    日期: Date
    時間: Time
    使用者: NT AUTHORITY\SYSTEM
    電腦: ComputerName
    描述: RegLoadKey 失敗。傳回值沒有足夠的系統資源存在完成 C:\Documents 和 Settings\ntuser.dat 要求的服務。

  • 預設登錄 Hive 檔案位於 %SystemRoot% \System32\Config 資料夾可能會增加。比方說大小可能會超過超過 5 百萬位元組 (MB)。
  • 透過終端機服務工作階段連線的使用者可能會遇到較慢的回應,或用戶端可能會出現停止回應 (擱置),當它是在 「 終端機伺服器 」 電腦上執行程式。此外,使用者可能會收到與系統記憶體相關的錯誤訊息。

發生的原因

當使用者登出時,不會刪除包含印表機資訊的暫存登錄項目,就會發生這個問題。這些未刪除的登錄項目會累積直到預設登錄 Hive 檔案超過登錄大小限制。

終端機伺服器上一個使用者登入時安裝重新導向的印表機。SetPrinter 函式會存放在的緩衝區中的印表機的詳細的資訊。當使用者登出時,解除安裝印表機,並刪除對應的登錄值包含印表機資訊。

若要支援回溯相容性,儲存目前登入使用者的印表機資訊的登錄值命名慣例是不同的 SetPrinter 函式設為等級 2 時。比方說時使用者以手動方式設定印表機設定,儲存在
HKEY_USERS\.DEFAULT\Printers\DevModes2
登錄子機碼之下的登錄值會類似下列:
%ClientName %\ (自 %ClientName %) 工作階段 SessionName 中的 %PrinterName %
使用稍早命名慣例來建立登錄值會類似下列:
\ \ %ClientName %\ (自 %ClientName %) SessionName,localspl 的工作階段中的 %PrinterName %
SetPrinter 函式設定為階層 2 時, 登錄項目,包含印表機的資訊會顯示自動建立。因為移除程序只會尋找並刪除手動建立的登錄值,這些暫存登錄項目不會刪除使用者登出時。

解決方案

Windows 2000

Hotfix 資訊

重要此 Hotfix 會防止新值寫入登錄,但此 Hotfix 不會刪除現有的登錄值。因此,您必須完成之前套用這個 Hotfix 包含在 < 其他可行方案 > 一節的步驟。Microsoft 提供支援的 Hotfix。不過,此 Hotfix 旨在修正本文中所述隨問題。只會發生此特定問題的系統套用此 Hotfix。

如果此 Hotfix 可供下載,您可在本知識庫文件的頂端找到「 可用的 Hotfix 下載 」區段。如果沒有出現此區段,將要求提交到 Microsoft 客戶服務及支援],以取得該 Hotfix。

附註如果發生其他問題,或如果需要任何疑難排解,您可能必須建立個別的服務要求。和此 Hotfix 無關的額外支援問題適用一般的支援費用。如需 Microsoft 客戶服務支援部門電話號碼的完整清單或要建立個別的服務要求,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
附註「 下載 Hotfix 」 表單會顯示此 Hotfix 會出現,以供使用的語言。如果您沒有看到您的語言,是因為此 Hotfix 是不適用您的語言。
必要條件
若要將這個 Hotfix,您必須擁有 Windows 2000 服務套件 4 (SP4) 安裝在電腦上。
重新啟動需求
套用此 Hotfix 之後,您必須重新啟動電腦。
Hotfix 取代資訊
此 Hotfix 不會取代任何其他的 Hotfix。
檔案資訊
此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用在 [日期及時間 中項目控制台中的 [時區] 索引標籤]。
   Date         Time   Version           Size  File name
   --------------------------------------------------------
   09-Sep-2005  00:27  5.0.2195.7070  115,472  Winspool.drv
   25-Feb-2005  05:13  6.1.22.4       371,936  Updspapi.dll

Hotfix 安裝資訊

重要這個區段、 方法或任務包含告訴您如何修改登錄的步驟。然而,如果您不當修改登錄,可能會發生嚴重的問題。因此,執行這些步驟時請務必小心。為加強保護,修改登錄之前,請務必將它備份起來。以後您就可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
322756? (http://support.microsoft.com/kb/322756/ ) 如何備份和還原在 Windows 登錄


若要以便此 Hotfix,您必須建立
PrinterMaskKey
登錄子機碼。要這麼做,請您執行下列步驟:
  1. 按一下 [開始]、 按一下 [執行]、 輸入 regedit,然後按一下 [確定]]。
  2. 找出下列登錄子機碼:
    HKEY_USERS\.default\printers
  3. 用滑鼠右鍵按一下您在步驟 2 中找到此登錄子機碼、 指向 [新增]、 按一下 [機碼、 輸入 PrinterMaskKey,並按下 ENTER。
  4. 結束登錄編輯程式。

Windows Server 2003

服務套件資訊

如果要解決這個問題,取得最新的 Service Pack 的 Windows Server 2003。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
889100? (http://support.microsoft.com/kb/889100/ ) 如何取得最新的 Service Pack 的 Windows Server 2003

Hotfix 資訊

重要此 Hotfix 會防止新值寫入登錄,但此 Hotfix 不會刪除現有的登錄值。因此,您必須完成之前套用這個 Hotfix 包含在 < 其他可行方案 > 一節的步驟。
必要條件
沒有先決條件都是必要的。
重新啟動需求
套用此 Hotfix 之後,您必須重新啟動電腦。
Hotfix 取代資訊
此 Hotfix 不會取代任何其他的 Hotfix。
檔案資訊
Windows Server 2003,32 位元版本
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Winspool.drv5.2.3790.2740150,5282006 年七月 5 日16: 30不適用
Windows Server 2003、 x x64 版本
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台預存程序需求服務分支
Winspool.drv5.2.3790.2740252,9282006 年七月 5 日17: 03不適用sp1sp1qfe
Wwinspool.drv5.2.3790.2740150,5282006 年七月 5 日17: 03不適用sp1
Windows Server 2003、 Itanium 架構版本
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台預存程序需求服務分支
Winspool.drv5.2.3790.2740410,1122006 年七月 5 日17: 02不適用sp1sp1qfe
Wwinspool.drv5.2.3790.2740150,5282006 年七月 5 日17: 02不適用sp1

Hotfix 安裝資訊

重要這個區段、 方法或任務包含告訴您如何修改登錄的步驟。然而,如果您不當修改登錄,可能會發生嚴重的問題。因此,執行這些步驟時請務必小心。為加強保護,修改登錄之前,請務必將它備份起來。以後您就可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
322756? (http://support.microsoft.com/kb/322756/ ) 如何備份和還原在 Windows 登錄


若要以便此 Hotfix,您必須建立
PrinterMaskKey
登錄子機碼。要這麼做,請您執行下列步驟:
  1. 按一下 [開始]、 按一下 [執行]、 輸入 regedit,然後按一下 [確定]]。
  2. 找出下列登錄子機碼:
    HKEY_USERS\.default\printers
  3. 用滑鼠右鍵按一下您在步驟 2 中找到此登錄子機碼、 指向 [新增]、 按一下 [機碼、 輸入 PrinterMaskKey,並按下 ENTER。
  4. 結束登錄編輯程式。

其他可行方案

如果要解決這個問題,請依照下列步驟執行:
  1. 請確定所有的使用者已經登出該伺服器,並從生產環境移除伺服器。
  2. 重新啟動伺服器。
  3. 如果記憶體遺漏已不超過登錄大小限制,跳到步驟 4。如果記憶體遺漏已超過登錄大小限制,請依照下列步驟執行:
    1. 在相同的磁碟分割為不會啟動安裝上安裝 Windows 平行的安裝。如需有關如何安裝平行安裝 Windows 的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
      266465? (http://support.microsoft.com/kb/266465/ ) 如何執行平行安裝 Windows 2000 或 Windows Server 2003
    2. 藉由使用平行安裝的安裝步驟 3a 在 Windows 重新啟動電腦。
    3. 重新命名 DEFAULT.BAK 來從問題安裝的 Windows [DEFAULT 登錄 Hive。

      若要重新命名 Hive 的路徑是 %Systemroot%\System32\Config\DEFAULT。
    4. 載入 default.bak 登錄 Hive。要這麼做,請您執行下列步驟:
      1. 按一下 [開始]、 按一下 [執行]、 輸入 regedit,] 然後按一下 [確定]
      2. 按一下 方式、 按一下 [檔案] 功能表上的 [載入 Hive,然後選取 [步驟 3 c 中的 [完成備份的登錄 Hive 檔案。
      3. 命名新載入的登錄 Hive。比方說命名新的登錄 Hive TEMP DEFAULT。
    5. 找出並刪除下列子機碼:
      HKEY_LOCAL_MACHINE\TEMP-DEFAULT\printers\Devmodes2
      附註TEMP DEFAULT 就是您在步驟中載入登錄 Hive 的名稱 3d。
    6. 重新建立空白的
      Devmodes2
      子機碼下
      HKEY_LOCAL_MACHINE\TEMP-DEFAULT\printers
    7. 按一下 HKEY_LOCAL_MACHINE\TEMP DEFAULT] Hive,然後按一下 [檔案] 功能表中的 [儲存機碼
    8. 將 Hive 儲存為 %Systemroot%\System32\Config 資料夾中的預設值。
    9. 在 [登錄編輯程式] 中,按一下在 [檔案] 功能表上的 [使用 解除載入 Hive 控制檔]。
    10. 重新啟動電腦。
  4. 如果記憶體遺漏已不超過登錄大小限制,刪除,然後再重新建立下列登錄子機碼:
    HKEY_USERS\.default\printers\Devmodes2
  5. 監視位於 %Systemroot%\system32\config 資料夾之預設登錄 Hive 檔案的大小。如果預設的登錄 Hive 檔案的大小超過登錄大小限制,重複步驟 3。

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。 這個問題,首先已經在 Microsoft Windows Server 2003 Service Pack 2 中獲得修正。

其他相關資訊

如需有關如何命名 Hotfix 套件的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
816915? (http://support.microsoft.com/kb/816915/ ) 新檔案命名結構描述] 的 Microsoft Windows 軟體更新套件
如標準術語的用來描述 Microsoft 軟體更新的更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
824684? (http://support.microsoft.com/kb/824684/ ) 用來描述 Microsoft 軟體更新標準術語的說明

這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
關鍵字:?
kbmt kbautohotfix kbwinserv2003sp2fix kbhotfixserver kbtshoot kbbug kbfix kbqfe kbpubtypekc KB906952 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:906952? (http://support.microsoft.com/kb/906952/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。