0

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

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

4

1 回答 1

1

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

Set sh  = CreateObject("WScript.Shell")

fldr  = "C:\some\folder"
group = "TA\admin"

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:\some\folder" /grant FOO\bar:(OI)(CI)RX Administrators:(OI)(CI)F

这将授予域“FOO”读取/执行权限的组“bar”和本地组“Administrators”对文件夹“C:\some\folder”及其所有配置为继承权限的子文件夹的完全访问权限他们的父母。

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

fldr = "C:\some\folder"
groupA = "FOO\bar"
groupB = "Administrators"

Set sh = CreateObject("WScript.Shell")

sh.Run "icacls """ & fldr & """ /grant " & groupA & ":(CI)(OI)RX " _
  & groupB & ":(CI)(OI)F"
于 2013-10-02T17:05:58.833 回答