在Python中查看Windows文件元数据

在Python中查看Windows文件元数据,python,Python,我正在编写一个脚本,当一个单独的进程完成时,通过电子邮件发送给文件所有者。我试过: import os FileInfo = os.stat("test.txt") print (FileInfo.st_uid) 此操作的输出是所有者ID号。我需要的是Windows用户名 我认为您唯一的机会就是使用windows并亲自询问 基本上,您可以使用相应的pywin32函数 from win32security import GetSecurityInfo, LookupAccountSid from

我正在编写一个脚本,当一个单独的进程完成时,通过电子邮件发送给文件所有者。我试过:

import os
FileInfo = os.stat("test.txt")
print (FileInfo.st_uid)

此操作的输出是所有者ID号。我需要的是Windows用户名

我认为您唯一的机会就是使用windows并亲自询问

基本上,您可以使用相应的pywin32函数

from win32security import GetSecurityInfo, LookupAccountSid
from win32security import OWNER_SECURITY_INFORMATION, SE_FILE_OBJECT

from win32file import CreateFile
from win32file import GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL

fh = CreateFile( __file__, GENERIC_READ, FILE_SHARE_READ, None, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, None )
info = GetSecurityInfo( fh, SE_FILE_OBJECT, OWNER_SECURITY_INFORMATION )

name, domain, type_id = LookupAccountSid( None, info.GetSecurityDescriptorOwner() )
print name, domain, type_id

我想你唯一的机会就是使用windows并亲自询问

基本上,您可以使用相应的pywin32函数

from win32security import GetSecurityInfo, LookupAccountSid
from win32security import OWNER_SECURITY_INFORMATION, SE_FILE_OBJECT

from win32file import CreateFile
from win32file import GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL

fh = CreateFile( __file__, GENERIC_READ, FILE_SHARE_READ, None, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, None )
info = GetSecurityInfo( fh, SE_FILE_OBJECT, OWNER_SECURITY_INFORMATION )

name, domain, type_id = LookupAccountSid( None, info.GetSecurityDescriptorOwner() )
print name, domain, type_id

一旦我停止搜索文件元数据并开始寻找文件安全性,我就找到了我想要的东西

import tempfile
import win32api
import win32con
import win32security

f = tempfile.NamedTemporaryFile ()
FILENAME = f.name
try:
  sd = win32security.GetFileSecurity (FILENAME,win32security.OWNER_SECURITY_INFORMATION)
  owner_sid = sd.GetSecurityDescriptorOwner ()
  name, domain, type = win32security.LookupAccountSid (None, owner_sid)

  print "I am", win32api.GetUserNameEx (win32con.NameSamCompatible)
  print "File owned by %s\\%s" % (domain, name)
finally:
  f.close ()

当我停止搜索文件元数据并开始寻找文件安全性时,我毫不留情地从

中摆脱出来,我找到了我想要的东西

import tempfile
import win32api
import win32con
import win32security

f = tempfile.NamedTemporaryFile ()
FILENAME = f.name
try:
  sd = win32security.GetFileSecurity (FILENAME,win32security.OWNER_SECURITY_INFORMATION)
  owner_sid = sd.GetSecurityDescriptorOwner ()
  name, domain, type = win32security.LookupAccountSid (None, owner_sid)

  print "I am", win32api.GetUserNameEx (win32con.NameSamCompatible)
  print "File owned by %s\\%s" % (domain, name)
finally:
  f.close ()

我以为FileInfo.st\u uid在windows下总是返回0?我以为FileInfo.st\u uid在windows下总是返回0?