Forum Discussion
How to download root level files from OneDrive using PowerShell?
- Jul 18, 2019
Hi Avian,
Use following code, hope this helps
===
#Module name: FinalDownload.ps1
#Modified By: Ashish Kanoongo
#Date: 07-18-2017(mm/dd/yyyy)
#Purpose: Download Files or folders from OneDrive Site#Download SharePointPnp PowerShell Module from https://github.com/SharePoint/PnP-PowerShell
$siteUrl = "https://tenantname-my.sharepoint.com/personal/username_domain_com"
$downloadLocation = 'C:\temp'#If MFA is not implement then use following
#$cred = Get-Credential -UserName $userName -Message "Enter Password"
#Connect-PnPOnline -Url $siteUrl -CreateDrive -Credentials $cred#If MFA is Implemented, thne use following
Connect-PnPOnline -Url $siteUrl -UseWebLogin -CreateDrive#Return the current context
$ctx = Get-PnPContext#Set the Library/List Name which will be used for download
$list = Get-PnPList "Documents"#Use if you want to download rootlevel folders
#$files = $list.RootFolder.Folders#Use if you want to download rootlevel files
$files = $list.RootFolder.Files#Load the files or folder of current context of select List or Library
$ctx.Load($files)#Execute the Context Query
$ctx.ExecuteQuery()#Loop for Each item which needs to Download
foreach ($file in $files)
{
#Retrieve each file and downloads it to the download folder location
Get-PNPFile -ServerRelativeUrl $file.ServerRelativeUrl -Path $DownloadLocation -Filename $file.Name -AsFile
}
Hi Avian,
Use following code, hope this helps
===
#Module name: FinalDownload.ps1
#Modified By: Ashish Kanoongo
#Date: 07-18-2017(mm/dd/yyyy)
#Purpose: Download Files or folders from OneDrive Site
#Download SharePointPnp PowerShell Module from https://github.com/SharePoint/PnP-PowerShell
$siteUrl = "https://tenantname-my.sharepoint.com/personal/username_domain_com"
$downloadLocation = 'C:\temp'
#If MFA is not implement then use following
#$cred = Get-Credential -UserName $userName -Message "Enter Password"
#Connect-PnPOnline -Url $siteUrl -CreateDrive -Credentials $cred
#If MFA is Implemented, thne use following
Connect-PnPOnline -Url $siteUrl -UseWebLogin -CreateDrive
#Return the current context
$ctx = Get-PnPContext
#Set the Library/List Name which will be used for download
$list = Get-PnPList "Documents"
#Use if you want to download rootlevel folders
#$files = $list.RootFolder.Folders
#Use if you want to download rootlevel files
$files = $list.RootFolder.Files
#Load the files or folder of current context of select List or Library
$ctx.Load($files)
#Execute the Context Query
$ctx.ExecuteQuery()
#Loop for Each item which needs to Download
foreach ($file in $files)
{
#Retrieve each file and downloads it to the download folder location
Get-PNPFile -ServerRelativeUrl $file.ServerRelativeUrl -Path $DownloadLocation -Filename $file.Name -AsFile
}
Hi Ashish,
Thanks for code. It saves my day.
Regards
Avian