Русский
Русский
English
Статистика
Реклама

Microsoft 365

Вебинар защита конфиденциальной информации и управление рисками, связанными с данными

14.05.2021 10:12:48 | Автор: admin
27-28 мая, на английском с субтитрам на русском27-28 мая, на английском с субтитрам на русском

Поскольку люди все чаще переходят на удаленную работу, защита информации вашей организации и управление рисками должны стать главным приоритетом. Виртуальный учебный день Microsoft Security: защита конфиденциальной информации и управление рисками данных научит вас пользоваться преимуществами технологий Microsoft, которые выявляют и устраняют риски, возникающие при создании, хранении, совместном использовании и использовании конфиденциальных данных.

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

На этом мероприятии:

  • Поймите, идентифицируйте и защитите свои самые конфиденциальные данные.

  • Выявляйте инсайдерские риски и нарушения кодекса поведения и принимайте соответствующие меры.

  • Используйте защиту информации и управление.

Подробности и регистрация.

Подробнее..

Бесплатные обучающие мероприятия по Microsoft 365 в марте

05.03.2021 10:06:07 | Автор: admin

На этой неделе уже вышло 2 подборки с нашими бесплатными крутыми мероприятиями по 2 направлениям: развитие бизнеса и Microsoft Azure. Пришло время заключительной статьи с вебинарами по Microsoft 265. Под катом 2 интересных эвента. Регистрируйтесь, будем рады пообщаться с вами на днях виртуального обучения Microsoft. Подробности под катом.

1. Безопасность и защита вашей организации

11-12 марта, на английском с субтитрами на русском

Когда сотрудники уверены в своей способности удаленно и безопасно сотрудничать, они могут без проблем добиваться большего. Узнайте, как защитить данные, устройства и приложения, упростив ИТ и минимизируя влияние на сотрудников, на виртуальном учебном дне Microsoft Security: безопасность и защита вашей организации. Во время этого бесплатного обучающего мероприятия, состоящего из двух частей, и сопутствующих вопросов и ответов вы заложите основу для защиты цифрового следа вашей компании.

Во время этого учебного мероприятия вы узнаете, как:

  • Создавать синхронизацию, защиту и управление идентификационной информацией

  • Использовать безопасность в Microsoft 365

  • Интегрировать планы безопасности облачных приложений и управления устройствами.

Подробности и регистрация.

2. Построение интеграций и рабочих процессов Microsoft Teams

18-19 марта, на английском с субтитрами на русском

Удаленная работа требует более разумных рабочих процессов. Виртуальный учебный день Microsoft 365: создание интеграции и рабочих процессов Microsoft Teams показывает, как платформа для разработчиков Microsoft Teams упрощает интеграцию ваших приложений и служб для повышения производительности, ускорения принятия решений и создания совместной работы на основе существующего контента и рабочих процессов.

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

Во время этого тренинга, состоящего из двух частей, вы узнаете, как:

  • Создавать современные решения для совместной работы корпоративного уровня с Microsoft Teams

  • Преобразовывать повседневные бизнес-процессы с помощью интеграции платформы Microsoft 365 для Power Platform, SharePoint и Microsoft Office

  • Использовать множество данных в Microsoft Graph для расширения возможностей Microsoft 365 и создания уникальных интеллектуальных приложений

Подробности и регистрация.

Подробнее..

Microsoft 365 Training Day погружение в Microsoft Teams 21 июля

13.07.2020 18:21:24 | Автор: admin


Текущие ожидания бизнеса от ИТ и бурное развитие облачных сервисов меняют подход к работе в компаниях коренным образом и трансформируют ежедневную работу отделов ИТ. Современные коммуникации не просто чаты, звонки или почта это и автоматизация бизнес-процессов, и интеграция приложений, и широкие возможности по организации совместной работы, соответствующие современным требованиям безопасности. Microsoft Teams продолжает стремительно развиваться, чтобы быть единым центром командной работы для компаний из любых отраслей и сотрудников из разных подразделений.

Регистрация

Под катом изучайте расписание.

Программа


