Василий Гусев написал коментарий на мою первую статью и вот что получилось далее.
Мы действительно можем при помощи класса win32_share вытащить в красивом формате расшаренные ресурсы компьютеров в сети, но как поглядеть права доступа я не нашёл. Есть в PoSh команда get-acl но она работает только в том случае, если вы есть во вкладке безопасность, ну а если пользователь отредактировал и оставил себя и ещё кого-то, то ни чего не получится. А shareenum всё это показывает. Как? Для меня загадка. Был бы рад если кто объяснит.
Дальше, это очень медленная производительность. Просмотр даже на 12 машинах занимает большое количество времени. Я брал только машины начинающиеся на «Z»
# Берём машины из AD
$servers = Get-QADComputer z*
# Смотрим расшаренные папки и в переменную добавляем класс с именем машины
$Shares = $Servers | foreach {
get-wmiobject win32_share -comp $_.name -errorAction silentlycontinue |
add-member noteproperty -name “Comp” -value $_.name -passthru
} |
Sort-Object
# Выводим расшаренные ресурсы в таблицу
$Shares | ft comp, name, path -Wrap -AutoSize
# Пробуем получить данные о правах…
$acl = $shares | foreach {
get-acl (”\\” + $_.comp + “\” + $_.name)-ErrorAction silentlycontinue |
Add-Member noteproperty -Name «Compacl» -Value $_.comp -PassThru |
Add-Member noteproperty -Name «Name» -Value $_.name -PassThru |
Add-Member noteproperty -Name «PathLocal» -Value $_.path -PassThru
}
# … и видим что ни чего не работает
$acl | ft compacl, name, pathlocal, AccessToString -Wrap -AutoSize
На первый вывод «$Shares | ft comp, name, path -Wrap -AutoSize» мы видим таблицу с которой можно работать достаточно легко.
Comp name path
—- —- —-
ZAA ADMIN$ C:\WINDOWS
ZAA C$ C:\
ZAA D$ D:\
ZAA IPC$
ZAR_NN ADMIN$ C:\WINDOWS
ZAR_NN C$ C:\
ZAR_NN IPC$
ZAV ADMIN$ C:\WINDOWS
ZAV C$ C:\
ZAV D$ D:\
ZAV IPC$
ZEB ADMIN$ C:\WINDOWS
ZEB C$ C:\
ZEB D$ D:\
ZEB HPLaserJ HP LaserJet 1022,LocalsplOnly
ZEB IPC$
ZEB print$ C:\WINDOWS\system32\spool\drivers
ZEB Мои документы D:\Мои документы
Я не стал приводить всю таблицу и специально остановился на строчке «ZEB Мои документы D:\Мои документы»
Вот как раз про неё мы и не увидим прав при использовании команды get-acl. Это всё что мы увидим про данную машину
ZEB ADMIN$ C:\WINDOWS NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Администраторы Allow FullControl
domain\zeb Allow AppendData, DeleteSubdirectoriesAndFiles, Delete,
ReadAndExecute, Synchronize
BUILTIN\Пользователи Allow ReadAndExecute, Synchronize
BUILTIN\Пользователи Allow AppendData, Synchronize
BUILTIN\Пользователи Allow CreateFiles, Synchronize
СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ Allow FullControl
ZEB C$ C:\ Все Allow ReadAndExecute, Synchronize
СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Администраторы Allow FullControl
BUILTIN\Пользователи Allow ReadAndExecute, Synchronize
BUILTIN\Пользователи Allow AppendData, Synchronize
BUILTIN\Пользователи Allow CreateFiles, Synchronize
domain\zeb Allow AppendData, DeleteSubdirectoriesAndFiles, Delete,
ReadAndExecute, Synchronize
ZEB D$ D:\ Все Allow ReadAndExecute, Synchronize
СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Администраторы Allow FullControl
BUILTIN\Пользователи Allow ReadAndExecute, Synchronize
BUILTIN\Пользователи Allow AppendData, Synchronize
BUILTIN\Пользователи Allow CreateFiles, Synchronize
domain\zeb Allow FullControl
ZEB print$ C:\WINDOWS\system32\spool\drivers NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Администраторы Allow FullControl
BUILTIN\Пользователи Allow ReadAndExecute, Synchronize
BUILTIN\Пользователи Allow AppendData, Synchronize
BUILTIN\Пользователи Allow CreateFiles, Synchronize
СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ Allow FullControl
Хотя shareenum всё прекрасно показывает
Опять таки, если кто знает как это всё-таки вытянуть с помощью PoSh буду признателен.
