Empower your automation with Microsoft Graph PowerShell | Quick Guide
Overview
Microsoft Graph is a RESTful API that enables developers to interact with data from various Microsoft services such as Office 365, OneDrive, Azure Active Directory, and more. PowerShell is a command-line shell and scripting language that is used to automate tasks and manage configurations.
To interact with Microsoft Graph using PowerShell, you can use the Microsoft Graph PowerShell module. The module provides cmdlets that allow you to easily manage resources such as users, groups, and files.
Packaging
Microsoft Graph PowerShell is packaged as the Microsoft.Graph module in PowerShell gallery as the root module, with multiple child modules. Microsoft.Graph acts as a container for the other modules.
Microsoft.Graph.Authentication is the core module, which contains the following components:
Connect-MgGraph: to sign in to Microsoft Graph
Invoke-MgGraphRequest: to issue REST API requests for the Microsoft Graph API
Commands to switch between beta and V1.0 versions of the SDK
Commands to discover permissions and API-specific Graph commands in other modules
Commands are named like {Verb}-Mg {Resource} (a Graph API resource) for example, user,group, and application. For example, in the command Get-MgUser, get is the verb and user the resource.
Installation
To get started, you'll need to install the Microsoft Graph PowerShell module by running the following command in PowerShell:
Installing the main module of the SDK, Microsoft.Graph, will install all the 38 sub modules. Consider installing only the necessary modules, including Microsoft.Graph.Authentication, which is installed by default when you opt to install the sub modules individually. For a list of available Microsoft Graph modules, use Find-Module Microsoft.Graph*. Only cmdlets for the installed modules will be available for use.
Install-Module -Name Microsoft.Graph
Sign in Connect-MgGraph
Microsoft Graph PowerShell supports two types of authentication: delegated and app-only access.
In delegated access, the -Scopes parameter is optional, only needed if you don't have consent. For example, if you don't have consent for User.Read.All and you need it, specify it with the -Scopes parameter. Next time you use Connect-MgGraph, you won't need to specify the User.Read.All scope.
Once installed, you can connect to Microsoft Graph using the following cmdlet:
Connect-MgGraph -Scopes "User.Read.All","Group.Read.All"
This cmdlet will prompt you to log in to your Microsoft account and grant the necessary permissions to the application.
After connecting, you can use the various cmdlets provided by the module to manage resources in Microsoft Graph. For example, to get information about all the users in your organization, you can use the following command:
<span style="font-size: 12.1px;">Get-MgUser</span><br>
Navigating Microsoft Graph PowerShell
Using Find-MgGraphCommand
Find-MgGraphCommand -Command 'Get-MgUser'
Using Find-MgGraphPermission
Find-MgGraphPermission helps you find what permissions are applicable to a certain domain. You'll use permissions to sign in to your application using the Connect-MgGraph.
Find-MgGraphPermission user.read
Using Select-MgProfile
By default, the Microsoft Graph PowerShell commands target the v1.0 API versi vilable in beta aren't available in PowerShell by default.
To check your current profile, run:
Get-MgProfile
To change to the beta version, use Select-MgProfile.
Select-MgProfile -Name Beta
Conclusion
Overall, using the Microsoft Graph PowerShell module can greatly simplify the process of interacting with data from various Microsoft services, making it a powerful tool for automation and management.