Advertisement
Guest User

Untitled

a guest
Nov 15th, 2017
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. "param (
  2. [Parameter(Mandatory = $false)]
  3. [string] $sourceWeb = '',
  4. [string] $destinationWeb = '',
  5. [Parameter(Mandatory = $false)]
  6. [string] $sourceListName = 'CurrentSites', #$sourceListName = 'O365 Sites',
  7. [Parameter(Mandatory = $false)]
  8. [string] $sharepointAdmin = ''
  9. )
  10.  
  11. $path = 'C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/15/ISAPI/'
  12. $simpleLinkUrlPropertyName = '_Sys_Nav_SimpleLinkUrl'
  13. $assemblies = 'Microsoft.SharePoint.Client.dll',
  14. 'Microsoft.SharePoint.Client.Runtime.dll',
  15. 'Microsoft.SharePoint.Client.Taxonomy.dll'
  16.  
  17. $assemblies | % { Add-Type -Path (Join-Path $path $_) }
  18.  
  19. Add-Type -Path "C:/Program Files/SharePoint Client Components/Assemblies/Microsoft.Online.SharePoint.Client.Tenant.dll"
  20.  
  21. $password = ''
  22.  
  23. Function Get-SPOContext([string]$Url, [string]$UserName, [string]$Password) {
  24. $SecurePassword = $Password | ConvertTo-SecureString -AsPlainText -Force
  25. $context = New-Object Microsoft.SharePoint.Client.ClientContext($Url)
  26. $context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $SecurePassword)
  27. return $context
  28. }
  29.  
  30. Function Get-ListItems([Microsoft.SharePoint.Client.ClientContext]$Context, [String]$ListTitle) {
  31.  
  32. $list = $Context.Web.Lists.GetByTitle($listTitle)
  33. $Context.Load($list)
  34. $Context.ExecuteQuery()
  35.  
  36. $qry = [Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery()
  37. $items = $list.GetItems($qry)
  38. $Context.Load($items)
  39. $Context.ExecuteQuery()
  40. return $items
  41. }
  42.  
  43. Function Create-Site-Collection([String]$url, [String]$title) {
  44. $TenantURL = ''
  45. $Title = 'New Published Collection List';
  46.  
  47. [string]
  48. $TenantUserName = '';
  49.  
  50. [Security.SecureString]
  51.  
  52. $TenantPassword = convertto-securestring "password" -asplaintext -force
  53.  
  54. #Open the Tenant Administration Context with the Tenant Admin Url
  55. $TenantContext = Get-SPOContext -Url $TenantUrl -UserName $TenantUserName -Password $TenantPassword
  56.  
  57.  
  58. #Get the tenant object
  59. $Tenant = New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($TenantContext)
  60.  
  61.  
  62. #Set the Site Creation Properties values
  63. $TenantProperties = New-Object Microsoft.Online.SharePoint.TenantAdministration.SiteCreationProperties
  64. #$TenantProperties.Url = $url
  65. $TenantProperties.Template = "CMSPUBLISHING#0 "
  66. $TenantProperties.Owner = $TenantUserName
  67. $TenantProperties.StorageMaximumLevel = 1000
  68. $TenantProperties.UserCodeMaximumLevel = 300
  69. $TenantProperties.Title = $title
  70.  
  71. $TenantContext.Load($Tenant)
  72. $TenantContext.ExecuteQuery()
  73.  
  74. #Create the site using the properties
  75.  
  76. $Tenant.CreateSite($TenantProperties) | Out-Null
  77.  
  78. Write-Host "Creating site collection "
  79. #Create the site in the tennancy
  80. $TenantContext.ExecuteQuery()
  81. }
  82.  
  83.  
  84. $UserName = $sharepointAdmin
  85. $Url = $sourceWeb
  86.  
  87. $context = Get-SPOContext -Url $Url -UserName $UserName -Password $Password $items = Get-ListItems -Context $context -ListTitle "O365 Sites"
  88.  
  89. foreach ($item in $items) {
  90. $Context.Load($item)
  91. $Context.ExecuteQuery()
  92. Write-Host $item["NEWURL"]
  93. Write-Host $item["Title"]
  94. Create-Site-Collection -URL $item["NEWURL"] -Title $item["Title"]
  95. }
  96.  
  97. $context.Dispose()"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement