We use cookies to improve your experience.
By your continued use of this site you accept such use.
For more details please see our privacy policy and cookies policy.

Script Repository

Copy SharePoint folder

February 18, 2021 Views: 2150

The script copies a SharePoint folder of a user. To copy SharePoint folders in Adaxes, you can add the script to a business rule, custom command or scheduled task using the Run a program or PowerShell script action.

Parameters:

  • $sharePointServer - Specifies the NetBIOS name of the computer where the SharePoint Sever is homed.
  • $webApplicationURL - Specifies the URL of the SharePoint web application.
  • $sourceFolderPath - Specifies the path to the source folder.
  • $newFolderPath - Specifies the path to the destination folder.
Note: You can use value references (e.g. %username%) to insert properties of the user account in the folder paths. For example, if you specify the following path Shared Documents/Folder A/%username% and execute the script on a user whose username is jdoe, the resulting folder path will be Shared Documents/Folder A/jdoe.
Edit Remove
PowerShell
$sharePointServer = "SharepointServer" # TODO: modify me

$webApplicationURL = "http://$sharePointServer/sites/MySite" # TODO: modify me
$sourceFolderPath = "Shared Documents/Folder A/%username%" # TODO: modify me
$newFolderPath = "Shared Documents/Folder B/%username%" # TODO: modify me

$session = New-PSSession $sharePointServer -Authentication Kerberos
$result = Invoke-Command -Session $session -ArgumentList $webApplicationURL, $sourceFolderPath, $newFolderPath -ScriptBlock {
    param($webApplicationURL, $sourceFolderPath, $newFolderPath)
    
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") | Out-Null
    
    $site = New-Object Microsoft.SharePoint.SPSite("$webApplicationURL")
    $web = $site.OpenWeb();
    
    $folder = $web.GetFolder($sourceFolderPath)
    if ($folder.Exists)
    {
        $folder.CopyTo($newFolderPath)
        return "Folder copied successfully" # TODO: modify me
    }
    else
    {
        return "The source folder is missing" # TODO: modify me
    }
}
Remove-PSSession -Session $session

$Context.LogMessage($result, "Information")
Comments 0
Leave a comment
Loading...

Got questions?

Support Questions & Answers