处理特权以打开网络驱动器的根

时间:2014-09-29 21:54:14

标签: python security winapi

打开网络驱动器的根目录需要哪个进程权限?

此处,Z:\\是网络驱动器。

import win32file
import win32con

win32file.CreateFile(
    'Z:\\', win32file.GENERIC_READ | win32con.ACCESS_SYSTEM_SECURITY,
    win32file.FILE_SHARE_READ, None, win32file.OPEN_EXISTING,
    win32file.FILE_FLAG_BACKUP_SEMANTICS | win32file.FILE_FLAG_OPEN_REPARSE_POINT, None
)

以上引发了异常ERROR_PRIVILEGE_NOT_HELD

我现在已经获得了msdn上的所有进程权限,但上述内容仍然无法正常工作。是否可以在用户空间中打开网络驱动器的根目录?

根据Harry的评论,我检查了我是否拥有相应的权限:

with closing(win32security.OpenProcessToken(
    win32process.GetCurrentProcess(), win32security.TOKEN_ADJUST_PRIVILEGES | win32security.TOKEN_QUERY
)) as token:
    print(win32security.GetTokenInformation(token, win32security.TokenPrivileges))

返回:

((4, 2), (5, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (17, 2), (18, 2), (19, 2), (20, 2), (22, 2), (23, 3), (24, 2), (25, 2), (28, 2), (29, 3), (30, 3), (33, 2), (34, 2), (35, 2))

SE_SECURITY_NAME的{​​{1}}为8,所以我认为我确实拥有所需的权限。

0 个答案:

没有答案
相关问题