Búsqueda de sitios web

¿Cómo crear una lista en SharePoint Online usando PowerShell o PnP PowerShell?


En SharePoint Online creamos listas y bibliotecas para almacenar información y documentos. Es fácil crear una lista en un sitio de SharePoint usando el navegador, pero es un poco diferente cuando crea una lista de SharePoint usando PowerShell.

En este tutorial, explicaré cómo crear una lista en SharePoint Online usando PowerShell y PnP PowerShell.

Cree una lista en SharePoint Online usando PowerShell

En el primer ejemplo, le mostraré cómo crear una lista en SharePoint Online usando el shell de administración de SharePoint.

A continuación se muestra el script de PowerShell completo para crear una lista personalizada denominada "Tareas del proyecto" en el sitio de SharePoint.

$siteUrl = "https://szg52.sharepoint.com/sites/PowerPlatformFAQs"
# Define Variables
$listTitle = "Project Tasks"
$listDescription = "A list to track project tasks."

$UserName = "bijay@szg52.onmicrosoft.com"
$Password = "Enter Your Password"
$SecurePassword= $Password | ConvertTo-SecureString -AsPlainText -Force
   
#Setup the Context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $SecurePassword)
$Ctx.Credentials = $Cred

$web = $ctx.Web

# Create the list
$listCreationInfo = New-Object Microsoft.SharePoint.Client.ListCreationInformation
$listCreationInfo.Title = $listTitle
$listCreationInfo.TemplateType = [Microsoft.SharePoint.Client.ListTemplateType]::GenericList
$list = $web.Lists.Add($listCreationInfo)
$list.Description = $listDescription
$list.Update()
$ctx.ExecuteQuery()

Ejecuté el script anterior con éxito; puedes ver a continuación:

Una vez que el script se ejecuta correctamente, cuando abre el sitio de SharePoint Online, podrá ver que la lista se creó correctamente.

Consulte Crear, leer, actualizar y eliminar un elemento de una lista de SharePoint Online usando PnP PowerShell

Agregar columnas a la lista de SharePoint usando PowerShell

Usando PowerShell, permítame mostrarle cómo agregar columnas a una lista de SharePoint.

Columna de texto de una sola línea

A continuación se muestra el código de una sola línea de columna de texto en una lista de SharePoint.

