我有一台运行 Server 2008 R2 和 RDS 的机器。目前,该系统上运行着 45 个 RDS 会话,大多数会话运行着相同的应用程序。
现在我们想要添加 30 个使用 RDS 但运行不同程序的系统。
我的问题是:当这些程序启动时,防止与这些程序相关的服务在所有其他 RDS 会话上启动的最佳方法是什么?如果程序仅在 4 或 5 个终端上使用,我不希望程序在每个终端上加载到任务栏或后台运行进程。
答案1
如果程序在登录时启动,则必须通过某种可配置的方式启动。使用autoruns
或类似方法来识别启动机制。
一旦确定,删除所有全局设置,并使用组策略使自动启动仅适用于有权访问该程序的用户。
例子:
删除所有用户的 HKLM 自动启动
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
SomeAutoStart=C:\Program Files\foo\bar.exe
并将其替换为在以下位置创建它的组策略
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
SomeAutoStart=C:\Program Files\foo\bar.exe
笔记:当我说“必须是 [...] 可配置”时,我撒了点小谎。至少有一种方式不需要配置。它是打印机驱动程序的最爱,它使用与SeTcbPrivilege
在用户会话中启动进程。但通常我的说法是正确的。