none
Powershell orchestrator runbook

    Вопрос

  • День добрый.

    Изучаю тут orchestrator runbook, не могу не как сообразить, подскажите плз

    Ну или посоветуйте, что почитать, толкового с примерами не чего не могу найти...

    Есть например задачка:

    входные данные: имя пользователя и дата-время начала runBookа.

    ввожу  имя пользователя и дату, после наступления даты начинает выполняться скрипт который перемещает почтовый ящик в другую базу данных.

    1) вопрос

    в инициализацию данных я создал форму ввода логина 

    Как добавить дату и время?

    2) вопрос

    У меня есть скрипт  для перемещения почтового ящика в другую базу.

    $name = "temp2" | New-moverequest -identity $name -targetdatabase "fired" 

    как сделать, что бы в переменную $name падало значение которую я ввожу в инициализации данных в поле "Common name" ?

    13 сентября 2018 г. 16:05

Ответы

  • Начнем с того, что Powershell можно не использовать. 

    Вам надо импортировать пакет интеграции Exchange Admin. 

    В нем есть различные действия, в том числе и Create Move Request.

    Чтобы в любую переменную попадало значение, надо действие "Инициализация данных" соединить со следующим действием. 

    После этого в действии, где вам нужно имя пользователя нажимаете правую кнопку мыши и делаете "Подписаться" -> "Опубликованные данные" и из предыдущих действий находите инициализацию и нужную переменную в ней. 

    По поводу даты - в инициализации данных вам надо выбрать тип "Строка". Затем, строку надо преобразовать к дате, для этого есть действие "Форматирование даты и времени".

    А вот дальше, скорее всего в действии "Запуск сценария .Net" с типом PowerShell в цикле сравнивать время с заданным и при наступлении нудного выполнять перемещение п/я.

    Запустить такой ранбук можно при помощи Runbook Tester или Orchestration Console.

    • Предложено в качестве ответа Anton V AntonovModerator 14 сентября 2018 г. 18:07
    • Помечено в качестве ответа Dedman2k3 17 сентября 2018 г. 12:16
    13 сентября 2018 г. 19:04
  • С другой стороны мне непонятно зачем нужно ждать какое-то время, чтобы создать и запустить перемещение почтового ящика - в Exchange перемещение происходит незаметно для пользователя и максимум что он увидит это просьбу закрыть и открыть Ourlook, если клиентом является он. 

    Еще пара моментов

    - Orchestrator наверняка установлен не на том же сервер что Exchange, поэтому для запуска чего угодно через Powershell вам придется сначала создать PSSession, затем импортировать и уже в рамках этой сессии работать. Пакет интеграции позволяет всего этого избежать.

    - Orchestrator, мягко говоря, не очень удобно использовать для ручного запуска ранбуков. Лучше всего ранбуки запускать ожидая изменений внешних условий при помощи действий "Мониторинг". Например можно дожидаться необходимых изменений какого-либо списка SharePoint либо создания или изменения какого либо рабочего элемента в SCSM (если используется). 

    Можно также мониторить создание или изменение файла в папке, а затем считать параметры из этого файла (дату и имя пользователя), а по завершении обработки файл удалить.

    Можно даже проверять содержимое почтового ящика и при появлении сообщения с необходимыми критериями выполнять необходимые действия над чем угодно.


    • Изменено Антон Петров 13 сентября 2018 г. 19:17
    • Предложено в качестве ответа Anton V AntonovModerator 14 сентября 2018 г. 18:09
    • Помечено в качестве ответа Dedman2k3 17 сентября 2018 г. 12:16
    13 сентября 2018 г. 19:16
  • Может быть что-то с настройкой параметров для пакета интеграции?

    Посмотрите тут.

    • Помечено в качестве ответа Dedman2k3 17 сентября 2018 г. 12:16
    14 сентября 2018 г. 9:32

