Как подключить 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.
- Войдите в Office 365 и перейдите по адресу https://portal.office.com/account/#security.
- Выберите Дополнительную проверку безопасности
- Выберите Создать и управлять паролями приложений (последняя строка)
- Создать новый пароль приложения для 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.

