Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

XP 共用印表機連線數超過 10 限制?批次檔定時清理 Session 徹底解決

編輯:XP 常見問題解答

問題現象

Windows XP Professional 共用印表機,超過 10 台電腦連線後,新連線出現:「超過伺服器的最大連線數」或「無法連線,已達最大連線數」錯誤。先連線的使用者列印完成後,Session 不自動釋放,導致連線槽位耗盡。

根本限制

XP Professional (工作站版) 內建 SMB 連線上限 = 10 (同時連線的不同電腦數),包含檔案共用、印表機共用、IPC$、命名管道等所有 SMB 連線總和。Server 版無此限制。

解決方案:VBScript + 批次檔 定時清理閒置 Session

步驟 1:建立延遲腳本 delay.vbs

WScript.Sleep 600000  ' 600,000 毫秒 = 10 分鐘

儲存為 C:\Scripts\delay.vbs (路徑自訂)。

步驟 2:建立主清理批次檔 clean_sessions.bat

@echo off
:loop
net session /delete /y
cscript //nologo "C:\Scripts\delay.vbs"
goto loop

儲存為 C:\Scripts\clean_sessions.bat。

步驟 3:設定開機自動執行 (三選一)

  1. 啟動資料夾: 建立 clean_sessions.bat 捷徑放入 C:\Documents and Settings\All Users\Start Menu\Programs\Startup。
  2. 登錄 Run: reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v CleanSessions /t REG_SZ /d "C:\Scripts\clean_sessions.bat" /f。
  3. 排程工作: 控制台 → 排程工作 → 新增 → 系統啟動時執行 clean_sessions.bat,最高權限。

指令詳細解析

指令參數作用
net session/delete /y刪除所有對本機的 SMB Session,/y 免確認
cscript//nologo以 WSH 執行 .vbs,不顯示版權資訊
WScript.Sleep600000暫停 10 分鐘 (毫秒),避免 CPU 佔用 100%

優化建議

  • 間隔時間: 10 分鐘 (600000ms) 為平衡點,列印作業通常 < 5 分鐘,太短會斷開正在列印的作業,太久槽位不夠用。可依實際調整 (如 5 分鐘 = 300000)。
  • 隱藏視窗: 批次檔建立捷徑 → 內容 → 執行方式選「最小化」,或使用 start /min cmd /c clean_sessions.bat。
  • 記錄日誌: 批次檔加入 >>"C:\Logs\clean_session.log" echo %date% %time% cleaned 追蹤執行情況。
  • 僅清理閒置: 進階版可用 net session 列出 Session,解析閒置時間 (需更複雜腳本/工具),再選擇性刪除。

替代長效方案

結語

XP 共用印表機 10 連線限制是授權機制而非技術瓶頸。批次檔定時 net session /delete /y 是零成本、即時有效的權宜之計。長期建議遷移至網路印表機或伺服器級作業系統,徹底擺脫工作站版授權束縛。

Copyright © Windows教程網 All Rights Reserved
方案成本效果備註
升級為 Windows Server / Linux (Samba/CUPS)高徹底解決,無連線數限制企業環境首選
網路印表機 (內建網卡/列印伺服器)中直接 IP 列印,不經 XP 共用現代標準做法
修改登錄 MaxMpxCt / MaxWorkItems (不可靠)0理論上可調大但 XP 核心硬性限制 10,實測多無效不建議
第三方列印管理軟體 (Print Manager Plus 等)低~中隊列管理、配額、釋放需評估相容性