none
Группа Безопасности домена-как узнать принадлежность к шарам? RRS feed

  • Вопрос

  • Добрый день ребят!
    Есть вопросик такого плана, сам PowerShell юзал оч мало, поэтому у меня есть некая задача, а именно:
    Есть домен, есть некие группы безопасности и есть много шар, ставится задача быстренько просмотреть принадлежность разрешений группам на определенные шары в доменах.Потому как будем удалять не нужные группы-а так как сеть уже давненько существует хотелось бы получить сводный отчет по группам безопасности с принадлежностями к шарам-именно к шарам, что бы ненароком не удалить какую ни будь группу которая нужна.
    Есть ли каккой ни будь похожий скриптик? Либо есть исходник на PowerShell ?
    ShareEnum не спасает-неудобная прога.
    Помогите плиз.
    Заранее благодарен!
    13 января 2010 г. 6:38

Все ответы

  • Посмотрите в блоге Вадима Поданса: sysadmins.lv

    http://www.sysadmins.lv/CategoryView,category,PowerShellACL.aspx

    13 января 2010 г. 6:49
  • Спасибки конечно, ноя ваще не пойму как запустить эти строчки кода?

    13 января 2010 г. 7:08
  • Спасибки конечно, ноя ваще не пойму как запустить эти строчки кода?

    для начала
    - скопировать в файл с раширением ps1, сохранить этот файл в некой папке
    - запустить posh, перейти в паку, в которую вы скопировали файл, и выполнить команду .\имя_файла,_куда_был_копирован_текст_из_блога.ps1

    или вообще, скопировать текст из блога в файл профиля (см $profile)

    Полсе этого вы сможете использовать функции, которые вы скопировали из блога.
    13 января 2010 г. 7:26
  • PS C:\> c:\example.ps1
    Не удается загрузить файл C:\example.ps1, так как выполнение сценариев запрещено для данной системы. Введите "get-hel
    p about_signing" для получения дополнительных сведений.
    В строка:1 знак:14
    + c:\example.ps1 <<<<
    PS C:\>

    Вот такая ерунда!
    13 января 2010 г. 7:48
  • Почему же ерунда? Попробуйте выполнить то что написано в сообщении об ошибке.


    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    13 января 2010 г. 14:58
    Модератор
  • Пробую!
    Я думаю в этом пробла.
    Попробую, завтра отпишусь!

    ExecutionPolicy [полиси]. Полиси бывают всего четырёх видов:
    -Restricted (стоит по умолчанию, разрешает команды но не скрипты)
    -AllSigned
    -RemoteSigned
    -Unrestricted



    Получилось. Все отлично!
    Теперь по порядку- необходим простой скриптик
    Есть некая группа безопасности и при ее указании необходимо узнать на какие шары она распространена (в смысле в свойствах безопасности шар на серваках), ну и плюс бы еще узнать какой уровень доступа-хотя последнее не оч критично.
    Просто необходимо быть уверенным в неких группах которые необходимо оставить в действительности.Есть конечно утилитка ShareEnum, но там можно выбрать только сканирование домена и то отчет выглядит скажем непонятно.
    Вобщем ясно одно необходимо изучать PS. Но пока обидно что времени не хватает. А пока мись помогите плиз на первых парах а?
    Заране благодарен!
    13 января 2010 г. 18:38
  • А что некие смдлеты типа Get-Share их попросту нет в стандартной установке PowerShell ?
    Пытаюсь выполнить вот этот скрипт большой http://www.sysadmins.lv/CategoryView,category,PowerShellACL.aspx
    нефига ноль эмиоций!
    Сохранил в файл example.ps1 , скрипт срабатывает-только ничего нет, пустота никакх действий.
    В чем может быть причина то?

    14 января 2010 г. 8:03
  • А что некие смдлеты типа Get-Share их попросту нет в стандартной установке PowerShell ?

    это не комадлеты, это функции, которые написаны Вадимом и опубликованы в его блоге. Конечно же их нет в стандартной установке.
    14 января 2010 г. 9:14
  • Ну дак как дальше то быть?
    Скрипт не делает ваще ничего
    а проблема остается?

    14 января 2010 г. 9:35
  • Ну дак как дальше то быть?
    Скрипт не делает ваще ничего
    а проблема остается?


    Скрипт делает доступными для использования текущем сеансе PowerShell функции, которые в нем определены.

    IMHO, вам надо начать с чтения литературы по Posh.
    14 января 2010 г. 9:43
  • Все почитаю, даже есть литература, но мне сейчас необходимо просмотреть принадлежность групп к шарам и все.

    14 января 2010 г. 11:58
  • Restless, Вы бы стратегию использования групп и назначения доступа на ресурсы использовали бы - проблем было бы меньше... ;)
    14 января 2010 г. 14:47
    Отвечающий
  • Дмитрий при всем Уважении, не нужно передергивать!
    Я эту стратегию не внедрял, стратегия уже с 2004 года это первое, второе-сейчас мы пытаемся привести все в порядок более или менее по ходу дела.
    Лучьше бы подсказали какой нибудь скрипт, либо инструмент побыстрее сделать отчет о группах безоасности к которым привязаны определенные шары. И все.

    14 января 2010 г. 19:17
  • posh обязателен?
    пробежаться по сервакам SRVCHECK \\ComputerName - список шар и шарепермишнов
    ну еще вот тут гляньте http://social.technet.microsoft.com/Forums/ru-RU/scrlangru/thread/2cca58f3-cdf0-4dea-b0e5-42193d21d6e7
    ответов там нет, но может что найдете
    14 января 2010 г. 22:53
  • Могу предложить скрипт FindLanDomenServerShares_v1.ps1 .
    После загрузки файла, необходимо изменить расширение doc на ps1.

    Описание:
    Получает список серверов из АД. Получает список открытых ресурсов(шар) на серверах. Получает список разрешений, необходимых пользователям и группам пользователей для доступа к ресурсу.

    Синтаксис:
    FindLanDomenServerShares_v1.ps1 [[-Domen] <string[]>] [[-User] <string[]>][[-LogPath] <string[]>]

    Параметры:
    -Domen
    Имя домена из, которого необходимо взять список серверов.

    -User
    Учетные данные пользователя (админ домена) вида domen\user

    -LogPath
    Папка для сохранения собранных данных(по умолчанию D:\TMP\LOG)

    Пример:
    PS C:\FindLanDomenServerShares_v1.ps1 -Domen gavan -user gavan\adm
    • Предложено в качестве ответа Angel-Keeper 19 января 2010 г. 1:10
    15 января 2010 г. 6:19
  • Выгружает файлы и выдает ошибку типа :
    The term 'Get-QADComputer' is not recognized as a cmdlet, function, operable program, or script file. Verify the term a
    nd try again.
    At C:\ps\acl.ps1:35 char:22
    + $LC = Get-QADComputer <<<<  -OSName '*server*' -Service $Domen -Credential $Connection -ErrorAction SilentlyContinue
    -SizeLimit 0 | Sort-object Name | foreach {$_.name -replace " *",""}

    15 января 2010 г. 8:27
  • Еще раз:
     есть группа безопасности в AD, ХОЧУ узнать на какие шары она распространяется в доменен и все! как это скорее еще можно сделать?

    15 января 2010 г. 9:12
  • Еще раз:
     есть группа безопасности в AD, ХОЧУ узнать на какие шары она распространяется в доменен и все! как это скорее еще можно сделать?

    Написать скрипт, который
    1)получит перечень всех компьютеров в AD
    2)опросит компьютеры из списка, полученого в п.1, и получит перчень всех "шар" на каждом из компьютеров
    3)для каждой "шары" проверит наличие указанной группы  безопасности в списке разрешений этой "шары".
    15 января 2010 г. 9:31
  • Ребят вот есть такой скрипт :
    function Get-SharePermission
    {
        Param($Server = $env:ComputerName)
       
        $ShareSecurity = Get-WMIObject win32_LogicalShareSecuritySetting -comp $Server
       
        foreach($Share in $ShareSecurity)
        {
            $ShareName = $Share.Name
            $ACLS = $Share.GetSecurityDescriptor().Descriptor.DACL
            foreach($ACL in $ACLS)
            {
                $User = $ACL.Trustee.Name
                switch ($ACL.AccessMask)
                {
                    2032127   {$Perm = "Full Control"}
                    1245631   {$Perm = "Change"}
                    1179817   {$Perm = "Read"}
                }
                $myobj = "" |Select-Object ShareName,User,Permission
                $myobj.ShareName = $ShareName
                $myobj.User = $User
                $myobj.Permission = $Perm
                $myobj
            }
        }
    }

    Каким образом его воспроизвести? Я так понимаю сохранить в файл с расширением .ps1, далее запустить и ввести требуемую функция типа Get-SharePermission ?
    Так? 

    15 января 2010 г. 10:24
  • Не просто запустить, а выполнить в текущей сессии, то есть так:
    . c:\script.ps1

    >Все почитаю, даже есть литература, но мне сейчас необходимо просмотреть принадлежность групп к шарам и все.
    Не стоит так относится к скриптам, это не магическая кнопка "сделать хорошо". Запуск скрипта без понимания его работы, может привести к нежелательным результатам. Стоит хотя бы изучить основы языка, чтобы понимать что вы делаете.


    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    17 января 2010 г. 6:26
    Модератор
  • Выгружает файлы и выдает ошибку типа :
    The term 'Get-QADComputer' is not recognized as a cmdlet, function, operable program, or script file. Verify the term a
    nd try again.
    At C:\ps\acl.ps1:35 char:22
    + $LC = Get-QADComputer <<<<  -OSName '*server*' -Service $Domen -Credential $Connection -ErrorAction SilentlyContinue
    -SizeLimit 0 | Sort-object Name | foreach {$_.name -replace " *",""}

    Ах да!!! =) Забыл написать, что для работы скрипта потребуется установить оснастку Quest Software - Management Shell for Active Directory и в файле профиля PowerShaell-а Microsoft.PowerShell_profile.ps1 добавить запись
    # Подключаем оснастку Quest Software
    Add-PSSnapin Quest.ActiveRoles.ADManagement
    
    18 января 2010 г. 3:37