永久访问文件夹的命令行

Mis*_*ble 13 command-line icacls windows-10

更新 虽然我能够使用接受的答案中描述的方法,一旦它第二次失败或者只是给了太多麻烦。

进一步搜索后,我发现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
Run Code Online (Sandbox Code Playgroud)

如果重要的话,我使用的是从 Windows 8.1 升级的 Windows 10

Vom*_*yle 14

您当前无权访问此文件夹

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

首先仅尝试ICACLS 命令,如果不能解决,请运行TAKEOWN 命令,然后再次运行 ICACLS 命令


ICACLS命令

  • 将对该文件夹的显式完全控制访问权限授予子文件夹下的所有文件,以及保留所有继承权限的文件,并在出错时继续

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

    ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r "<UserName>":(M) /T /C
    
    Run Code Online (Sandbox Code Playgroud)
  • 更改此文件夹的所有者以及子文件夹和文件下的所有内容并继续出错

    ICACLS "<FolderPath>" /SETOWNER "<UserName>" /T /C
    
    Run Code Online (Sandbox Code Playgroud)

TAKEOWN命令

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

    TAKEOWN /F "<FolderPath>" /R /D Y
    
    Run Code Online (Sandbox Code Playgroud)