10.00 10.20 Обзор возможностей Microsoft Teams
Антон Борисов, Менеджер по продвижению и адаптации решений бизнес продуктивности, Microsoft
10.20 11.00 Microsoft Power Platform
Дмитрий Лобода, Архитектор по бизнес-решениям в Центральной и Восточной Европе, Microsoft;
Михаил Головастиков, Генеральный директор, Ggroupp
11.00 11.45 Гостевой и федеративный доступ в Microsoft Teams
Евгений Артемьев, Технический консультант партнеров Microsoft
11.45 12.30 Перерыв
12.30 14.00 Базовые и продвинутые возможности телефонии в Miсrosoft Teams
Евгений Артемьев, Технический консультант партнеров Microsoft;
Борис Базилевский, Консультант по решениям, AudioCodes
14.00 14.15 Эффективная совместная работа распределенной команды
Антон Бугрин, Ведущий специалист по решениям Logitech для совместной работы;
Сергей Громов, Менеджер по работе с заказчиками, направления видеорешений для совместной работы, Logitech
14.15 14.30 Видеорешения Yealink
Артур Дусов, Менеджер по продукции ВКС, IPMATIKA;
Юрий Якушин Пресейл инженер по продукции Yealink ВКС
14.30 16:00 Платформа приложений Microsoft Teams
Наталья Кац, Архитектор по партнерским решениям Microsoft;
Аркадий Золотовицкий, Директор по Развитию бизнеса i-Sys

Регистрация
Подробнее..

Построение интеграции и рабочих процессов Microsoft Teams

18.01.2021 10:10:41 | Автор: admin

Четверг, 21 января 2021 г. | 12:00-15:00 (GMT +03:00)
22 января 2021 г. | 12:00-16:00 (GMT +03:00)

На английском с субтитрами на русском.

Удаленная работа требует более проработанных рабочих процессов. Виртуальный учебный день Microsoft 365: построение интеграции и рабочих процессов Microsoft Teams показывает, как платформа для разработчиков Microsoft Teams упрощает интеграцию ваших приложений и служб для повышения производительности, ускорения принятия решений и создания совместной работы на основе существующего контента и рабочих процессов.

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

Подробности и регистрация.

Во время этого тренинга, состоящего из двух частей, вы узнаете, как:

  • Создавать современные решения для совместной работы корпоративного уровня с Microsoft Teams

  • Преобразовывать повседневные бизнес-процессы с помощью интеграции платформы Microsoft 365 для Power Platform, SharePoint и Microsoft Office

  • Использовать множество данных в Microsoft Graph для расширения возможностей Microsoft 365 и создания уникальных интеллектуальных приложений.

Подробности и регистрация.

Подробнее..

Бесплатные вебинары апреля по Microsoft 365

12.04.2021 10:16:29 | Автор: admin

Привет, Хабр! Сегодня по традиции делимся ссылками и подробностями о наших ивентах по Microsoft 365 в апреле. В этот раз их 2, оба на английском, но с субтитрами на русском. Заглядывайте под кат.

1. Построение интеграции и рабочих процессов Microsoft Teams

15-16 апреля15-16 апреля

Удаленная работа требует более разумных рабочих процессов. Виртуальный учебный день Microsoft 365: создание интеграции и рабочих процессов Microsoft Teams показывает, как платформа для разработчиков Microsoft Teams упрощает интеграцию ваших приложений и служб для повышения производительности, ускорения принятия решений и создания совместной работы на основе существующего контента и рабочих процессов.

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

Во время этого тренинга, состоящего из двух частей, вы узнаете, как:

  • Создавать современные решения для совместной работы корпоративного уровня с Microsoft Teams

  • Преобразовывать повседневные бизнес-процессы с помощью интеграции платформы Microsoft 365 для Power Platform, SharePoint и Microsoft Office

  • Использовать множество данных в Microsoft Graph для расширения возможностей Microsoft 365 и создания уникальных интеллектуальных приложений

Подробности и регистрация.

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

22-23 апреля22-23 апреля

Поскольку люди все чаще переходят на удаленную работу, защита информации вашей организации и управление рисками должны стать главным приоритетом. Виртуальный учебный день Microsoft Security: защита конфиденциальной информации и управление рисками данных научит вас пользоваться преимуществами технологий Microsoft, которые выявляют и устраняют риски, возникающие при создании, хранении, совместном использовании и использовании конфиденциальных данных.

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

Узнайте, как:

  • Фиксировать, идентифицировать и защищать свои самые конфиденциальные данные

  • Выявлять инсайдерские риски и нарушения кодекса поведения и принимать соответствующие меры

  • Использовать защиту информации и управление

Подробности и регистрация.

Подробнее..

Microsoft Message Center в Telegram через PowerShell и Azure Automation

09.03.2021 20:23:18 | Автор: admin

