Здравствуйте, есть терминальный сервер 2008 R2 поднята AD пользователи работают через RemoteAPP, и есть необходимость запретить определённым пользователям запускать более двух БД 1С одновременно, народ как это можно реализовать?
В интернетах есть вариант сделать vbs скрипт который, будет будет проверять что уже запущена программа этим пользователем, сообщая об этом, либо запускать программу. На этот скрипт сделать уже ремутАПП. Позволю себе процитировать его:
Set oShell = CreateObject( "WScript.Shell" )
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("SEL ECT * FR OM 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
Показать
Кроме того на сайте есть инструкция и вариант, для ограничения 2мя копиями. (сайт не мой)
Set oShell = CreateObject( "WScript.Shell" )
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("SELECT * FR OM Win32_Process Wh ere 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