MDM*_*rra 4 scripting windows powershell file-permissions icacls
我们的其中一台 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 中进行本机操作?
将脚本的第一行更改为以下内容,使其仅应用于子文件夹和文件。
icacls.exe $folder /grant "$domain\$user:(OI)(CI)(IO)(M)"
Run Code Online (Sandbox Code Playgroud)
然后将此应用到顶部文件夹。
icacls.exe $folder /grant "$domain\$user:(R)"
Run Code Online (Sandbox Code Playgroud)