2015-08-28 41 views
1

我已經使用py2exe創建了一個python文件的exe文件,並且運行了一個特定用戶的exe文件(用於目錄訪問權限)。現在,該可執行文件位於不同的登錄名我可以得到系統的用戶名嗎?以另一用戶身份啓動python後獲取winlows登錄名

getpass.getuser() 
os.getenv('username') 

返回正在運行的當前用戶。 我如何得到用戶的實際登錄名?

回答

3

如果我理解正確。

以用戶身份登錄(Geoff)。 Geoff以管理員用戶身份運行可執行文件,並且您想抓取Geoff的用戶名?如果這是你所問的,這是我的解決方案。

def getregvalue(key, subkey, value): 

    import _winreg 

    key = getattr(_winreg, key) 
    handle = _winreg.OpenKey(key, subkey) 
    (value, type) = _winreg.QueryValueEx(handle, value) 

return value 

print getregvalue("HKEY_LOCAL_MACHINE", "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", "DefaultUserName") 

這將從註冊表中獲取登錄用戶名,而不是從運行該進程的用戶的權限令牌中獲取。

+1

正是我在找什麼,!,我看到了類似的例子,主要是使用subprocesswin32 ...但這個解決方案是一個乾淨的方式來達到這個目標。謝謝!, – user2015144

相關問題