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

  • Автор:
  • Опубликовано:
  • Изменено:
  • Просмотры: 1 774
  • Комментарии: 0
  • Рейтинг: 100,00%
  • Голосов: 2

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

Set oShell = CreateObject( "WScript.Shell" )
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process Where Name LIKE 'program.exe'")
For Each objProcess in colProcessList
colProperties = objProcess.GetOwner(strNameOfUser,strUserDomain)
if (strNameOfUser = oShell.ExpandEnvironmentStrings("%UserName%")) then
msgbox("Не следует запускать одну и ту же программу по несколько раз, нужно один раз нажать на ярлык и подождать, пока она запустится. Проявите терпение." ,16, "Внимание!!!")
Wscript.Quit
end if
Next
Dim objShell
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run("""C:\Program Files (x86)\program\program.exe""")
Set objShell = Nothing
Wscript.Quit

Данный скрипт при запуске ищет все запущенные процессы с именем "program.exe". Далее в цикле проверяет от имени какого пользователя запущен данный процесс и если он запущен от имени того же пользователя, который запустил этот скрипт, то выводит окошко с текстом:

remoteapp12

Если же не находит, то запускает приложение:

C:\Program Files (x86)\program\program.exe

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

remoteapp13

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

Оценить статью

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)

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

Ваш e-mail не будет опубликован.

Читайте ранее:
Исправляем ошибку: "проверки подлинности"
Как удалить принтер и любое упоминание о нем в Windows 7
Исправляем ошибку: "Недопустимые учетные данные"
Как скачать проект с Google Code
RemoteApp & Remote Desktop вход на терминальный сервер без ввода логина и пароля
Закрыть