Как ограничить количество запущенных процессов для пользователя? #165199


#0 by Начинающий админ
На сервере установлено: Windows 2000 Server sp4 + Citrix MF 1.8 sp3 В Citrix используются Published Application. Обнаружена проблема: пользователь может запустить неограниченного количество приложений. Особенно остро проблема обозначилась, когда один умник зажал чем-то Enter, а фокус в данный момент находился на ярлыке для запуска Published Application, соответственно раз 50 запустил приложение. Выходит, что одним нажатием кнопки с любого компьютера можно практически подвесить сервер, во всяком случае всю оперативную память можно скушать… У Citrix есть настройка Maximum Connection Count, но к сожалению множество процессов, запущенных одним пользователем с одного компьютера считается как одно подключение. Вопрос: можно ли каким-нибудь способом (в Win или в Citrix) ограничить количество запускаемых процессов для одного пользователя? Желательно по каждому пользователю иметь свои лимиты, если это возможно. Или быть может можно ограничить выделяемую память для одного пользователя? К сожалению яндекс мне так и не помог :(
#1 by Начинающий админ
АперБот отдыхает?
#2 by smaharbA
Можна
#3 by Начинающий админ
Ага, не корректно сформулировал вопрос :) Как это можно сделать?
#4 by Волшебник
Он работает в разделе 1С.
#5 by smaharbA
Яб рекомендавал пересмотреть еще вопрос, не процессов а приложений...
#8 by smaharbA
Самый тривиальный вариант сделать скрипт и ини файл(в котором прописаны приложения/процессы и количество экземпляров)
#9 by Начинающий админ
Теплеет :) Можно и приложения, не обязательно процессы. Можно чуть более подробно про ini, примерчик небольшой структуры, где должен лежать и пр.
#10 by Начинающий админ
Апну, может уважаемый smaharbA чуть подробнее расскажет об этой возможности :)
#11 by smaharbA
Расскажу но позже в примерах Кратенько на серваке запущен скрипт который отслеживает все процессы перечисленные в ини файле и если запускается какойто лишний раз он его гасит (скрипт можен быть запущен как у усера, так и/или "общий")
#12 by Начинающий админ
Буду ждать с нетерпением. А можно чтобы этот скрипт выбранных пользователей игнорировал? Или это совсем жирно будет? ;)
#13 by Начинающий админ
+12 Кстати, я так понимаю, что скрипт должен уметь определить именно последний запущенный процесс, это видимо по PID можно определить...
#14 by Начинающий админ
Апну
#15 by smaharbA
Нет проста появление процесса... Погоди часок накидаю, некогда счас...
#16 by Начинающий админ
Выходные удачно прошли? :)
#17 by smaharbA
Извините, но совсем забыл, вот "болванка"... Set oNetwork = CreateObject("Wscript.Network") user=oNetwork.UserName Computer="." Process="calc.exe" StartOf=3 i=0 Set Service = GetObject("winmgmts:\" & Computer & "RootCIMV2") Set oSink = WScript.CreateObject("WbemScripting.SWbemSink", "Sink_") Call Service.ExecNotificationQueryAsync(oSink, "SELECT * FROM __InstanceCreationEvent WITHIN 5 WHERE TargetInstance ISA 'Win32_Process' and TargetInstance.Name='" & Process & "'") do wscript.sleep 1000 loop Sub Sink_OnObjectReady(oEvent, Context) call oEvent.TargetInstance.getowner(u,d) if lcase(u)=lcase(user) and i>=StartOf then   oEvent.TargetInstance.Terminate end if i=i+1 End Sub
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С