如何在Windows中使用命令行将权限授予用户?
如何使用Windows命令行将权限授予目录上的用户(读取,写入,修改)?
从Vista开始, cacls
已经被弃用了。 以下是第一对帮助热线:
C:\>cacls NOTE: Cacls is now deprecated, please use Icacls. Displays or modifies access control lists (ACLs) of files
你应该使用icacls
代替。 这是你如何授予John完全控制D:\test
文件夹及其所有子文件夹:
C:\>icacls "D:\test" /grant John:(OI)(CI)F /T
根据MS文件:
-
F
=完全控制 -
CI
=容器inheritance – 此标志指示从属容器将inheritance此ACE。 -
OI
= Object Inherit – 该标志表示从属文件将inheritanceACE。 -
/T
=recursion地应用于现有的文件和子文件夹。 (OI
和CI
仅适用于新文件和子文件夹)。 信用评论:@AlexSpence。
有关完整的文档,您可以运行“ icacls
”而不带任何参数,或者在这里和这里查看Microsoft文档
你也可以使用ICACLS。
将用户组完全控制权授予文件夹:
>icacls "C:\MyFolder" /grant Users:F
为C:\MyFolder
IIS用户授予修改权限(如果您需要您的IIS能够将R / W文件放入特定文件夹):
>icacls "C:\MyFolder" /grant IIS_IUSRS:M
如果你做ICACLS /? 你将能够看到所有可用的选项。
使用cacls
命令。 在这里看到信息。
CACLS档案/ e / p {使用者名称]:{PERMISSION}
哪里,
/ p:设置新的权限
/ e:编辑权限,并保持原来的权限,即编辑ACL而不是replace它。
{USERNAME}:用户名称
{PERMISSION}:权限可以是:
R – 阅读
写 – 写
C – 更改(写入)
F – 完全控制
例如,使用以下命令(在Windows命令提示符下键入)授予Rocky Full(F)控件:
C:> CACLS文件/ e / p rocky:f
通过input以下命令阅读完整的帮助:
C:> cacls /?
打开一个命令提示符,然后执行这个命令:
icacls "c:\somelocation\of\path" /q /c /t /grant Users:F
F
给予完全访问权限。
/q /c /t
将权限应用于子文件夹。
注意:有时“以pipe理员身份运行”将有所帮助。
我尝试下面的方式,它为我工作:
1.打开cmd.exe
2. takeown /R /F *.*
3. icacls * /T /grant [username]:(D)
4. del *.* /S /Q
所以这些文件可以成为我自己的访问,它分配给“删除”,然后我可以删除文件和文件夹。
使用Excel vba脚本来configuration和创build帐户。 我需要授予对我们的新用户使用我们的pipe理员“x”帐户由该工具创build的文件夹和子文件夹的完整权限权限。
cacls看起来像这样:cacls \ FileServer \ Users \ Username / e / g Domain \ Username:C
我需要将此代码迁移到Windows 7及更高版本。 我的解决scheme竟然是:
icacls \ FileServer \ Users \ Username / grant:r Domain \ Username:(OI)(CI)F / t
/ grant:r – 授予指定的用户访问权限。 权限replace以前授予的显式权限。 没有:r,权限被添加到任何以前授予的显式权限
(OI)(CI) – 此文件夹,子文件夹和文件。
F – 完全访问
/ t – 遍历所有子文件夹以匹配文件/目录。
这给了我一个服务器上的文件夹,用户只能看到该文件夹并创build子文件夹,他们可以读取和写入文件。 以及创build新的文件夹。
以防万一在这个页面上有其他人绊倒了,如果你想在一个命令中将不同的权限串在一起,我使用了这个:
icacls "c:\TestFolder" /grant:r Test_User:(OI)(CI)(RC,RD,RX)
请注意各种权限的csvstring。
我苦苦了一阵子,只有在这个线程(在Windows 10上)合作的答案:
1.打开cmd或PowerShell并转到包含文件的文件夹
2. takeown / R / F。
3. icacls * / T / grant dan:F
祝你好运!
XCACLS.VBS是一个非常强大的脚本,将改变/编辑ACL信息。 c:\ windows \ system32 \ cscript.exe xcacls.vbs帮助返回所有开关和选项。
您可以从Microsoft支持页面获得官方发布
批量文件夹创build和授予权限使用下面的PowerShell脚本。
Import-Csv“D:\ Scripts \ foldernames.csv”| foreach-object {$ username = $ _。foldername
# foldername is the header of csv file $domain = “example.com” $folder= "D:\Users" $domainusername = $domain+“\”+$username New-Item $folder\$username –Type Directory Get-Acl $folder\$username $acl = Get-Acl $folder\$username $acl.SetAccessRuleProtection($True, $False) $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Administrators","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("SYSTEM","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("$domain\Domain Admins","Read", "ContainerInherit, ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) $rule = New-Object System.Security.AccessControl.FileSystemAccessRule($domainusername,"Modify", "ContainerInherit, ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) Set-Acl $folder\$username $acl
}
注意:您必须在csv文件中创build相同的域用户名,否则您将获得权限问题
attrib +r +a +s +h <folder name> <file name> to hide attrib -r -a -s -h <folder name> <file name> to unhide
优秀点CălinDarie
我有很多脚本来使用cacls我将它们移动到icacls我怎么也找不到一个脚本来更改根挂载卷示例:d:\ datafolder。 我终于把这个脚本写成了下面的脚本,把这个卷挂载到一个临时驱动器上,然后应用sec。 然后卸载它。 这是唯一的方法,我发现你可以更新根安装的安全性。
1将文件夹装入GUID到临时文件,然后读取GUID以将卷装载为临时驱动器X:应用秒并logging更改,然后仅从X:驱动器卸载卷,以便装入的文件夹不被更改或中断然后应用秒。
这里是我的脚本的示例:
**mountvol "d:\%1" /L >tempDrive.temp && FOR /f "tokens=*" %%I IN (tempDrive.temp) DO mountvol X: %%ID:\tools\security\icacls.exe %~2 /grant domain\group:(OI)(CI)F /T /C >>%~1LUNsec-%TDWEEK%-%TMONTH%-%TDAY%-%TYEAR%-%THOUR%-%TMINUTE%-%TAM%.txt if exist x:\*.* mountvol X: /d**
我是pipe理员,一些脚本放在我的名字上的“拒绝”权限在目录中的所有文件和子文件夹。 执行icacls "D:\test" /grant John:(OI)(CI)F /T
命令不起作用,因为它似乎并没有从这个列表中删除我的名字中的“Deny”权限。
唯一对我icacls "D:\test" /reset /T
是使用icacls "D:\test" /reset /T
命令重置所有权限。
这对我来说是有效的:
-
手动打开访问被拒绝的文件夹。
-
select该文件夹中的可执行文件/应用程序文件。
-
右键单击它并转到“ 属性” – >“ 兼容性”
-
现在查看权限级别并检查它是否以pipe理员身份运行
-
点击所有用户的更改设置 。
现在问题解决了。