Как создать процесс от имени пользователя сделавшего Logon?(хр)
Загвоздка вот в чем...
Программа должна выполняться всегда от имени пользователя сделавшего логон, независимо от рабочего состояния машины...
То есть, прога должна создавать процесc/cы даже если пользователь сделал анлок.
Поясню, когда пользователь сделал анлок процессы создаются от имени SYSTEM, а не от имени залогинившегося юзверя...
Я сейчас использую функцию createprocess.
Так вот, как создать процесс от имени залогинившегося пользователя?
CreateProcessWithLogonW(NULL, "c:\\***.bat", NULL, NULL, false,CREATE_NEW_CONSOLE, NULL, NULL, &St, &Pr);
так вот, "Winsta0\\Default" для залоченной и незалоченной машины различны...
для залоченной машины имя юзера SYSTEM
для разлоченной ну например георгий
А необходимо чтобы процесс всегда создавался от георгия.
CreateProcessAsUser?
весь иенет обыскал....(
реализации, я так понял дружественной та и вообще какой-либо другой пока не существует...(
может подскажет кто...
Можно создать самому(;-)) какого-нибудь "левого" пользователя, и в момент "залоченности" вызывать LogonUser, с параметром LOGON32_LOGON_INTERACTIVE...
Я другого выходу не вижу, наверное он есть все же ...
И с помощью этого логина и пароля создать новый процесс от этого самого логина... Если можно то как...?
Ну бог с ним если нельзя програмно узнать...логин и пароль, то хотя бы как запустить процесс от того же юзверя который сдела анлок, если все-таки пароль на вход в систему известен.?
Буду оччень признателен если есть какой-то рабочий код...
Еще раз - сервис, лочится комп, сервис при залоченном компе что-то запускает от имени какого-либо пользователя(главное чтобы не SYSTEM), я правильно понял? :-))
рабочего кода нет, но могу набросать за денек-другой нечто вполне удовлетворительное :о)
Еще раз - сервис, лочится комп, сервис при залоченном компе что-то запускает от имени какого-либо пользователя(главное чтобы не SYSTEM), я правильно понял? :-))
да, мне главное запустить процесс от имени пользователя сделавшего логон, т.е. при возможности не вводить ручками имя и пароль, ак как-то программно их попробывать найти и запустить проуцесс от ентого юзверя.
А как ты запускал процесс на залоченной машине?
хорошо объясню все по порядку:
в реестре прописываю, что прианлоке!!! машины выполняется определенная длл.
Вроде бы как сreateprocess должен запускать процесс под текущим юзверем... так вот меня и удивило какого хрена в момент анлока процесс запускается от SYSTEM..((
отсюда вывод либо момент разлока это еще не георгий, а пока еще SYSTEM, либо длл запускается до разлока,
седня попробую еще "заснуть" создание процесса на определенное время после анлока машины может помогет...
и вот такие пироги(((
Так же как и ты я использвал winlogon notificaton packages.
Скинь wnp.dll на диск C:, далее запусти run_me.reg - он внесет данные в реестр. Перезагрузи машину. Теперь wnp.dll загружена в winlogon, нажми Win+L, теперь надо подождать пока системный динамик бибикнет - значит процесс уже запущен. сними блокировку и посмотри в диспетчере задач - notepad должен выполняться под твоим аккаунтом :-)))))
Note: Модифицировать эту ветку реестра может только админ, поэтому тестируй программку под админом:-)))
P.S. Скажешь как получилось:-)))
ШпиЁн
Вот примерчик.
Так же как и ты я использвал winlogon notificaton packages.
Скинь wnp.dll на диск C:, далее запусти run_me.reg - он внесет данные в реестр. Перезагрузи машину. Теперь wnp.dll загружена в winlogon, нажми Win+L, теперь надо подождать пока системный динамик бибикнет - значит процесс уже запущен. сними блокировку и посмотри в диспетчере задач - notepad должен выполняться под твоим аккаунтом :-)))))
Note: Модифицировать эту ветку реестра может только админ, поэтому тестируй программку под админом:-)))
P.S. Скажешь как получилось:-)))
Спасибки большое... когда проверю, сразу же отпишусь...)