PowerShell CmdLet to check OneDrive for Business or OneDrive Personal Status

 

My good friend Neil Hodgkinson gave me a challenge: some partners and companies were asking him how to verify the status of OneDrive. He gave me the idea to check the icon of the OneDrive folder and depending on the icon, tell the status. I created a proof-of-concept and then helped some folks at Microsoft Consulting Services to have a PowerShell cmdlet to do so. Not being enough the status of OneDrive using the regular OneDrive synchronization, I also included the status of OneDrive when synchronized via Groove (yes, people still use it).

The project is open source and available in GitHub. To get only the PowerShell cmdlet, download OneDriveLib.dll here. License is MIT and can be found here. It is an open source project so it is not entitled for Microsoft support but I will do my best to respond questions in this post. Just ask them in comments.

 

How to use:

  • Open PowerShell is normal mode (it will not work in Elevated mode for OneDrive own design)
  • Import the module OneDriveLib.dll
  • Run Get-ODStatus

 

Syntax:

Get-ODStatus [-Type <type-pattern>] [-ByPath <path>]

 

Where:

-Type <type-pattern> let you filter by OneDrive type (e.g. Personal or Business) [optional]

-ByPath <path> if the folder information is not in the registry you can test a particular folder (this form will return only a status string)

 

Examples:

Get-ODStatus –Type Business

Get-ODStatus –ByPath c:\user\rodneyviana\onedrive

 

Example of output

 PS C:\ODTool>; Import-Module OneDriveLib.dll
  
 PS C:\ODTool>; Get-ODStatus
  
  
 StatusString : UpToDate
 LocalPath    : E:\MicrosoftOnedrive\OneDrive - Contoso
 UserSID      : S-1-5-21-124012345-708012345-1543012345-802000
 UserName     : CONTOSO\rodneyviana
 ServiceType  : Business1
  
 StatusString : UpToDate
 LocalPath    : D:\Onedrive
 UserSID      : S-1-5-21-124012345-708012345-1543012345-802000
 UserName     : CONTOSO\rodneyviana
 ServiceType  : Personal