我们有各种共享许多目录的服务器。很容易看到共享浏览器,看看“顶级”是什么股票是,但下面是混乱的自定义权限,没有记录。

我想列举域中的所有共享(绝对是所有“服务器”,本地PC都很好)然后递减每一个并报告与父项的任何偏差。如果孩子具有相同的权限,则无需向后报告。

我更喜欢编写一个大型C#应用程序的简单脚本解决方案,但任何有效的方法都可以(甚至现有的软件)。

例如,我想得到:

SERVER1\
 \-- C: (EVERYONE: Total control, ADMINs, etc. etc.)
   \-- (skip anything that is not the same as above)
   \-- SuperSecretStuff (Everyone: NO access; Bob: Read access)
SERVER2\ 
 \-- Stuff (some people)

有帮助吗?

解决方案

我知道它不是脚本,但您尝试过ShareEnum吗? http://technet.microsoft.com/en-us/sysinternals/bb897442。 aspx 然后将其导出?您还可以与较旧的运行进行比较。我不认为有一个cmd行接口(很糟糕),但它会为你提供所需的信息

其他提示

此Powershell脚本可实现您的目标。

如上所述:

  

这个小脚本将枚举计算机上的所有共享,并列出每个共享的共享级别权限。它使用WMI检索共享,并列出权限。

     

请注意,此脚本列出了共享级权限,而不是NTFS权限。

     

它接受许多计算机作为输入,单个IP或在本地系统中运行它:

       .EXAMPLE 
       C:\PS> .\Get-SharePermissions # Operates against local computer. 

       .EXAMPLE 
       C:\PS> 'computerName' | .\Get-SharePermissions 

       .EXAMPLE 
       C:\PS> Get-Content 'computerlist.txt' | .\Get-SharePermissions | Out-File 'SharePermissions.txt' 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top