使用 Windows Server 2012 R2 和 Windows Server 2008 R2。
我有一个名为的文件夹C:\temp\test,我想授予对SYSTEM用户以及所有文件和子目录的访问权限,并删除其他所有内容。我试过这个命令,但所有现有的权限仍然存在:
现有权限是:
Access : NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Administrators Allow FullControl
BUILTIN\Users Allow ReadAndExecute, Synchronize
BUILTIN\Users Allow AppendData
BUILTIN\Users Allow CreateFiles
CREATOR OWNER Allow 268435456
Run Code Online (Sandbox Code Playgroud)
我想删除除 之外的所有 ACLSYSTEM并添加<DOMAIN>\<USER>
我试过这个命令:
icacls c:\temp\test /grant:r <DOMAIN>\<USER>:(OI)(CI)F /t
processed file: c:\temp\test
Successfully processed 1 files; Failed processing 0 files
Run Code Online (Sandbox Code Playgroud)
当我之后查看权限时,<DOMAIN>\<USER>具有正确的权限,但所有其他权限都保留。我以为/grant:r更换了所有权限?你知道我需要运行什么命令来删除所有其他权限吗?
windows windows-server-2008-r2 icacls windows-server-2012-r2
我正在考虑使用icacls.exe。但是,在继续之前,我想澄清这两个 ACL 之间的区别:
(OI) - object inherit
(CI) - container inherit
Run Code Online (Sandbox Code Playgroud) 我无法让 icacls 接受我的组以添加权限。我正在使用带有以下命令的提升的电源外壳:
icacls 'C:/foo' /grant:r 'Group Foo':f
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Invalid parameter "Group Foo"
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用 SUID,但也失败了。我也试过 'Domain\Group Foo'
我有一堆文件,我试图允许一个组使用。在 Windows Server 2012 中添加批量权限的正确方法是什么?
- 编辑 -
E:\> icacls "E:/Contact Numbers.xlsx" /grant:r "Users":f
Invalid parameter "Users"
Run Code Online (Sandbox Code Playgroud) windows windows-authentication file-permissions icacls windows-server-2012
我正在尝试为所有使用的子对象设置替换权限条目,icacls但我似乎无法做到。我想新的文件夹/文件接收权限,以及所以我想以检查框从该对象替换可继承权限的所有子对象的权限使用icacls。
我认为/inheritance:e会这样做,但似乎并不合适。
我想我应该使用,(OI)(CI)但我不确定如何使用它们。
我使用的命令是:
icacls D:\UserShares /grant:r "Domain\Users":f "Domain\Admins":f /c /t /l /q
Run Code Online (Sandbox Code Playgroud)
我有一个脚本,它遍历D:驱动器并使用上述命令重置所有子文件夹的权限,但我还想选中“用每个子对象的可继承权限替换所有子对象权限”框。非常感谢任何帮助。
在我将目录复制到具有完整权限的新服务器后,运行一个非常简单的 ICACLS 命令。我需要将 SID 从旧服务器用户组更改为新服务器用户组。
使用 ROBOCOPY 源 dest /SEC 复制文件夹...
使用 PSGetSid 获取旧服务器用户组和新服务器用户组的 SID。
icacls folder /save acl /t
icacls folder /substitute S-blahold S-blahnew /restore acl
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:s-blahold:未完成帐户名和安全 ID 之间的映射。
我试过用 servername\group 替换 SID。我以管理员帐户身份运行,该帐户具有对旧服务器和新服务器的管理员访问权限。
源服务器是 Windows 2003,目标是 Server 2008。
我在文件服务器上有一个非常奇怪的 NTFS 权限现象,我找不到我的错误,现在已经拉了几个小时了。我错过了什么?
我的目标是:
这是我所做的:
问题是,我的用户可以像拥有完全访问权限一样编辑和删除文件。即使“有效权限”显示没有编辑权限,仍然可以。
该脚本运行良好,如下所示:
icacls d:\folder\Bild1.jpg /inheritance:d
icacls d:\folder\Bild1.jpg /remove:g Group-A"
Run Code Online (Sandbox Code Playgroud)
脚本运行后,file.jpg 上的 NTFS 权限如下所示(对我来说是正确的):

