'Unable to Access SharePoint using PowerShell

I have registered an Application on Azure and I am trying to get an access token using the following command.

$Auth=Get-ODAuthentication -ClientId 01xex4x7-f0e2-xbx4-8aa3-1ac7a46c784c -AppKey "Xm1234~x555Sr-ATtpyCBOzkYiakI.PCVkEuBZ" -RedirectURI "http://localhost/login" -ResourceId "https://xyz.sharepoint.com/" -RefreshToken $LastAuth.refresh_token .

I am getting the following error.

Add-Member : Cannot bind argument to parameter 'Name' because it is an empty string. At C:\Users\Administrator\Documents\WindowsPowerShell\Modules\OneDrive\2.2.7\OneDrive.psm1:127 char:47

  • ... thentication | add-member Noteproperty $element.split("=")[0] $elemen ..

However, when I save the command to a script and add a timeout, I am able to get the access token. I have set the REDIRECT URI as http://localhost/login (Not an actual working URL). Can this be the reason. I tried to look this up but a little confused about the value this should have. Any pointers are greatly appreciated.



Solution 1:[1]

We have tested the same in our environment to access the sharepoint by using powershell and it works fine at our end. Below is the workaround :-

  • Register an application in Azure AD , Added redirect uri as http://localhost/ and enabled ID token .

enter image description here

  • Given the below permissions to our application and granted admin consent in Azure Ad.

enter image description here

  • Installed the one drive module by using Install-Module -Name OneDrive -Scope CurrentUser -force

  • Used the below command to get the access token after login with connect-azaccount , Ensure that you have provided all the permissions as mentioned above and added the correct resource ID of your sharepoint application and redirect uri as followed.

Cmdlt:-

  $Auth=Get-ODAuthentication -ClientId "60xxxxxxxxxxxxxxxxx" -AppKey "3aXXXXXXXXXXXXXXXXXXXXXXXXXX=" -RedirectURI "http://localhost/" -ResourceId "https://mytest-admin.sharepoint.com/" -RefreshToken $LastAuth.refresh_token

OUTPUT DETAILS :-

enter image description here

POWERSHELL VERSION:

enter image description here

For more information please refer this GitHub| OneDrive for Business

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 AjayKumarGhose-MT