命令行以永久访问文件夹


13

更新 虽然第二次失败或给您带来太多麻烦,但我能够使用接受的答案中描述的方法。

进一步搜索后,我发现了Helge Klein的SetACL,它远胜前者,并且确实满足了需要。


我无法访问某些文件夹,例如c:\Program Files\WindowsApps。通过命令行,出现“ 访问被拒绝 ” 错误,通过Windows资源管理器,出现一个弹出对话框,指出“ 您当前无权访问此文件夹

在此处输入图片说明

单击“ 继续”给我访问权限,但是我想使用命令行授予自己访问权限;这样我的脚本就不会遇到在相同安全上下文下运行的问题。

我在Microsoft Technet上发现了这个问题,但无法正常工作。请注意,我已经以管理员身份运行Powershell。

PS C:\WINDOWS\system32> icacls "C:\Program Files\WindowsApps" /grant i063510:F /inheritance:e
C:\Program Files\WindowsApps: Access is denied.
Successfully processed 0 files; Failed processing 1 files
PS C:\WINDOWS\system32> icacls "C:\Program Files" /grant i063510:F /inheritance:e
C:\Program Files: Access is denied.
Successfully processed 0 files; Failed processing 1 files

如果有问题,我正在使用从Windows 8.1升级的Windows 10

Answers:


12

您当前没有访问此文件夹的权限

根据需要,对具有用户名的文件夹尝试使用以下语法的ICACLS和/或TAKEOWN

首先尝试仅使用ICACLS命令,如果仍然无法解决,请运行TAKEOWN命令,然后再次运行ICACLS命令


ICACLS命令

  • 将所有文件夹的所有文件夹的显式完全控制访问权限授予该文件夹,并将文件保留所有继承的权限,并在发生错误时继续

    ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r <UserName>:(F) /T /C
    
  • 向所有下面的子文件夹授予对该文件夹的显式修改访问权限,并将文件保留所有继承的权限并在出错时继续

    ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r "<UserName>":(M) /T /C
    
  • 更改此文件夹及其所有子文件夹和文件的所有者,并继续发生错误

    ICACLS "<FolderPath>" /SETOWNER "<UserName>" /T /C
    

TAKEOWN命令

  • 以您要授予所有权的帐户运行此帐户,它将更改为文件夹的所有者以及所有子文件夹和文件下的所有者

    TAKEOWN /F "<FolderPath>" /R /D Y
    

谢谢。我想避免TAKEOWN/ SETOWNER。我假设它更改了所有者,并且Windows资源管理器仅分配了权限。
悲惨的变量

您能确定是否ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r "<UserName>":(OI)(CI)(X,M,F) /T /C会给您预期的结果?如果可以的话,我将更详细地更新我的答案。
Pimp Juice IT

如果要获得对该特定文件夹(任何其他文件夹)的权限,则必须拥有该文件夹的所有权,才能避免获得所有权
Ramhound16年

这对我的作品:ICACLS "C:\Program Files\WindowsApps" /INHERITANCE:e /GRANT:r i063510:F /T /C。谢谢你的帮助。@Ramhound在我拥有或不需要拥有所有权时,无法从您的评论中理解。
悲惨变量

@MiserableVariable我也更新了我的答案,并提供了更多详细信息。
皮条客果汁IT
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.