1

У нас есть разные серверы с большим количеством каталогов. Достаточно просто взглянуть на общий браузер, чтобы узнать, что такое «верхний уровень», но под ним находится беспорядочный беспорядок пользовательских разрешений, ни один из которых не документирован.Перечислить общие сетевые ресурсы Windows и все пользовательские разрешения на уровне

Я бы хотел перечислить все домены в домене (определенно все «серверы», локальные ПК были бы хороши), а затем перезаписывать каждый из них и сообщать обо всех отклонениях от родителя. Если у ребенка одинаковые разрешения, не нужно сообщать об этом.

Я бы предпочел простое решение сценария для написания большого приложения на 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) 

т.д.

ответ

1

Я знаю, разве сценариев, но вы пробовали ShareEnum? http://technet.microsoft.com/en-us/sysinternals/bb897442.aspx, а затем экспортировать его? Вы также можете сравнить с более старыми программами. Я не думаю, что есть интерфейс командной строки cmd (который отстой), но он вам предоставит необходимую информацию.

+0

Это аккуратное, но не перечисляет подкаталоги акций для различных уровней разрешений. Например, на сервере A у нас есть D: \ компания. Глубоко внутри D: \ company \ path \ to \ dir у нас есть другой каталог с пользовательскими perms, который не отображается в ShareEnum :( – 2008-09-22 20:44:25

1

This Powershell script выполняет вашу задачу.

Как говорится:

Этот небольшой скрипт будет перечислять все акции на компьютере, а также список разрешений на уровне общих для каждой акции. Он использует 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'