none
Как узнать права пользователей на общую папку и подпапки ? RRS feed

  • Вопрос

  • Добрый день. Сервер (Windows 2003) на котором находиться интересующая общая папка, с кучей подпапок, находится в рабочей группе. Идет перенос рабочих станция и серверов в домен. Аккаунты для всех пользователи в AD созданы. Существует ли команда или скрипт для создания списка прав пользователей на соответствующие папки ? Или софт для сопоставления пользователей AD и рабочей группы ?  Подпапок около 200, нет желания сидеть вечер и переписывать права на каждую папку.    
    21 февраля 2010 г. 17:27

Ответы

  • Может, AccesEnum как-то поможет? http://technet.microsoft.com/en-us/sysinternals/bb897332.aspx
    21 февраля 2010 г. 18:31
    Отвечающий
  • Можно экспортировать все права с помощью icacls в файл, например так:

    icacls c:\Directory\* /save AclFile.txt /T

    Открыть его в блокноне и сделать замену sid локальных аккаунтов на сиды доменных, а потом восстановить права из этого файла вот так:

    icacls c:\Directory\ /restore AclFile.txt
    21 февраля 2010 г. 21:00
  • 1 Как узнать SID доменного пользователя, локального пользователя ?

    2 Можно ли преобразовать информацию в файле в читаемый человеком вид ?

    В файле информация такого вида

    1 - 1 . x l s

    D : A I ( A ; I D ; F A ; ; ; S - 1 - 5 - 2 1 - 2 3 9 9 6 7 5 4 3 - 2 2 1 7 2 2 0 9 2 0 - 1 8 3 7 7 7 9 4 5 6 - 1 0 9 5 ) ( A ; I D ; F A ; ; ; B A ) ( A ; I D ; F A ; ; ; S Y ) ( A ; I D ; F A ; ; ; S - 1 - 5 - 2 1 - 2 3 9 9 6 7 5 4 3 - 2 2 1 7 2 2 0 9 2 0 - 1 8 3 7 7 7 9 4 5 6 - 1 0 0 4 ) ( A ; I D ; 0 x 1 2 0 0 a 9 ; ; ; B U )

     

    Спс за помощь.


    Это язык SDDL
    Посмотреть SID пользователя можно, например, скачав этот пакет http://www.microsoft.com/downloads/details.aspx?FamilyId=7AF2E69C-91F3-4E63-8629-B999ADDE0B9E&displaylang=en
    И зарегестрировать dll acctinfo.dll на раб. станции с установленной консолью ADUC. Затем в свойствах пользователя появляется новая вкладка, где информация, в том числе и о SID
    Узнать SID локальных пользователей можно, например с помощью этого скрипта (сохранить в блокноте с расширением vbs )
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set objAccount = objWMIService.Get("Win32_UserAccount.Name='Имя_пользователя',Domain='Имя_компьютера'")
    Wscript.Echo objAccount.SID
    В принципе можно организовать цикл, с перечеслением всех локальных пользователей (тут рядом есть раздел посвященный скриптам можно поискать или спросить как это сделать там)

    24 февраля 2010 г. 6:35
    Отвечающий

Все ответы

  • Может, AccesEnum как-то поможет? http://technet.microsoft.com/en-us/sysinternals/bb897332.aspx
    21 февраля 2010 г. 18:31
    Отвечающий
  • Можно экспортировать все права с помощью icacls в файл, например так:

    icacls c:\Directory\* /save AclFile.txt /T

    Открыть его в блокноне и сделать замену sid локальных аккаунтов на сиды доменных, а потом восстановить права из этого файла вот так:

    icacls c:\Directory\ /restore AclFile.txt
    21 февраля 2010 г. 21:00
  • Спасибо огромное )
    24 февраля 2010 г. 6:22
  • 1 Как узнать SID доменного пользователя, локального пользователя ?

    2 Можно ли преобразовать информацию в файле в читаемый человеком вид ?

    В файле информация такого вида

    1 - 1 . x l s

    D : A I ( A ; I D ; F A ; ; ; S - 1 - 5 - 2 1 - 2 3 9 9 6 7 5 4 3 - 2 2 1 7 2 2 0 9 2 0 - 1 8 3 7 7 7 9 4 5 6 - 1 0 9 5 ) ( A ; I D ; F A ; ; ; B A ) ( A ; I D ; F A ; ; ; S Y ) ( A ; I D ; F A ; ; ; S - 1 - 5 - 2 1 - 2 3 9 9 6 7 5 4 3 - 2 2 1 7 2 2 0 9 2 0 - 1 8 3 7 7 7 9 4 5 6 - 1 0 0 4 ) ( A ; I D ; 0 x 1 2 0 0 a 9 ; ; ; B U )

     

    Спс за помощь.

    24 февраля 2010 г. 6:27
  • 1 Как узнать SID доменного пользователя, локального пользователя ?

    2 Можно ли преобразовать информацию в файле в читаемый человеком вид ?

    В файле информация такого вида

    1 - 1 . x l s

    D : A I ( A ; I D ; F A ; ; ; S - 1 - 5 - 2 1 - 2 3 9 9 6 7 5 4 3 - 2 2 1 7 2 2 0 9 2 0 - 1 8 3 7 7 7 9 4 5 6 - 1 0 9 5 ) ( A ; I D ; F A ; ; ; B A ) ( A ; I D ; F A ; ; ; S Y ) ( A ; I D ; F A ; ; ; S - 1 - 5 - 2 1 - 2 3 9 9 6 7 5 4 3 - 2 2 1 7 2 2 0 9 2 0 - 1 8 3 7 7 7 9 4 5 6 - 1 0 0 4 ) ( A ; I D ; 0 x 1 2 0 0 a 9 ; ; ; B U )

     

    Спс за помощь.


    Это язык SDDL
    Посмотреть SID пользователя можно, например, скачав этот пакет http://www.microsoft.com/downloads/details.aspx?FamilyId=7AF2E69C-91F3-4E63-8629-B999ADDE0B9E&displaylang=en
    И зарегестрировать dll acctinfo.dll на раб. станции с установленной консолью ADUC. Затем в свойствах пользователя появляется новая вкладка, где информация, в том числе и о SID
    Узнать SID локальных пользователей можно, например с помощью этого скрипта (сохранить в блокноте с расширением vbs )
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set objAccount = objWMIService.Get("Win32_UserAccount.Name='Имя_пользователя',Domain='Имя_компьютера'")
    Wscript.Echo objAccount.SID
    В принципе можно организовать цикл, с перечеслением всех локальных пользователей (тут рядом есть раздел посвященный скриптам можно поискать или спросить как это сделать там)

    24 февраля 2010 г. 6:35
    Отвечающий
  • PsGetSid http://technet.microsoft.com/ru-ru/sysinternals/bb897417(en-us).aspx

    Может возвращать как SID ПК, так и SID пользователя вне зависимости локальный или доменный. И наоборот - по SID - имя пользователя или ПК.
    24 февраля 2010 г. 23:00