Управление Office 365 средствами Windows PowerShell

В моей компании, Concentrated Technology, не так давно закончился переход с Гугл Apps for Business на Microsoft Office 365, и вышло все на удивление гладко. Средствами обычного продукта постороннего разработчика мы перенесли свои данные на новейшую платформу, задействовав только пару паролей и один щелчок мыши в расчете на 1-го юзера.

В один момент мы оказались в совсем новейшей инфраструктуре с полностью новыми правилами. Мы отлично знакомы с технологиями Microsoft, все же мы не представляли для себя широту способностей использования Windows PowerShell в Office 365. Кому-то сама идея о совмещении Windows PowerShell и Office 365 может показаться непонятной. К таким решениям, как Office 365, обычно обращаются в поисках простоты.

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

Шаг 1. Освоение (реального) удаленного выполнения

Windows PowerShell по-настоящему мощнейший инструмент. Но есть неувязка «начального скопления капитала» познаний — на первых порах новичок не знает, за что хвататься. Это состояние наступает после исследования нескольких, самых базисных командлетов, но до осознания, как создавать вправду полезные решения. Одно дело выполнить Get-Process и поглядеть, какие процессы производятся на локальном компьютере, и совсем другое — передать серию командлетов по сборочному потоку на удаленный компьютер для выполнения некий реально полезной работы.

Я бы порекомендовал издержать малость времени на то, чтоб разобраться, как работает удаленное взаимодействие PowerShell в локальной сети. Узнайте, как работает параметр –computerName с некими командлетами, также о том, что в других ситуациях нужно использовать Invoke-Command. Освойте командлет Get-Help и его только нужный параметр –exa, позволяющий поглядеть на примеры.

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

Шаг 2. Подготовка среды PowerShell

В начальном состоянии Windows PowerShell не поддерживает работу с Office 365. Чтоб ваш компьютер с Windows 7 научился «разговаривать на языке» Office 365, нужно выполнить несколько предварительных операций.

На страничке Внедрение Windows PowerShell для управления Office 365 загрузите и установите командлеты для работы с Office 365. Они инсталлируются в составе модуля Microsoft Online Services Module для Windows PowerShell. Есть 32- и 64-разрядные версии. Перед установкой будет нужно установить на локальном компьютере Ассистент по входу в службы Microsoft Online Services, также Windows PowerShell и .NET Framework 3.5.1.

Шаг 3. Импорт модуля, создание сеанса, импорт команд

Установка командлетов Windows PowerShell — всего только начало. Необходимо еще подключить их к облаку Microsoft Office 365. Подключение в облаку — достаточно канительный, но легкий процесс, состоящий из 5 шагов:

1. Импортируйте собственный только-только установленный модуль Online Services.

2. Введите учетные данные Office 365.

3. Сделайте сеанс удаленного взаимодействия.

4. Импортируйте команды сеанса в локальный сеанс Windows PowerShell.

5. Подключитесь к службам Office 365.

5 команд, которые делают эту задачку приведены ниже:

Import-Module MSOnline
$O365Cred = Get-Credential
$O365Session = New-PSSession -ConfigurationNameMicrosoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred -Authentication Basic -AllowRedirection
Import-PSSession $O365Session
Connect-MsolService –Credential $O365Cred

Эта структура может показаться сложной, но не запамятовывайте, что Windows PowerShell предназначен для решения всех задач. В итоге некие команды оказываются длиннее. Необходимо осознавать, что эта структура делает 5 задач: во-1-х, она употребляет Import-Module для прибавления в сеанс командлетов Office 365, что позволяет локальному сеансу «разговаривать» на языке Office 365.

Во-2-х, раскрывается диалоговое окно, где необходимо ввести имя юзера и пароль Office 365 (они смотрятся так: mailto:username@domain.onmicrosoft.com). Учетная информация хранится в переменной $O365Cred, что позволяет использовать ее в предстоящем.

