![如何防止用户在服务器上打开可执行文件的多个实例?](https://linux22.com/image/667371/%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2%E7%94%A8%E6%88%B7%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E6%89%93%E5%BC%80%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6%E7%9A%84%E5%A4%9A%E4%B8%AA%E5%AE%9E%E4%BE%8B%EF%BC%9F.png)
如何防止用户在服务器上打开可执行文件的多个实例(Windows 2008 R2)。例如,我们让用户从他们的 PC(Windows 7 Enterprise)打开安装在服务器上的程序;在许多情况下,他们打开可执行文件后转到其他位置,然后在另一台 PC 上再次打开可执行文件。这会创建多个实例,导致该用户使用多个许可证。
** 我刚刚被告知问题已经解决。一位流程工程师创建了一个程序,可以识别所有正在运行的实例,并可以根据命令关闭实例。然而,这仍然是一种手动解决问题的方法,但我不会做出这些决定。感谢所有做出贡献的人。
答案1
运行 tsconfig.msc 并将“限制每个用户只能进行一个会话”设置为“是”。
答案2
我将用启动器脚本的快捷方式替换程序的快捷方式。启动器脚本将检查用户启动脚本时是否启动了该进程。如果是,则让用户选择终止该进程,或者仅显示一条消息,告知用户无法再次启动。
我正在寻找脚本切换方法,将正在运行的程序移至当前会话,但目前还没有找到方法。我能想到的最好的办法是使用选项消息询问用户是否要切换到程序正在运行的会话,如果是,则使用tscon <session id> /v
将用户切换到该会话。
有关的:使用远程桌面连接到特定会话