首页 > 解决方案 > 在 Python Windows 中成功冒充用户的步骤

问题描述

我正在通过网络挖掘以找到一种将我的 python 代码模拟为我的管理员帐户的方法。有很多共同的建议,但都缺少完整的过程,所以想分享它。

我们需要注册 win32 dll 才能与 windows api 通信。

在 CMD.exe “点安装 pywin32”

成功安装后,我们需要在 sciprts 文件夹下运行“python Scripts/pywin32_postinstall.py -install”。这将为 win32 api 注册所有模块/dll


import win32security, win32con, win32.win32api , win32 ,win32.win32security

class Impersonate:
    def __init__(self, login, password):
        self.domain = 'domain'
        self.login = login
        self.password = password

    def logon(self):
        self.handle = win32.win32security.LogonUser(self.login, self.domain,self.password,win32con.LOGON32_LOGON_INTERACTIVE,win32con.LOGON32_PROVIDER_DEFAULT)
        win32.win32security.ImpersonateLoggedOnUser(self.handle)

    def logoff(self):
        win32security.RevertToSelf() # terminates impersonation
        self.handle.Close() # guarantees cleanup

if __name__=='__main__':
    a = Impersonate('user_name','user_password')

    # Logging in
    a.logon()

    # Do whatever
    print(f"\n\t\tImprosonating: {win32.win32api.GetUserName()}")

    #Another way to call an Object
    Impersonate.logoff(a) # Logoff and Clean up

参考: https ://pypi.org/project/pywin32/

谢谢: 哈蒙德

*不是我的代码,从“Python Cookbook”中学到的 :)

标签: pythonwindowsimpersonationpywin32

解决方案


推荐阅读