А на данный момент начинаются вправду достойные внимания вещи. 3-я и 4-ая команды делают сеанс Windows PowerShell в облаке по адресу https://ps.outlook.com/powershell. Потом импортируются командлеты из пасмурного сеанса в локальный. Это похоже на внедрение PSExec для доступа к командной строке удаленного компьютера. Большая разница состоит в том, что удаленный сервер расположен кое-где в облаке. Удаленный сеанс встраивается в локальный (рис. 1).

Управление Office 365 средствами Windows PowerShell

Рис. 1. Создание удаленного сеанса Office 365

Посмотрите снова на текст на рис. 1. Вы увидите что-то типа:

WARNING: Your connection has been redirected to the following URI:
«https://pod51018psh.outlook.com/PowerShell-LiveID?PSVersion=2.0″
WARNING: Your connection has been redirected to the following URI:
«https://sn2prd0702psh.outlook.com/PowerShell-LiveID?PSVersion=2.0″

URI-адрес может отличаться. При подключении по адресу https://ps.outlook.com/powershell сеанс автоматом перенаправляется на хост, на котором размещены ваши ресурсы Office 365. В моем случае это серверы pod51018psh.outlook.com и sn2prd0702psh.outlook.com.

У вас они вероятнее всего будут другими. Это серверы, с которыми вы будете конкретно вести взаимодействие при вызове команд Office 365 Windows PowerShell.

Шаг 4. Используйте свою новейшую библиотеку команд

После подключения вы готовы к управлению своими активами Office 365. На этом шаге средствами Windows PowerShell доступны только ресурсы Office 365 и Exchange. Чтоб получить доступ к SharePoint, необходимы дополнительные шаги.

Перечень командлетов Office 365 можно получить, выполнив команду Get-Command -module MSOnline. Комфортную таблицу этих команд с коротким описанием каждой вы отыщите на последующей интернет-странице:

Есть только нужный командлет для конфигурации пароля Office 365. Он сбрасывает пароль к значению P@ssword!. Можно также опустить параметр –NewPassword, чтоб автоматом сгенерировать случайный пароль:

Set-MsolUserPassword -UserPrincipalNameusername@domain.onmicrosoft.com-NewPasswordP@ssword!

Эти командлеты работают с объектами Office 365. К ним прилагается 2-ой набор, служащий для управления ресурсами Exchange, с которыми ведут взаимодействие эти объекты. Полное количество командлетов громадно, но на последующей страничке есть удачный справочник по ним:

Шаг 5. Профили, облегчающие жизнь

5 команд в шаге 3, служащих для подключения к облаку, достаточно объемны. Вводить весь этот текст при каждом входе для работы с Windows PowerShell делает суровые трудности. Но основное преимущество Windows PowerShell — и сотворения сценариев в оболочке вообщем — заключается конкретно в том, что сделав что-то раз, можно запамятовать о дилемме завсегда.

При каждом запуске Windows PowerShell производятся все команды, находящиеся в переменной $profile. Выяснить, где лежит файл с командами, можно, выполнив в оболочке команду dir $profile.

У меня для переменной $profile употребляется файл Microsoft.PowerShell_profile.ps1 (рис. 2), расположенный в папке C:UsersgshieldsDocumentsWindowsPowerShell. Чтоб добавить дополнительные команды в этот файл, можно пользоваться хоть каким редактором текста. Но не всегда при запуске Windows PowerShell требуется вводить имя юзера и пароль и автоматом подключаться к Office 365, также ко всем ресурсам сети.

Управление Office 365 средствами Windows PowerShell

Рис. 2. Просмотр содержимого переменной $profile

Дополнительные способности означают завышенную ответственность

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

Если вас позабавили способности команды Get-Process | Stop-Process (подсказка: никогда этого не делайте), вы наверное ужаснетесь от того, что может натворить команда Get-MsolUser | Remove-MsolUser. Потому отнеситесь с осторожностью к своим новым способностям. Никогда не запамятовывайте о возложенной на вас высочайшей ответственности.

Аналогичный товар: Комментирование на данный момент запрещено, но Вы можете оставить ссылку на Ваш сайт.

Комментарии закрыты.