Привет
схема такая: программа заносится в список задач Scheduled Tasks и запускается
при старте системы. При этом она должна иметь доступ к сетевой папке (например
создавать там файл). После регистрации пользователя программа должна отображать
свое окно.
Все вроде просто и работает, но внесли некоторые ограничения:
— программа должна запускаться под аккаунтом пользователя (при этом
автоматически имеется доступ к сетевому ресурсу и из-за этого и не хотелось бы
ее запускать из под админа, чтобы не прописывать админа на другой машине)
— программа не должна хранить никаких дополнительных паролей (то есть
пользоваться только теми привелегиями, которыми обладает тот пользователь от
которого она запущена)
— связка сервис(как ядро) и программа (как его интерфейсная) часть не подходит;
Без прав админа не могу отобразить программу после регистрации пользователя
(требуется изменение DACL windows station & desctop). Возможно ли вообще такое?
Может есть какие скрытые параметры, с помощью которых можно дать пользователю
такие права?
А может подходить с другой стороны. Может ли программа, запущенная под админом,
открыть сетевое соединение под аккаунтом какого-нибудь пользователя имея только
его имя (sorry, возможно выглядит глупо, но может я чего то не знаю)
Подскажите плиз
Re: Запуск интерактивного приложения при старте системы
_>Привет _>схема такая: программа заносится в список задач Scheduled Tasks и запускается _>при старте системы. При этом она должна иметь доступ к сетевой папке (например _>создавать там файл). После регистрации пользователя программа должна отображать _>свое окно. _>Все вроде просто и работает, но внесли некоторые ограничения: _>- программа должна запускаться под аккаунтом пользователя (при этом _>автоматически имеется доступ к сетевому ресурсу и из-за этого и не хотелось бы _>ее запускать из под админа, чтобы не прописывать админа на другой машине) _>- программа не должна хранить никаких дополнительных паролей (то есть _>пользоваться только теми привелегиями, которыми обладает тот пользователь от _>которого она запущена) _>- связка сервис(как ядро) и программа (как его интерфейсная) часть не подходит;
_>Без прав админа не могу отобразить программу после регистрации пользователя _>(требуется изменение DACL windows station & desctop). Возможно ли вообще такое? _>Может есть какие скрытые параметры, с помощью которых можно дать пользователю _>такие права?
Нет. Кроме того, эта ущербная схема не будет работать в висте, где сервисы всегда работают в сессии, отличной от интерактивной. Итого — единственный вариант — сервис + приложение.
_>А может подходить с другой стороны. Может ли программа, запущенная под админом, _>открыть сетевое соединение под аккаунтом какого-нибудь пользователя имея только _>его имя (sorry, возможно выглядит глупо, но может я чего то не знаю)
Тоже нет — если только попробовать найти процесс с указанным SID и имперсонироваться под него.
AS>Нет. Кроме того, эта ущербная схема не будет работать в висте, где сервисы всегда работают в сессии, отличной от интерактивной. Итого — единственный вариант — сервис + приложение.
Возможно да, это единственный хороший вариант, к тому же MSDN рекомендует делать именно так. Но больно переделок много (переносить всю функциональность в сервис).
Есть одна мысль:
В Scheduled Tasks заносится 2 задания: А) под аккаунтом админа, второе В) — под аккаунтом пользователя.
Причем сначала запускается А, и только после него В. Программа А открывает windows station (WinSta0) & desktop (Default) изменяет их DACL (добавляет необходимы права) и закрывается. Программа В только подключается к WinSta0\Default. После регистрации пользователя, проблем с отображением у программы В не возникает.
Пока это только идея (что-то под админом меняет DACL`ы и затем запускается основная программа под юзером и только потом происходит регистрация юзера)
Будут ли здесь какие-либо "подводные камни", неожиданности? Всегда ли не будет проблем с отображением основной программы? (будет использоваться только на Win2K и выше).
AS>Тоже нет — если только попробовать найти процесс с указанным SID и имперсонироваться под него.
Этого я и ожидал.
Спасибо.
Re[3]: Запуск интерактивного приложения при старте системы
AS>>Нет. Кроме того, эта ущербная схема не будет работать в висте, где сервисы всегда работают в сессии, отличной от интерактивной. Итого — единственный вариант — сервис + приложение.
_>Возможно да, это единственный хороший вариант, к тому же MSDN рекомендует делать именно так. Но больно переделок много (переносить всю функциональность в сервис). _>Есть одна мысль: _>В Scheduled Tasks заносится 2 задания: А) под аккаунтом админа, второе В) — под аккаунтом пользователя. _>Причем сначала запускается А, и только после него В. Программа А открывает windows station (WinSta0) & desktop (Default) изменяет их DACL (добавляет необходимы права) и закрывается. Программа В только подключается к WinSta0\Default. После регистрации пользователя, проблем с отображением у программы В не возникает. _>Пока это только идея (что-то под админом меняет DACL`ы и затем запускается основная программа под юзером и только потом происходит регистрация юзера) _>Будут ли здесь какие-либо "подводные камни", неожиданности? Всегда ли не будет проблем с отображением основной программы? (будет использоваться только на Win2K и выше).
Тут надо только пробовать . Но на первый взгляд, схема жизнеспособная.