Перечислите сетевые ресурсы Windows и все пользовательские разрешения на или внутри

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

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

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

и т.п.

2 ответа

Решение

Я знаю, что это не скрипты, но вы пробовали 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' 
Другие вопросы по тегам