Navigation dans le kit de développement logiciel (SDK) Microsoft Graph PowerShellNavigating the Microsoft Graph PowerShell SDK

L’API Microsoft Graph est énorme et son temps grandissant.The Microsoft Graph API is huge, and it's growing all the time. Pour cette raison, le nombre de commandes dans le kit de développement logiciel (SDK) Microsoft Graph PowerShell est également très important.Because of this, the number of commands in the Microsoft Graph PowerShell SDK is also very large. Trouver la bonne commande pour ce que vous souhaitez obtenir peut être complexe, en particulier si vous ne connaissez pas encore 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. Nous allons examiner certaines façons de trouver une commande particulière.Let's look at some ways to help find a particular command.

Conventions de dénomination des commandesCommand naming conventions

Les commandes du kit de développement logiciel (SDK) sont générées directement à partir de l' API REST, de sorte que les noms sont influencés par l’API.The commands in the SDK are generated directly from the REST API, so the names are influenced by the API. Vous n’avez pas besoin de comprendre les détails de l’API pour utiliser ce kit de développement logiciel (SDK), mais il est utile de comprendre la Convention d’affectation de noms.You don't have to understand the details of the API to use this SDK, but it helps to understand the naming convention.

Les commandes PowerShell sont nommées à l’aide d’une paire Verb-substantif, telle que Get-Command ou Update-List .PowerShell commands are named using a verb-noun pair, such as Get-Command or Update-List. Commençons par le verbe.Let's start with the verb.

Verbes de commandeCommand verbs

Pour les opérations REST de base, le verbe est déterminé par la méthode HTTP utilisée pour l’API.For basic REST operations, the verb is determined by the HTTP method used for the API.

Méthode HTTPHTTP method Verbe de commandeCommand verb ExempleExample
GETGET ObtenirGet Get-MgUser Référence d’APIGet-MgUser API reference
POSTPOST NouveauNew New-MgUserMessage Référence d’APINew-MgUserMessage API reference
PUTPUT NouveauNew New-MgTeam Référence d’APINew-MgTeam API reference
PATCHPATCH UpdateUpdate Update-MgUserEvent Référence d’APIUpdate-MgUserEvent API reference
SUPPRIMERDELETE SupprimerRemove Remove-MgDriveItem Référence d’APIRemove-MgDriveItem API reference

Pour les fonctions et les actions, il est un peu plus compliqué.For functions and actions, it's a little more complicated. Les API de Microsoft Graph qui sont implémentées en tant que fonctions ou actions OData sont généralement nommées avec au moins un verbe.APIs in Microsoft Graph that are implemented as OData functions or actions are typically named with at least a verb. Le verbe de la commande correspondante est basé sur le verbe dans le nom de la fonction ou de l’action.The corresponding command's verb is based on the verb in the function or action name. Toutefois, les verbes de commande dans PowerShell doivent se conformer à des règles de dénominationspécifiques, ce qui peut entraîner des mappages de nom à commande non intuitifs.However, command verbs in PowerShell have to conform to specific naming rules, so this can result in non-intuitive name-to-command mappings.

Passons en revue quelques exemples.Let's look at some examples. L’API getSchedule utilise get et Get est un verbe PowerShell approuvé, de sorte qu’il s’agit de la commande Get-MgUserCalendarSchedule .The getSchedule API uses get, and Get is an approved PowerShell verb, so it's command is Get-MgUserCalendarSchedule. L’API Cancel d’un événement en revanche utilise un verbe non approuvé cancel .The cancel API on an event on the other hand, uses a non-approved verb cancel. Le verbe approuvé pour l’annulation ou l’interruption d’un événement est, c’est Stop pourquoi il s’agit de la commande Stop-MgUserEvent .The approved verb for cancelling or discontinuing somethign is Stop, so it's command is Stop-MgUserEvent. Enfin, le verbe de l’API snoozeReminder n' snooze a pas d’équivalent approuvé par PowerShell.Finally, the snoozeReminder API's verb, snooze, has no PowerShell-approved equivalent. Pour les API similaires, le kit de développement logiciel (SDK) utilise le verbe Invoke , de sorte que la commande de l’API est Invoke-MgSnoozeUserEventReminder .For API's like that, the SDK uses the verb Invoke, so that API's command is Invoke-MgSnoozeUserEventReminder.

Noms des commandesCommand nouns

À présent, vous avez peut-être remarqué que tous les noms figurant dans les commandes du kit de développement logiciel (SDK) commencent par Mg .By now you may have noticed that all nouns in the SDK's commands start with Mg. Ce préfixe permet d’éviter les conflits d’affectation de noms avec d’autres modules PowerShell.This prefix helps to avoid naming conflicts with other PowerShell modules. Dans cette optique, il est nécessaire que les commandes telles que Get-MgUser soient utilisées pour obtenir un utilisateur.With that in mind, it should make sense that commands like Get-MgUser are used to get a user. Et suivant la Convention PowerShell, même si le nom est singulier, ces mêmes commandes peuvent renvoyer plusieurs résultats si aucune instance spécifique n’est demandée.And following PowerShell convention, even though the noun is singular, those same commands can return multiple results if no specific instance is requested.

Mais qu’en est-il des commandes comme Get-MgUserMessage ou Get-MgUserMailFolderMessage ?But what about commands like Get-MgUserMessage or Get-MgUserMailFolderMessage? Ces deux types d’objets reçoivent un objet message , donc pourquoi pas Get-MgMessage ?Both of these get a message object, so why not Get-MgMessage? La réponse provient de l' API obtenir un message.The answer comes from the get message API.

Examinez les requêtes HTTP pour cette API.Look at the HTTP requests for this API. En ignorant les demandes avec /me dans l’URL, il existe deux autres façons d’appeler cette API.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}

Les chemins d’accès correspondent aux noms.The paths match to the nouns. Pour le premier formulaire, vous commencez par users , puis messages , la commande est Get-MgUserMessage .For the first form, you start with users, then messages, so the command is Get-MgUserMessage. Dans le deuxième formulaire, vous commencez par users , puis par mailFolders messages, de sorte que la commande est Get-MgUserMailFolderMessage .In the second form, you start with users, then mailFolders, then messages, so the command is Get-MgUserMailFolderMessage.

Une autre méthode consiste à consulter ce qui est propriétaire ou contient quoi.Another way of looking at this is what owns or contains what. L’utilisateur possède des dossiers de courrier et les dossiers de courrier contiennent des messages.The user owns mail folders, and mail folders contain messages. Ajoutez le préfixe et vous obtenez Get-MgUserMailFolderMessage .Add the prefix and you get Get-MgUserMailFolderMessage.

Recherche de commandes disponiblesFinding available commands

Parfois, il ne suffit pas de connaître les conventions d’affectation de noms pour deviner la commande correcte.Sometimes just knowing the naming conventions isn't enough to guess the right command. Dans ce cas, vous pouvez utiliser la Get-Command commande pour rechercher les commandes disponibles dans le kit de développement logiciel (SDK).In this case, you can use the Get-Command command to search the available commands in the SDK. Par exemple, si vous recherchez des commandes liées à Microsoft Teams, vous pouvez exécuter la commande suivante.For example, if you're looking for commands related to Microsoft Teams, you can run the following command.

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