I am pretty new to powershell and a complete novice with Sharepoint. My goal is to move all files in a Sharepoint documents subfolder called "Signed tickets". Right now, I have a script that is successfully copying ALL files in the document library. I also would like to do away with the creation of a new folder in the source destination which is currently being done in the script. I just need the files.

I tried changing the copyto part to moveto but that failed saying [System.Net.ConnectStream] does not contain a method named 'MoveTo'. I've copied the script below. Any help is greatly appreciated!!

Set parameter values




Setup Credentials to connect

$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 Library

$List = $Ctx.Web.Lists.GetByTitle($LibraryName)




Load SharePoint CSOM Assemblies

Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll"

Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

Function Download-AllFilesFromLibrary()




    [Parameter(Mandatory=$true)] [string] $SiteURL,

    [Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.Folder] $SourceFolder,

    [Parameter(Mandatory=$true)] [string] $TargetFolder


Try {

    #Create Local Folder, if it doesn't exist

    $FolderName = ($SourceFolder.ServerRelativeURL) -replace "/","\"

    $LocalFolder = $TargetFolder + $FolderName

    If (!(Test-Path -Path $LocalFolder)) {

            New-Item -ItemType Directory -Path $LocalFolder | Out-Null


    #Get all Files from the folder

    $FilesColl = $SourceFolder.Files



    #Iterate through each file and download

    Foreach($File in $FilesColl)


        $TargetFile = $LocalFolder+"\"+$File.Name

        #Download the file

        $FileInfo = [Microsoft.SharePoint.Client.File]::OpenBinaryDirect($Ctx,$File.ServerRelativeURL)

        $WriteStream = [System.IO.File]::Open($TargetFile,[System.IO.FileMode]::Create)



        write-host -f Green "Downloaded File:"$TargetFile


    #Process Sub Folders

    $SubFolders = $SourceFolder.Folders



    Foreach($Folder in $SubFolders)


        If($Folder.Name -ne "Forms")


            #Call the function recursively

            Download-AllFilesFromLibrary -SiteURL $SiteURL -SourceFolder $Folder -TargetFolder $TargetFolder




Catch {

    write-host -f Red "Error Downloading Files from Library!" $_.Exception.Message



Call the function to download file

Download-AllFilesFromLibrary -SiteURL $SiteURL -SourceFolder $List.RootFolder -TargetFolder $TargetFolder

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.