none
Запуск скриптов PowerShell без прав доменного админа RRS feed

  • Вопрос

  • Добрый день! Подскажите, пожалуйста, как можно выдать какому-либо из участников домена права на запуск скриптов в Exchange PowerShell? Ситуация такая - есть на Exchange админская учетка, там лежат скрипты для разных целей, например, вывода "белого" списка отправителей. Возникла необходимость одной из доменных учеток предоставить доступ к Exchange, я выдал этой учетке роль Remote Desktop users, но когда этот сотрудник заходит в свой сеанс - скрипт не запускается - выдается куча ошибок по каждой из команд. Проверил командой:

    Get-ExecutionPolicy Unrestricted

    То есть у этого сотрудника вроде как нет ограничений на выполнение скриптов. Но выполняется скрипт только в том случае, если запустить PowerShell от имени доменного админа непосредственно в его сеансе. Хотелось бы не давать учетке такие права, как можно выкрутиться? Спасибо за ответы.

    29 сентября 2015 г. 9:19

Ответы

  • Вот тут все написано:

    https://technet.microsoft.com/ru-ru/library/jj150514(v=exchg.150).aspx

    https://technet.microsoft.com/ru-ru/library/dd351056(v=exchg.150).aspx

    Если нет полного понимания, предлагаю развернуть тестовою среду и в ней все делать. (Хотя во всех этих статьях все достаточно подробно написано)

    29 сентября 2015 г. 14:22
  • Если с GET-* еще можно было обойтись только правами на просмотр, то с SET-* уже так не получится.

    Как вариант, можно загнать скрипт в планировщик задач, запуская от имени сервисной учетки с правами organization management. Ну или создать новую роль, это не очень сложно:

    https://technet.microsoft.com/en-us/library/dd638105(v=exchg.150).aspx

    http://blogs.technet.com/b/nepapfe/archive/2014/02/05/create-a-custom-admin-role-for-exchange-using-rbac.aspx

    29 сентября 2015 г. 12:12

Все ответы

  • Для выполнения скриптов, пользователь должен обладать необходимыми права в Exchange. Для каждого командлета прописаны разрешения, которые позволяют его запускать.

    Innovation distinguishes between a leader and a follower - Steve Jobs

    29 сентября 2015 г. 9:34
  • Все зависит от того, какие задачи должен выполнять пользователь(т.е. что делает скрипт, запускаемый от имени пользователя). Есть встроенные группы ролей exchange (https://technet.microsoft.com/ru-ru/library/dd638105(v=exchg.150).aspx), можно добавить пользователя в одну из групп. Если этого не достаточно, то можно создать свою группу как пример (http://blogs.technet.com/b/rmilne/archive/2013/08/07/creating-rbac-role-to-delegate-contact-management.aspx).
    • Изменено Guznin KA 29 сентября 2015 г. 9:37
    29 сентября 2015 г. 9:35
  • Я с вашего позволения приведу фрагмент скрипта:

    $strLogin = $env:username
        $strDomain = $env:userdomain
        $credential=$strDomain+"\"+$strLogin
       
        
        $s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mail.company.ru/PowerShell/ -Authentication Kerberos
        Import-PSSession $s

    .....

    $list = (Get-ContentFilterConfig).BypassedSenderDomains

    .....

    То есть при старте автоматически берутся реквизиты текущей учетки и от их имени вызываются уже все команды. И конкретно вот эта - Get-ContentFilterConfig - не хочет работать ни от какой учетки, кроме доменного админа. В какую группу ролей нужно внести учетную запись, чтобы стало возможным вызвать эту команду?

    29 сентября 2015 г. 10:40
  • Я с вашего позволения приведу фрагмент скрипта:

    $strLogin = $env:username
        $strDomain = $env:userdomain
        $credential=$strDomain+"\"+$strLogin
       
        
        $s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mail.company.ru/PowerShell/ -Authentication Kerberos
        Import-PSSession $s

    .....

    $list = (Get-ContentFilterConfig).BypassedSenderDomains

    .....

    То есть при старте автоматически берутся реквизиты текущей учетки и от их имени вызываются уже все команды. И конкретно вот эта - Get-ContentFilterConfig - не хочет работать ни от какой учетки, кроме доменного админа. В какую группу ролей нужно внести учетную запись, чтобы стало возможным вызвать эту команду?

    https://technet.microsoft.com/ru-ru/library/jj150514(v=exchg.150).aspx

    https://technet.microsoft.com/ru-ru/library/aa998807%28v=exchg.150%29.aspx?f=255&MSPPError=-2147217396

    нужно добавить пользака в группы управление организацией, управление санацией



    • Изменено Guznin KA 29 сентября 2015 г. 10:50
    • Предложено в качестве ответа Guznin KA 30 сентября 2015 г. 9:17
    29 сентября 2015 г. 10:47
  • Ага, добавил в organization management group - теперь работает скрипт. Но при этом у учетки появилась возможность выключить или перезагрузить сервер. А можно так сделать, чтобы права на выполнение скрипта оставить, но сделать невозможным выключение и перезагрузку Exchange-сервера?
    29 сентября 2015 г. 11:26
  • Можно попробоввать добавить в группу  organization management только для просмотра. ( Опят-таки, нужно понимать что делает скрипт, гарантий что сработает нет). Если бы вы сказали в чем задача( в целом), возможно я бы подсказал как ее можно решить.
    29 сентября 2015 г. 11:48
  • Скрипт при запуске отображает список доверенных доменов, с которых следует принимать почту, минуя контент-фильтр. И позволяет добавить в список новый домен. Все это в виде GUI. По сути там 2 команды - Get-ContentFilterConfig и Set-ContentFilterConfig. Неужели придется новую роль создавать?
    29 сентября 2015 г. 11:54
  • Если с GET-* еще можно было обойтись только правами на просмотр, то с SET-* уже так не получится.

    Как вариант, можно загнать скрипт в планировщик задач, запуская от имени сервисной учетки с правами organization management. Ну или создать новую роль, это не очень сложно:

    https://technet.microsoft.com/en-us/library/dd638105(v=exchg.150).aspx

    http://blogs.technet.com/b/nepapfe/archive/2014/02/05/create-a-custom-admin-role-for-exchange-using-rbac.aspx

    29 сентября 2015 г. 12:12
  • Если я правильно понимаю, можно взять за основу какую-либо из ролей и убрать из нее ненужные команды, оставив только те, что потребуются для данного скрипта? Вот, к примеру:

    Get-ManagementRole "Mail Recipients" | Get-ManagementRoleEntry

    В этой роли множество команд, но Get-ContentFilterConfig нет. А как узнать, в какой из существующих ролей уже есть эта команда?

    29 сентября 2015 г. 14:09
  • Вот тут все написано:

    https://technet.microsoft.com/ru-ru/library/jj150514(v=exchg.150).aspx

    https://technet.microsoft.com/ru-ru/library/dd351056(v=exchg.150).aspx

    Если нет полного понимания, предлагаю развернуть тестовою среду и в ней все делать. (Хотя во всех этих статьях все достаточно подробно написано)

    29 сентября 2015 г. 14:22