Черновик на память, чтобы не забыть и не искать решение заново.
(Задача возникает раз в год).
Возникла задача, выгрузить список доступов - кто именно имеет доступ на чтение или запись к определенным папкам в сети (Windows).
Т.к. папок чрезвычайно много, а задача была достаточно срочная, то возникла необходимость быстро искать решение. Мое решение было следующим:
1) Необходимо выгрузить список всех имеющихся папок в директории.
Здесь мне пришла на помощь программа AccessEnum, на сайте microsoft ее можно скачать бесплатно. Программа достаточна проста. Указываем путь и жмем кнопку Scan.Она смотрит на структуру и выгружает папки, файлы и соответственно, кто имеет доступ к ним. Далее я сохранил в текстовый файл, и потом сохранил все в формате xls. Для удобства работы со списком.
2) Необходимо выгрузить всех актуальных работников из групп AD исключив уволенных сотрудников.
В powershell запросом смотрим список всех сотрудников в группах и вложенных группах рекурсивно:
Get-ADGroup "Бухгалтерия" -PipelineVariable LGroups `
| Get-ADGroupMember -Recursive `
| % { Get-ADUser -Identity $_ -Properties *} `
| Where-Object {$_.enabled -eq $true} `
| % { Add-Member -InputObject $_ -Name "GroupName" -Value $LGroups.Name -MemberType NoteProperty -force -PassThru } `
| select name #samaccountname
Поиском заменой в эксель вставил список ФИО вместо групп.
В тех случаях где нужно заменить samaccountname на ФИО
Get-ADUser "apetrov" | select namep.s Данное решение, можно сказать на "скорую руку". Все можно заменить и автоматизировать одним скриптом на powershell, но времени было в обрез. Так что, пока так.