Microsoft Graph PowerShell SDK を使い始めるGet started with the Microsoft Graph PowerShell SDK

このガイドでは、Microsoft Graph PowerShell SDK を使用していくつかの基本的なタスクを実行します。In this guide you'll use the Microsoft Graph PowerShell SDK to perform some basic tasks. まだ SDK をインストールしていない場合は、このガイドを実行する前に、この手順を実行してください。If you haven't already installed the SDK, please do so before following this guide.

API のバージョンAPI version

既定では、SDK は Microsoft GRAPH REST APIv1.0 を使用します。By default, the SDK uses the Microsoft Graph REST API v1.0. これは、コマンドを使用して変更でき Select-MgProfile ます。You can change this by using the Select-MgProfile command.

Select-MgProfile -Name "beta"

認証Authentication

PowerShell SDK は、代理アクセスとアプリ専用アクセスの2種類の認証をサポートしています。The PowerShell SDK supports two types of authentication: delegated access, and app-only access. このガイドでは、代理アクセスを使用してユーザーとしてログインし、自分の代わりに使用するために SDK に同意を付与し、Microsoft Graph を呼び出します。In this guide, you will use delegated access to login as a user, grant consent to the SDK to act on your behalf, and call the Microsoft Graph.

無人シナリオでアプリ専用アクセスを使用する方法の詳細については、「 Microsoft Graph POWERSHELL SDK でアプリ専用認証を使用する」を参照してください。For details on using app-only access for unattended scenarios, see Use app-only authentication with the Microsoft Graph PowerShell SDK.

必要なアクセス許可のスコープを決定するDetermine required permission scopes

Microsoft Graph の各 API は、1つまたは複数のアクセス許可スコープによって保護されています。Each API in the Microsoft Graph is protected by one or more permission scopes. ログインしているユーザーは、使用する Api に必要なスコープのいずれかに同意する必要があります。The user logging in must consent to one of the required scopes for the APIs you plan to use. この例では、次の Api を使用します。In this example, we'll use the following APIs.

User.Read.Allアクセス許可スコープによって、最初の2つの呼び出しが有効になり、スコープによって Group.ReadWrite.All 残りが有効になります。The User.Read.All permission scope will enable the first two calls, and the Group.ReadWrite.All scope will enable the rest. これらのアクセス許可には管理者アカウントが必要です。These permissions require an admin account.

サインインSign in

コマンドを使用して Connect-Graph 、必要なスコープを使用してサインインします。Use the Connect-Graph command to sign in with the required scopes. 必要なスコープに同意するには、管理者アカウントでサインインする必要があります。You'll need to sign in with an admin account to consent to the required scopes.

Connect-Graph -Scopes "User.Read.All","Group.ReadWrite.All"

コマンドを実行すると、デバイスコードを使用してサインインするための web ページに移動するように求められます。The command prompts you to go to a web page to sign in using a device code. この操作を実行すると、コマンドはメッセージに成功したことを示し Welcome To Microsoft Graph! ます。Once you've done that, the command indicates success with a Welcome To Microsoft Graph! message. これを行う必要があるのは、セッションごとに1回だけです。You only need to do this once per session.

ヒント

新しいアクセス許可のスコープを使用してコマンドを繰り返すことにより、追加のアクセス許可を追加でき Connect-Graph ます。You can add additional permissions by repeating the Connect-Graph command with the new permission scopes.

Microsoft Graph を呼び出すCall Microsoft Graph

サインインしたら、Microsoft Graph への通話を開始することができます。Now that you're signed in, you can start making calls to Microsoft Graph.

サインインしているユーザーを取得するGet the signed-in user

このセクションでは、サインインしているユーザーを特定し、ユーザー ID を取得します。In this section you'll locate the signed-in user and get her user ID. 後で使用する他のコマンドのパラメーターとして使用する必要があります。You'll need that to use as a parameter to the other commands you'll use later. 最初に、次のコマンドを実行します。Start by running the following command.

Get-MgUser

これにより、Microsoft 365 組織のユーザーの一覧が出力されます。This outputs a listing of users in your Microsoft 365 organization.

