python - 在 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”中学到的 :)
解决方案
推荐阅读
- wordpress - 如何使用 wordpress 编译 sage9 主题
- excel - 如何保存嵌入的txt文件?
- java - MapStruct 问题绑定到具有 getter 和 Builder 类的类
- design-patterns - Dispatcher 模式的对立面是什么?
- r - 应用于数据集 R 的函数
- php - 使用站点白名单卷曲绕过 reCAPTCHA
- c - openssl EVP_CipherFinal_ex 失败
- r - 计算 R 中字典文件中的单词数
- ruby-on-rails - Rails 6:不允许的参数(多对多)
- python - Python:LSTM 模型和词嵌入