И плюс, и минус любой SaaS системы в том, что она управляется не нами, и мы никак (в большинстве случаев) не можем повлиять на цикл обновлений основного функционала и добавление новых фич. Однако эти обновления могут носить собой как информативный характер и не нести никаких серьезных изменений в функционал, так и могут и быть критическими для инфраструктуры, что в свою очередь несет собой дополнительные риски для бизнеса, а стало быть, и для нашего спокойствия, как для IT инженеров все это дело поддерживающих. О том, как получать все необходимые сообщения об обновлениях в Microsoft 365 не устанавливая для этого никаких дополнительных приложений будет эта статья. Из всего что нам понадобится, это зарегестированное приложение для доступа в API в Azure Active Directory, Azure Automation, PowerShell и бот в Телеграм.

Задача:

Написать скрипт, который будет раз в час стучаться в API M365, проверять там наличие новых сообщений и присылать их нам в Teams канал или в Telegram.

Информацию обо всех грядущих изменениях можно получить из двух основных источников:

  1. Microsoft 365 Roadmap

  2. Microsoft 365 Message Center

Чтобы получить информацию из первого варианта, никаких дополнительных учетных записей не требуется, т.к. инфа в открытом виде и имеется RSS feed, что подтолкнуло к написаю простенького скрипта для мониторинга RSS фида и направления его в Telegram канал. Найти этот канал вы можете по этой ссылке.

Стоит заметить, что информация доступная в Roadmap не является исчерпывающей и плюс к тому, обновления не накатываются на все тенанты разом, плюс эффект от обновления на тот или иной тенант может быть разным, что побудило Microsoft запустить Message Center который бы давал информацию об обновлениях конкретно вашего тенанта. Помимо всего прочего, там бывают и сообщения, имеющие общий характер.

Для простоты разработки, был выбран PowerShell, т. к. он нативно поддерживается Azure Automation чуть ли не с самого начала. Чтобы получить доступ к информации внутри тенанта не вводя логин и пароль, нужно зарегистрировать приложение в Azure Active Directory и дать приложению соответствующие права.

1. Заходим на сайт Azure и в строке поиска вводим Active Directory

AAD в AzureAAD в Azure

2. В левом боковом меню в разделе Manage выбираем App registrations

3. Здесь нажимаем на кнопку New Registration и попадаем в меню создания нового приложений внутри Azure Active Directory

4. В поле Name необходимо ввести уникальное имя для приложений внутри тенанта, остальные же поля можно оставить как есть.

5. Нажимаем Register и попадаем в созданное приложение. Здесь присутствуют данные, которые понадобятся нам в дальнейшем, а именно:

  • Application ID

  • Directory ID

Их желательно заранее куда ни будь сохранить.

6. Для авторизации посредством приложения, нужно сгенерировать Client Secret, без которого токен не получить. Для этого в левом боковом меню выбираем Certificates & Secrets и нажимаем на New Client Secret. Как понятно из названия здесь так же присутствует возможность авторизации посредством сертификата, но в данном примере будет использоваться именно Client Secret.

7. В появившемся окне нужно добавить Description к создаваемому секрету и указать его срок жизни.

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

9. Далее необходимо предоставить приложению права читать Message Center. Для этого переходим в меню API Permissions

10. Здесь присутствуют стандартные права в Graph API User.Read, которые отвечают за доступ к информации об аккаунте авторизовавшегося юзера.

Давайте на этом пункте остановится чуточку подробнее.

В M365 есть два основных вида прав, это Delegated Permissions, которые могут быть использованы только при авторизации в приложении пользователем, и Application Permissions которые можно использовать без авторизации человеком. Это очень полезно, когда необходимо что-то автоматизировать, а у вас в тенанте настроен обязательный MFA для всех учетных записей, однако Delegated Permissions требуют подтверждение Global администратора. User.Read права доступные по умолчанию как раз первого типа, потому их можно сразу же удалить. Щелкаем на права и нажимаем Remove permission.

Теперь же нужно добавить права для чтения Message Center. Нажимаем Add Permission > Скролим вниз и находим Office 365 Management API

11. Выбираем Application Permissions > ServiceHealth.Read и нажимаем Add Permissions

12. Далее если есть роль Global Admin, нажимаем кнопку Grant admin consent, либо просим одобрить права того, у кого эта роль имеется

13. После получения подтверждения, напротив прав должна появится надпись Granted for <tenant name>

На этом история с регистрацией приложения закончена и можно перейти к скрипту.

Первое что необходимо написать, это функцию для авторизации в M365 API, назовем ее Get-APIToken. Функция должна принимать в себя три значения:

  • Application ID

  • Tenant ID (directory ID)

  • App Secret (Client Secret)

Первые два параметра отображались выше в пункте 5 при создании приложения

Функция представляет собой Rest запрос с определенными параметрами на URL вида:

