如何远程强制多个工作站在指定时间注销

如何远程强制多个工作站在指定时间注销

背景:
我们有一个使用中央数据库的应用程序。经常会发生某些客户端崩溃的情况,从而在进程表中留下僵尸进程,从而保持与数据库的连接。这会在数据库的夜间复制/备份过程中产生问题。

愿望清单:
我想集中告诉一组指定的工作站(一些在内部,另一些在远程位置)在指定的时间运行一个命令,该命令可以执行以下列表中的其中一件事。

  • 运行 TASKKILL 命令从进程表中删除 zoombie。

  • 如果这没有帮助,我可以考虑强制注销活动会话

  • 我们讨论过的另一件事是关闭工作站以节省能源,这也可以解决问题。(用户似乎不记得回家前关机)

可以通过组策略来实现吗?显然我们可以在各个工作站的调度程序中设置此功能,但这并不实际。>4 个国家/地区的 200 个 wkstns。

我们在公司网络中连接着 Windows 2003 服务器和 XP 工作站。

答案1

这实际上无法通过组策略来实现。

有几种方法可以解决此问题。如果是我,我会用 VBScript 编写整个脚本。它会解析一个包含工作站主机名的文本文件,首先杀死僵尸进程,然后强制注销。您还可以让它关闭有问题的机器。但是,我不确定您是否精通 VBScript,所以我只给您这个想法。

更简单的方法是使用一些内置的 Windows 命令来创建批处理文件。这将涉及使用以下命令:

taskkill /S 主机名/IM 映像名/F /T

logoff [sessionid] /SERVER:主机名

关机/M 主机名/F

然后您可以从任何地方运行该批处理文件,它将在相关的机器上远程运行。

答案2

您可以在脚本中添加计划任务。

因此,一个答案是编写一个添加计划任务的脚本,然后使用组策略在所有工作站上推出该脚本。

另一种方法是使用 pstools 运行命令。您可以将多个计算机名称添加到命令中,并将其保存在批处理文件中。不过这意味着将它们全部列出一次。

相关内容