msgraph-sdk-powershell icon indicating copy to clipboard operation
msgraph-sdk-powershell copied to clipboard

Find-MgGraphCommand sometimes fails on URI

Open PowerBugi opened this issue 3 years ago • 1 comments

Hello,

I don't know if it's a bug, but sometime when i try to get the cmdlet from the Graph URL, it give me an error : URI is not valid or is not currently supported by the SDK. But in fact if i do some research, the cmdlet exist, and if i use the Find-MgGraphCommand -Command with the cmldet i found, it work. But if i want to reverse the search with Find-MgGraphCommand -Uri it fail.

To be clear, here's one example :

if i do : Find-MgGraphCommand -Command Get-MgReportSharePointActivityUserCount it give me :

PS C:\bugi > Find-MgGraphCommand -Command Get-MgReportSharePointActivityUserCount

   APIVersion: v1.0

Command                                 Module  Method URI                                                         OutputType Permissions Variants
-------                                 ------  ------ ---                                                         ---------- ----------- --------
Get-MgReportSharePointActivityUserCount Reports GET    /reports/getSharePointActivityUserCounts(period='{period}')            {}          {Get, GetViaIdentity}

   APIVersion: beta

Command                                 Module  Method URI                                                         OutputType Permissions Variants
-------                                 ------  ------ ---                                                         ---------- ----------- --------
Get-MgReportSharePointActivityUserCount Reports GET    /reports/getSharePointActivityUserCounts(period='{period}')            {}          {Get1, GetViaIdentity1}

And now, if i reverse it like : Find-MgGraphCommand -Uri "/reports/getSharePointActivityUserCounts(period='{period}')" it give me :

PS C:\bugi > Find-MgGraphCommand -Uri "/reports/getSharePointActivityUserCounts(period={period})"
Find-MgGraphCommand: URI ' https://graph.microsoft.com/v1.0/reports/getSharePointActivityUserCounts(period={period})' in  is not valid or is not currently supported by the SDK. Ensure the URI is formatted correctly and try again.

So I sometimes tend to believe that the cmdlet i search does not yet exist, whereas if... Thanks for your help.

PowerBugi avatar Jul 06 '22 12:07 PowerBugi

Thanks for bringing this to our attention!

This is indeed a bug with Find-MgGraphCommand when attempting to match the parenthesis in the provided OData function. As a workaround, you can use regex in the URL to find any OData actions and functions with parenthesis as such:

F:\M> Find-MgGraphCommand -Uri "/reports/getSharePointActivityUserCounts.*"

   APIVersion: v1.0

Command                                 Module  Method URI                                                         OutputType Permissions        Variants
-------                                 ------  ------ ---                                                         ---------- -----------        --------
Get-MgReportSharePointActivityUserCount Reports GET    /reports/getSharePointActivityUserCounts(period='{period}')            {Reports.Read.All} {Get, GetViaIdentity}

   APIVersion: beta

Command                                 Module  Method URI                                                         OutputType Permissions        Variants
-------                                 ------  ------ ---                                                         ---------- -----------        --------
Get-MgReportSharePointActivityUserCount Reports GET    /reports/getSharePointActivityUserCounts(period='{period}')            {Reports.Read.All} {Get1, GetViaIdentity1}

We will address this in upcoming releases.

peombwa avatar Jul 07 '22 15:07 peombwa