先安装 python3.5, 再安装 pywin32-227.win32-py3.5.exe (对应32位 python)或 pywin32-227.win-amd64-py3.5.exe(对应64位 python)
获得 文件 的 所有者,运行:
import win32api
import win32con
import win32security
# 获得登陆用户的名字
print "I am", win32api.GetUserNameEx(win32con.NameSamCompatible)
FILENAME = "temp.txt"
open(FILENAME, "r").close() # 这里要写 "r",不能写 "w"
sd = win32security.GetFileSecurity(FILENAME, win32security.OWNER_SECURITY_INFORMATION)
owner_sid = sd.GetSecurityDescriptorOwner()
name, domain, type = win32security.LookupAccountSid(None, owner_sid)
print "File owned by %s\\%s" % (domain, name)
打印结果:
I am 当前登陆用户名\当前登陆用户名
File owned by 文件的所有者所属的域\文件的所有者的用户名
获取 文件夹 的 所有者,运行:
import win32api
import win32con
import win32security
FILENAME = "d:\\test"
sd = win32security.GetFileSecurity(FILENAME, win32security.OWNER_SECURITY_INFORMATION)
owner_sid = sd.GetSecurityDescriptorOwner()
name, domain, type = win32security.LookupAccountSid(None, owner_sid)
print "Dir owned by %s\\%s" % (domain, name)
打印结果:
Dir owned by 文件夹的所有者所属的域\文件夹的所有者的用户名
-----------------------------------------------------------------------------
其他参考:
各个版本 pywin32 的下载地址: https://github.com/mhammond/pywin32/releases
解决在Python中使用Win32api报错的问题,No module named win32api: https://www.cnblogs.com/SH170706/p/9640110.html
这段 python 程序的英语说明: http://timgolden.me.uk/python/win32_how_do_i/get-the-owner-of-a-file.html