打开网络驱动器的根目录需要哪个进程权限?
此处,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,所以我认为我确实拥有所需的权限。