https://login.microsoftonline.com/ + $TenantID + /oauth2/v2.0/token

В итоге функция будет выглядеть следующим образом

Function Get-ApiToken {    [CmdletBinding()]    param (        [Parameter(Mandatory=$True)]        [String]        $AppId, $AppSecret, $TenantID    )    $AuthUrl = "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token"    $Scope = "https://manage.office.com/.default"    $Body = @{        client_id = $AppId        client_secret = $AppSecret        scope = $Scope        grant_type = 'client_credentials'    }    $PostSplat = @{        ContentType = 'application/x-www-form-urlencoded'        Method = 'POST'        Body = $Body        Uri = $AuthUrl    }    try {        Invoke-RestMethod @PostSplat -ErrorAction Stop    }    catch {        Write-Warning "$(Get-Date): Exception was caught: $($_.Exception.Message)"     }}

Теперь можно получить Token и проверить что все прошлые действия были выполнены правильно.

try {    $Token = Get-ApiToken -AppId $ClientId -AppSecret $ClientSecret -TenantID $TenantId -ErrorAction Stop    Write-Output "$(Get-Date): Token successfully issued"}catch {    Write-Error "$(Get-Date): Can't get the token!"    break}

В результате значение токена должно напоминать следующее содержание:

Для того, чтобы получить сообщения из Message Center понадобится две функции, Get-MCMessages и Get-ApiRequestResult

Начнем с функции Get-ApiRequestResult.

Она будет принимать URL запроса, метод и токен.

Из токена формируется header запроса и все это оформляется в Splat.

Function Get-ApiRequestResult {    [CmdletBinding()]    param (        [Parameter(Mandatory=$True)]        [String]        $Url, $Method, $Token    )     $Header = @{        Authorization = "$($Token.token_type) $($Token.access_token)"    }    $PostSplat = @{        ContentType = 'application/json'        Method = $Method        Header = $Header        Uri = $Url    }    try {        Invoke-RestMethod @PostSplat -ErrorAction Stop    }    catch {        $Ex = $_.Exception        $ErrorResponse = $ex.Response.GetResponseStream()        $Reader = New-Object System.IO.StreamReader($errorResponse)        $Reader.BaseStream.Position = 0        $Reader.DiscardBufferedData()        $ResponseBody = $Reader.ReadToEnd();        Write-Output "$(Get-Date): Response content:`n$responseBody" -f Red        throw Write-Error "$(Get-Date): Request to $Uri failed with HTTP Status $($ex.Response.StatusCode) $($ex.Response.StatusDescription)"    }}

Далее необходимо написать функцию для получения сообщений из Message Center.

Для этого нужно сделать Get запрос на адрес https://manage.office.com/api/ServiceComms/Messages

Function Get-MCMessages {    [CmdletBinding()]    param (        [Parameter(Mandatory=$True)]        $APIUrl, $TenantId    )    $ApiVersion = "v1.0"    $MS_resource = "ServiceComms/Messages?&`$filter=MessageType%20eq%20'MessageCenter'"    $Uri = "$APIUrl/$ApiVersion/$($TenantId)/$MS_resource"        $Method = "GET"    try {        Get-ApiRequestResult -Url $Uri -Token $Token -Method $Method -ErrorAction Stop        Write-Output "$(Get-Date): New messages successfully collected"    }    catch {        $Ex = $_.Exception        $ErrorResponse = $ex.Response.GetResponseStream()        $Reader = New-Object System.IO.StreamReader($errorResponse)        $Reader.BaseStream.Position = 0        $Reader.DiscardBufferedData()        $ResponseBody = $Reader.ReadToEnd();        Write-Output "$(Get-Date): Response content:`n$responseBody" -f Red        throw Write-Error "$(Get-Date): Request to $Uri failed with HTTP Status $($ex.Response.StatusCode) $($ex.Response.StatusDescription)"    }}

Небольшое отступление

Зачем сам запрос делится на две функции? Все дело в том, что принцип запросов к различным API M365 выглядит по большей части одинаково, отличаются только ссылки куда следует запрос, а также ресурсы, которые идут после основной ссылки. Для того чтобы переиспользовать последние две функции, необходимо только заменить значения в переменной $MS_Resource и $URL в функции Get-MCMessages. Так например можно получить информацию о мобильниках заэнроленных в Intune, изменив имя функции на Get-IntuneManagedDevices, значение переменной MS_Resource на "deviceManagement/managedDevices", и URL на https://graph.microsoft.com, что существенно сэкономит время на будущих скриптах. Ну и соответственно у приложения должны быть права на чтение информации об устройствах

