gpt4 book ai didi

python - 如何在Windows 7中获取文件的所有者?

转载 作者:可可西里 更新时间:2023-11-01 09:23:11 27 4
gpt4 key购买 nike

我有一个问题 - 在打开文件时的窗口中显示上次修改文件的人的名字。如果您右键单击该文件并选择“属性”和“详细信息”选项卡,则此信息可用...我看到所有者行和名称,但我不知道如何从我的脚本中获取此信息。

让我们看看文件的属性:

\\server\project\sequences\ttt_sRnd.v016.mb

enter image description here

我使用 Python2.7,但我没有找到如何获取数据的解决方案……在 Linux 中它是有效的。但不是在 window 里。我尝试控制实用程序窗口。

dir/Q - 它在本地文件上工作

C:\temp>dir /Q file.ext
11/06/2004 15:33 290,304 COMP\user file.ext
1 File(s) 290,304 bytes
0 Dir(s) 316,720,226,304 bytes free

但在服务器上文件时不起作用:

\\server\project\sequences\>dir /Q file.ext
21/12/2016 16:00 66,372 ... file.ext
1 File(s) 66,372 bytes
0 Dir(s) 52,561,190,912 bytes free

这很奇怪,因为在资源管理器中我可以看到数据并且它们可用

好吧,试试另一个工具 subinacl.exe

相同 - 处理本地文件而不处理服务器上的文件:

C:\temp>subinacl.exe /file file.ext /display=owner
/owner =comp\user

C:\temp>subinacl.exe /file \\server\project\sequences\file.ext /display=owner
\\server\project\sequences\file.ext - CreateFile Error : 1314 A required privilege is not held by the client.

我尝试了 takeown 并且都一样 - 只在本地文件上工作:

C:\temp>takeown /F file.ext
SUCCESS: The file (or folder): "C:\temp\file.ext" now owned by user "COMP\user".

\\server\project\sequences\>takeown /F file.ext
ERROR: Access is denied.

它在 Windows 中可能还有其他实用程序?我什至准备自己编写这样一个工具并从 python 调用它。但我不知道如何获得这些信息?告诉我如何用任何编程语言解决崩溃问题?我相信在 C/C++ 或 C# 中,代码是 5 行的问题,输出到控制台......如果是这样 - 很乐意提供帮助,然后我将从 python 中创建这个实用程序

最佳答案

python 2.7

尝试使用 win32security 库中的函数(GetFileSecurity 和 LookupAccountSid),您将获得有关所有者的信息

import win32security

def GetOwner(filename):
f = win32security.GetFileSecurity(filename, win32security.OWNER_SECURITY_INFORMATION)
(username, domain, sid_name_use) = win32security.LookupAccountSid(None, f.GetSecurityDescriptorOwner())
return username

print GetOwner(r"\\some_shared_location\somefile.txt")

关于python - 如何在Windows 7中获取文件的所有者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41280639/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com