CLI for automating and exploring the Microsoft Graph

Minimum PowerShell version


Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name autographps -RequiredVersion 0.33.0

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More


Adam Edwards


(c) 2020 Adam Edwards.

Package Details



MSGraph Graph AADGraph Azure MicrosoftGraph Microsoft-Graph MS-Graph AAD-Graph GraphExplorer REST CRUD GraphAPI autograph poshgraph Windows Linux MacOS


Add-GraphRelatedItem Find-GraphPermission Get-Graph Get-GraphResourceChildItem Get-GraphResourceItem Get-GraphItemRelationship Get-GraphRelatedItem Get-GraphResourceItemUri Get-GraphResourceWithMetadata Get-GraphLocation Get-GraphType Get-GraphUri Get-GraphUriInfo Invoke-GraphMethod New-Graph New-GraphResourceItem New-GraphItemRelationship New-GraphMethodParameterObject New-GraphObject Remove-Graph Remove-GraphResourceItem Remove-GraphItemRelationship Set-GraphResourceItem Set-GraphLocation Set-GraphPrompt Show-GraphHelp Update-GraphMetadata


Core Desktop


Release Notes

## AutoGraphPS 0.33.0 Release Notes

This release adds new commands dedicated to invoking methods (i.e. `OData` *Actions* and *Functions*). There is also new functionality for exploring the *methods* of types in addition to their *properties* and *relationships* (*navigation properties*). It also adds background metadata processing via ThreadJob rather than PowerShell jobs to optimize performance. Multiple commands from this module and a dependent module are have been renamed.

### New dependencies

* AutoGraphPS-SDK 0.23.0 -- this includes commands from the `AutoGraphPS-SDK` module that have been renamed
* ThreadJob 2.0.3 -- this is the introductory use of ThreadJob for this module

### Breaking changes

* The following commands have been renamed the names of the commands were already in use in other community modules:
 `Get-GraphChildItem` -> `Get-GraphResourceChildItem`
 `Get-GraphItem` -> `Get-GraphResourceItem`
 `Get-GraphItemUri` `Get-GraphResourceItemUri`
 `New-GraphItem` -> `New-GraphResourceItem`
 `Remove-GraphItem` `Remove-GraphResourceItem`
 `Set-GraphItem` -> `Set-GraphResourceItem`
* The `GraphObject` parameter in `New-GraphObject` and `Set-GraphResourceItem` has been renamed `TemplateObject`.
* The `PropertyMap` parameter in `New-GraphItem`, `New-GraphObject`, `Set-GraphItem`, and any other commands has been renamed to `PropertyTable`.
* Commands like Get-GraphItem, Set-GraphItem, etc., that allow specification of a type name and id as an alternative to a URI or object now expect a URI in the default parameter set, including in positionally bound parameters and pipeline parameters. It turns out that type name and id are ambiguous, as that combination cannot always be translated to a unique URI, particularly when an entity set for a given type is defined as using a base type for that type, or when there is no entity set that supports the type. This changes parameter bindings in a way that will break previous versions of several commands when positional binding is used or the pipeline is used.
* The `New-GraphItemRelationship` command now returns output, previously it returned none -- see the `New Features` section for details on the returned output.
* The following commands that originate from the `AutoGraphPS-SDK` dependency have been renamed -- if you use this module and try to invoke the commands by their earlier names, those invocations will fail:
 `Connect-Graph` is now `Connect-GraphApi`
 `Disconnect-Graph` is now `Disconnect-GraphApi`
 `Invoke-GraphRequest` is now `Invoke-GraphApiRequest`

### New features

* New command `Invoke-GraphMethod`: this command issues requests for actions and functions, i.e. *methods* of the Graph API
* New command `New-GraphMethodParameter`: this command creates objects for the parameters of a given method of an entity
* New command `Get-GraphItemRelationship`: this command returns the specified relationships from a given object to other objects
* The `New-GraphItemRelationship` now returns objects representing the relationship that was created -- previously this command had no output. The output format is the same as that of the new `Get-GraphItemRelationship` command and is accepted as input to an updated `Remove-GraphItemRelationship` command.
* `Get-GraphType` now returns *methods* of types in addition to *properties* and *relationships* (*navigation properties*)
* `Get-GraphType` has a new `MemberType` parameter to limit the transitive member list to just the specific types (`Property`, `Relationship`, and `Method`) of members.
* `Get-GraphType` now supports a `Uri` parameter to get type information about the type of any object in the graph given its Uri
* `Get-GraphType` now supports pipeline input to take an object emitted by `Get-GraphItem` or `Get-GraphResource` and return the type information for that object's type
* `ShowGraphHelp` has been updated to show help information based on a new `Uri` parameter
* `ShowGraphHelp` can also take in pipeline input to give help information for an object returned by other commands in this module
* Commands that return objects from the Graph now return the actual derived type of the object in heterogenous collections that are defined as returning a base type
* Metadata download and initial processing now uses a thread in the same process hosting AutoGraphPS, rather than a separate process. This offers a dramatic performance improvement in obtaining the API metadata that the commands rely upon. The new implementation uses `Start-ThreadJob` instead of `Start-Job` to process metadata asynchronously.

### Fixed defects

* In some cases, `New-GraphObject` would not correctly create arrays when an array was only of size 1, instead a scalar was emitted. This has been fixed to generate an array of size 1 in such cases. This issue caused Graph to reject requests with objects in this scenario due to an invlaid schema.
* `Set-GraphItem` now works in more cases when an object is piped in as the object to update but the object came from a POST request or is only accessible via a navigation property (e.g. /me/contacts).



Version History

Version Downloads Last updated
0.42.0 31 2/19/2023
0.41.0 372 12/30/2021
0.40.0 259 10/26/2021
0.39.0 216 10/20/2021
0.38.0 289 6/14/2021
0.37.1 234 5/5/2021
0.37.0 216 5/5/2021
0.36.0 235 2/27/2021
0.35.0 251 9/26/2020
0.34.0 209 9/26/2020
0.33.0 (current version) 209 9/26/2020
0.32.1 254 6/20/2020
0.32.0 223 5/24/2020
0.31.0 253 2/4/2020
0.30.0 218 2/1/2020
0.29.0 289 11/6/2019
0.28.0 232 10/24/2019
0.27.0 216 10/23/2019
0.26.0 225 10/16/2019
0.25.0 220 10/7/2019
0.24.0 218 9/24/2019
0.23.0 308 3/18/2019
0.22.0 260 2/3/2019
0.21.1 230 1/19/2019
0.21.0 226 1/14/2019
0.20.0 228 1/8/2019
0.19.0 224 1/7/2019
0.18.2 222 1/6/2019
0.18.1 222 1/5/2019
0.18.0 223 1/4/2019
0.17.0 225 1/2/2019
0.16.1 247 10/30/2018
0.16.0 233 10/15/2018
0.15.1 229 9/30/2018
0.15.0 224 9/24/2018
0.14.0 227 9/16/2018
Show less