RemoteApp ограничение на количество одновременных сессий от одного пользователя

  • 19.02.2015
  • 7 671
  • 2
  • 31.10.2021
  • 3
  • 3
  • 0
RemoteApp ограничение на количество одновременных сессий от одного пользователя

Понадобилось ограничить количество запущенных копий одного опубликованного приложения для пользователей. Т.е., чтобы один и тот же юзер не мог запустить 2 копии нужного нам приложения под своей учетной записью.

Описание

Для этой цели был использован VBS скрипт следующего содержания:

Set objShell = CreateObject("WScript.Shell")

strProcessCounter = "0"
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

Set colProcessList = objWMIService.ExecQuery ("SELECT * FROM Win32_Process Where Name LIKE 'notepad.exe'")

For Each objProcess in colProcessList
	colProperties = objProcess.GetOwner(strNameOfUser,strUserDomain)
	If (strNameOfUser = objShell.ExpandEnvironmentStrings("%UserName%")) then
		strProcessCounter = strProcessCounter + 1
	End if
Next
If (strProcessCounter >= 2) then
	MsgBox "Не следует запускать одну и ту же программу по несколько раз, нужно один раз нажать на ярлык и подождать, пока она запустится. Проявите терпение.", 16, "Внимание!!!"
	Wscript.Quit
End if

objShell.Run("""C:\Windows\system32\notepad.exe""")

Данный скрипт при запуске ищет все запущенные процессы с именем "notepad.exe", и далее в цикле проверяет от имени какого пользователя запущены данные процесс. Если обнаруживается, что данный пользователь уже превысил количество одновременно запущенных из под его имени процессов, то появится окно с предупреждением:

remoteapp12

Все что нам осталось сделать - это на терминальном сервере настроить запуск этого скрипта и создать ярлык для опубликованного приложения:

remoteapp13

Можно в скрипт дописать все что угодно, например, чтобы было запущено не более двух копий или трех копий, чтобы в лог писались особо "одаренные" юзеры, которые нажимают по 10 раз на ярлык и т.д. Все ограничивается только вашей фантазией и знаниями ;)

Была ли эта статья Вам полезна?

Комментарии к статье (2)

    • linakow128

    А как дописать что бы было запущено не более трех копий?

      • Recluse

      Я изменил скрипт в статье. Теперь, если вы его используете и измените следующую строчку с 2 на 3:
      If (strProcessCounter >= 2) then
      То тем самым ограничите количество одновременно разрешенных запущенных программ до 3.

Добавить комментарий для linakow128

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.