# Add a single line of text column
$fieldXml = "<Field DisplayName='Task Name' InternalName='TaskName' Type='Text' />"
$list.Fields.AddFieldAsXml($fieldXml, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$ctx.ExecuteQuery()

Si desea tener configuraciones adicionales, puede cambiar el script como se muestra a continuación:

# Add a single line of text column with additional settings
$fieldXml = "<Field DisplayName='Task Description' InternalName='TaskDescription' Type='Text' Required='TRUE' />"
$list.Fields.AddFieldAsXml($fieldXml, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$ctx.ExecuteQuery()

Columna de elección

A continuación se muestra el código para crear una columna de opciones en una lista de SharePoint Online.

# Add a choice column
$fieldXml = "<Field DisplayName='Priority' InternalName='Priority' Type='Choice' Format='Dropdown'>
                <CHOICES>
                    <CHOICE>High</CHOICE>
                    <CHOICE>Medium</CHOICE>
                    <CHOICE>Low</CHOICE>
                </CHOICES>
                <Default>Medium</Default>
             </Field>"
$list.Fields.AddFieldAsXml($fieldXml, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$ctx.ExecuteQuery()

Para configuraciones adicionales en una columna de elección, puede escribir el script como se muestra a continuación:

# Add a choice column with additional settings
$fieldXml = "<Field DisplayName='Status' InternalName='Status' Type='Choice' Format='Dropdown' Required='TRUE'>
                <CHOICES>
                    <CHOICE>Not Started</CHOICE>
                    <CHOICE>In Progress</CHOICE>
                    <CHOICE>Completed</CHOICE>
                </CHOICES>
                <Default>Not Started</Default>
             </Field>"
$list.Fields.AddFieldAsXml($fieldXml, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$ctx.ExecuteQuery()

Consulte Agregar una columna de elección a una lista de SharePoint Online usando PnP PowerShell

Sí/No columna

Aquí está el script para agregar una columna Sí/No a una lista de SharePoint Online.

# Add a yes/no column
$fieldXml = "<Field DisplayName='Completed' InternalName='Completed' Type='Boolean' />"
$list.Fields.AddFieldAsXml($fieldXml, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$ctx.ExecuteQuery()

Columna de persona o grupo

Aquí está el script de PowerShell para crear una columna de persona o grupo en una lista de SharePoint Online.

# Add a person or group column
$fieldXml = "<Field DisplayName='Assigned To' InternalName='AssignedTo' Type='User' UserSelectionMode='PeopleAndGroups' />"
$list.Fields.AddFieldAsXml($fieldXml, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$ctx.ExecuteQuery()

A continuación se muestra el script completo de PowerShell que creará la lista de SharePoint Online y agregará columnas adicionales.

$siteUrl = "https://szg52.sharepoint.com/sites/PowerPlatformFAQs"
# Define Variables
$listTitle = "Project Tasks"
$listDescription = "A list to track project tasks."

$UserName = "bijay@szg52.onmicrosoft.com"
$Password = "Enter Your Password"
$SecurePassword= $Password | ConvertTo-SecureString -AsPlainText -Force

# Create a new list
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)
$web = $ctx.Web

$listCreationInfo = New-Object Microsoft.SharePoint.Client.ListCreationInformation
$listCreationInfo.Title = $listTitle
$listCreationInfo.TemplateType = [Microsoft.SharePoint.Client.ListTemplateType]::GenericList
$list = $web.Lists.Add($listCreationInfo)
$list.Description = $listDescription
$list.Update()
$ctx.ExecuteQuery()

# Add a single line of text column
$fieldXml = "<Field DisplayName='Task Name' InternalName='TaskName' Type='Text' />"
$list.Fields.AddFieldAsXml($fieldXml, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$ctx.ExecuteQuery()

# Add a choice column
$fieldXml = "<Field DisplayName='Priority' InternalName='Priority' Type='Choice' Format='Dropdown'>
                <CHOICES>
                    <CHOICE>High</CHOICE>
                    <CHOICE>Medium</CHOICE>
                    <CHOICE>Low</CHOICE>
                </CHOICES>
                <Default>Medium</Default>
             </Field>"
$list.Fields.AddFieldAsXml($fieldXml, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$ctx.ExecuteQuery()

# Add a yes/no column
$fieldXml = "<Field DisplayName='Completed' InternalName='Completed' Type='Boolean' />"
$list.Fields.AddFieldAsXml($fieldXml, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$ctx.ExecuteQuery()

# Add a person or group column
$fieldXml = "<Field DisplayName='Assigned To' InternalName='AssignedTo' Type='User' UserSelectionMode='PeopleAndGroups' />"
$list.Fields.AddFieldAsXml($fieldXml, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$ctx.ExecuteQuery()

# Add a single line of text column with additional settings
$fieldXml = "<Field DisplayName='Task Description' InternalName='TaskDescription' Type='Text' Required='TRUE' />"
$list.Fields.AddFieldAsXml($fieldXml, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$ctx.ExecuteQuery()

# Add a choice column with additional settings
$fieldXml = "<Field DisplayName='Status' InternalName='Status' Type='Choice' Format='Dropdown' Required='TRUE'>
                <CHOICES>
                    <CHOICE>Not Started</CHOICE>
                    <CHOICE>In Progress</CHOICE>
                    <CHOICE>Completed</CHOICE>
                </CHOICES>
                <Default>Not Started</Default>
             </Field>"
$list.Fields.AddFieldAsXml($fieldXml, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$ctx.ExecuteQuery()

# Disconnect from SharePoint Online
Disconnect-SPOService

Así es como se crea una lista en SharePoint Online y se le agregan columnas adicionales.

Lea Eliminar y recuperar un sitio de SharePoint Online usando PowerShell y PnP PowerShell

Cree una lista de SharePoint Online usando PnP PowerShell

Ahora, déjame mostrarte cómo crear una lista de SharePoint Online usando PnP PowerShell.

En PnP PowerShell, puede usar el cmdlet New-PnPList para crear una lista en el sitio de SharePoint Online.

Aquí está el script completo de PowerShell:

# Create a new list
$siteUrl = "https://szg52.sharepoint.com/sites/MarketingTeam"
Connect-PnPOnline -Url $siteUrl -Credentials (Get-Credential)

New-PnPList -Title "Marketing Tasks" -Template GenericList

Una vez que ejecute el script de PowerShell anterior, podrá ver el resultado en la siguiente captura de pantalla:

Ahora, si abre su sitio de SharePoint, podrá ver la lista creada correctamente con PnP PowerShell.

Así es como se crea una lista personalizada en el sitio de SharePoint Online usando PnP PowerShell.

Si desea agregar columnas a la lista de SharePoint, puede utilizar el siguiente script. He explicado cómo agregar una columna de texto de una sola línea, una columna de elección, una columna de sí/no, una columna de persona o grupo, etc.

# Add a single line of text column
Add-PnPField -List "Project Tasks" -DisplayName "Task Name" -InternalName "TaskName" -Type Text

# Add a choice column
Add-PnPField -List "Project Tasks" -DisplayName "Priority" -InternalName "Priority" -Type Choice -AddToDefaultView `
-Choices "High", "Medium", "Low" -DefaultValue "Medium"

# Add a yes/no column
Add-PnPField -List "Project Tasks" -DisplayName "Completed" -InternalName "Completed" -Type Boolean -AddToDefaultView

# Add a person or group column
Add-PnPField -List "Project Tasks" -DisplayName "Assigned To" -InternalName "AssignedTo" -Type User -AddToDefaultView

Si desea tener algunas configuraciones adicionales, puede escribir como se muestra a continuación, aquí he agregado algunas propiedades como -Required, -DefaultValue, etc.

# Add a single line of text column with additional settings
Add-PnPField -List "Project Tasks" -DisplayName "Task Description" -InternalName "TaskDescription" -Type Text `
-Required $true -AddToDefaultView

# Add a choice column with additional settings
Add-PnPField -List "Project Tasks" -DisplayName "Status" -InternalName "Status" -Type Choice -AddToDefaultView `
-Choices "Not Started", "In Progress", "Completed" -DefaultValue "Not Started" -Required $true

Aquí está el script completo de PowerShell:

# Define Variables
$siteUrl = "https://szg52.sharepoint.com/sites/MarketingTeam"
$listTitle = "Project Tasks"

# Connect to SharePoint Online
Connect-PnPOnline -Url $siteUrl -Credentials (Get-Credential)

# Create a new list
New-PnPList -Title $listTitle -Template GenericList

# Add a single line of text column
Add-PnPField -List $listTitle -DisplayName "Task Name" -InternalName "TaskName" -Type Text -AddToDefaultView

# Add a choice column
Add-PnPField -List $listTitle -DisplayName "Priority" -InternalName "Priority" -Type Choice -AddToDefaultView `
-Choices "High", "Medium", "Low" -DefaultValue "Medium"

# Add a yes/no column
Add-PnPField -List $listTitle -DisplayName "Completed" -InternalName "Completed" -Type Boolean -AddToDefaultView

# Add a person or group column
Add-PnPField -List $listTitle -DisplayName "Assigned To" -InternalName "AssignedTo" -Type User -AddToDefaultView

# Add a single line of text column with additional settings
Add-PnPField -List $listTitle -DisplayName "Task Description" -InternalName "TaskDescription" -Type Text `
-Required $true -AddToDefaultView

# Add a choice column with additional settings
Add-PnPField -List $listTitle -DisplayName "Status" -InternalName "Status" -Type Choice -AddToDefaultView `
-Choices "Not Started", "In Progress", "Completed" -DefaultValue "Not Started" -Required $true

# Disconnect from SharePoint Online
Disconnect-PnPOnline

Conclusión

Cuando desea crear listas en un entorno de producción de SharePoint, utiliza principalmente PowerShell o PnP PowerShell. En este tutorial, he explicado cómo crear una lista en SharePoint Online usando PowerShell y PnP PowerShell. También expliqué cómo agregar columnas a una lista de SharePoint Online usando PnP PowerShell y PowerShell.

Artículos relacionados