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