Поиск по сайту:

Как подключить PowerShell к Office 365


PowerShell - это отличный способ управления вашей средой Office 365. Он позволяет автоматизировать множество задач, написав свои собственные скрипты или изменив настройки одной командой. Теперь первым шагом, конечно, является Подключение PowerShell к Office 365.

Существуют два способа подключения к Office 365 в PowerShell: Модуль Azure Active Directory для Windows Powershell (MSOnline) и более новый Azure Active Directory PowerShell для Graph (AzureAD).

На момент написания вам понадобятся оба, AzureAD является преемником MSOnline, но не все функции доступны в новом модуле AzureAD.

Установка модулей PowerShell

Сначала мы собираемся установить оба модуля PowerShell. Вы можете использовать их оба вместе на вашей системе без каких-либо проблем.

Шаг 1 - Установите модуль AzureAD в PowerShell

Откройте PowerShell в режиме администратора (Клавиша Windows + X и выберите Windows PowerShell (администратор))
Введите следующую команду:

This will install the AzureAD module from the PowerShell Gallery, you might get a warning that the # source is untrusted, but you can safely type Y and press enter.

Install-Module AzureAD

Шаг 2 - Установите помощника по входу в онлайн-сервисы Microsoft

Модуль MSOnline требует немного больше работы. Сначала загрузите и установите Помощник по входу в Microsoft Online Services.

Далее мы собираемся установить модуль в PowerShell. Выполните следующую команду в PowerShell:

Install-Module MSOnline

Подключение PowerShell к Office 365

Теперь у нас установлены оба модуля, так что мы можем подключить PowerShell к Office 365. Большинство документации по-прежнему написано для модуля MSOnline, так что давайте начнем с него.

Чтобы подключиться к службе MSOnline, вам необходимо выполнить команду Connect-MSolService, которая запросит стандартный вход в систему Microsoft для ваших учетных данных Office 365.

Теперь вы можете использовать cmdlet MSol в PowerShell, с обзором cmdlet вы можете ознакомиться здесь в документации Microsoft.

Подключение к AzureAD

Подключение нового AzureAD практически такое же, просто выполните команду Connect-AzureAD. Вам будет предложено войти с использованием вашей учетной записи Microsoft, так же как и с MSol. Обзор командлетов из модуля AzureAD можно найти здесь.

Подключение к Exchange Online через PowerShell

Совет

Я написал обновлённую статью о подключении к Exchange Online с использованием нового модуля Exchange Online V2. Обязательно сначала прочитайте эту статью!

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

С помощью кода ниже мы создаем объект учетных данных, строим сессию и импортируем его в нашу сессию PowerShell:

$Cred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $Cred -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking

Если вы используете MFA (Многофакторную аутентификацию), то вы не можете использовать метод Get-Credential.

Теперь у вас есть два варианта решения этой проблемы: использовать пароль приложения или использовать модуль удаленного PowerShell для Exchange Online.

Я предпочитаю использовать пароль приложения, таким образом, вы можете быстро настроить подключение ко всем службам Office 365 с помощью PowerShell.

Использование пароля приложения

MFA — это отличное дополнение к безопасности, но оно может быть проблемой, когда дело доходит до автоматизации с помощью PowerShell. Чтобы решить эту проблему, вы можете создать пароль приложения в Office 365. Это надежный пароль, который вы можете использовать для приложения, которое не поддерживает MFA.

  1. Войдите в Office 365 и перейдите по адресу https://portal.office.com/account/#security.
  2. Выберите Дополнительную проверку безопасности
  3. Выберите Создать и управлять паролями приложений (последняя строка)
  4. Создать новый пароль приложения для PowerShell

Теперь, если вы хотите подключить Office 365 к PowerShell, вы можете сделать следующее:

Store your credentials - Enter your username and the app password
$Cred = Get-Credential

Connect to Msol
Connect-MsolService -Credential $Cred

Connect to AzureAd
Connect-AzureAD -Credential $Cred

Connect to Exchange Online
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $Cred -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking

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

Если также создать пару скриптов PowerShell, которые вы можете использовать для простого подключения ко всем сервисам Office 365. Вы найдете их в моей TechNet Gallery. У них есть возможность хранить пароль приложения в защищенной строке на вашем компьютере, так что вы можете полностью автоматизировать ваши скрипты.

Заключение

Подключение к Office 365 с помощью PowerShell действительно очень просто. Если вы используете MFA, то Пароль приложения - это наиболее удобный способ.

Когда вы закончите с Exchange Online, всегда убедитесь, что вы закрыли сессию с помощью Remove-PSSession $Session.