If an employee leaves the company, few managers wants the OneDrive content of the ex-employee. Few occasions it is business critical to take the documents from ex-employees’ OneDrive and re-share it again.
So how do you do that? I wrote the following script that does exactly that.
Before you run the script, make sure you have installed SharePoint Online module. Here is the help: Get started with the SharePoint Online Management Shell | Microsoft Docs
Note: Deleted OneDrive will be purged after 90 days. You can only restore the deleted OneDrive within 90 days of disabled date.
<#
Script to
1. Restore the deleted OneDrive
2. Assign the Restored OneDrive to manager or another employee
IMPORTANT: Replace the OneDrive URL for the variable $DeletedUserOneDriveURL and
admin URL in Connect-SPOService's URL parameter.
Parameters:
DeletedUsername : ex-employees' username or alias (Usually the name in the email address)
NewUserEmail: Who needs to have access to the restored deleted OneDrive
Example:
.\Restore-DeletedOneDrive -DeletedUsername JohnDoe -NewUserEmail Calvin.Hobbes@acme.com
#>
Param($DeletedUsername,$NewUserEmail)
Function Connect-ToSharePoint
{
Import-Module Microsoft.Online.SharePoint.PowerShell
Connect-SPOService -Url https://acme-admin.sharepoint.com
}
<#
-*-*-*-*-*-*-* The Script Starts Here -*-*-*-*-*-*-*-*-*-*
IMPORTANT: Repalce the OneDrive URL for the variable $DeletedUserOneDriveURL
Example OneDrive URL: https://acme-my.sharepoint.com/personal/username_acme_com
In this example, "acme" is the company's Office 365 tag. The email address username@acme.com
is converted to username_acme_come in the end of the URL. If you are in doubt, visit
your OneDrive in Browser, Copy the URL from teh address bar and use it here.
#>
$DeletedUserOneDriveURL = "https://acme-my.sharepoint.com/personal/" + $DeletedUsername + "_acme_com"
# This command will ask for user credentials
"Connecting to SharePoint Online..."
Connect-ToSharePoint
"Restoring the OneDrive: $DeletedUserOneDriveURL"
Restore-SPODeletedSite -Identity $DeletedUserOneDriveURL
"Assigning $NewUseremail to the Deleted OneDrive"
Set-SPOUser -Site $DeletedUserOneDriveURL -LoginName $NewUserEmail -IsSiteCollectionAdmin $True
# -*-*-*- End of the Script -*-*-*-*-*-*
If you need to check if the “Deleted OneDrive” is already purged or not, check with these commands:
#Connect to SharePoint Online : Replace "acme" with your company's Office 365 tag
Connect-SPOService -Url https://acme-admin.sharepoint.com
# List all deleted sites includes OneDrive. Note "Days Remaining" the last column shows how many days left for purging
Get-SPODeletedSite -IncludePersonalSite
# List only the specific user
Get-SPODeletedSite -IncludePersonalSite | ? {$_.url -like '*JohnDoe*'}
I am sure this script and SharePoint commands will be helpful to you. Enjoy.