SharePoint Online: creación masiva de varios sitios con un CSV y PowerShell
Requisito: Crear nuevas colecciones de sitios en SharePoint Online de forma masiva desde un archivo CSV mediante PowerShell.
¿Cómo crear colecciones de sitios a partir de un archivo CSV en SharePoint Online usando PowerShell?
¿Es usted un administrador de SharePoint Online y necesita crear varias colecciones de sitios de forma masiva? Crear varias colecciones de sitios en SharePoint Online puede ser una tarea repetitiva y que requiere mucho tiempo, especialmente si necesita crear muchas colecciones de sitios con configuraciones similares. Afortunadamente, SharePoint Online proporciona una forma de crear colecciones de sitios de forma masiva mediante un archivo CSV y secuencias de comandos de PowerShell.
Esta publicación de blog analizará la creación de varias colecciones de sitios de SharePoint Online. Esto puede resultar útil si necesita aprovisionar rápidamente nuevos entornos y crear rápidamente una gran cantidad de colecciones de sitios con fines de prueba o desarrollo. De cualquier manera, veamos cómo usar PowerShell para crear varias colecciones de sitios de SharePoint Online a partir de un archivo CSV.
Paso 1: Cree un archivo CSV en el siguiente formato. Complete los valores de la columna según sus requisitos. Para cada colección de sitios, establezca las siguientes propiedades:
- Título de la colección de sitios
- URL de colección de sitios
- Propietario de la colección de sitios
- Cuota de almacenamiento, en MB
- Cuota de recursos (el valor predeterminado es 300)
- Plantilla de colección de sitios (por ejemplo, ID de plantilla de sitio de equipo STS#0)
Paso 2: Utilice este script de PowerShell para leer desde CSV, crear colecciones de sitios y ejecutar con SharePoint Online Management Shell.
#Function to Create Site Collection
Function Create-SPOSite
{
param
(
[string]$Title = $(throw "Please Provide the Site Title!"),
[string]$URL = $(throw "Please Provide the Site URL!"),
[string]$Owner = $(throw "Please Provide the Site Owner!"),
[int]$StorageQuota = $(throw "Please Provide the Site Storage Quota!"),
[int]$ResourceQuota = $(throw "Please Provide the Site Resource Quota!"),
[string]$Template = $(throw "Please Provide the Site Template!")
)
#Connection parameters
$AdminURL = "https://crescent-admin.sharepoint.com"
#Get Credentials to connect
$Cred= Get-Credential -Message "Enter the Admin Credentials"
$Credentials = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $Cred.Username, $Cred.Password
Try{
#Connect to Office 365
Connect-SPOService -Url $AdminURL -Credential $Credentials
#Check if the site collection exists already
$SiteExists = Get-SPOSite | where {$_.url -eq $URL}
#Check if site exists in the recycle bin
$SiteExistsInRecycleBin = Get-SPODeletedSite | where {$_.url -eq $URL}
If($SiteExists -ne $null)
{
write-host "Site $($url) exists already!" -foregroundcolor red
}
elseIf($SiteExistsInRecycleBin -ne $null)
{
write-host "Site $($url) exists in the recycle bin!" -foregroundcolor red
}
else
{
#create the site collection
New-SPOSite -Url $URL -title $Title -Owner $Owner -StorageQuota $StorageQuota -NoWait -ResourceQuota $ResourceQuota -Template $Template
write-host "Site Collection $($url) Created Successfully!" -foregroundcolor Green
}
}
catch {
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
}
#Read from CSV and create site collection
Import-Csv "C:\Temp\SitesToCreate.csv" | Foreach-Object {
Create-SPOSite -Title $_.SiteTitle -URL $_.SiteURL -Owner $_.SiteOwner -StorageQuota $_.StorageQuota -ResourceQuota $_.ResourceQuota -Template $_.SiteTemplate }
Este script recorrerá cada fila del archivo CSV y creará una nueva colección de sitios utilizando los detalles de las columnas correspondientes. La creación de colecciones de sitios de SharePoint Online con PowerShell se encuentra en mi otro artículo: ¿Cómo creo una colección de sitios de SharePoint Online con PowerShell?
PnP PowerShell: crear varios sitios a partir de un archivo CSV
También podemos usar PnP PowerShell para aprovisionar de forma masiva colecciones de sitios de SharePoint Online. Aquí está mi formato de archivo CSV. Asegúrese de reemplazar "C:\Temp\SitesToCreate.csv" con la ruta correcta a su archivo CSV.
Puede descargar el archivo CSV desde:
Secuencia de comandos PnP PowerShell para crear colecciones de sitios de forma masiva:
Este script creará varias colecciones de sitios de SharePoint Online a partir del archivo CSV proporcionado mediante el cmdlet New-PnPTenantSite.
#Set Config Parameters
$TenantUrl = "https://crescent-admin.sharepoint.com"
$CSVPath = "C:\Temp\SiteCollections.csv"
#Connect to Tenant
Connect-PnPOnline -url $TenantUrl -Interactive
Try {
#Get Site Collections to create from a CSV file
$SiteCollections = Import-Csv -Path $CSVPath
#Loop through csv and create site collections from each row
ForEach ($Site in $SiteCollections)
{
#Get Parameters from CSV
$Url = $Site.Url
$Title = $Site.Title
$Owner = $Site.Owner
$Template = $Site.Template
$TimeZone = $Site.TimeZone
#Check if site exists already
$SiteExists = Get-PnPTenantSite | Where {$_.Url -eq $URL}
If ($SiteExists -eq $null)
{
#Create site collection
Write-host "Creating Site Collection:"$Site.URL -f Yellow
New-PnPTenantSite -Url $URL -Title $Title -Owner $Owner -Template $Template -TimeZone $TimeZone -RemoveDeletedSite -ErrorAction Stop
Write-host "`t Done!" -f Green
}
Else
{
write-host "Site $($URL) exists already!" -foregroundcolor Yellow
}
}
}
Catch {
write-host -f Red "`tError:" $_.Exception.Message
}
Una vez que el script termine de ejecutarse, puede verificar las colecciones de sitios yendo al centro de administración de SharePoint Online y verificando que las colecciones de sitios se hayan creado correctamente.
En resumen, la creación de varias colecciones de sitios en SharePoint Online con un archivo CSV y PowerShell ahorra tiempo y reduce errores de manera eficiente. Con estos sencillos pasos, puede automatizar el proceso de creación de colecciones de sitios y disfrutar de los beneficios de un entorno optimizado de SharePoint Online. Aquí hay otro artículo para un requisito similar en SharePoint local: ¿Cómo crear colecciones de sitios de SharePoint de forma masiva a partir de un archivo CSV usando PowerShell?
Preguntas frecuentes:
¿Existe un límite en la cantidad de sitios de SharePoint Online? ¿Cuántos sitios de SharePoint puedo crear?
¡Sí! 2 Millones por inquilino.
¿Podemos crear un subsitio en SharePoint en línea?
¡Sí! Aún puede crear subsitios en SharePoint Online, aunque los sitios centrales son los reemplazos recomendados para los subsitios.
Más información: ¿Cómo crear un subsitio en SharePoint Online?
¿Cómo obtengo todas las colecciones de sitios en SharePoint Online?
Utilice el Centro de administración de SharePoint o el script de PowerShell para obtener todos los sitios en el entorno de SharePoint Online.
Más información: SharePoint Online PowerShell para obtener todas las colecciones de sitios
¿Cómo crear un sitio de comunicación en SharePoint Online?
Para crear un sitio de comunicación, inicie sesión en el Centro de administración de SharePoint >> Haga clic en “Sitios” >> “Sitios activos” >> Haga clic en “Crear” >> Elija “Sitio de comunicación”, ingrese el nombre del sitio, valide la dirección del sitio y haga clic en Finalizar. También puede crear sitios de comunicación usando PowerShell.
Más información: Cree un sitio de comunicación en SharePoint Online con PowerShell

