microsoftgraph / microsoftgraph/msgraph-sdk-powershell

Get-MgUserDefaultDrive pre-provision does not work

Open
#2,975 21 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Bug Status: Needs Investigation
Dominant language
C#
Stars
898
Forks
230
Avg merge
2d 5h
Merged PRs (30d)
31

Description

Describe the bug

I want to pre-provision users OneDrive using the following method:
https://learn.microsoft.com/en-us/graph/api/drive-get?view=graph-rest-1.0&tabs=powershell

According to the documentation this should work:

If a user's OneDrive isn't provisioned but the user has a license to use OneDrive, this request will automatically provision the user's drive, when using delegated authentication

It does however not, and the reason why is unclear.

I got a user with an Microsoft E3 license assigned and im using the permissions described in the documentation.

Expected behavior

OneDrive site get created

How to reproduce

$Scopes = @(
'Files.Read'
'Sites.ReadWrite.All'
'Sites.Read.All'
'Files.Read.All'
'Files.ReadWrite.All'
)

Import-Module Microsoft.Graph.Files -RequiredVersion 2.23.0
Connect-Graph -Scopes $Scopes

Get-MgUserDefaultDrive -UserId "user1@"

SDK Version

2.23.0

Latest version known to work for scenario above?

No response

Known Workarounds

Using PnP.PowerShell
Request-SPOPersonalSite -UserEmails <upn>

Debug output
Click to expand log ```

DEBUG: [CmdletBeginProcessing]: - Get-MgUserDefaultDrive begin processing with parameterSet 'Get'.
DEBUG: [Authentication]: - AuthType: 'Delegated', TokenCredentialType: 'InteractiveBrowser', ContextScope: 'CurrentUser', AppName: 'Microsoft Graph Command Line Tools'.
DEBUG: [Authentication]: - Scopes: [Agreement.ReadWrite.All, Application.Read.All, CloudPC.ReadWrite.All, DeviceManagementApps.ReadWrite.All, DeviceManagementConfiguration.ReadWrite.All, DeviceManagementManagedDevices.ReadWrite.All, DeviceManagementRBAC.ReadWrite.All, DeviceManagementServiceConfig.ReadWrite.All, Directory.ReadWrite.All, email, Files.Read, Files.Read.All, Files.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, openid, Organization.ReadWrite.All, Policy.Read.All, Policy.ReadWrite.ConditionalAccess, PrivilegedAccess.ReadWrite.AzureADGroup, profile, RoleManagement.ReadWrite.Directory, RoleManagementPolicy.ReadWrite.AzureADGroup, Sites.Read.All, Sites.ReadWrite.All, User.Read, User.Read.All, User.ReadWrite.All].
DEBUG: ============================ HTTP REQUEST ============================

HTTP Method:
GET

Absolute Uri:
https://graph.microsoft.com/v1.0/users//drive

Headers:
FeatureFlag : 00000043
Cache-Control : no-store, no-cache
User-Agent : Mozilla/5.0,(Windows NT 10.0; Microsoft Windows 10.0.22631; sv-SE),PowerShell/2024.2.2
Accept-Encoding : gzip
SdkVersion : graph-powershell/2.23.0
client-request-id : d7f8cbb4-05d9-4c4f-aa22-d2bd810d8e67

Body:

DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
Forbidden

Headers:
Cache-Control : no-store, no-cache
Vary : Accept-Encoding
Strict-Transport-Security : max-age=31536000
request-id : 0a34bc4e-2aad-401f-aec7-7f3434c9154a
client-request-id : d7f8cbb4-05d9-4c4f-aa22-d2bd810d8e67
x-ms-ags-diagnostic : {"ServerInfo":{"DataCenter":"Norway East","Slice":"E","Ring":"2","ScaleUnit":"001","RoleInstance":"OSL2EPF00000164"}}
Date : Mon, 30 Sep 2024 08:16:07 GMT

Body:
{
"error": {
"code": "accessDenied",
"message": "Access denied",
"innerError": {
"date": "2024-09-30T08:16:08",
"request-id": "0a34bc4e-2aad-401f-aec7-7f3434c9154a",
"client-request-id": "d7f8cbb4-05d9-4c4f-aa22-d2bd810d8e67"
}
}
}

Get-MgUserDefaultDrive_Get: Access denied

Status: 403 (Forbidden)
ErrorCode: accessDenied
Date: 2024-09-30T08:16:08

Headers:
Cache-Control : no-store, no-cache
Vary : Accept-Encoding
Strict-Transport-Security : max-age=31536000
request-id : 0a34bc4e-2aad-401f-aec7-7f3434c9154a
client-request-id : d7f8cbb4-05d9-4c4f-aa22-d2bd810d8e67
x-ms-ags-diagnostic : {"ServerInfo":{"DataCenter":"Norway East","Slice":"E","Ring":"2","ScaleUnit":"001","RoleInstance":"OSL2EPF00000164"}}
Date : Mon, 30 Sep 2024 08:16:07 GMT

DEBUG: [CmdletEndProcessing]: - Get-MgUserDefaultDrive end processing.

</details>


### Configuration

PSVersion                      7.4.5
PSEdition                      Core
GitCommitId                    7.4.5
OS                             Microsoft Windows 10.0.22631
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

### Other information

_No response_

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Get-MgUserDefaultDrive cmdlet in Microsoft.Graph.Files 2.23.0 and its GET /users/{id}/drive request, then review the documented delegated permissions against the captured 403 response. Check the issue discussion for an established diagnosis; done means identifying whether the SDK request or Graph service behavior prevents pre-provisioning and documenting a verified resolution or limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
powershell
Domain
api, authentication
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.