SharePoint Online: Rename Folder using PowerShell

Requirement: Rename a Folder in SharePoint Online.
sharepoint online rename folder using powershell

How to Rename a Folder in SharePoint Online?
To rename a folder in SharePoint Online document library,
  • Open the document library in browser, Right-click on the folder you want to rename, and then click "Rename".
    sharepoint online rename folder
  • In the Rename pop-up window, type the new name for the folder and then click on the "Save" button.
Please note, Renaming of the SharePoint online folder will have an impact on the URL of the folder! You also get the "Rename" option from the toolbar! Now, let's see the SharePoint Online PowerShell to rename a folder.


PowerShell to Rename Folder in SharePoint Online
Here is the SharePoint Online PowerShell to rename a folder
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
 
#Variables
$SiteURL="https://crescent.sharepoint.com/sites/marketing"
$FolderURL="/sites/marketing/Project Documents/Active" #Server Relative URLs
$FolderNewURL="/sites/marketing/Project Documents/InActive"

Try {
    $Cred= Get-Credential
    $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = $Credentials

    #Get the Folder
    $Folder = $Ctx.Web.GetFolderByServerRelativeUrl($FolderURL)
    $Ctx.Load($Folder)
    $Ctx.ExecuteQuery()
    
    #Rename Folder
    $Folder.MoveTo($FolderNewURL)
    $Ctx.ExecuteQuery()

    Write-host -f Green "Folder has been renamed to new URL:"$FolderNewURL
}
Catch {
    write-host -f Red "Error Renaming Folder!" $_.Exception.Message
}

SharePoint Online: PnP PowerShell to Rename Folder
With PnP PowerShell script, let's contract the above script.
#Config Variables
$SiteURL = "https://crescenttech.sharepoint.com/sites/marketing"
$FolderURL= "Shared Documents/Reports" #Site Relative URL
$FolderNewName ="Reports Archive"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

#Rename the Folder
Rename-PnPFolder -Folder $FolderURL -TargetFolderName $FolderNewName

9 comments:

  1. It didnt work with relative url, i set the full url and it worked !
    Thanks for the script

    ReplyDelete
    Replies
    1. This also isnt working for me with the relative url. How did you use the full URL?

      Delete
    2. The CSOM method uses server relative URL! E.g. If you have a site at "https://crescent.sharepoint.com/sites/marketing" then the folder "Active" under "Shared Documents" document library's server relative URL is: /sites/marketing/Shared Documents/Active"

      Whereas the PnP PowerShell uses site relative URL. So here in this case, the site relative URL of the folder is: /Shared Documents/Active

      Delete
  2. I have 25000 items list in online site, could you please tell me this script will work to delete list colunm.

    ReplyDelete
  3. Hi i need block the rename of folder. Can you help me, say me how i make that?

    ReplyDelete
  4. Put the Library as read only then set permissions on the folder

    ReplyDelete
  5. can we do this for list of ondrive users from a csv file using their onedrive url?

    ReplyDelete
    Replies
    1. Yes, You can use this script to rename OneDrive Folder as well.

      Delete

Please Login and comment to get your questions answered!

Powered by Blogger.