Все ответы

  • Начнем с того, что Powershell можно не использовать. 

    Вам надо импортировать пакет интеграции Exchange Admin. 

    В нем есть различные действия, в том числе и Create Move Request.

    Чтобы в любую переменную попадало значение, надо действие "Инициализация данных" соединить со следующим действием. 

    После этого в действии, где вам нужно имя пользователя нажимаете правую кнопку мыши и делаете "Подписаться" -> "Опубликованные данные" и из предыдущих действий находите инициализацию и нужную переменную в ней. 

    По поводу даты - в инициализации данных вам надо выбрать тип "Строка". Затем, строку надо преобразовать к дате, для этого есть действие "Форматирование даты и времени".

    А вот дальше, скорее всего в действии "Запуск сценария .Net" с типом PowerShell в цикле сравнивать время с заданным и при наступлении нудного выполнять перемещение п/я.

    Запустить такой ранбук можно при помощи Runbook Tester или Orchestration Console.

    • Предложено в качестве ответа Anton V AntonovModerator 14 сентября 2018 г. 18:07
    • Помечено в качестве ответа Dedman2k3 17 сентября 2018 г. 12:16
    13 сентября 2018 г. 19:04
  • С другой стороны мне непонятно зачем нужно ждать какое-то время, чтобы создать и запустить перемещение почтового ящика - в Exchange перемещение происходит незаметно для пользователя и максимум что он увидит это просьбу закрыть и открыть Ourlook, если клиентом является он. 

    Еще пара моментов

    - Orchestrator наверняка установлен не на том же сервер что Exchange, поэтому для запуска чего угодно через Powershell вам придется сначала создать PSSession, затем импортировать и уже в рамках этой сессии работать. Пакет интеграции позволяет всего этого избежать.

    - Orchestrator, мягко говоря, не очень удобно использовать для ручного запуска ранбуков. Лучше всего ранбуки запускать ожидая изменений внешних условий при помощи действий "Мониторинг". Например можно дожидаться необходимых изменений какого-либо списка SharePoint либо создания или изменения какого либо рабочего элемента в SCSM (если используется). 

    Можно также мониторить создание или изменение файла в папке, а затем считать параметры из этого файла (дату и имя пользователя), а по завершении обработки файл удалить.

    Можно даже проверять содержимое почтового ящика и при появлении сообщения с необходимыми критериями выполнять необходимые действия над чем угодно.


    • Изменено Антон Петров 13 сентября 2018 г. 19:17
    • Предложено в качестве ответа Anton V AntonovModerator 14 сентября 2018 г. 18:09
    • Помечено в качестве ответа Dedman2k3 17 сентября 2018 г. 12:16
    13 сентября 2018 г. 19:16
  • Большое спс, за ответ, становиться более понятнее.

    Сделал пакет интеграции с Exchange Admin.

    Решил воспользоваться с начало Create Move Request.

    Как я сделал:

    в Инициализации данных у меня два поля Common Name и BaseDB

    В Create Move Request У  меня также два поля: Identity и Target Database. В поле Identity  выбрано через\ Подписаться опубликованные данные\  Comon Name.

    В поле Target Database выбрано через\ Подписаться опубликованные данные\  BaseDB.

    Далее в Create and Send E-mail В поле To вписал свой email( что бы мне сообщение пришло, что почтовый ящик перемещен)

    в поле Subject: {Common Name из "Инициализация данных"}

    в  поле Body: перемещен в базу {BaseDB из "Инициализация данных"}

    но при тестировании выводит ошибку:

    Error opening remote PowerShell runspace to endpoint https://spb-srv-exch01/powershell: Службе WinRM не удается обработать запрос, поскольку он должен быть отправлен на другой компьютер. Используйте сведения перенаправления для отправки запроса на новый компьютер. 

    Exception: ExchangeGatewayException
    Target site: RemoteExchangeGateway.OpenRunspace

    Stack trace:
       в SystemCenter.IntegrationPack.ExchangeAdmin.Gateway.Core.RemoteExchangeGateway.OpenRunspace()
       в SystemCenter.IntegrationPack.ExchangeAdmin.Domain.ExchangeGatewayFactory.CreateRemote(ExchangeConfiguration configuration, IActivityLogger logger)
       в SystemCenter.IntegrationPack.ExchangeAdmin.Domain.ExchangeGatewayFactory.CreateGateway(ExchangeConfiguration configuration, IActivityLogger logger)
       в SystemCenter.IntegrationPack.ExchangeAdmin.Activity.ExchangeActivity.Execute(IActivityRequest request, IActivityResponse response)



    14 сентября 2018 г. 8:36
  • Может быть что-то с настройкой параметров для пакета интеграции?

    Посмотрите тут.

    • Помечено в качестве ответа Dedman2k3 17 сентября 2018 г. 12:16
    14 сентября 2018 г. 9:32
  • С другой стороны мне непонятно зачем нужно ждать какое-то время, чтобы создать и запустить перемещение почтового ящика - в Exchange перемещение происходит незаметно для пользователя и максимум что он увидит это просьбу закрыть и открыть Ourlook, если клиентом является он. 

    Еще пара моментов

    - Orchestrator наверняка установлен не на том же сервер что Exchange, поэтому для запуска чего угодно через Powershell вам придется сначала создать PSSession, затем импортировать и уже в рамках этой сессии работать. Пакет интеграции позволяет всего этого избежать.

    - Orchestrator, мягко говоря, не очень удобно использовать для ручного запуска ранбуков. Лучше всего ранбуки запускать ожидая изменений внешних условий при помощи действий "Мониторинг". Например можно дожидаться необходимых изменений какого-либо списка SharePoint либо создания или изменения какого либо рабочего элемента в SCSM (если используется). 

    Можно также мониторить создание или изменение файла в папке, а затем считать параметры из этого файла (дату и имя пользователя), а по завершении обработки файл удалить.

    Можно даже проверять содержимое почтового ящика и при появлении сообщения с необходимыми критериями выполнять необходимые действия над чем угодно.


    Если в кратце есть задача. автоматизировать блокировку пользователей.

    Мне сотрудник  сулжбы персонала пишет заявку\Письмо, ФИО сотрудника увольняется такого то числа.

    НУ я и подумал, сделать runbook, Блокировка пользователя\ удаления пользователя из всех групп\перемещение пользователя в OU "Fired" \ Далее перемещение почтового ящика в базу fired с медленными дисками\снять галку Не отображать в списках адресов"\ убрать учетку из skype for Бизнес.  Не знаю, можно ли сделать отслеживание по приходящему письму? ( с конкретным текстом) выдернул из письма фамилию и дату мне пришло вывод на почту подверждаете, что эту учетку нужно заблокировать я ок, и RunBOOK  пошел выполнять действия.

    после которого запускается RunBook а не самому вводить имя и базу куда отправлять..



    • Изменено Dedman2k3 14 сентября 2018 г. 10:37
    14 сентября 2018 г. 10:33
  • По письму можно, но либо надо договариваться о формате сообщения, либо придется сложный парсер писать.

    Гораздо лучше, если эта заявка будет создана в какой-либо учетной системе (SharePoint, SCSM, что-нибудь еще...).

    14 сентября 2018 г. 11:36
  • но по формате сообщения норм, формат он один и тот же.

    Как по формату сообщения? подобрать?

    у нас otrs заявки падают, а потом в личку заявка падает. доступа в otrs нету.

    14 сентября 2018 г. 12:25
  • Может быть что-то с настройкой параметров для пакета интеграции?

    Посмотрите тут.

    СПС проблему решил, последним пунктом. я его ка кто пропустил

    To configure WinRM for HTTP unencrypted communication

    On the machine where Orchestrator runbooks are executed, configure WinRM trusted hosts and to allow unencrypted traffic:

    1. Open the Local Group Policy user interface: Windows Start Button > Run > gpedit.msc.
    2. Navigate to Local Computer Policy > Computer Configuration > Administrative Templates > Windows Components > Windows Remote Management (WinRM) > WinRM Client.
    3. Make sure that Allow unencrypted traffic is Enabled.
    4. Add the targeted computer that runs Exchange Server to the Trusted Hosts list.

    On the Exchange server, make sure that PowerShell does not require SSL:

    1. Start Internet Information Services (IIS) Manager.
    2. Navigate to the PowerShell site.
    3. Open SSL Settings.
    4. Make sure that the Require SSL check box is not selected.

    14 сентября 2018 г. 12:44
  • Если сообщение имеет четкую структуру, то парсер буде простым.

    Скорее всего текст придется анализировать в PowerShell.

    14 сентября 2018 г. 12:57