Id                                   DisplayName              Mail                                  UserPrincipalName
--                                   -----------              ----                                  -----------------
88d1ba68-8ff5-4de2-90ed-768c00abcfae Conf Room Adams          Adams@contoso.onmicrosoft.com         Adams@contoso.…
3103c7b9-cfe6-4cd3-a696-f88909b9a609 Adele Vance              AdeleV@contoso.OnMicrosoft.com        AdeleV@contoso…
da3a885e-2d97-41de-9347-5271ef321b58 MOD Administrator        admin@contoso.OnMicrosoft.com         admin@contoso.…
e0c6ee40-e105-476d-9597-acd061d21fcb Alex Wilber              AlexW@contoso.OnMicrosoft.com         AlexW@contoso.…
17c6bdee-8ed3-49af-a65e-71b64cca8382 Allan Deyoung            AllanD@contoso.OnMicrosoft.com        AllanD@contoso…
e5b78950-27cd-4f01-b083-eab4da97ca6a Conf Room Baker          Baker@contoso.onmicrosoft.com         Baker@contoso.…
40467725-1a58-495d-9e2f-5970c6306d8d Bianca Pisani                                                  BiancaP@contoso…
ce73bdb5-bf12-405e-ab85-40122fdd6eb7 Brian Johnson (TAILSPIN) BrianJ@contoso.onmicrosoft.com        BrianJ@contoso…
df1347a3-7ce7-4b4d-8aab-7c65b5c907b9 Cameron White                                                  CameronW@contoso…

OData フィルターを使用して、目的のユーザーを特定することができます。You can use an OData filter to help locate the specific user you want. Megan Bowenサインインしたユーザーの表示名に置き換えて、次のコマンドを実行します。Run the following command, replacing Megan Bowen with the display name of the user you signed in with.

$user = Get-MgUser -Filter "displayName eq 'Megan Bowen'"

正常に動作することを確認するには、次のように入力します。Verify that worked by entering the following.

$user.DisplayName

ユーザーが参加しているチームを一覧表示するList the user's joined Teams

ここで、ユーザーの ID をコマンドのパラメーターとして使用し Get-MgUserJoinedTeam ます。Now use the user's ID as a parameter to the Get-MgUserJoinedTeam command.

Get-MgUserJoinedTeam -UserId $user.Id

このコマンドと同じよう Get-MgUser に、Teams の一覧が表示されます。Just like the Get-MgUser command, this gives a list of Teams. ユーザーの参加している Teams のいずれかを選択し、それを使用して DisplayName リストにフィルターを適用します。Select one of the user's joined Teams and use its DisplayName to filter the list.

$team = Get-MgUserJoinedTeam -UserId $user.Id -Filter "displayName eq 'Sales and Marketing'"

チームチャネルの一覧表示List Team channels

すべてのチャネルを一覧表示した場合と同様のパターンに従って、チームの ID をコマンドのパラメーターとして使用し、次 Get-MgTeamChannel に、目的のチャネルを取得するためにリストをフィルター処理します。Now use the Team's ID as a parameter to the Get-MgTeamChannel command, following a similar pattern of listing all channels, then filtering the list to get the specific channel you want.

Get-MgTeamChannel -TeamId $team.Id
$channel = Get-MgTeamChannel -TeamId $team.Id -Filter "displayName eq 'General'"

メッセージを送信するSend a message

チーム ID とチャネル ID の両方があるので、チャネルにメッセージを投稿できます。Now that you have both the Team ID and the channel ID, you can post a message to the channel. メッセージを送信するには、次のコマンドを使用します。Use the following command to send the message.

New-MgTeamChannelMessage -TeamId $team.Id -ChannelId $channel.Id -Body @{ Content="Hello World" }

このコマンドは、以前に使用したコマンドとは異なります。This command differs from the previous commands you used. データを照会するだけでなく、実際には何かを作成しています。Instead of just querying data, it's actually creating something. Microsoft Graph では、これは HTTP に変換され、その POST 投稿の本文にオブジェクトが必要になります。In Microsoft Graph, this translates to an HTTP POST, and it requires an object in the body of that post. この例では、オブジェクトは Chatmessageです。In this case, the object is a chatMessage. -Bodyコマンドのパラメーターは、のプロパティにマップされることに注意して body chatMessage ください。Note that the -Body parameter to the command maps to the body property on chatMessage. その他のプロパティは同様の方法でマップされるので、送信するメッセージを変更できます。Other properties are mapped in a similar way, so you can change the message you send. たとえば、緊急メッセージを送信するには、次のコマンドを使用します。For example, to send an urgent message use the following command.

New-MgTeamChannelMessage -TeamId $team.Id -ChannelId $channel.Id -Body @{ Content="Hello World" } -Importance "urgent"

次の手順Next steps