Pagine

mercoledì 5 agosto 2015

PYTHON - Impersonare un utente in WINDOWS

Talvolta è necessario impersonare un utente con autorizzazioni più elevate o comunque diverse rispetto l'utente che esegue lo script.
Al fine di ottenere questo risultato bisogna innanzitutto scaricare le python win32 lib dal link
http://sourceforge.net/projects/pywin32/

dopodichè è necessario utilizzare il seguente script per l'impersonalizzazione:

[code] import win32api,win32security,win32con
       
def impersonateLogon(login,domain,password):
    handle = win32security.LogonUser(login,domain,password,
    win32con.LOGON32_LOGON_INTERACTIVE,
    win32con.LOGON32_PROVIDER_DEFAULT)
    
    win32security.ImpersonateLoggedOnUser(handle)
    print "Utente impersonato:" + win32api.GetUserName()
    return handle

def impersonateLogoff(handle):
    win32security.RevertToSelf() #terminates impersonation
    handle.Close()


print "Start"
hd=impersonateLogon("andrea","acerfac","PASSWORD")

impersonateLogoff(hd) [/code]

tutto il codice tra la funzione impersonateLogon e impersonateLogoff  verrà eseguito con l'utente che impersoniamo e quindi con le sue autorizzazioni

Nessun commento:

Posta un commento