Microsoft 365 のコマンドラインインターフェイスを使用する必要がある - TechRepublic

Microsoft 365 のコマンドラインインターフェイスを使用する必要がある - TechRepublic
プログラムコードのバグ画面のグリッチベクター背景
画像: Vector Tradition/Adobe Stock

Microsoft 365 の管理は複雑になりがちです。必要な作業の多くは Web ポータルから実行できますが、スクリプトやその他のツールを使用して繰り返し実行できるアクションを作成するなど、よりインタラクティブな操作が必要になる場合があります。そこで役立つのが Microsoft 365 のコマンドライン インターフェイスです。このツールは、コマンドラインから Microsoft 365 テナントを管理するためのもので、PowerShell、bash、または任意のスクリプト環境からプログラム的に使用できます。

Microsoft 365 向け CLI は、Microsoft 365 プラットフォーム コミュニティ (PnP) によって開発されました。このコミュニティは、Microsoft スタッフと Microsoft 365 MVP によって運営されており、ベストプラクティスとそれらをサポートするためのツールを共有するために設立されました。

参照:採用キット: バックエンド開発者(TechRepublic Premium)

Microsoft 365 管理の多くをコマンド ラインに組み込むツールを提供することは、Microsoft 365 を使用すると他の管理者が問題を解決するのに役立つスクリプトやクエリを簡単に共有できるため、車輪の再発明をしないという同社の理念によく適合しています。

Microsoft 365 の CLI を使い始める

ほとんどの管理者は Windows 上の PowerShell から CLI を実行する可能性がありますが、CLI は node.js JavaScript アプリケーションとして構築されており、Linux または macOS にインストールして、ローカル アプリケーションを呼び出すことができるサポートされている任意のシェルで動作することができます。

インストールはnpm経由で行われ、アップデートの管理やベータテスト版のダウンロードに利用できます。Linux Dockerコンテナでも利用できるため、コンテナをサポートしている環境であればどこでも実行できます。CLIをMicrosoft 365の独自の管理UIの基盤として活用し、JavaScriptでCLIコマンドを呼び出し、JSON形式の結果を解析するという興味深い可能性も秘めています。

npm のツールを使用して定期的にアップデートを確認することが重要です。Microsoft 365 API サーフェスの拡張に伴い、チームはリリースごとに新機能を追加しています。不要になった場合は、npm を再度実行することで CLI をアンインストールできます。

CLIを初めて実行する際は、m365 loginコマンドを使用してテナントの認証を行ってください。これにより、Webベースの認証手順が実行され、Microsoft 365をリモートで管理するために必要な権限が設定されます。必要な権限の長いリストに同意すると、Windowsターミナルに戻り、すぐに利用できるようになります。対話型ログインが利用できない場合は、ユーザー名とパスワードでログインすることもできます。

その他の機能では、Azure Active Directory シークレットの使用がサポートされています。これは、CLI を独自のスクリプトに組み込むときに便利なオプションですが、現時点では、SharePoint Online の API に対して動作する必要があるスクリプトでは機能しません。

Microsoft 365 のスクリプト

セットアップが完了したら、Microsoft 365 インスタンスの管理を開始できます。テナント設定の管理から OneDrive や Teams などの特定のアプリの操作まで、Microsoft 365 スタック内のさまざまなレベルで操作するためのコマンドが用意されています。

Microsoft 365のCLIを使用すると、アプリケーションやユーザーの管理に役立つ情報を収集できます。さらに便利なのは、これらのクエリを基に複雑なスクリプトを作成し、あるレスポンスからパラメータを取り込んで別のレスポンスの入力として使用できる点です。例えば、現在利用可能なすべてのOneDriveストアのリストを取得し、それを使ってストレージ予算の使用状況を照会できます。さらに、結果を適切なマネージャーに自動的にメールで送信することも可能です。

Microsoft 365のほとんどのアプリケーションとサービスに対応するコマンドが用意されていますが、CLIのコマンドのほとんどがSharePoint Onlineを操作するためのものであることは当然のことです。SharePointは依然としてスイートの重要な部分であり、多くの組織におけるコラボレーションとコミュニケーションの鍵となるツールです。SharePointの管理に特化した260以上のコマンドを備えており、SharePoint管理者にとって不可欠なツールとなっています。SharePointをプログラムで操作できることは大きな時間節約につながり、CLIのコマンドライブラリは拡大を続けており、必要な作業の多くをカバーしています。

Teams専用のコマンドが60以上あります。アプリ、ユーザー、チャネルを動的に管理できるだけでなく、チャットへのメッセージ送信を自動化したり、スクリプトからデータを取得してアダプティブカードに埋め込み、迅速なインタラクションを実現したりすることも可能です。例えば、基本的なチャットボットがCLIスクリプトを呼び出し、要求されたデータを返すような状況を想定し、会議を離れることなく、あるいは進行中のチームチャット内からMicrosoft 365テナントを管理できるようにすることも可能です。

クエリ結果のフィルタリングと使用

データを返すコマンドは、デフォルトでJSON形式を使用します。CLIコマンドをスクリプトに組み込み、PowerShellのJSONツールを使用して出力をフォーマットする場合は、これは問題ありません。ただし、簡単なクエリを実行する場合は、人間が判読しやすい形式ではないため、テキストまたはCSV出力を選択できます。後者は、メールボックスなどの大規模なデータを取得し、Excelにインポートして詳細な分析やレポートを作成したい場合に適しています。CSV出力を使用すると、Power BIなどのツールにデータを入力することで、ダッシュボードやその他の視覚化機能を実行できます。

クエリを使って必要なデータを抽出することで、出力をフィルタリングすることもできます。使用されるクエリ言語はJMESPath JSONツールをベースにしており、使い慣れた正規表現ツールに大きく依存しています。JMESPathサイトには、必要なデータを取得するために必要なクエリのフォーマット設定に役立つテストツールが用意されているので便利です。データのフィルタリングに加えて、並べ替えや順序付けも可能なので、独自の並べ替え関数を記述することなく、関連する結果をレスポンスの先頭に表示できます。

どのコマンドを使えばいいかよくわからない場合は、ほとんどのコマンドライン環境でClinkツールを使ったコマンド補完がサポートされています。あるいは、PowerShellを1行入力するだけで、PowerShell独自のターミナルにコマンド補完機能が追加されます。

Microsoft 365のようなWebベースの管理ポータルは便利なツールですが、ユーザーに基本的な設定を適用したりアプリケーションを構成したりする以上のことをしたい場合は、このようなコマンドラインツールの方がはるかに便利です。特に、テナントやユーザーをプログラムで管理できる場合はなおさらです。クロスプラットフォーム対応なので、どこにいても使えるツールであり、邪魔にならず、ツールチェーンやワークフローに適合します。そのため、Microsoft 365とSharePoint Onlineを管理するすべての人にとって不可欠なツールとなっています。

TechRepublic Academy には、Microsoft に関するリソースが 100 以上あることをご存知ですか?こちらからご覧ください。

Tagged: