Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "param (
- [Parameter(Mandatory = $false)]
- [string] $sourceWeb = '',
- [string] $destinationWeb = '',
- [Parameter(Mandatory = $false)]
- [string] $sourceListName = 'CurrentSites', #$sourceListName = 'O365 Sites',
- [Parameter(Mandatory = $false)]
- [string] $sharepointAdmin = ''
- )
- $path = 'C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/15/ISAPI/'
- $simpleLinkUrlPropertyName = '_Sys_Nav_SimpleLinkUrl'
- $assemblies = 'Microsoft.SharePoint.Client.dll',
- 'Microsoft.SharePoint.Client.Runtime.dll',
- 'Microsoft.SharePoint.Client.Taxonomy.dll'
- $assemblies | % { Add-Type -Path (Join-Path $path $_) }
- Add-Type -Path "C:/Program Files/SharePoint Client Components/Assemblies/Microsoft.Online.SharePoint.Client.Tenant.dll"
- $password = ''
- Function Get-SPOContext([string]$Url, [string]$UserName, [string]$Password) {
- $SecurePassword = $Password | ConvertTo-SecureString -AsPlainText -Force
- $context = New-Object Microsoft.SharePoint.Client.ClientContext($Url)
- $context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $SecurePassword)
- return $context
- }
- Function Get-ListItems([Microsoft.SharePoint.Client.ClientContext]$Context, [String]$ListTitle) {
- $list = $Context.Web.Lists.GetByTitle($listTitle)
- $Context.Load($list)
- $Context.ExecuteQuery()
- $qry = [Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery()
- $items = $list.GetItems($qry)
- $Context.Load($items)
- $Context.ExecuteQuery()
- return $items
- }
- Function Create-Site-Collection([String]$url, [String]$title) {
- $TenantURL = ''
- $Title = 'New Published Collection List';
- [string]
- $TenantUserName = '';
- [Security.SecureString]
- $TenantPassword = convertto-securestring "password" -asplaintext -force
- #Open the Tenant Administration Context with the Tenant Admin Url
- $TenantContext = Get-SPOContext -Url $TenantUrl -UserName $TenantUserName -Password $TenantPassword
- #Get the tenant object
- $Tenant = New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($TenantContext)
- #Set the Site Creation Properties values
- $TenantProperties = New-Object Microsoft.Online.SharePoint.TenantAdministration.SiteCreationProperties
- #$TenantProperties.Url = $url
- $TenantProperties.Template = "CMSPUBLISHING#0 "
- $TenantProperties.Owner = $TenantUserName
- $TenantProperties.StorageMaximumLevel = 1000
- $TenantProperties.UserCodeMaximumLevel = 300
- $TenantProperties.Title = $title
- $TenantContext.Load($Tenant)
- $TenantContext.ExecuteQuery()
- #Create the site using the properties
- $Tenant.CreateSite($TenantProperties) | Out-Null
- Write-Host "Creating site collection "
- #Create the site in the tennancy
- $TenantContext.ExecuteQuery()
- }
- $UserName = $sharepointAdmin
- $Url = $sourceWeb
- $context = Get-SPOContext -Url $Url -UserName $UserName -Password $Password $items = Get-ListItems -Context $context -ListTitle "O365 Sites"
- foreach ($item in $items) {
- $Context.Load($item)
- $Context.ExecuteQuery()
- Write-Host $item["NEWURL"]
- Write-Host $item["Title"]
- Create-Site-Collection -URL $item["NEWURL"] -Title $item["Title"]
- }
- $context.Dispose()"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement