Microsoft Graph PowerShell SDK のナビゲーションNavigating the Microsoft Graph PowerShell SDK

Microsoft Graph API は非常に大きなもので、常に増大しています。The Microsoft Graph API is huge, and it's growing all the time. このため、Microsoft Graph PowerShell SDK のコマンドの数も非常に大きくなっています。Because of this, the number of commands in the Microsoft Graph PowerShell SDK is also very large. 特に Microsoft Graph を使い慣れていない場合は特に、目的を達成するための適切なコマンドを見つけるのが難しいことがあります。Finding the right command for what you want to achieve can be challenging, especially if you're not already familiar with Microsoft Graph. 特定のコマンドを見つけるのに役立ついくつかの方法を見てみましょう。Let's look at some ways to help find a particular command.

コマンドの名前付け規則Command naming conventions

SDK のコマンドは REST apiから直接生成されるので、api によって名前が決まります。The commands in the SDK are generated directly from the REST API, so the names are influenced by the API. この SDK を使用するために API の詳細を理解する必要はありませんが、名前付け規則について理解しておくと役に立ちます。You don't have to understand the details of the API to use this SDK, but it helps to understand the naming convention.

PowerShell コマンドには、動詞と名詞のペア (またはなど) を使用して名前が付けられ Get-Command Update-List ます。PowerShell commands are named using a verb-noun pair, such as Get-Command or Update-List. 動詞から始めましょう。Let's start with the verb.

コマンドの動詞Command verbs

基本的な REST 操作の場合、動詞は API に使用される HTTP メソッドによって決まります。For basic REST operations, the verb is determined by the HTTP method used for the API.

HTTP メソッドHTTP method コマンドの動詞Command verb Example
GETGET 取得Get Get-MgUser API リファレンスGet-MgUser API reference
POSTPOST 新規New New-MgUserMessage API リファレンスNew-MgUserMessage API reference
PUTPUT 新規New New-MgTeam API リファレンスNew-MgTeam API reference
PATCHPATCH UpdateUpdate Update-MgUserEvent API リファレンスUpdate-MgUserEvent API reference
DELETEDELETE 削除Remove Remove-MgDriveItem API リファレンスRemove-MgDriveItem API reference

関数とアクションについては、もう少し複雑です。For functions and actions, it's a little more complicated. OData 関数またはアクションとして実装されている Microsoft Graph の Api には、通常、少なくとも動詞があります。APIs in Microsoft Graph that are implemented as OData functions or actions are typically named with at least a verb. 対応するコマンドの動詞は、関数またはアクション名の動詞に基づいています。The corresponding command's verb is based on the verb in the function or action name. ただし、PowerShell のコマンド動詞は特定の 名前付け規則に準拠している必要があるため、これによって名前からコマンドへの直観的なマッピングが行われないことがあります。However, command verbs in PowerShell have to conform to specific naming rules, so this can result in non-intuitive name-to-command mappings.

いくつかの例を見てみましょう。Let's look at some examples. Getschedule API はを使用し、 get Get は承認された PowerShell 動詞であるため、コマンドは Get-MgUserCalendarSchedule です。The getSchedule API uses get, and Get is an approved PowerShell verb, so it's command is Get-MgUserCalendarSchedule. 一方、イベントの cancel API は、承認されていない verb を使用し cancel ます。The cancel API on an event on the other hand, uses a non-approved verb cancel. 取り消しまたは中止するための承認済みの動詞は、という Stop コマンドです Stop-MgUserEventThe approved verb for cancelling or discontinuing somethign is Stop, so it's command is Stop-MgUserEvent. 最後に、 snoozeReminder API の動詞、は、PowerShell によって snooze 承認された同等のものではありません。Finally, the snoozeReminder API's verb, snooze, has no PowerShell-approved equivalent. このような API の場合、SDK は動詞を使用して、 Invoke api のコマンドがであるように Invoke-MgSnoozeUserEventReminder します。For API's like that, the SDK uses the verb Invoke, so that API's command is Invoke-MgSnoozeUserEventReminder.

コマンド名詞Command nouns

これまでに、SDK のコマンドのすべての名詞がで始まっていることに気付いたかもしれ Mg ません。By now you may have noticed that all nouns in the SDK's commands start with Mg. このプレフィックスは、他の PowerShell モジュールとの名前の競合を回避するのに役に立ちます。This prefix helps to avoid naming conflicts with other PowerShell modules. このことを念頭に置いて、コマンドのようなコマンドを Get-MgUser 使用してユーザーを取得することをお勧めします。With that in mind, it should make sense that commands like Get-MgUser are used to get a user. また、PowerShell の規則に従って、名詞が単数形であっても、特定のインスタンスが要求されない場合、同じコマンドは複数の結果を返すことができます。And following PowerShell convention, even though the noun is singular, those same commands can return multiple results if no specific instance is requested.

しかし Get-MgUserMessage 、またはのようなコマンドについてはどうでしょうか Get-MgUserMailFolderMessageBut what about commands like Get-MgUserMessage or Get-MgUserMailFolderMessage? どちらも message オブジェクトを取得するので、なぜです Get-MgMessage か。Both of these get a message object, so why not Get-MgMessage? 応答は、 get MESSAGE API から取得されます。The answer comes from the get message API.

この API の HTTP 要求を確認します。Look at the HTTP requests for this API. URL に含まれる要求を無視 /me すると、この API を呼び出す方法が他に2つあります。Ignoring the requests with /me in the URL, there are two other ways to call this API.

GET /users/{id | userPrincipalName}/messages/{id}
GET /users/{id | userPrincipalName}/mailFolders/{id}/messages/{id}

パスは名詞に一致します。The paths match to the nouns. 最初のフォームについては、次のコマンドを実行し users messages Get-MgUserMessage ます。For the first form, you start with users, then messages, so the command is Get-MgUserMessage. 2番目のフォームでは、次のようにしてから、メッセージを開始して、 users mailFolders コマンドはになり Get-MgUserMailFolderMessage ます。In the second form, you start with users, then mailFolders, then messages, so the command is Get-MgUserMailFolderMessage.

これを確認する別の方法は、所有している、または何が含まれているかを調べることです。Another way of looking at this is what owns or contains what. ユーザーがメールフォルダーを所有しており、メールフォルダーにメッセージが含まれている。The user owns mail folders, and mail folders contain messages. 接頭辞を追加して、を取得し Get-MgUserMailFolderMessage ます。Add the prefix and you get Get-MgUserMailFolderMessage.

使用可能なコマンドを検索するFinding available commands

名前付け規則を知っているだけでは、適切なコマンドを推測できない場合もあります。Sometimes just knowing the naming conventions isn't enough to guess the right command. この場合は、コマンドを使用して、 Get-Command SDK で使用可能なコマンドを検索できます。In this case, you can use the Get-Command command to search the available commands in the SDK. たとえば、Microsoft Teams に関連するコマンドを探している場合は、次のコマンドを実行できます。For example, if you're looking for commands related to Microsoft Teams, you can run the following command.

Get-Command -Module Microsoft.Graph* *team*