本页
症状
No more connections can be made to this remote computer at this time because there are already as many connections as the computer can accept.
This remote computer has reached its connection limit, you cannot connect at this time.
原因
远程过程调用 (RPC) 要求每个活动的 RPC 调用(如 OpenPrinter)都有一个命名管道实例。如果 OpenPrinter 调用停止响应,RPC 会让命名管道连接保持打开状态。只有关闭了上下文句柄(即 OpenPrinters),RPC 才会断开此连接。
如果同时满足以下两个条件,则会打开一个永不关闭的匿名连接(又称空会话连接),连接到充当对等网络中服务器的工作站上的命名管道 \PIPE\spoolss:
- 您的客户端已连接到充当“打印服务器”的计算机上的某台共享打印机。
- 您已在一个或多个客户端上安装了一台本地共享打印机。
解决方案
方法 1
使用组策略 GUI 或设置一个注册表项,可禁用已超过其传入连接限制的 Windows 计算机上的空会话连接,并显示其他一些空会话连接。使用组策略用户界面(本地安全策略 MMC 管理单元)
- 单击“开始”,指向“程序”,指向“管理工具”,然后单击“本地安全策略”。
注意:如果因“管理工具”未出现在“程序”列表中而不能执行此步骤,请单击“开始”,指向“设置”,指向“控制面板”,双击“管理工具”,然后单击“本地安全策略”。
注意:在 Windows XP 中,RestrictAnonymous子项的值可以为 0 或 1。值 1 可限制基于 Windows XP 的客户端上的空会话连接。为管理 SAM 帐户的枚举,添加了以下新的注册表子项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\restrictanonymoussam - 在“安全设置”中,双击“本地策略”,然后单击“安全选项”。
- 双击“对匿名连接的额外限制”,然后在“本地策略设置:”下单击“没有显式匿名权限就无法访问”。
- 重新启动计算机。
使用注册表编辑器
警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。要限制空会话连接(或禁用空会话访问),请按照下列步骤操作:
- 启动注册表编辑器。
- 在注册表中找到并单击下面的项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA
- 在“编辑”菜单上,单击“添加数值”,然后添加以下注册表值:
数值名称:RestrictAnonymous值为 2 可限制空会话连接。
数据类型:REG_DWORD
值:2
默认值:0
在设置 RestrictAnonymous 值时,可将该注册表项的值更改为 0 或 1(对于 Windows NT 4.0),或更改为 0、1 或 2(对于 Windows 2000)。这些数字对应于下列设置:- 0 无。依赖于默认许可权限。
- 1 不允许枚举 SAM 帐户和名称。
- 2 没有显式匿名权限就无法访问
- 重新启动计算机。
方法 2
使用以下方法可禁用会话空闲时间长而且已打开到命名管道 \PIPE\spoolss 的句柄的空会话连接。删除客户端上的打印机共享
查找已启用了本地打印机共享的客户端(参见“更多信息”一节可了解其他信息)并删除这些计算机上的所有本地打印机共享:- 打开“打印机”文件夹,检查是否已共享了一台本地打印机。
- 打开共享打印机的“属性”窗口,然后单击“共享”。
- 单击以选择“不共享”选项。
状态
更多信息
当服务器服务打开的会话数已达到最大值时,如果又有一个用户试图分配资源,计算机将返回本文“症状”一节描述的错误消息。
通常,一台计算机不会与另一台计算机建立多个会话。但也有例外。例如,计算机 A 正在不同于登录用户的另一用户上下文中运行某一服务,此服务创建了一个到计算机 B 的逻辑连接。此逻辑连接可能源自文件共享、打印机、串行端口,也可能源自计算机之间使用命名管道和邮件槽进行的通信。
使用以下命令可获得有关会话和打开的文件及共享资源的信息。
关于运行服务器服务的计算机上的活动会话的信息
要查看关于运行服务器服务的计算机上的活动会话的信息,请键入以下命令:如果来自某个远程客户端的会话多于一个,请查看已建立多个会话的远程客户端上的用户名上下文:
- 查看正在运行的所有服务,看是否有某个服务正在会话表中显示的用户名的用户上下文中运行。
- 查找符合以下条件的计划任务:正在登录脚本中运行;正在使用不同于登录用户的用户帐户。
- 查找“用户名”列为空的行并检查空闲时间。
临时空会话通常是由 IPC$ 连接在建立连接的第一步时创建的。它们保持活动状态的时间为 30 秒到 90 秒。
注意:要断开客户端计算机会话,请使用以下命令:
关于打开文件的信息
要查看关于打开的文件的信息,请在运行服务器服务的计算机上键入以下命令:关于 NetBIOS 连接表的信息
要查看传入和传出连接列表以及这些连接承载的通信量,请键入命令:关于共享资源的信息
要查看文件共享、隐藏的管理共享和共享打印机,请键入以下命令:使用网络监视器,可以确定发起额外的会话的是哪个组件以及服务器消息块 (SMB) 会话使用的是什么安全上下文。 要筛选打印机假脱机导致的通讯量,请使用网络监视器中的 R_WINSPOOL 分析程序。如果基于 Windows 的计算机查找充当“打印队列服务器”的计算机,则它会通过 RemAPI 协议(又称 Microsoft Windows Lanman 远程 API 协议)使用 NetShareEnum 事务。 默认情况下,在使用 NetShareEnum 事务时,只需匿名访问即可发出 NetServerEnum2 和 NetServerEnum3 请求。默认情况下,Windows 操作系统启用匿名访问。
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: