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

  • 19.02.2015
  • 6 688
  • 2
  • 31.10.2021
  • 2
  • 2
  • 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.

Добавить комментарий

Ваш адрес email не будет опубликован.

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