列出并添加共享文件夹的 NTFS 权限



由于新的域迁移,我需要找到一个列出组的所有NTFS权限的脚本,并为某些文件夹(这些文件夹CIF或NFS)添加新组的新权限。

某些文件夹具有不同的组和不同的权限。 例如PC\Admin组,现在我需要将TA\admin组添加到同一文件夹中,而无需删除或清除旧的权限和组。我找到了一个脚本,但没有列出任何当前权限和组:

您可以使用 icacls 命令显示或修改任何给定文件或文件夹的权限。要将缺少的组添加到文件夹中,应该可以执行以下操作:

Set sh  = CreateObject("WScript.Shell")
fldr  = "C:somefolder"
group = "TAadmin"
rc = sh.Run("%COMSPEC% /c icacls """ & fldr & """ | find /i """ & group _
  & """", 0, True)
If rc <> 0 Then sh.Run "icacls """ & fldr & """ /grant " & group & ":F"

但是,对于列出文件夹树上的权限,例如ntfsaclsAuditACLs.vbs可能是更好的选择。


icacls使用示例:

icacls "C:somefolder" /grant FOObar:(OI)(CI)RX Administrators:(OI)(CI)F

这将授予域"FOO"的组"bar"读取/执行权限和本地组"管理员"对文件夹"C:\some\folder"及其配置为从其父级继承权限的所有子文件夹的完全访问权限。

若要使用文件夹和组的变量从 VBScript 运行此命令,请执行以下操作:

fldr = "C:somefolder"
groupA = "FOObar"
groupB = "Administrators"
Set sh = CreateObject("WScript.Shell")
sh.Run "icacls """ & fldr & """ /grant " & groupA & ":(CI)(OI)RX " _
  & groupB & ":(CI)(OI)F"

最新更新