2013-04-25 47 views
1

直截了當,我一直在尋找一種在Python中使用Windows LogonUser函數的方法。在Python中使用/爲LogonUser函數創建一個等價物

看過使用C的朋友使用這個函數,我想用Python來嘗試類似的過程。有沒有辦法?或者我是否需要嘗試在C中創建腳本的那部分,然後以某種方式讓我的Python腳本調用它?

+0

你在哪個平臺上?你在使用Windows(操作系統提供它)嗎?或者你在Linux上工作(哪裏有你想要的東西)? – jww 2016-04-02 11:34:09

回答

0

您可以直接調用使用​​Windows的API:

import ctypes 
import ctypes.wintypes 
# create variable that will be filled with a token that represents the user 
token = ctypes.wintypes.HANDLE() 
# 3 is LOGON32_LOGON_NETWORK, 0 is LOGON32_PROVIDER_DEFAULT 
if ctypes.windll.advapi32.LogonUserW(u"username", u"domain", u"password", 3, 0, ctypes.byref(token)) == 0: 
    # failed to login if we get 0 
    failed_to_login() 
# close the handle to avoid leaking it 
ctypes.windll.kernel32.CloseHandle(token) 

您也可以撥打ctypes.windll.kernel32.GetLastError()失敗後,看到錯誤代碼是什麼,你可以看一下通過net helpmsg nnnn在命令提示符。

C:\>net helpmsg 1326 
Logon failure: unknown user name or bad password. 
相關問題