Guest User

Untitled

a guest
Mar 22nd, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.78 KB | None | 0 0
  1. $loadInfo1 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
  2. $loadInfo2 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
  3. $loadInfo3 = [System.Reflection.Assembly]::LoadWithPartialName("System.IO")
  4.  
  5. Add-Type -Path "C:Program FilesCommon Filesmicrosoft sharedWeb Server Extensions15ISAPIMicrosoft.SharePoint.Client.dll"
  6. Add-Type -Path "C:Program FilesCommon Filesmicrosoft sharedWeb Server Extensions15ISAPIMicrosoft.SharePoint.Client.Runtime.dll"
  7.  
  8. # Paramètres du script
  9. $orgSiteUrl = "http://site1/"
  10. $destSiteUrl = "http://site2/"
  11. $orgLibrary = "Documents"
  12. $destLibrary = "Documents"
  13. $srcLibrary = $web.Lists["Documents"]
  14. $destLibrary = $destWeb.Lists["Documents"]
  15.  
  16. $orgClientContext = $null
  17. $destClientContext = $null
  18.  
  19. function MoveFiles(
  20. [string]$orgSiteUrl,
  21. [string]$destSiteUrl,
  22. [string]$orgLibrary,
  23. [string]$destLibrary
  24. )
  25. {
  26.  
  27. $UserName = 'someDomainsomeUser'
  28. $SecurePassword = "somePassword" | ConvertTo-SecureString -AsPlainText -Force
  29.  
  30. Write-Host "Script running with following account : "$UserName -ForegroundColor Yellow
  31.  
  32. # Get the Client Context and Bind the Site Collection
  33. $ClientContext = New-Object Microsoft.SharePoint.Client.ClientContext($orgSiteUrl)
  34. $destClientContext = New-Object Microsoft.SharePoint.Client.ClientContext($destSiteUrl)
  35.  
  36. # Connect to source site
  37. $credentials = New-Object System.Net.NetworkCredential($UserName, $SecurePassword)
  38. $ClientContext.Credentials = $credentials
  39. $web = $ClientContext.Web
  40. $ClientContext.Load($web)
  41. $ClientContext.ExecuteQuery()
  42.  
  43. # Connect to destination site
  44. $credentials = New-Object System.Net.NetworkCredential($UserName, $SecurePassword)
  45. $destClientContext.Credentials = $credentials
  46. $destWeb = $destClientContext.Web
  47. $destClientContext.Load($destWeb)
  48. $destClientContext.ExecuteQuery()
  49.  
  50. # Get List and List Items
  51. $List = $web.Lists.GetByTitle($orgLibrary)
  52. $ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery())
  53. $ClientContext.Load($List)
  54. $ClientContext.Load($ListItems)
  55. $ClientContext.ExecuteQuery()
  56.  
  57. # Get List and List Items
  58. $destList = $destWeb.Lists.GetByTitle($destLibrary)
  59. $destClientContext.Load($destList)
  60. $destClientContext.ExecuteQuery()
  61.  
  62. For ($j=0; $j -lt $ListItems.Count; $j++){
  63.  
  64. $item = $ListItems[$j]
  65. $ClientContext.Load($item)
  66. $file = $item.File
  67. $ClientContext.Load($file)
  68. $binaryStream = $file.OpenBinaryStream()
  69. $ClientContext.ExecuteQuery()
  70.  
  71. $FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
  72. $FileCreationInfo.Overwrite = $true
  73. $FileCreationInfo.ContentStream = $binaryStream
  74. $FileCreationInfo.URL = $destList.RootFolder.ServerRelativeUrl + "/" + $item.File.Name
  75. $Upload = $destList.RootFolder.Files.Add($FileCreationInfo)
  76. $destClientContext.Load($Upload)
  77. $destClientContext.ExecuteQuery()
  78.  
  79. }
  80.  
  81. }
  82.  
  83. MoveFiles -orgSiteUrl $orgSiteUrl -destSiteUrl $destSiteUrl -orgLibrary $orgLibrary -destLibrary $destLibrary -UserName $UserName -SecurePassword $SecurePassword
  84.  
  85. $FileCreationInfo.ContentStream = $binaryStream
  86.  
  87. Exception setting "ContentStream": "Cannot convert the
  88. "Microsoft.SharePoint.Client.ClientResult`1[System.IO.Stream]" value of type
  89. "Microsoft.SharePoint.Client.ClientResult`1[[System.IO.Stream, mscorlib, Version=4.0.0.0,
  90. Culture=neutral, PublicKeyToken=b77a5c561934e089]]" to type "System.IO.Stream"."
  91. At D:UsersRteetnous-int-setupDesktopMoveFileCSOM.ps1:77 char:9
  92. + $FileCreationInfo.ContentStream = $binaryStream
  93. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  94. + CategoryInfo : NotSpecified: (:) [], SetValueInvocationException
  95. + FullyQualifiedErrorId : ExceptionWhenSetting
  96.  
  97. Exception calling "ExecuteQuery" with "0" argument(s): "parameters.Content,
  98. parameters.ContentStream
  99. Nom du paramètre: La valeur spécifiée n'est pas prise en charge pour le paramètre
  100. parameters.Content, parameters.ContentStream."
  101. At D:UsersRteetnous-int-setupDesktopMoveFileCSOM.ps1:81 char:9
  102. + $destClientContext.ExecuteQuery()
  103. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  104. + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
  105. + FullyQualifiedErrorId : ServerException
  106.  
  107. Add-Type -Path "C:Program FilesCommon Filesmicrosoft sharedWeb Server Extensions15ISAPIMicrosoft.SharePoint.Client.dll"
  108. Add-Type -Path "C:Program FilesCommon Filesmicrosoft sharedWeb Server Extensions15ISAPIMicrosoft.SharePoint.Client.Runtime.dll"
  109.  
  110. $orgSiteUrl = "http://sitea"
  111. $destSiteUrl = "http://siteb"
  112. $orgLibrary = "Documents"
  113. $destLibrary = "More Documents"
  114.  
  115. function Move-Files{
  116. [cmdletBinding()]
  117. param (
  118. [string]$orgSiteUrl,
  119. [string]$destSiteUrl,
  120. [string]$orgLibrary,
  121. [string]$destLibrary,
  122. [string]$userName,
  123. [string]$password
  124. )
  125. $securePassword = $password | ConvertTo-SecureString -AsPlainText -Force
  126. Write-Warning "Script running with following account: $userName"
  127. # Get the Client Context and Bind the Site Collection
  128. $sctx = New-Object Microsoft.SharePoint.Client.ClientContext($orgSiteUrl)
  129. $dctx = New-Object Microsoft.SharePoint.Client.ClientContext($destSiteUrl)
  130. # Connect to source site
  131. $credentials = New-Object System.Net.NetworkCredential($userName, $securePassword)
  132. $sctx.Credentials = $credentials
  133. $srcList = $sctx.Web.Lists.GetByTitle($orgLibrary)
  134. $srcItems = $srcList.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery())
  135. $sctx.Load($srcList)
  136. $sctx.Load($srcItems)
  137. $sctx.ExecuteQuery()
  138. # Connect to destination site
  139. $credentials = New-Object System.Net.NetworkCredential($UserName, $SecurePassword)
  140. $dctx.Credentials = $credentials
  141. $destList = $dctx.Web.Lists.GetByTitle($destLibrary)
  142. $rootFolder = $destList.RootFolder
  143. $destItems = $destlist.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery())
  144. $dctx.Load($rootFolder)
  145. $dctx.Load($destList)
  146. $dctx.Load($destItems)
  147. $dctx.ExecuteQuery()
  148. For ($j=0; $j -lt $srcItems.Count; $j++){
  149. $item = $srcItems[$j]
  150. $sctx.Load($item)
  151. $file = $item.File
  152. $sctx.Load($file)
  153. $sctx.ExecuteQuery()
  154. $fileInfo = [Microsoft.SharePoint.Client.File]::OpenBinaryDirect($sctx, $item.File.ServerRelativeUrl)
  155. $destUrl = $destList.RootFolder.ServerRelativeUrl + "/" + $item.File.Name
  156. Write-Verbose "Adding $destUrl"
  157. [Microsoft.SharePoint.Client.File]::SaveBinaryDirect($dctx, $destUrl, $fileinfo.Stream, $true) | Out-Null
  158. }
  159. }
  160. Move-Files -orgSiteUrl $orgSiteUrl -destSiteUrl $destSiteUrl -orgLibrary $orgLibrary -destLibrary $destLibrary -userName "domainuser" -password "Password" -Verbose
Add Comment
Please, Sign In to add comment