Данные из запроса приходят списком сообщений следующего вида:

Предполагается, что скрипт будет крутиться в Azure Automation, что накладывает определенные ограничения. Например, как-то нужно проверить новые сообщения на предмет свежести без сохранения всего этого в базу данных, плюс сообщения имеют свойство обновляться. В сообщении имеется параметр LastUpdatedTime, его мы и будем проверять.

Максимальная частота отработки Runbook в Azure Automation 1 раз в час, за этот период мы и будем проверять новые сообщения каждый час. Таким образом, нужны две временные метки: время, когда скрипт будет запущен и час назад от этого времени. Получаем переменные:

$CurrentTime = Get-Date$СontrolTime = ($CurrentTime).AddMinutes(-60)

Получаем список всех сообщений воспользовавшись написанной функцией Get-MCMessages.

$Messages=Get-MCmessages-APIUrl$APIUrl-TenantId$TenantId

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

$NewMessages=$Messages.value|Where-Object{$(Get-date$($_.LastUpdatedTime))-ge$controlTime}

Необходимо проверить есть ли вообще за последний час новые сообщения

$NewMessagesCount = $NewMessages.id.countif ($NewMessagesCount -gt 0) {    Write-Output "$(Get-Date): There are $NewMessagesCount new messages"}else {    Write-Output "$(Get-Date): There is no new messages"    break}

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

if($NewMessagesCount-gt0){foreach($NewMessagein$NewMessages){}}

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

$MessagePreview=$NewMessage.Messages.MessageText$MessageID=$NewMessage.id$MessageTitle=$NewMessage.Title$MessageType=$NewMessage.actiontype$PublishedTime=Get-date$($NewMessage.Messages.publishedTime)$UpdatedTime=Get-Date$($NewMessage.LastUpdatedTime)

Данные в MessageText попадают в формате html, однако мы знаем, что Telegram умеет далеко не все тэги. По этой причине убираем все те тэги, которые были собраны из полученных сообщений, и оставляем только те, которые Telegram принимает. Для этого создаем функцию Remove-HtmlTags, которая принимала бы в себя html и удаляла все те тэги, которые не поддерживаются.

Для этого внутри функции создаем два одномерных массива и один двумерный. Таким образом у нас есть три категории тегов:

  • Простые тэги - имеющие закрывающий тэг и которые как правило не бывают с дополнительными параметрами внутри. С ними можно использовать регулярные выражения

  • Сложные тэги - не имеющие закрывающий тэг, но которые при этом могут вызвать ошибку форматирования.

  • Тэги и просто символы - которые нужно заменить на что-то иное.

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

Function Remove-HtmlTags {    param (        $Text    )    $SimpleTags = @(        'p',        'i',        'span',        'div',        'ul',        'ol',        'h1',        'h2',        'h3',        'div'    )    $TagsToRemove = (        "\<\/?font[^>]*\>",        '\<br\s?\/?\>',        '\&rarr',        'style=""',        ' target\=\"_blank\"'    )    $TagsToReplace = @(        @('\[','<b>'),        @('\]','</b>'),        @('\<A','<a'),        @('\<\/A\>','</a>'),        @('\<img[^>]*\>','[There was an image]'),        @('&nbsp;',' '),        @('\<li\>',' -'),        @('\<\/li\>',"`n")    )    foreach($Tag in $SimpleTags){        $Pattern = "\<\/?$tag\>"        $Text = $Text -replace $Pattern    }    foreach($Tag in $TagsToRemove){        $Text = $Text -replace $Tag    }    foreach($Tag in $TagsToReplace){        $Text = $Text -replace $Tag    }        foreach($Tag in $SimpleTags){        $Pattern = "\<\/?$Tag\>"        $Text = $Text -replace $Pattern    }    $Text    }

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

Скрипт в том виде что вы его видите стал таким не сразу, и претерпел за время определенные изменения. Например, было замечено, что Microsoft особо не заморачивается со стандартизацией и форматированием контента своих сообщений, по этой причине доверять отступам и переносам строки в тексте было бы крайне опрометчиво. Это вынудило меня разбить полученный текст сначала по разрывам строк используя закрывающий тэг </p>, а далее обрабатывать его уже как массив, после же все это объединить в одну переменную, но уже с вынужденным переносом строк без html тэгов. Так же нужно удалить лишние пробелы в тексте.

$MessageTextWithHtmlString=$MessagePreview-split('\<\/p\>')$FormattedMesssageText=$(Remove-HtmlTags$MessageTextWithHtmlString)-creplace'(?m)^\s*\r?\n',''

