【问题标题】:List and add NTFS permissions on shared folders列出并添加共享文件夹的 NTFS 权限
【发布时间】:2013-10-02 14:36:37
【问题描述】:

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

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

【问题讨论】:

  • 感谢您的脚本,但这可以作为 vbs 或 PowerShell 运行吗?您是否认为一个脚本可以列出所有 NTFS 权限,然后添加其他组以获得完全访问权限或 RW 访问权限?那将是一个复杂的脚本。我什至不知道在哪里添加服务器名和共享名。
  • 那么我想你需要雇人来做这项工作。它当然可以在一个脚本中完成,但是完整地编写它超出了 SO 的范围。您可以使用我的脚本 AuditACLs.vbs 作为起点,并在其中添加 granting permissions 的代码。

标签: vbscript


【解决方案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"

【讨论】:

  • 感谢您的脚本。这是 vbs 或 power shell。
  • """ 是放置文件夹名称或服务器名称或组名称的地方。我只需要在vbs中带有服务器或文件夹名称的示例。谢谢!!
  • Ansgar:您的脚本正在运行,但它没有填充对第一个子文件夹和第二个子文件夹的权限。
  • F 更改为 (OI)(CI)F 以使权限可继承。
  • 更改为----If rc 0 Then sh.Run "icacls """ & fldr & """ /grant " & group & ":(OI)(CI )F" 但是如何同时添加多个组,而不是一次添加一个组。
猜你喜欢
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 1970-01-01
  • 2018-02-15
  • 2015-06-06
  • 1970-01-01
相关资源
最近更新 更多