繁体   English   中英

在 windows 上更改权限后访问文件时出现间歇性“访问被拒绝”异常

[英]Getting intermittent "Access is Denied" exception when accessing a file after changing the permissions on windows

在 windows 上使用 icacls 更改权限后访问文件时出现间歇性“访问被拒绝”。

详情:请参考以管理员身份运行的脚本。

import os


for x in range(50):

    #this exe will check the existence of a file , is not present then copy the file and change the permission to ADMINISTRATOR/SYSTEM:F and BUILTIN/Users:(RX)

    file = 'C:\\Program Files\\***\\test.exe'
    retval = os.system('"' +  file +  '" -i')
    print("retVal : %d" %retval)

    #reset the permission of the same file and the parent folder

    os.system("icacls C:\\ProgramData\\***\\ParentFolder /reset /T /Q /C")
    os.system("icacls C:\\ProgramData\\***\\file.xml /grant *S-1-5-32-545:(W) /T /Q /C")

我们得到了答案——icacls 是异步运行的,因此当权限被更改时,同时如果我们尝试访问该文件,那么 windows 给出“访问被拒绝”。 因此,我们不再使用 icacls,而是开始使用 windows os API,例如https://learn.microsoft.com/en-us/windows/win32/api/aclapi/nf-aclapi-setnamedsecurityinfoa

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM