Python脚本自动切换用户

时间:2010-11-11 11:35:20

标签: python windows

我正在使用Windows XP。我如何编写一个简单的脚本,在我执行我的应用程序中设置的触发点时,会自动将我从此帐户中注销并登录到此计算机上的另一个帐户?

请帮忙。

3 个答案:

答案 0 :(得分:2)

您需要在另一个帐户上使用Wat吗?如果你想在另一个帐户os.system上运行一些命令,runas会帮助你。

答案 1 :(得分:1)

要注销,请使用ExitWindowsEx()(0)呼叫EWX_LOGOFF。要在之后自动登录,请将DefaultUserNameDefaultPassword写入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)

答案 2 :(得分:0)

我将在这里讨论,并建议可能没有任何Python库可以直接执行此操作。相反,您需要从Python调用一些C win32函数。

我认为你最好的选择是把它分成两个单独的问题。

第一个问题是“如何在Win32中以编程方式启动注销并以其他用户身份登录?”

即使他们不熟悉Python,也希望有些Windows专家能够回答这个问题。

我对此并不了解,但听起来非常雄心勃勃。可能会触发注销,但会触发以不同用户身份登录(可能会停止向用户询问密码)

第二个问题是“我如何在Python中调用这些win32函数?”

这是一个相当常规的请求,应该有StackOverflow的专业知识来帮助。