Далее нужно собрать шапку сообщения. Для этого выделяем жирным Title и добавляем немного служебной информации о сообщении.

$PublishingInfo="Published:$PublishedTime`nUpdated:$UpdatedTime"$TgmMessage="$BoldMessageTitle`n$MessageDescription`n$PublishingInfo`n$FormattedMesssageText"

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

$MessageActionRequiredByDate=$NewMessage.ActionRequiredByDate$MessageAdditionalInformation=$NewMessage.ExternalLink$MessageBlogLink=$NewMessage.BlogLinkif($MessageActionRequiredByDate){$TgmMessage+="`nActionrequiredbydate:$MessageActionRequiredByDate"}elseif($MessageAdditionalInformation){$TgmMessage+="`n$MessageAdditionalInformation'>Additionalinfo"}elseif($MessageBlogLink){$TgmMessage+="`n$MessageBlogLink'>Blog"}

Теперь полученный текст нужно как то отправить в телеграм. Как регистрировать бота и создавать канал описывать здесь излишне, поэтому перейдем к написанию функции отправки сообщений.

Функция должна принять ChatID, Token, ParsingType, на случай если функцию нужно будет где-то использовать еще, ну и сам текст сообщения.

functionSend-TelegramMessage{[CmdletBinding()]param([Parameter(Mandatory=$true)][string]$MessageText,$TokenTelegram,$ChatID[Parameter(Mandatory=$true)][ValidateSet("html","markdown")][string]$ParsingType)$URL_set="http://personeltest.ru/aways/api.telegram.org/bot$TokenTelegram/sendMessage"$Body=@{text=$MessageTextparse_mode=$ParsingTypechat_id=$chatID}$MessageJson=$body|ConvertTo-Jsontry{Invoke-RestMethod$URL_set-MethodPost-ContentType'application/json;charset=utf-8'-Body$MessageJson-ErrorActionStopWrite-Output"$(Get-Date):Messagehasbeensent"}catch{Write-Error"$(Get-Date):Can'tsentmessage"Write-Output"$(Get-Date):StatusCode:"$_.Exception.Response.StatusCode.value__Write-Output"$(Get-Date):StatusDescription:"$_.Exception.Response.StatusDescriptionthrow}    }

И, собственно, сама отправка сообщения:

Send-TelegramMessage-MessageText$TgmMessage-TokenTelegram$TokenTelegram-ChatID$chatID-ParsingType'html'

В итоге мы получаем сообщения вида:

Что касается такой служебной информации как токены, чат ID, секреты и прочее, то все это можно и нужно хранить в месте специально для этого предназначенном. В Azure Automation это Secure Assets. Более подробную информацию можно получить по ссылке.

Ссылка на репозиторий с кодом

Ссылка на канал с запущенным ботом

P.S. буду рад контрибьюторам и предложениям по улучшению бота.

Подробнее..

Организация цифрового рабочего места сотрудника с помощью Microsoft Project Moca

27.10.2020 22:13:13 | Автор: admin
Всем привет! Сегодня будет знакомство с новым сервисом из линейки сервисов Microsoft 365, под названием Project Moca. Данный сервис еще пока находится в стадии Preview и недоступен в явном виде для изучения и использования, но есть некоторые хитрости, которые позволят нам уже сегодня включить его для нашего тенанта и посмотреть, что же он из себя представляет. Но об этом немного позже, для начала, как обычно, немного теории.
В наши дни мы живем среди большого объема информации, а также задач, которые мы выполняем ежедневно. Почта, заметки, события, документы, цели, поручения. Во всем этом очень легко запутаться и потеряться, если не выстроить удобное рабочее место или определенную область, где вся информация будет грамотно размещена для дальнейшего ежедневного использования. Так почему бы не создать единый хаб, в котором будут отображаться все данные, необходимые для работы?



Как раз эту задачу решает новый сервис, под названием Project Moca, который располагается внутри сервиса Outlook for the Web и призван организовать рабочее место, предоставив возможности по настройке личных рабочих областей, с виджетами, необходимыми именно конкретному пользователю для работы. Давайте посмотрим на этот сервис немного поближе?

Включение Project Moca Preview в тенанте Microsoft 365


На момент выхода данного сервиса из стадии preview этот раздел будет уже неактуален, но в данный момент он будет как никогда кстати. Итак, для того чтобы активировать Project Moca в тенанте Microsoft 365 необходимо запустить PowerShell и выполнить последовательно три командлета:

Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline
Set-OwaMailboxPolicy OwaMailboxPolicy-Default -ProjectMocaEnabled $true

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

