У меня есть коробка под управлением Server 2008 R2 с RDS. В настоящее время в этой системе запущено 45 сеансов RDS, и в большинстве из них работают идентичные приложения.
Теперь мы хотим добавить еще 30 систем, которые будут использовать RDS, но будут запускать другие программы.
Мой вопрос: как лучше всего предотвратить запуск служб, связанных с этими программами, во всех других сеансах RDS при их запуске? Я не хочу, чтобы программа загружалась на панель задач или запускала процесс в фоновом режиме на каждом терминале, если он будет использоваться только на 4 или 5 терминалах.
Если программа запускается при входе в систему, она должна быть запущена некоторыми настраиваемыми средствами. Использовать 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
для запуска процесса в пользовательской сессии. Но обычно мое утверждение верно.