RemoteApp ограничение на количество одновременных сессий от одного пользователя
- AJIekceu4
- 19.02.2015
- 8 226
- 2
- 31.10.2021
- 3
- 3
- 0
- Содержание статьи
Понадобилось ограничить количество запущенных копий одного опубликованного приложения для пользователей. Т.е., чтобы один и тот же юзер не мог запустить 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", и далее в цикле проверяет от имени какого пользователя запущены данные процесс. Если обнаруживается, что данный пользователь уже превысил количество одновременно запущенных из под его имени процессов, то появится окно с предупреждением:
Все что нам осталось сделать - это на терминальном сервере настроить запуск этого скрипта и создать ярлык для опубликованного приложения:
Можно в скрипт дописать все что угодно, например, чтобы было запущено не более двух копий или трех копий, чтобы в лог писались особо "одаренные" юзеры, которые нажимают по 10 раз на ярлык и т.д. Все ограничивается только вашей фантазией и знаниями ;)
Добавить комментарий