由于新域迁移,我需要找到一个列出组的所有 NTFS 权限的脚本,并为某些文件夹(这些文件夹 CIF 或 NFS)添加新组的新权限。
某些文件夹具有不同的组和不同的权限。例如 pc\admin 组,现在我需要将 TA\admin 组添加到同一个文件夹,而不删除或清除旧的权限和组。我找到了一个脚本,但没有列出任何当前的权限和组:
由于新域迁移,我需要找到一个列出组的所有 NTFS 权限的脚本,并为某些文件夹(这些文件夹 CIF 或 NFS)添加新组的新权限。
某些文件夹具有不同的组和不同的权限。例如 pc\admin 组,现在我需要将 TA\admin 组添加到同一个文件夹,而不删除或清除旧的权限和组。我找到了一个脚本,但没有列出任何当前的权限和组:
您可以使用该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"
不过,对于在文件夹树上列出权限,类似ntfsacls
或AuditACLs.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"