Over the last few months, I have been interacting with Copilot-related Graph APIs using PowerShell with some difficulty. Due to the fact that no dedicated cmdlets existed before this post, this would normally involve making raw HTTP requests to the Graph API or using the Invoke-MgGraphRequest and targeting the necessary API endpoint.
To solve this problem, I have released the Microsoft Graph.Copilot PowerShell module. This module aims to simplify interacting with Copilot-related Graph APIs, enabling you to update tenant-wide settings and obtain interaction data from Copilot.
To be clear, this Module is not created or maintained by Microsoft.
What can the module do?
The module is and always will be limited to the functionality of the Microsoft Graph API and its ability to interact with Copilot related endpoints. At its initial release, you can use Microsoft.Graph.Copilot to:
- List all Microsoft 365 Copilot licenses
- Get the Copilot Limited Mode settings
- Get the Copilot Personalization settings
- Get a Copilot Usage Detail report output to the session or export to CSV
- Get Copilot Interaction History for a specific user, filtered by app source and/or date range
- Update Copilot Limited Mode settings
- Update Copilot Personalization Settings
Installing Microsoft.Graph.Copilot
Microsoft.Graph.Copilot has been published to the PSGallery. Installation is easy using the following examples:
# Install in the current user context
Install-Module Microsoft.Graph.Copilot -scope CurrentUser
# Install in the all user context
Install-Module Microsoft.Graph.Copilot -scope AllUsers The GitHub repo and contributions
All source code has been published to the GitHub gallery as a script module. While most Microsoft Graph modules are published using an Auto-Rest process as a binary module, Microsoft.Graph.Copilot is public, community driven and 100% open to contributions.
Hear over to the repo to see the code and make a contribution:
Cmdlet reference
A simple docs page with cmdlet reference links has been published in the public repo on GitHub. Head over to that page here, to check out cmdlet syntax and find usage examples.

