如何使用Windows中的命令行为用户授予权限?

Ami*_*abh 251 windows file-permissions command-prompt

如何使用Windows命令行向目录上的用户授予权限(读取,写入,修改)?

Căl*_*rie 385

截至Vista,cacls已被弃用.这是前几个帮助热线:

C:\>cacls
NOTE: Cacls is now deprecated, please use Icacls.

Displays or modifies access control lists (ACLs) of files
Run Code Online (Sandbox Code Playgroud)

你应该使用icacls.这就是你授予John对D:\test文件夹及其所有子文件夹的完全控制权的方法:

C:\>icacls "D:\test" /grant John:(OI)(CI)F /T
Run Code Online (Sandbox Code Playgroud)

根据MS文件:

  • F =完全控制
  • CI = Container Inherit - 此标志指示从属容器将继承此ACE.
  • OI = Object Inherit - 此标志指示从属文件将继承ACE.
  • /T=递归应用于现有文件和子文件夹.(OI并且CI仅适用于新文件和子文件夹).信用:@AlexSpence发表评论.

有关完整文档,您可以在icacls没有参数的情况下运行" " ,也可以在此处此处查看Microsoft文档

  • icacls"c:\ work"/ grant everyone:(OI)(CI)F (26认同)
  • 我在访问被拒绝的问题时试图在Windows资源管理器UI中更改权限.在末尾添加/ T标志替换了现有对象,并且能够为我解决问题.C:> icacls"D:\ test"/授予John:(OI)(CI)F/T. (21认同)
  • @AlexSpence好点!需要**/T**来更新**现有文件和文件夹**的权限.(OI)和(CI)仅适用于将来创建的文件和文件夹. (9认同)
  • 来自*nix世界并被用于'chown/chmod'以通过CLI提供访问和设置权限,这个线程非常有用. (5认同)
  • Felipe:(OI)和(CI)参数使这个递归 (4认同)
  • 如果您在Windows 10的Powershell中运行此操作,则会收到有关"OI无法识别"的错误.解决方案:将user + perms参数放在引号中.例如:`C:\> icacls"D:\ test"/ grant"John:(OI)(CI)F"/ T` (2认同)

Vin*_*n.X 72

您也可以使用ICACLS.

要将Users完全控制权授予文件夹:

>icacls "C:\MyFolder" /grant Users:F
Run Code Online (Sandbox Code Playgroud)

向IIS用户授予修改权限C:\MyFolder(如果您需要IIS具有将R/W文件转换为特定文件夹的能力):

>icacls "C:\MyFolder" /grant IIS_IUSRS:M
Run Code Online (Sandbox Code Playgroud)

如果你做ICACLS /?您将能够看到所有可用选项.

  • 在使用`/grant Users:(OI)(CI)F`之前,添加完全控制对我不起作用 (3认同)

Sir*_*dda 20

打开命令提示符,然后执行以下命令:

icacls "c:\somelocation\of\path" /q /c /t /grant Users:F

F 提供完全访问权限

/q /c /t 将权限应用于子文件夹.

注意:有时"以管理员身份运行"会有所帮助.

  • 需要“以管理员身份运行”,这就是最好的答案! (3认同)

Jor*_*ira 19

使用cacls命令.见信息在这里.

CACLS文件/电子邮件{USERNAME}:{PERMISSION}

哪里,

/ p:设置新权限

/ e:编辑权限并保留旧权限,即编辑ACL而不是替换它.

{USERNAME}:用户名

{PERMISSION}:许可可以是:

R - 阅读

W - 写

C - 改变(写)

F - 完全控制

例如,使用以下命令授予Rocky Full(F)控件(在Windows命令提示符下键入):

C:> CACLS文件/ e/p rocky:f

键入以下命令阅读完整的帮助:

C:> cacls /?

  • Cacls已被弃用! (14认同)

小智 11

我尝试以下方式,它适用于我:
1.打开cmd.exe
2. takeown /R /F *.*
3. icacls * /T /grant [username]:(D)
4.del *.* /S /Q

这样文件就可以成为我自己的访问权限并分配给"删除",然后我可以删除文件和文件夹.


Dan*_*lev 7

我为此苦苦挣扎了一段时间,只结合了这个线程中的答案对我 有用(在 Windows 10 上):
1. 打开 cmd 或 PowerShell 并转到包含文件的文件夹
2. takeown /R /F
3. icacls * /T /grant dan:F

祝你好运!


Ed9*_*999 6

损坏的权限:重新获得对文件夹及其子对象的访问权限

尽管大多数回复该问题的答案都有其优点,但恕我直言,它们都没有提供完整的解决方案。如果您被损坏的权限设置锁定了文件夹,则以下(可能是)Windows 7的完美解决方案:

icacls "c:\folder" /remove:d /grant:r Everyone:(OI)(CI)F /T  
Run Code Online (Sandbox Code Playgroud)

对于Windows 10,必须在以下/remove:d选项后指定用户/ SID :

icacls "c:\folder" /remove:d Everyone /grant:r Everyone:(OI)(CI)F /T  
Run Code Online (Sandbox Code Playgroud)


注意事项

  1. 该命令将应用于指定目录。

  2. 指定用户“每个人”设置了最大可能的权限,因为它包括每个可能的用户。

  3. 选项“ / remove:d”将删除可能存在的任何明确的DENY设置,因为这些设置将覆盖明确的ALLOW设置:这是创建新ALLOW设置的必要前提。这仅是一种预防措施,因为通常没有DENY设置,但是比后悔更安全。

  4. 选项“ / grant”创建一个新的ALLOW设置,一个显式权限替换(“:r”)可能存在的任何和所有显式ALLOW设置。

  5. “ F”参数(即创建的权限)使它具有FULL控制权。

  6. “ / T”参数添加递归,将这些更改应用于指定目录中的所有当前子对象(即文件和子文件夹)以及文件夹本身。

  7. 参数“(OI)”和“(CI)”也添加了递归,将这些更改应用于随后创建的子对象。

增编(2019/02/10) -

在Windows 10的命令行上面今天好心建议我,所以在这儿呢。我还没有Windows 10对其进行测试,但是如果您有,请尝试一下(然后请下面发表评论)。

更改仅涉及删除DENY设置作为第一步。可能没有任何DENY设置,因此该选项可能没有任何区别。我的理解是,在Windows 7上,不需要在/ remove:d之后指定用户,但是我对此可能是错的!

增编(2019/11/21) -

astark用户建议用* S-1-1-0 代替Everyone,以使命令独立于语言。我只有英文安装的Windows,因此无法测试该建议,但这似乎是合理的。