通过登录脚本或 GPO 或其他方式将远程桌面记录到服务器?

通过登录脚本或 GPO 或其他方式将远程桌面记录到服务器?

这里的目标是启动我编写的一个简单的 .NET 应用程序,该应用程序在登录时捕获一些环境变量(时间、用户名、计算机名等)。此 .NET 应用程序订阅 Windows“用户注销”事件。

启动时,应用程序会捕获上述变量,并在我的数据库中创建一条记录,注销时(我正在捕获),我会使用注销时间更新同一条记录中的另一个字段。

上述工作正如我希望的那样,当我启动二进制文件时,它会进行初始日志输入,然后等待注销事件并更新相同的记录。

限制,.NET 二进制文件应该能够存在于共享点(\server\share\myapp\v1)上,这样我可以将应用程序更新到(\server\share\myapp\v2)并简单地更新 GPO/Logon 脚本。

我最初的想法是使用 \domaincontroller\sysvol\ 目录来存储二进制文件,然后更新所有用户帐户以包含对我的应用程序的调用。您能看出这种方法有什么缺陷吗?

我的问题是:首先,我上面的想法有什么问题吗?其次,如果是的话,确保此应用程序在服务器上启动会话时启动的最佳方法是什么(通过组策略或其他方式)?

答案1

对于每次启动会话时启动,使用基于组策略的登录脚本即可。我们发现的一个警告是,如果为适用的任何计算机对象 GPO 启用了“环回处理”,则用户 GPO 中指定的此类脚本似乎会执行两次。因此,我们不得不修改登录脚本来处理这种情况。

我不熟悉 .NET 事件订阅,所以我不知道这是否意味着应用程序文件在整个会话期间都保持打开状态。如果是这样,那么由于打开锁问题,更新应用程序将非常困难。如果有 50 个站点登录,那么应用程序上将有 50 个拒绝写入锁,这会使更新应用程序变得更加困难。这是一个将应用程序保留在 sysvol 上(实际上是在 GPO 本身中)可以提供帮助的例子,因为它可以更好地处理这种情况。

但是,这只是意味着它会在注销时重新启动,保持共享应该没问题。

答案2

从 sysvol 运行它并没有什么大问题。

默认情况下,创建 gpo 登录脚本将执行此操作,并确保其运行。通常,终端服务器有多个 gpo,其中一个将运行您的登录脚本并指定组策略环回处理模式。

相关内容