Второй командлет произведет подключение к сервису Exchange Online. Потребуется ввести учетную запись и пароль пользователя, обладающего правами администратора.

Третий командлет добавит к базовой политике OwaMailboxPolicy-Default поддержку сервиса Project Moca.

После того как все командлеты успешно выполнены, необходимо подождать. Активация Project Moca может занять некоторое время. У меня это заняло где-то пару часов.

Как проверить, активирован ли новый сервис?


Для этого можно перейти на страницу outlook.office.com и взглянуть на нижнюю панель действий. Среди кнопок должна появиться новая кнопка для перехода в Project Moca:



Также, доступ можно проверить, перейдя по прямой ссылке outlook.office.com/spaces. Если появится сообщение Under construction значит нужно еще подождать идет процесс активации.

Создание рабочих областей


После того как Project Moca активирован, нас встречает главная страница, на которой можно создать новую область или перейти к существующей, если таковая уже существует:


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

  • Проект на неделю
  • План проекта
  • Учебный план
  • План питания
  • Личное благополучие

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


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

  • Сегмент секция, в которой можно разместить несколько виджетов.
  • Заметка.
  • Файл.
  • Ссылка.
  • Задача.
  • Цель.
  • Погода используются данные из сервиса Foreca.
  • Расположение карточка организации или заведения с контактными данными.
  • Пользователь карточка контакта.


Также доступно размещение объектов Outlook. Поддерживается поиск и добавление в качестве виджетов писем и событий, которые найдены в вашем почтовом ящике по ключевым словам:


Каждый объект на рабочей области можно перемещать, менять размер, цвет, добавлять сроки выполнения задач и делать еще множество различных настроек для каждого из добавленных виджетов:



В итоге можно создать рабочий стол с секциями непосредственно под свои цели, добавив и настроив имеющиеся из коробки виджеты, как это сделал, например, я для себя:


Чуть ближе, фокус на виджетах:


Некоторые варианты готовых шаблонов рабочих областей Project Moca:

Или еще вот такой шаблон:

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


Конечно, так как данный сервис находится в стадии Preview, многих возможностей еще пока нет. Например, я бы очень хотел интеграцию с Planner и Lists. Мне кажется, было бы удобно, добавить на доску PowerApps приложения и Power BI отчеты. И, я уверен, что каждый из нас придумает множество виджетов, которые были бы удобны лично ему для работы в Project Moca. Мне кажется, что всё это рано или поздно появится, но уже сейчас на предварительной стадии Project Moca предлагает очень интересные возможности по организации рабочего места сотрудника и предоставляет для этого минимально необходимый набор виджетов для того, чтобы структурировать данные, с которыми происходит работа каждый день и отобразить их в удобном виде на отдельной странице, которую можно добавить в закладки браузера или на отдельную вкладку команды Microsoft Teams. Буду с интересом следить за развитием возможностей данного сервиса, а также с нетерпением ждать выхода его из Preview стадии. В следующих статьях мы с вами посмотрим еще больше возможностей различных сервисов Microsoft 365. Попробуйте активировать Project Moca в своем тенанте и посмотреть что он из себя представляет. Хорошего всем дня!
Подробнее..

Применение искусственного интеллекта с Microsoft SharePoint Syntex

12.11.2020 22:13:22 | Автор: admin
Всем привет! Сегодня мы с Вами познакомимся с новым сервисом из линейки Microsoft 365, который называется SharePoint Syntex. Данный сервис входит в ряд технологий Microsoft под названием Project Cortex. Технологии Project Cortex направлены на применение искусственного интеллекта для обработки и получения информации из контента, с целью последующей категоризации и распределения данных. SharePoint Syntex является первым продуктом Project Cortex и он позволяет использовать машинное обучение для извлечения ключевых данных из контента библиотек SharePoint. Все это происходит без каких-либо сложных настроек и программирования. Плюс ко всему, сервис SharePoint Syntex официально доступен начиная с 1 октября 2020 года и уже сейчас можно установить его к себе в Microsoft 365. Так для чего же можно использовать SharePoint Syntex?



К примеру, у Вас есть библиотека документов SharePoint. При добавлении файла в эту библиотеку, зачастую, вы дополнительно снабжаете этот файл определенными метаданными. Создаете несколько полей и пишете в них некую информацию для того, чтобы классифицировать файлы, находящиеся в этой библиотеке. Но это делается вручную и для каждого файла необходимо вводить данные каждый раз снова и снова. SharePoint Syntex призван автоматизировать этот процесс, путем извлечения ключевых данных из файла, согласно настроенной модели, и сохранения этих данных в поля библиотеки. Звучит неплохо. Давайте посмотрим, как это работает?

