Python скрипт для автоматического переключения пользователя - PullRequest
2 голосов
/ 11 ноября 2010

Я работаю на Windows XP. Как я могу написать простой сценарий, который автоматически выводил бы меня из этой учетной записи и входил в другую учетную запись на этом компьютере после выполнения точки запуска, которую я установил в своем приложении ??

Пожалуйста, помогите.

Ответы [ 3 ]

2 голосов
/ 11 ноября 2010

Ват нужно делать на другом аккаунте? Если вы хотите выполнить некоторые команды для другой учетной записи os.system, вам помогут runas .

1 голос
/ 11 ноября 2010

Чтобы выйти из системы, позвоните ExitWindowsEx() с EWX_LOGOFF (0). Чтобы автоматически войти в систему, напишите DefaultUserName и DefaultPassword в HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon. Вам также может потребоваться установить AutoAdminLogon в 1. Не забудьте позже удалить ключи реестра, иначе он просто продолжит вход в систему для этого пользователя.

В python вы можете использовать ctypes для вызова функции и _winreg для записи в реестр.

# setup login
from _winreg import *
key = OpenKey(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon', 0, KEY_ALL_ACCESS)
SetValueEx(key, "DefaultUserName", 0, REG_SZ, "username")
SetValueEx(key, "DefaultPassword", 0, REG_SZ, "password")
SetValueEx(key, "AutoAdminLogon", 0, REG_DWORD, 1)
CloseKey(key)
# logoff
import ctypes
ctypes.windll.user32.ExitWindowsEx(0,0)
0 голосов
/ 11 ноября 2010

Я собираюсь выйти на конечность и предположить, что, вероятно, нет какой-либо библиотеки Python, которая могла бы сделать это напрямую.Вместо этого вам нужно будет вызвать некоторые функции C win32 из Python.

Я думаю, что вам лучше всего разбить это на два отдельных вопроса.

Первый вопрос: «Как мне программнов Win32 инициировать выход из системы и войти как другой пользователь? "

Надеемся, что на это ответят некоторые эксперты по Windows, даже если они не знакомы с Python.

Я не знаю много об этом, но это звучит ужасно амбициозно.Инициирование выхода из системы может быть возможным, но инициирование входа в систему от имени другого пользователя (вероятно, прекращение запроса у пользователя пароля)

Второй вопрос: «Как я вызываю эти функции win32 изнутри?Python? "

Это довольно обычный запрос, и в StackOverflow должен быть опыт, чтобы помочь.

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