Початок роботи з міжплатформним CLI для Microsoft 365
By Mirko Peters ·
Раді знову вітати слухачів і читачів! Якщо ви колись потопали в горі одноманітних адміністративних завдань в центрі адміністрування Microsoft 365, клацаючи безкінечними меню лише для того, щоб створити сайт або оновити властивість користувача, цей посібник створено саме для вас. Сучасне адміністрування хмарних середовищ вимагає швидкості, масштабованості та точності. Минули часи, коли справжній си
Automatically translated with AI from the original post. Read the English original
Раді знову вітати слухачів і читачів! Якщо ви колись потопали в горі одноманітних адміністративних завдань в центрі адміністрування 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) Node.js, щоб забезпечити максимальну сумісність і стабільність.
Встановлення у Windows
Якщо ви працюєте у Windows, у вас є кілька чудових варіантів: Windows PowerShell, PowerShell 7 або командний рядок Windows (Command Prompt). Після встановлення Node.js відкрийте обраний термінал з правами адміністратора і виконайте таку команду:
npm install -g @pnp/cli-microsoft365
Прапорець -g гарантує глобальне встановлення CLI в системі, тож команда m365 буде доступна з будь-якого каталогу в терміналі. Під час встановлення завантажуються необхідні пакети, компілюються потрібні бінарні файли та реєструються шляхи до команд. Після завершення перевірити встановлення можна, просто ввівши m365 і натиснувши Enter: має з'явитися базове довідкове меню з інформацією про версію.
Встановлення у macOS
Користувачі Mac отримають такий самий досвід, адже можна працювати в Terminal або в альтернативних емуляторах терміналу, наприклад iTerm2. Відкрийте програму терміналу та переконайтеся, що Node.js встановлено: багато розробників на Mac використовують Homebrew для керування середовищами Node. Виконайте команду глобального встановлення:
npm install -g @pnp/cli-microsoft365
Залежно від прав у системі та способу, яким було встановлено Node.js, можлива помилка доступу. У такому разі можна або перенастроїти шлях встановлення Node.js, щоб уникнути проблем із правами, або, як крайній захід, додати 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. Коли ви введете код у браузері, вас попросять увійти з корпоративними обліковими даними Microsoft 365, пройти будь-яку перевірку багатофакторної автентифікації (MFA), яку вимагають умовні політики доступу вашої організації, і надати CLI дозвіл діяти від вашого імені в межах запитаних областей доступу (scopes).
Після успішної автентифікації термінал підтвердить вхід і відобразить ваш основний ім'я користувача (UPN) та ідентифікатор клієнта (tenant ID), до якого ви зараз підключені. Щоб перевірити стан підключення будь-коли, достатньо виконати:
m365 status
Ця команда незамінна, коли ви переключаєтеся між кількома клієнтами або середовищами для скриптів, адже вона дає впевненість, що ви працюєте з правильним середовищем перед виконанням деструктивних або критичних команд.
Автентифікація за службовим принципалом і сертифікатом
Що, якщо ви будуєте автоматизований конвеєр — наприклад, GitHub Action, конвеєр Azure DevOps або заплановану Azure Function — який має працювати без участі людини? Інтерактивний вхід через код пристрою там не спрацює. Для таких сценаріїв CLI підтримує автентифікацію через реєстрації застосунків Azure AD (службові принципали).
Можна автентифікуватися за допомогою ідентифікатора клієнта та секрету клієнта або, що безпечніше, за допомогою сертифіката застосунку Azure AD:
m365 login --authType certificate --appId YOUR_APP_ID --thumbprint YOUR_CERT_THUMBPRINT --tenant YOUR_TENANT.onmicrosoft.com
Використовуючи службові принципали, ви можете дотримуватися принципу найменших привілеїв: надавати реєстрації застосунку CLI лише ті дозволи API, які їй потрібні для автоматизованих завдань, наприклад читання профілів користувачів або створення конкретних колекцій сайтів, і не давати їй необмежений доступ глобального адміністратора.
Виконання перших адміністративних команд
Тепер найцікавіша частина! Ви встановили, налаштували та автентифікувалися. Давайте виконаємо кілька базових команд, щоб побачити CLI для Microsoft 365 у дії і переконатися, наскільки це швидше, ніж клікати веб-інтерфейсом.
Почнемо з чогось простого: отримаємо список користувачів вашого клієнта Azure Active Directory / Entra ID. Замість того щоб відкривати Azure Portal, переходити до Microsoft Entra ID, натискати «Користувачі» і чекати, поки завантажиться список, достатньо ввести:
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 — це значно більше, ніж черговий адміністративний інструмент. Це зміна парадигми в тому, як ви взаємодієте з хмарним середовищем. Відмовившись від click-ops на користь автоматизації через командний рядок, ви отримуєте безпрецедентний рівень ефективності, узгодженості та масштабованості. Чи встановлюєте ви його на Windows для швидкого усунення несправностей, на macOS для щоденної розробки чи всередині контейнера Linux для автоматизованих конвеєрів CI/CD, CLI надає єдиний потужний інтерфейс для керування вашим клієнтом Microsoft 365.
Пам'ятайте, що цей допис — лише верхівка айсберга. Щоб глибше зрозуміти, як використовувати цей інструмент у реальних корпоративних сценаріях, опанувати просунуті прийоми скриптування та почути обговорення стратегій автоматизації, про які керівництво рідко говорить, обов'язково послухайте наш супутній подкаст: Automate Microsoft 365 with the Cross-Platform CLI. Підписуйтесь, залишайте відгук і починайте автоматизувати своє адміністрування вже сьогодні!