icacls 输出也是如此:
d:\folder>icacls Bild1.jpg
Bild1.jpg WM\DomainAdmin:(F)
WM\Domänen-Admins:(F)
WM\Group-A:(RX)
Run Code Online (Sandbox Code Playgroud)
该文件的有效权限选项卡显示完全相同(正确)的内容:
父文件夹的权限,用户应该可以在这里添加文件,如下所示:
Artweger WM\Group-A:(I)(OI)(CI)(F)
WM\Domänen-Admins:(I)(OI)(CI)(F)
Run Code Online (Sandbox Code Playgroud)
如果此用户登录(他只是在两个组中,域用户和组 A),他可以编辑、删除、重命名和移动文件 bild1.jpg。这怎么可能?NTFS 拿我光荣的计划做什么?
以下命令:
icacls c:\inetpub\wwwroot\ /grant "IIS AppPool\DefaultAppPool":F
Run Code Online (Sandbox Code Playgroud)
不断回归
Invalid parameter "IIS AppPool\DefaultAppPool"
Run Code Online (Sandbox Code Playgroud)
对于任何文件夹上的任何应用程序池名称,我以管理员身份从 powershell 运行它。
我确定这以前有效吗?
任何建议非常感谢!
担
我们的其中一台 Windows 服务器上有一些用户文件夹,但权限却很糟糕。我想要它SYSTEM并Domain Admins完全控制所有文件夹。我希望用户只读取顶级文件夹(这是他们的主文件夹)并修改所有子文件夹和文件。这可以通过 GUI 轻松完成,但我不知道如何编写脚本。
我从我的 PowerShell 脚本调用 icacls,因为 get-acl 和 set-acl 是主要的 PITA。如果我必须使用它们,我并不反对,但我想调用 icacls 会更容易。这是我必须到目前为止的相关代码:
icacls.exe $folder /grant '$domain\$user:(OI)(CI)(M)'
icacls.exe $folder /grant 'SYSTEM:(OI)(CI)(F)'
icacls.exe $folder /grant '$domain\domain admins:(OI)(CI)(F)'
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在使用icacls.exe $folder /grant '$domain\$user:(OI)(CI)(M)'. 我无法弄清楚如何使修改仅适用于子文件夹和文件,同时将只读授予顶级文件夹。
所需的权限结构如下所示(只是为了清楚起见):
-Users
--M
---Marra (read only to me)
----Documents (Modify)
----Scripts(Modify)
----Etc (Modify)
Run Code Online (Sandbox Code Playgroud)
什么是正确的 icacls 语法,或者我如何使用 set-acl 在 PS 中进行本机操作?
试图清理这个带有 PHP CGI 服务器的 IIS6 的权限,似乎有几个文件/文件夹对每个人都有写权限。(您可能会反复猜测正在发生的事情。)
所以,基本上,我正在寻找相当于 find $directory -perm 777 -exec ls -ld {} \;
我可以做第一部分,列出提到每个人的文件icacls,但似乎无法显示实际的 ACL:
icacls \directory /findSID *S-1-1-0 /t
查看subinacl文档和各种谷歌结果,似乎我可以使用 /subdirectories 和 /display 来实现这一点,但它立即返回,没有结果也没有错误:
C:\>subinacl /subdirectories \directory\*.* /findsid=Everyone /display
+subdirectories \directory\*.*
/findsid=Everyone
/display
Elapsed Time: 00 00:00:00
Done: 0, Modified 0, Failed 0, Syntax errors 0
Run Code Online (Sandbox Code Playgroud) 有人可以帮助我使用 icacls 从文件中删除特定的安全组吗?
该文件具有从文件所在文件夹继承的所有安全设置。所以我想从文件的 ACL 列表中删除所有组,然后分配不同的组。
我怎样才能做到这一点?
我只是在学习 icacls 来设置文件夹的权限。更好的是,我想确保文件夹是只读的。谁有想法?
C:>icacls.exe C:\TEMP\Reports [开关]