我的远程数据中心有一台 Windows 2003 服务器。今天早上我尝试通过 RDP 连接到它,但连接失败并出现以下错误:
此计算机无法连接到远程计算机。再次尝试连接。如果问题仍然存在,请联系远程计算机的所有者或您的网络管理员。
我还尝试使用本地系统中的“shutdown -i”命令发出远程关机/重启命令。没有报告错误,但是系统不会重新启动。
此服务器运行 SQL Server 2005,它仍然可以完全运行并响应查询。
我还可以远程连接到远程系统的服务控制面板。
除了让数据中心的操作员为我在服务器上进行硬重启之外,我是否可以尝试重新控制系统?
我在尝试在 Windows XP 机器上执行远程重启时遇到了同样的问题。我最终做的是使用 PsKill 命令(SysInternals PsTools 套件的一部分)来终止Winlogon 进程,如下所示:
这将导致远程机器立即重新启动。
请尝试:
这有点激烈,但我需要在与您描述的非常相似的环境中这样做。我还打开一个 cmd 窗口并对服务器启动 ping -t 以观察 IP 堆栈何时关闭并重新启动。当您无法物理访问服务器(或懒得起身走到服务器前)时,这是一个非常有用的活动指标。
编辑:(根据您的评论)好的,首先执行此操作,然后再次尝试上述操作(或者如果可行,则正常重新启动它)。看到它让你走得更远。-a 将中止系统关闭。
好吧,这有点疯狂,但是您可以在 SQL Server 上启用 xp_cmdshell,然后以运行 SQL Server 的用户身份执行命令,因此如果它不听远程命令,您可以执行 shutdown -r。
如果您想尝试重新启动 RDP 而无需重新启动机器,您可以尝试(这是未经测试的;我不会在我的任何机器上执行此操作 :D):
通过询问找出正在监听 3389(RDP 端口)的内容:
用 taskkill 杀死 pid。最后发出一个
屏住呼吸,然后再次尝试 RDP。
如果您发出关闭/重新启动的命令并且服务器不会关闭,您可以使用 pskill 工具终止 wininit.exe 进程。在 windows 2012 中,您可以使用 taskkill 原生工具。
首先检查是否始终这样做,检查防火墙是否让 RDP 通过 ;) 这并不愚蠢,它只是有时不知从何而来 ;)
还要检查终端服务是否已打开,如果您有机会实际访问服务器,可能会尝试重新启动它。
这种事情也发生在我的 2003 R2 服务器上。
当终端服务停止工作时。
这不是对您问题的回答,而是对可能导致它的原因的解释。我已经看到 RDP 在 Windows Server 2003 上多次停止工作,它通常发生在以下两种情况之一;
修补后。系统在自动更新后重新启动,但从未完全关闭。终端会话被注销并且不接受新的连接,但服务器(文件、mssql、DC)继续工作。
此知识库文章CTX116901描述了会话图像空间太小且无法加载更多视频或打印机驱动程序的故障(因此它是 MetaFrame 服务器的问题)。
要通过注册表项设置会话图像空间的大小,请尝试
尝试像
0x10 (16 Mb)
0x20 (32 Mb) 这样的值
我有同样的问题,PSKill 就像一个魅力一样工作 - 多年来一直在寻找这样的程序 - 从来不知道 sysinternals 已经发布了一个。
这通常是由不会关闭的任务引起的,服务器等待任务关闭以继续重新启动。您可以通过找到罪魁祸首任务并远程关闭它来解决这个问题。使用:tasklist /s HostName 通常 SQL 是直接的嫌疑人。使用Taskkill杀死它,然后服务器将继续重新启动。