Зачем использовать PowerShell для Microsoft 365

Эта статья относится к Microsoft 365 корпоративный и Office 365 корпоративный.

С помощью Центр администрирования Microsoft 365 вы можете управлять учетными записями и лицензиями пользователей Microsoft 365. Вы также можете управлять службами Microsoft 365, такими как Exchange Online, Teams и SharePoint. Если вместо этого вы используете PowerShell для управления этими службами, вы можете воспользоваться преимуществами среды командной строки и языка сценариев для ускорения, автоматизации и дополнительных возможностей.

Примечание.

Модуль Azure Active Directory заменяется пакетом SDK Для Microsoft Graph PowerShell. Можно использовать пакет SDK Microsoft Graph PowerShell для доступа ко всем API Microsoft Graph. Дополнительные сведения см. разделе Начало работы с пакетом SDK Microsoft Graph PowerShell. Некоторые команды PowerShell для Microsoft 365 в этой статье были обновлены для использования Microsoft Graph PowerShell.

В этой статье показано, как использовать PowerShell для управления Microsoft 365 для:

  • Отображение дополнительных сведений, которые не отображаются в Центр администрирования Microsoft 365

  • Настройка компонентов и параметров возможна только с помощью PowerShell

  • Выполнение массовых операций

  • Фильтрация данных

  • Печать и сохранение данных

  • Управление между службами

Помните, что PowerShell для Microsoft 365 — это набор модулей для Windows PowerShell, который является средой командной строки для служб и платформ под управлением Windows. Эта среда создает язык командной оболочки, который можно расширить с помощью дополнительных модулей. Он предоставляет способ выполнения простых или сложных команд или скриптов. Например, после установки модулей PowerShell для Microsoft 365 и подключения к подписке Microsoft 365 можно выполнить следующую команду, чтобы вывести список всех почтовых ящиков пользователей для Microsoft Exchange Online:

Get-Mailbox

Вы также можете получить список почтовых ящиков с помощью Центр администрирования Microsoft 365 но подсчитать элементы во всех списках для всех сайтов для всех веб-приложений непросто.

PowerShell для Microsoft 365 предназначен для управления Microsoft 365, а не для замены Центр администрирования Microsoft 365. Администраторы должны иметь возможность использовать PowerShell для Microsoft 365, так как существуют некоторые процедуры настройки, которые можно выполнить только с помощью PowerShell для команд Microsoft 365. В этих случаях необходимо знать, как:

  • Установите модули PowerShell для Microsoft 365 (выполняется только один раз для каждого компьютера администратора).

  • Подключитесь к подписке Microsoft 365 (один раз для каждого сеанса PowerShell).

  • Соберите сведения, необходимые для выполнения необходимых команд PowerShell для Microsoft 365.

  • Выполните команды PowerShell для Microsoft 365.

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

PowerShell для Microsoft 365 может отображать сведения, которые не отображаются в Центр администрирования Microsoft 365

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

Пример отображения пользователей и групп в Центр администрирования Microsoft 365.

В этом представлении содержатся сведения, необходимые во многих случаях. Однако бывают случаи, когда вам нужно больше. Например, лицензирование Microsoft 365 (и доступные пользователю функции Microsoft 365) частично зависит от географического расположения пользователя. Политики и функции, которые можно распространить на пользователя, проживающего в США, могут не совпадать с теми, которые можно распространить на пользователя в Индии или Бельгии. Выполните следующие действия в Центр администрирования Microsoft 365, чтобы определить географическое расположение пользователя:

  1. Дважды щелкните отображаемое имя пользователя.

  2. В области отображения свойств пользователя выберите сведения.

  3. На экране сведений выберите дополнительные сведения.

  4. Прокрутите страницу, пока не найдете заголовок Страна или регион:

    Пример сведений о регионе для пользователя в Центр администрирования Microsoft 365.

  5. Запишите отображаемое имя и местонахождение пользователя на лист бумаги или скопируйте и вставьте их в Блокнот.

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

Примечание.

Модуль Azure Active Directory заменяется пакетом SDK Для Microsoft Graph PowerShell. Можно использовать пакет SDK Microsoft Graph PowerShell для доступа ко всем API Microsoft Graph. Дополнительные сведения см. разделе Начало работы с пакетом SDK Microsoft Graph PowerShell.

Сначала используйте учетную запись администратора Microsoft Entra контроллера домена, Администратор облачного приложения или глобального администратора для подключения к клиенту Microsoft 365.

Для получения сведений о пользователе требуется разрешение User.ReadBasic.All область или одно из других разрешений, перечисленных на странице справочника по API Graph "Назначение лицензии".

Для чтения лицензий, доступных в клиенте, требуется область разрешения Organization.Read.All.

Примечание.

модули PowerShell Azure AD и MSOnline устарели с 30 марта 2024 г. Дополнительные сведения см. в статье Обновление для прекращения поддержки. После этой даты поддержка этих модулей ограничивается поддержкой миграции пакета SDK Для Microsoft Graph PowerShell и исправлениями безопасности. Устаревшие модули будут работать до 30 марта 2025 г.

Мы рекомендуем выполнить миграцию в Microsoft Graph PowerShell для взаимодействия с Microsoft Entra ID (ранее Azure AD). Распространенные вопросы о миграции см. в разделе Вопросы и ответы о миграции. Примечание: В версиях 1.0.x MSOnline может возникнуть сбой после 30 июня 2024 г.

Connect-MgGraph -Scopes "User.ReadBasic.All"
Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation

Ниже приведен пример результатов.

DisplayName                               UsageLocation
-----------                               -------------
Bonnie Kearney                            GB
Fabrice Canel                             BR
Brian Johnson (TAILSPIN)                  US
Anne Wallace                              US
Alex Darrow                               US
David Longmuir                            BR

Интерпретация этой команды PowerShell: Получите всех пользователей в текущей подписке Microsoft 365 (Get-MgUser), но отображаете только имя и расположение для каждого пользователя (Выберите DisplayName, UsageLocation).

Так как PowerShell для Microsoft 365 поддерживает язык командной оболочки, вы можете дополнительно управлять информацией, полученной командой Get-MgUser . Например, может быть, вы хотите отсортировать этих пользователей по их расположению, сгруппировать всех бразильских пользователей, всех пользователей США вместе и т. д. Вот команда:

Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation | Sort UsageLocation, DisplayName

Ниже приведен пример результатов.

DisplayName                                 UsageLocation
-----------                                 -------------
David Longmuir                              BR
Fabrice Canel                               BR
Bonnie Kearney                              GB
Alex Darrow                                 US
Anne Wallace                                US
Brian Johnson (TAILSPIN)                    US

Интерпретация этой команды PowerShell: Получите всех пользователей в текущей подписке Microsoft 365, но отображаете только имя и расположение каждого пользователя и сортируйте их сначала по его расположению, а затем по имени (Sort UsageLocation, DisplayName).

Можно также использовать дополнительную фильтрацию. Например, если нужно просмотреть сведения о пользователях, находящихся в Бразилии, используйте следующую команду:

Get-MgUser -All -Property DisplayName, Country | Where-Object {$_.Country -eq "BR"} | Select DisplayName, Country 

Ниже приведен пример результатов.

DisplayName                                           UsageLocation
-----------                                           -------------
David Longmuir                                        BR
Fabrice Canel                                         BR

Интерпретация этой команды PowerShell: Получение всех пользователей в текущей подписке Microsoft 365, расположение которых — Бразилия (Где {$_. UsageLocation -eq "BR"}), а затем отображает имя и расположение для каждого пользователя.

Примечание о больших доменах

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

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

Get-MgUser -All | Select DisplayName, UsageLocation

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

$x = Get-MgUser -All -Property DisplayName, UsageLocation
$x | Select DisplayName, UsageLocation

Интерпретация этого набора команд PowerShell:

  1. Получите всех пользователей в текущей подписке Microsoft 365 и сохраните информацию в переменной с именем $x ($x = Get-MgUser).
  2. Отображение содержимого переменной $x, но только имя и расположение каждого пользователя ($x | Выберите DisplayName, UsageLocation).

В Microsoft 365 есть функции, которые можно настроить только с помощью PowerShell для Microsoft 365.

Центр администрирования Microsoft 365 предназначен для предоставления доступа к общим, полезным административным задачам, которые применяются к большинству сред. Иными словами, Центр администрирования Microsoft 365 был разработан таким образом, что типичный администратор может выполнять наиболее распространенные задачи управления. Но есть некоторые задачи, которые невозможно выполнить в Центре администрирования.

Например, Центр администрирования Skype для бизнеса Online предоставляет несколько вариантов создания настраиваемых приглашений на собрания:

Пример отображения настраиваемых приглашений на собрание в Центре администрирования Skype для бизнеса Online.

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

  • анонимным пользователям автоматически присоединяться к каждому собранию;

  • участникам записывать собрание;

  • обозначать всех пользователей из вашей организации докладчиками при их присоединении к собранию.

Эти параметры недоступны в Центре администрирования Skype для бизнеса Online. Вы можете управлять ими с помощью PowerShell для Microsoft 365. Вот команда, которая отключает эти три параметра:

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $False -AllowConferenceRecording $False -DesignateAsPresenter "None"

Примечание.

Чтобы выполнить эту команду, необходимо установить модуль PowerShell Skype для бизнеса Online.

Интерпретация этой команды PowerShell:

  1. В параметрах для новых Skype для бизнеса онлайн-собраний (Set-CsMeetingConfiguration) отключите разрешение анонимным пользователям получать автоматический вход на собрания (-AdmitAnonymousUsersByDefault $False).
  2. Отключите возможность записи собраний участниками (-AllowConferenceRecording $False).
  3. Не назначайте всех пользователей из вашей организации в качестве выступающих (-DesignateAsPresenter "None").

Чтобы восстановить эти параметры по умолчанию (включите параметры), выполните следующую команду:

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $True -AllowConferenceRecording $True -DesignateAsPresenter "Company"

Существуют и другие аналогичные сценарии, поэтому администраторы должны знать, как выполнять команды PowerShell для Microsoft 365.

PowerShell для Microsoft 365 отлично подходит для массовых операций

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

Но если вам нужно изменить много вещей или некоторые выбранные вещи в рамках большого набора других вещей, Центр администрирования Microsoft 365 может быть не лучшим инструментом. Например, предположим, что необходимо изменить префикс на тысячах номеров телефонов или удалить конкретного пользователя Ken Myer со всех сайтов SharePoint. Как бы вы сделали это в Центр администрирования Microsoft 365?

В последнем примере предположим, что у вас есть несколько сотен сайтов SharePoint, и вы не знаете, к каким из них входит Кен Мейер. Необходимо начать с Центр администрирования Microsoft 365, а затем выполнить следующую процедуру для каждого сайта:

  1. Выберите URL-адрес сайта.

  2. В поле свойства семейства веб-сайтов выберите ссылку Адрес веб-сайта , чтобы открыть сайт.

  3. На сайте выберите Общий доступ.

  4. В диалоговом окне Общий доступ выберите ссылку, которая показывает всех пользователей, имеющих разрешения на сайт:

    Пример просмотра членов сайта SharePoint в центре Администратор SharePoint.

  5. В диалоговом окне Общий доступ выберите Дополнительно.

  6. Прокрутите список пользователей вниз, найдите и выберите Ken Myer (при условии, что у него есть разрешения на доступ к сайту), а затем выберите Удалить разрешения пользователей.

Это займет много времени для нескольких сотен сайтов.

Альтернативой является выполнение следующей команды в PowerShell для Microsoft 365, чтобы удалить Ken Myer со всех сайтов:

Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName "kenmyer@litwareinc.com"}

Примечание.

Для выполнения этой команды необходимо установить модуль SharePoint PowerShell.

Интерпретация этой команды PowerShell: Получите все сайты SharePoint в текущей подписке Microsoft 365 (Get-SPOSite) и удалите Ken Meyer из списка пользователей, которые могут получить к нему доступ (ForEach {Remove-SPOUser -Site $_. Url -LoginName "kenmyer@litwareinc.com"}).

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

Вот еще один пример массовой операции. Используйте эту команду, чтобы добавить Бонни Кирни, нового администратора SharePoint, на все сайты в организации:

Get-SPOSite | ForEach {Add-SPOUser -Site $_.Url -LoginName "bkearney@litwareinc.com" -Group "Members"}

Интерпретация этой команды PowerShell: Получите все сайты SharePoint в текущей подписке Microsoft 365 и для каждого сайта разрешите доступ Бонни Кирни, добавив ее имя входа в группу Участники сайта (ForEach {Add-SPOUser -Site $_. Url -LoginName "bkearney@litwareinc.com" -Group "Members"}).

PowerShell для Microsoft 365 отлично подходит для фильтрации данных

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

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

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

Но существуют ограничения на то, что можно сделать в Центре Администратор Exchange. Например, вы не могли найти почтовые ящики людей, живущих в Блумингтоне или Сан-Диего, или почтовые ящики для всех людей, которые не живут в Блумингтоне.

Вы можете использовать следующую команду PowerShell для Microsoft 365, чтобы получить список почтовых ящиков для всех людей, живущих в Блумингтоне или Сан-Диего:

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and ($_.City -eq "San Diego" -or $_.City -eq "Bloomington")} | Select DisplayName, City

Ниже приведен пример результатов.

DisplayName                              City
-----------                              ----
Alex Darrow                              San Diego
Bonnie Kearney                           San Diego
Julian Isla                              Bloomington
Rob Young                                Bloomington

Интерпретация этой команды PowerShell: Получение всех пользователей в текущей подписке Microsoft 365, у которых есть почтовый ящик в городе Сан-Диего или Блумингтоне (где {$_. RecipientTypeDetails -eq "UserMailbox" -and ($_. Город -eq "Сан-Диего" -или $_. City -eq "Bloomington")}), а затем отобразить имя и город для каждого из них (выберите DisplayName, City).

И вот команда для перечисления всех почтовых ящиков для людей, которые живут где угодно, кроме Блумингтона:

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and $_.City -ne "Bloomington"} | Select DisplayName, City

Ниже приведен пример результатов.

DisplayName                               City
-----------                               ----
MOD Administrator                         Redmond
Alex Darrow                               San Diego
Allie Bellew                              Bellevue
Anne Wallace                              Louisville
Aziz Hassouneh                            Cairo
Belinda Newman                            Charlotte
Bonnie Kearney                            San Diego
David Longmuir                            Waukesha
Denis Dehenne                             Birmingham
Garret Vargas                             Seattle
Garth Fort                                Tulsa
Janet Schorr                              Bellevue

Интерпретация этой команды PowerShell: Получение всех пользователей в текущей подписке Microsoft 365, у которых есть почтовый ящик, не расположенный в городе Блумингтон (Where {$_. RecipientTypeDetails -eq "UserMailbox" -and $_. City -ne "Bloomington"}), а затем отобразить имя и город для каждого из них.

Использование подстановочных знаков

Вы также можете использовать подстановочные знаки в фильтрах PowerShell для сопоставления части имени. Например, предположим, что вы ищете учетную запись пользователя. Все, что вы можете вспомнить, это то, что фамилия пользователя была Андерсон или, возможно, Хендерсон или Jorgenson.

Вы можете отследить пользователя в Центр администрирования Microsoft 365 с помощью средства поиска и выполнить три различных поиска:

  • Андерсон;

  • Хендерсон;

  • Йоргенсон.

Так как все три из этих имен заканчиваются на "son", вы можете указать PowerShell, чтобы отобразить всех пользователей, имя которых заканчивается на "son". Вот команда:

Get-User -Filter '{LastName -like "*son"}'

Интерпретация этой команды PowerShell: Получите всех пользователей в текущей подписке Microsoft 365, но используйте фильтр, который перечисляет только тех пользователей, фамилии которых заканчиваются на "son" (-Filter "{LastName -like "*son"}). * обозначает любой набор символов, которые представляют собой буквы в фамилии пользователя.

PowerShell для Microsoft 365 упрощает печать и сохранение данных

Центр администрирования Microsoft 365 позволяет просматривать списки данных. Ниже приведен пример центра администрирования Skype для бизнеса Online, в котором отображается список пользователей, для которых включена Skype для бизнеса Online:

Пример Центра администрирования Skype для бизнеса Online со списком пользователей, для которых включен Skype для бизнеса Online.

Чтобы сохранить эти сведения в файл, необходимо вставить их в документ или на лист Microsoft Excel. В любом случае может потребоваться дополнительное форматирование. Кроме того, Центр администрирования Microsoft 365 не предоставляет способ непосредственной печати отображаемого списка.

К счастью, PowerShell можно использовать не только для отображения списка, но и для сохранения его в файл, который можно легко импортировать в Excel. Ниже приведен пример команды для сохранения данных пользователя Skype для бизнеса Online в файл с разделими-запятыми (CSV), который затем можно легко импортировать в виде таблицы на листе Excel:

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation

Ниже приведен пример результатов.

Пример таблицы, импортированной на лист Excel для пользовательских данных Skype для бизнеса Online, которые были сохранены в файле значений, разделенных запятыми.

Интерпретация этой команды PowerShell: получение всех пользователей Skype для бизнеса Online в текущей подписке Microsoft 365 (Get-CsOnlineUser); получение только имени пользователя, имени участника-пользователя и расположения (выберите DisplayName, UserPrincipalName, UsageLocation); а затем сохраните эти сведения в CSV-файле с именем C:\Logs\SfBUsers.csv (Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation).

Вы также можете использовать параметры для сохранения этого списка в виде XML-файла или HTML-страницы. На самом деле с помощью дополнительных команд PowerShell вы можете сохранить его непосредственно в виде файла Excel с любым настраиваемым форматированием.

Вы также можете отправить выходные данные команды PowerShell, которая отображает список, непосредственно на принтер по умолчанию в Windows. Вот пример команды:

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Out-Printer

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

Пример печатного документа, который был выходными данными команды PowerShell, отправляемой непосредственно на принтер по умолчанию в Windows.

Интерпретация этой команды PowerShell: получение всех пользователей Skype для бизнеса Online в текущей подписке Microsoft 365; получение только имени пользователя, имени участника-пользователя и расположения; а затем отправка этих сведений на принтер Windows по умолчанию (out-Printer).

Печатный документ имеет такое же простое форматирование, что и в командном окне PowerShell. Чтобы получить твердую копию, просто добавьте | Выход из принтера до конца команды.

PowerShell для Microsoft 365 позволяет управлять серверными продуктами

Компоненты, составляющие Microsoft 365, предназначены для совместной работы. Например, предположим, что вы добавили нового пользователя в Microsoft 365 и указали такие сведения, как отдел пользователя и номер телефона. Эти сведения будут доступны при доступе к данным пользователя в любой из служб Microsoft 365: Skype для бизнеса Online, Exchange или SharePoint.

Это общие сведения, распространяющиеся на набор продуктов. Сведения о продукте, например сведения о почтовом ящике Exchange пользователя, обычно недоступны в наборе. Например, сведения о том, включен ли почтовый ящик пользователя, доступны только в Центре администрирования Exchange.

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

  • краткое имя пользователя;

  • Имеет ли пользователь лицензию на Microsoft 365

  • включен ли почтовый ящик Exchange пользователя;

  • включено ли для пользователя приложение Skype для бизнеса Online.

Вы не можете легко создать такой отчет в Центр администрирования Microsoft 365. Вместо этого необходимо создать отдельный документ для хранения информации, например лист Excel. Затем получите все имена пользователей и сведения о лицензировании из Центр администрирования Microsoft 365, сведения о почтовом ящике в Центре администрирования Exchange, сведения о Skype для бизнеса online из Skype для бизнеса Online Администратор центр, а затем объедините эти сведения.

Альтернативой является использование скрипта PowerShell для компиляции отчета за вас.

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

Connect-MgGraph -Scopes "User.ReadBasic.All"
$x = Get-MgUser -All

foreach ($i in $x)
    {
      $y = Get-Mailbox -Identity $i.UserPrincipalName
      $i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled

      $y = Get-CsOnlineUser -Identity $i.UserPrincipalName
      $i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled
    }

$x | Select DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB

Ниже приведен пример результатов.

DisplayName             IsLicensed   IsMailboxEnabled   EnabledForSfB
-----------             ----------   ----------------   --------------
Bonnie Kearney          True         True               True
Fabrice Canel           True         True               True
Brian Johnson           False        True               False
Anne Wallace            True         True               True
Alex Darrow             True         True               True
David Longmuir          True         True               True
Katy Jordan             False        True               False
Molly Dempsey           False        True               False

Этот сценарий PowerShell интерпретируется следующим образом:

  1. Получите всех пользователей в текущей подписке Microsoft 365 и сохраните информацию в переменной с именем $x ($x = Get-MgUser).
  2. Запустите цикл, который выполняется над всеми пользователями в переменной $x (foreach ($i в $x)).
  3. Определите переменную с именем $y и сохраните в ней сведения о почтовом ящике пользователя ($y = Get-Mailbox -Identity $i.UserPrincipalName).
  4. Добавьте новое свойство к сведениям о пользователе с именем IsMailBoxEnabled. Задайте значение свойства IsMailBoxEnabled почтового ящика пользователя ($i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled).
  5. Определите переменную с именем $y и сохраните в ней сведения о Skype для бизнеса пользователя Online ($y = Get-CsOnlineUser -Identity $i.UserPrincipalName).
  6. Добавьте новое свойство к сведениям о пользователе с именем EnabledForSfB. Задайте значение свойства Enabled для сведений о Skype для бизнеса пользователя в Сети ($i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled).
  7. Отображение списка пользователей с указанием только их имени, наличия у них лицензии и двух новых свойств, указывающих, включен ли их почтовый ящик и включен ли Skype для бизнеса Online ($x | Выберите DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB).

См. также

Начало работы с PowerShell для Microsoft 365

Управление учетными записями пользователей Microsoft 365, лицензиями и группами с помощью PowerShell

Использование Windows PowerShell для создания отчетов в Microsoft 365