Запустите как СИСТЕМА и выйдите из системы с помощью PIN-кода пользователя "USER". - PullRequest
1 голос
/ 10 августа 2010

У меня есть программа, которая запускается как запланированное задание.Программа работает на XP как SYSTEM.Идея состоит в том, что программа будет работать в фоновом режиме, пока USER активен.

Мне нужна программа для выхода из USER при возникновении определенных условий.

Я пытался использовать:

[DllImport("user32.dll")]
public static extern int ExitWindowsEx(int uFlags, int dwReason);

но, похоже, это не приводит к выходу пользователя из системы.

Я думаю, что, возможно, он отключает систему SYSTEM, так как работает как SYSTEM.

Как я могу войти в систему USER?

Спасибо, SummerBulb.

Ответы [ 2 ]

0 голосов
/ 10 августа 2010

Я думаю, что вам нужно будет запустить некоторый код от имени этого пользователя. Создайте приложение, которое запускается, когда пользователь входит в систему, а затем отслеживает событие. Попросите службу установить событие, а затем код вызовет метод ExitWindowsEx. Вам все равно нужно будет использовать параметры forceifhung и logoff, как упоминал Джеймс.

0 голосов
/ 10 августа 2010

Было бы полезно, если бы вы показали флаги для ExitWindowsEx, , но вам может потребоваться выдать себя за пользователя, хотя я думаю, что это вряд ли . Если я помню выхода из системы текущего пользователя было достаточно, но вам может потребоваться принудительно выйти из системы, так как в противном случае его можно отменить, если пользователь не сохранил некоторые изменения, например.

Но чтобы выдать себя за пользователя, вы можете посмотреть на это: http://www.codeproject.com/KB/system/UserImpersonation.aspx

Я бы начал с просмотра здесь и включил значения logoff и forceifhung: http://msdn.microsoft.com/en-us/library/aa376868(VS.85).aspx

Это будет похоже на EWX_FORCEIFHUNG | EWX_LOGOFF в качестве параметра.

UPDATE:

Полагаю, Майк прав, что подражание здесь не поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...