Как активировать SharePoint Syntex?


Так как SharePoint Syntex идет в рамках отдельной лицензии, то нам необходимо данную лицензию получить. Идем на сайт Microsoft, находим продукт SharePoint Syntex и нажимаем Free Trial.


После ввода учетной записи Вашего Microsoft 365 и подтверждения активации триальной лицензии, переходим в центр администрирования Microsoft 365. Далее заходим в левом меню в раздел Установка (Setup) и выбираем пункт Automate Content Understanding. В случае русской локали, как у меня, это будет звучать Автоматизация осмысления контента.



Заходим в Управление и приступаем к настройке службы. В первую очередь необходимо указать какие библиотеки будут поддерживать возможности SharePoint Syntex. Можно выбрать конкретные библиотеки или разрешить для всех библиотек. Идем ва-банк.



Далее указываем имя и адрес сайта, который будет являться центром контента и хранить обученные модели данных. Всё выглядит так, как будто создается новая сайт-коллекция SharePoint Online. Впрочем, именно это и происходит.



Создание сайта центра контента занимает несколько минут. У меня он создался где-то минут за 5, я как раз успел налить себе чай. Прихожу, а тут уже активировано осмысление контента, ну ничего себе.



Настройка SharePoint Syntex


Переходим на сайт SharePoint Syntex. Внешне он выглядит как обычный сайт SharePoint Online, но это только на первый взгляд. На данном сайте мы будем настраивать и обучать модели обработки и анализа данных.


Пора бы и приступить к настройке модели. Нажимаем New и выбираем пункт Document Understanding Model.


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

Далее нас встречает страница со Step-By-Step инструкцией, описывающей что нам необходимо сделать, чтобы заставить будущую модель работать, а в идеале работать правильно. Итак, сначала необходимо загрузить несколько (рекомендуется не меньше 5) файлов, помочь SharePoint Syntex их классифицировать нужным образом и настроить так называемые Extractors шаблоны извлечения данных из файлов. После того как весь путь будет пройден, можно применить данную модель для требуемых библиотек SharePoint.



Добавляем заготовленные файлы шаблонов, которые будут использоваться для классификации будущих реальных файлов.


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


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


Запускаем обучение модели и идем наливать чай. Потребуется некоторое время.
После того как модель обучена необходимо настроить Extractors модели извлечения данных. Каждый экстрактор это, по сути, поле SharePoint определенного типа, которое автоматически будет создано в целевой библиотеке. После добавления файла в эту библиотеку, в данное поле будет записана информация, извлеченная из файла.
При создании экстрактора нужно указать его имя и тип. На текущий момент поддерживается 4 типа:

  • Однострочный текст
  • Многострочный текст
  • Дата и время
  • Число

Можно использовать и существующие поля библиотеки SharePoint.


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



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



Выбираем требуемый сайт SharePoint и указываем целевую библиотеку. Я заранее создал библиотеку HelpDesk Requests и не производил никаких изменений в ней, оставив ее в исходном виде. Сохраняем настройки и идем в библиотеку. После сохранения настроек SharePoint Syntex в библиотеке появляются новые поля SharePoint соответствующие по имени и типу созданным экстракторам.



Осталось добавить файл в библиотеку и проверить. Добавляем очередной файл шаблона обращения.



SharePoint Syntex распознал тип обращения и описание. Данные сохранены в поля. Кажется всё в порядке.

Итого


Настройка модели данных SharePoint Syntex заняла у меня совсем немного времени, всё достаточно интуитивно понятно и легко настраивается и применяется. Из плюсов я вижу действительно полезную возможность автоматически вытягивать из содержимого файлов ключевую информацию и записывать ее в поля SharePoint. Данная возможность может существенно ускорить работу и убрать лишние этапы работы пользователей, когда после добавления файла необходимо еще вручную заполнять ряд реквизитов в библиотеке. Из минусов хотелось бы больше типов полей для экстракторов и более тесную интеграцию с Microsoft Power Platform. Но я уверен, что это в скором времени добавят в рамках ближайших обновлений.
Также SharePoint Syntex требует отдельной лицензии (5 долларов на пользователя в месяц) и, в настоящий момент, не идет в составе Enterprise лицензий Microsoft 365. Но в будущем может всё измениться и возможно SharePoint Syntex станет частью базовых сервисов Microsoft 365. Попробуйте активировать триальную версию на месяц и посмотреть возможности данного сервиса. Хорошего всем дня!
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru