M365Con 2027 – бесплатная онлайн-конференция · 11–22 Jan 2027 · 120 sessions→ m365con.net

Блог · Mirko Peters

Начало работы с кроссплатформенным CLI для Microsoft 365

By ·

С возвращением, слушатели и читатели! Если вам когда-либо приходилось утопать в горе однотипных административных задач в центре администрирования Microsoft 365, c…

Automatically translated with AI from the original post. Read the English original

▶ BLOGGetting Started with theCross-Platform CLI for…M365.FM
Titelbild: Getting Started with the Cross-Platform CLI for Microsoft 365

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

Этот пост в блоге является расширенным дополнением к нашему последнему подкасту Automate Microsoft 365 with the Cross-Platform CLI. Если вам понравятся идеи, которые мы разбираем ниже, обязательно послушайте выпуск целиком: там больше полезных советов, приёмов и живого обсуждения!

Введение в кроссплатформенный CLI для Microsoft 365

Прежде чем перейти к установке и настройке аутентификации, давайте разберёмся, что собой представляет CLI для Microsoft 365 и почему он заслуживает постоянного места в вашем административном арсенале. По сути, CLI для Microsoft 365 — это гибкий интерфейс командной строки с открытым исходным кодом, который позволяет управлять различными настройками и данными во всём вашем клиенте Microsoft 365. Его уникальная сила отражена прямо в названии: он кроссплатформенный. Работаете ли вы под Windows на основной рабочей станции, используете macOS для повседневной разработки или запускаете облегчённый дистрибутив Linux на сервере или в контейнере, CLI для Microsoft 365 работает одинаково во всех этих средах.

Исторически администраторам Microsoft приходилось жонглировать несколькими разрозненными инструментами. Для задач в Azure Active Directory вы использовали Azure PowerShell, для подготовки сайтов SharePoint Online — SharePoint PnP PowerShell, а для других сервисов могли понадобиться совершенно разные вызовы Graph API или собственные скрипты. CLI для Microsoft 365 устраняет этот разрыв, предоставляя единый синтаксис. Под капотом он использует Microsoft Graph API, оборачивая сложные REST-запросы в понятные, удобочитаемые команды. Кроме того, поскольку инструмент построен на Node.js и распространяется с открытым исходным кодом, вокруг него сложилось активное сообщество, которое постоянно добавляет новые возможности, исправления ошибок и расширения. Управляете ли вы сайтами SharePoint, Microsoft Teams, пользователями Azure AD или средами Power Platform, этот инструмент даёт единую точку обзора прямо в вашем терминале.

Установка CLI в Windows, macOS и Linux

Запустить CLI на своём компьютере необычайно просто, независимо от выбранной операционной системы. Поскольку инструмент создан на базе Node.js, главное требование — наличие современной стабильной версии Node.js. Мы рекомендуем устанавливать версию LTS (Long Term Support), чтобы обеспечить максимальную совместимость и стабильность.

Установка в Windows

Если вы работаете в Windows, у вас есть несколько отличных вариантов: Windows PowerShell, PowerShell 7 или классическая командная строка Windows. После установки Node.js откройте предпочитаемый терминал с правами администратора и выполните следующую команду:

npm install -g @pnp/cli-microsoft365

Флаг -g обеспечивает глобальную установку CLI в системе, благодаря чему команда m365 будет доступна из любого каталога в терминале. В процессе установки загружаются необходимые пакеты, при необходимости собираются бинарные компоненты и регистрируются пути к командам. После завершения вы можете проверить установку, просто введя m365 и нажав Enter: должно появиться основное справочное меню с информацией о версии.

Установка в macOS

Пользователи Mac получат такой же опыт, используя Terminal или альтернативные эмуляторы терминала, например iTerm2. Откройте приложение терминала и убедитесь, что Node.js установлен: многие разработчики на Mac управляют окружениями Node через Homebrew. Выполните команду глобальной установки:

npm install -g @pnp/cli-microsoft365

В зависимости от системных разрешений и способа первоначальной установки Node.js вы можете столкнуться с ошибкой доступа. В этом случае можно либо перенастроить путь установки Node, чтобы избежать проблем с разрешениями, либо, в крайнем случае, добавить sudo перед командой (хотя правильное управление разрешениями Node всегда является лучшей практикой). После успешного выполнения проверьте установку, введя m365 --version, чтобы убедиться, что у вас установлена последняя версия.

Установка в Linux

Для поклонников Linux, которые работают с Ubuntu, Fedora, Debian или другими дистрибутивами, процесс не менее прост. Если Node.js и npm установлены через менеджер пакетов или Node Version Manager (NVM), выполните:

sudo npm install -g @pnp/cli-microsoft365

В Linux CLI для Microsoft 365 часто используется в автоматизированных конвейерах CI/CD, контейнерах Docker и агентах Azure DevOps. Его легковесность и минимальные требования к ресурсам делают его идеальным инструментом для серверов автоматизации без графического интерфейса, где запуск полноценного графического административного комплекта ни практически осуществим, ни желателен.

Настройка окружения для успешной работы

Теперь, когда CLI успешно установлен на вашей машине, пора немного настроить окружение, чтобы администрирование было максимально удобным и безопасным. CLI для Microsoft 365 изначально готов к работе, но несколько минут на настройку параметров могут позже сэкономить вам часы на поиск неисправностей.

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

m365 config set --key output --value text

Кроме того, стоит изучить возможности автодополнения. CLI поддерживает автодополнение для PowerShell, Bash и Zsh. Настройка автодополнения по Tab действительно меняет всё. Представьте: вы вводите m365 sp и нажимаете Tab, чтобы просмотреть доступные команды SharePoint. Чтобы включить автодополнение для своей оболочки, выполните команду настройки из официальной документации: она добавит необходимые скрипты автодополнения в ваш профиль.

Безопасность — ещё один важный аспект настройки окружения. Поскольку CLI способен применять значительные административные полномочия в вашем клиенте, следите за тем, где хранятся файлы конфигурации и токены. Инструмент кэширует токены аутентификации локально, чтобы вам не приходилось входить в систему каждый раз при открытии нового окна терминала. Убедитесь, что диск вашего локального компьютера зашифрован (с помощью BitLocker в Windows или FileVault в macOS), и выходите из системы или очищайте кэш сеанса, когда работаете на общем или временном оборудовании.

Аутентификация в клиенте Microsoft 365

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

Интерактивный вход

Для повседневной интерактивной работы самый простой и распространённый способ аутентификации — стандартная команда входа:

m365 login

Когда вы выполните эту команду, CLI предложит открыть веб-браузер и перейти по конкретному URL, где будет указан уникальный код устройства. Это стандартный процесс авторизации OAuth device code flow. После того как вы введёте код в браузере, вас попросят войти с корпоративными учётными данными Microsoft 365, пройти все проверки Multi-Factor Authentication (MFA), которые требуют условные политики доступа вашей организации, и предоставить CLI разрешение действовать от вашего имени в рамках запрошенных областей доступа (scopes).

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

m365 status

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

Аутентификация через служебный принципал и сертификат

А что, если вы создаёте автоматизированный конвейер, например GitHub Action, конвейер Azure DevOps или запланированную Azure Function, который должен работать без участия человека? Интерактивный вход по device code там не сработает. Для таких сценариев CLI поддерживает аутентификацию через регистрации приложений Azure AD (служебные принципалы, Service Principals).

Можно аутентифицироваться с помощью client ID и client secret или, что безопаснее, с помощью сертификата приложения Azure AD:

m365 login --authType certificate --appId YOUR_APP_ID --thumbprint YOUR_CERT_THUMBPRINT --tenant YOUR_TENANT.onmicrosoft.com

Используя служебные принципалы, вы можете следовать принципу наименьших привилегий: давать регистрации приложения для CLI только те разрешения API, которые нужны для автоматизированных задач, например для чтения профилей пользователей или создания определённых коллекций сайтов, без предоставления неограниченного доступа уровня глобального администратора.

Выполнение первых административных команд

Теперь самое интересное! CLI установлен, настроен и аутентифицирован. Давайте выполним несколько базовых команд, чтобы увидеть CLI for Microsoft 365 в действии и убедиться, насколько он быстрее работы через веб-интерфейс.

Начнём с простого: получим список пользователей из вашего клиента Azure Active Directory / Entra ID. Вместо того чтобы открывать портал Azure, переходить в Microsoft Entra ID, нажимать Users и ждать загрузки списка, достаточно ввести:

m365 aad user list

Вот и всё! Терминал мгновенно заполняется данными о пользователях. Если нужно отфильтровать список и найти конкретного пользователя, можно добавить параметры запроса или передать вывод по конвейеру. Например, чтобы найти пользователей определённого подразделения, CLI позволяет аккуратно отфильтровать результаты.

Далее рассмотрим SharePoint Online. Допустим, вам нужно создать новый современный сайт связи для команды нового проекта. Через центр администрирования SharePoint это требует нескольких кликов, заполнения форм, назначения владельцев и ожидания. С CLI можно записать это в виде одной повторяемой команды:

m365 spo site add --type CommunicationSite --title "Project Falcon" --url https://yourtenant.sharepoint.com/sites/projectfalcon --owner admin@yourtenant.onmicrosoft.com

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

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

m365 teams team list

Набор модулей, поддерживаемых CLI, впечатляет. Будь то управление Power Apps, потоками Power Automate, настройками Exchange Online или задачами Planner, структура команд остаётся интуитивной и единообразной: m365 [service] [resource] [action].

Заключение и следующие шаги

Как мы разобрали в этом руководстве, кроссплатформенный CLI для Microsoft 365 — это гораздо больше, чем очередной административный инструмент. Это смена парадигмы в том, как вы взаимодействуете со своей облачной средой. Отказавшись от кликов в интерфейсе в пользу автоматизации через командную строку, вы получаете беспрецедентный уровень эффективности, согласованности и масштабируемости. Нужно ли вам установить его на Windows для быстрой диагностики, на macOS для повседневной разработки или внутри контейнера Linux для автоматизированных конвейеров CI/CD, CLI предоставляет единый и мощный интерфейс для управления вашим клиентом Microsoft 365.

Помните, что этот пост — лишь верхушка айсберга. Чтобы глубже разобраться, как использовать этот инструмент в реальных корпоративных сценариях, освоить продвинутые приёмы написания скриптов и послушать обсуждения стратегий автоматизации, о которых руководство обычно не говорит, обязательно послушайте наш сопутствующий выпуск подкаста Automate Microsoft 365 with the Cross-Platform CLI. Подписывайтесь, оставляйте отзыв и начинайте автоматизировать свою административную работу уже сегодня!

Entities in this article

SharePoint Microsoft 365 Microsoft Entra ID Node.js PowerShell Microsoft Graph Microsoft 365 admin center Microsoft Teams Azure DevOps Container

Related articles

RSS