Comenzando con la administración de SharePoint en PowerShell

¿Te aburre el centro de administración de SharePoint, lo encuentras insuficiente y deseas cambiar al símbolo del sistema? Sí, es posible con el módulo Gestión de SharePoint Online de PowerShell.

Este módulo te permite realizar las mismas tareas que normalmente haces en el centro de administración de SharePoint en PowerShell. ¡Además, puedes automatizar tus tareas en SharePoint Online!

Este tutorial enseña los conceptos básicos de la Gestión de SharePoint Online de PowerShell. Aprenderás a instalar el módulo, realizar tareas administrativas comunes y automatizar acciones repetitivas. ¡No te vayas a ningún lado y sumérgete de lleno!

Prerrequisitos

Este tutorial será una demostración práctica. Si quieres seguir, asegúrate de tener lo siguiente:

  • Debes conocer tu URL de administración de SharePoint Online y la URL del portal. Consulta este enlace para saber cómo obtener la URL de administración de SharePoint Online en tu inquilino.

Este tutorial utilizará la URL del portal HTTPS://lzex.sharepoint.com y la URL de administración HTTPS://lzex-admin.sharepoint.com.

  • Windows PowerShell 5.1 o la última versión PowerShell 7 en Windows. Este tutorial utiliza Windows PowerShell 5.1 en Windows 10.

Instalando el Módulo de PowerShell para SharePoint Online

Para administrar SharePoint Online con PowerShell, primero debes instalar el módulo de gestión de SharePoint Online de PowerShell. Este módulo proporciona los cmdlets que te permiten conectar y gestionar tu organización y recursos de SharePoint en línea.

La forma más rápida y conveniente de instalar el módulo de PowerShell para SharePoint Online es desde la galería de PowerShell utilizando el cmdlet Install-Module. Para hacerlo, sigue los siguientes pasos.

1. Abre PowerShell como administrador.

2. Ejecuta el siguiente comando. Este comando instala el módulo Microsoft.Online.SharePoint.PowerShell.

Install-Module -Name Microsoft.Online.SharePoint.PowerShell

3. Para confirmar que la instalación del módulo fue exitosa, ejecuta el siguiente comando para obtener información sobre el módulo.

Get-Module -Name Microsoft.Online.SharePoint.PowerShell -ListAvailable | Select-Object Name,Version

El comando devuelve el nombre y la versión del módulo. Como puedes ver a continuación, hay una versión del módulo Microsoft.Online.SharePoint.PowerShell en esta computadora. La última versión hasta la fecha de esta escritura es 16.0.22615.12000.

Listing the PowerShell SharePoint Online module information

4. Por último, importa el módulo de SharePoint de PowerShell ejecutando el siguiente comando en PowerShell.

Nota: Si bien el módulo de SharePoint Online de PowerShell funciona con PowerShell 7, debes importar explícitamente el módulo con el interruptor -UseWindowsPowerShell.

# En PowerShell de Windows 5.1
Import-Module Microsoft.Online.SharePoint.PowerShell

# En PowerShell 7x
Import-Module Microsoft.Online.SharePoint.PowerShell -UseWindowsPowerShell

Ignora la advertencia sobre verbos no aprobados. Esta advertencia te informa sobre los cmdlets que no comienzan con verbos aprobados en la lista Get-Verb, pero no afectan la funcionalidad del módulo.

Para evitar esta advertencia, agrega el interruptor -DisableNameChecking al cmdlet Import-Module.

Importing the PowerShell SharePoint Online module

Conexión a PowerShell SharePoint Online

Ahora estás listo para conectarte a la sesión de PowerShell SharePoint Online. Pero antes de hacerlo, comprende que la sintaxis y el método variarán dependiendo del estado de autenticación multifactor (MFA) de tu cuenta de administrador.

Cuenta de administrador sin MFA

Si tu cuenta de administrador no tiene habilitado MFA, ejecuta el siguiente comando Connect-SPOService. Especifica la URL de tu administrador después del parámetro -Url y tu nombre principal de usuario (UPN) después del parámetro -Credential.

Connect-SPOService -Url <https://tenant-admin.sharepoint.com/> -Credential spoadmin@domain.com

Escribe tu contraseña en el siguiente prompt y presiona Enter.

Connect SPOService
Connecting to PowerShell SharePoint online without MFA

El parámetro -Credential también acepta un objeto PSCredential, que puedes crear con el cmdlet Get-Credential.

Cuenta de administrador con MFA

Para una cuenta de administrador con MFA, sigue los pasos a continuación para conectarte a la sesión de PowerShell en SharePoint Online.

1. Ejecuta el siguiente comando en PowerShell. Asegúrate de especificar la URL correcta del administrador de SharePoint.

Connect-SPOService -Url https://tenant-admin.sharepoint.com/

2. En la ventana de inicio de sesión que aparece, escribe tu nombre de usuario de administrador y haz clic en Siguiente.

Type the SharePoint admin username

3. A continuación, escribe la contraseña de la cuenta de administrador y haz clic en Iniciar sesión.

Enter the account password

4. Por último, completa tu desafío de MFA. Dependiendo de cómo hayas configurado MFA para tu cuenta, el método de MFA puede diferir de la captura de pantalla a continuación.

Completing the MFA challenge

Una vez que hayas completado estos pasos, tu conexión de PowerShell a SharePoint Online debería estar activa ahora.

Gestión de sitios, usuarios y grupos utilizando el módulo PowerShell de SharePoint

Con PowerShell, puedes realizar algunas funcionalidades que SharePoint ofrece en SharePoint Online y varios recursos. En esta sección, realizarás tareas típicas de SharePoint Online, como crear sitios, crear grupos, agregar usuarios, quitar usuarios de grupos y generar informes de usuarios.

Creación de un nuevo sitio de SharePoint

Aprovechando el comando New-SPOSite, puedes crear un nuevo sitio de SharePoint Online. Supongamos que estás creando un nuevo sitio de equipo moderno llamado Mi Primer Sitio de Equipo, ejecuta los siguientes pasos.

1. Primero, obtén el nombre de la plantilla del sitio de equipo.

Get-SPOWebTemplate

Busque la plantilla que desea aplicar al nuevo sitio. En este ejemplo, copie el valor de Nombre de la plantilla de sitio del equipo (sin grupo de Microsoft 365), STS#3.

Listing all available SharePoint web templates

2. Ahora, ejecute el siguiente comando para crear el sitio de equipo moderno. Asegúrese de que los siguientes parámetros estén completos.

  • Url - Especifica la URL del nuevo sitio. Esta estructura de URL sigue esta convención - HTTPS://<tenant>.sharepoint.com/sites/<site-slug>.

Asegúrese de que la URL sea única. La creación del sitio fallará si ya existe un sitio con la misma URL, incluso si el sitio está en la papelera de reciclaje.

  • Título – Establece el título para su nuevo sitio.
  • Propietario - Asigna el nombre principal de usuario del propietario del sitio.

Nota: SPO asigna automáticamente el grupo de Administradores de la Empresa como propietario del sitio si el propietario que especifica tiene un rol de administrador.

  • Plantilla – Indica la plantilla web que está aplicando al nuevo sitio.
  • StorageQuota - Configura el valor de la cuota de almacenamiento del sitio en MB.

Nota: El valor de StorageQuota solo tiene efecto si el Límite de Almacenamiento del Sitio en su organización de SharePoint Online está configurado en Manual. Si la configuración es Automática, la cuota total de almacenamiento del inquilino tiene prioridad.

New-SPOSite `
    -Url 'https://lzex.sharepoint.com/sites/MyFirstTeamSite' `
    -Title 'My First Team Site' `
    -Owner '[email protected]' `
    -Template 'STS#3' `
    -StorageQuota 1000

Si la creación del sitio es exitosa, no recibirá ninguna respuesta o mensaje en PowerShell.

3. Confirme que el nuevo sitio existe ejecutando el cmdlet Get-SPOSite.

Get-SPOSite -Identity 'https://lzex.sharepoint.com/sites/MyFirstTeamSite'
Getting the new SPO site details

4. Por último, abre la URL del sitio de SharePoint en tu navegador web para confirmar que el sitio funciona.

Opening the new SPO site in the browser

Creación de Grupos de Sitio y Agregar Usuarios

Después de crear un nuevo sitio de SPO, puedes comenzar a crear grupos y agregar usuarios con niveles de permisos específicos. En esta sección, aprenderás cómo crear grupos y agregar usuarios a dichos grupos.

Primero, crea los grupos que sigan las especificaciones en la tabla a continuación.

Para obtener una lista de niveles de permisos, visita la documentación de Permisos de usuario y niveles de permiso en SharePoint Server.

Site Group PemissionLevels
https://tenant.sharepoint.com/sites/MyFirstTeamSite Editing Team Edit
https://tenant.sharepoint.com.sites/MyFirstSite Design Team Design

Para crear grupos, el cmdlet New-SPOSiteGroup es el que debes ejecutar. Ejecuta los siguientes comandos para crear los grupos.

# Define la URL del sitio.
$siteURL = '<https://lzex.sharepoint.com/sites/MyFirstTeamSite>'
# Crea el grupo 'Equipo de Edición' con permiso de 'Editar' en el sitio.
New-SPOSiteGroup -Site $siteURL -Group 'Editing Team' -PermissionLevels Edit
# Crea el grupo 'Equipo de Diseño' con permiso de 'Diseñar' en el sitio.
New-SPOSiteGroup -Site $siteURL -Group 'Design Team' -PermissionLevels Design
Creating new groups on the SPO site

A continuación, agrega los usuarios que desees que sean miembros de los grupos. Para hacerlo, ejecuta los comandos Add-SPOUser a continuación.

# Agrega un usuario al grupo de sitio 'Equipo de Edición'
Add-SPOUser -Site $siteURL -Group 'Editing Team' –LoginName spoeditor@lzex.ga
# Agrega un usuario al grupo de sitio 'Equipo de Diseño'
Add-SPOUser -Site $siteURL -Group 'Design Team' –LoginName spodesigner@lzex.ga

Después de cada ejecución de comando, recibirás resultados similares a la captura de pantalla a continuación.

Adding users to SPO site groups

Generando una Lista de Usuarios del Sitio

Aprovechando el comando Get-SPOUser, puedes generar qué usuarios pueden acceder al sitio.

Ejecuta el siguiente comando para generar la lista de usuarios en el My First Team Site.

Get-SPOUser -Site <https://lzex.sharepoint.com/sites/MyFirstTeamSite> | Format-Table -Wrap -AutoSize | Out-File <path-to-savereport> -Force -Width 360 -Append

El resultado se vería similar a la captura de pantalla a continuación. Como puedes ver, la salida muestra la lista de usuarios y sus membresías a grupos.

Getting the list of users on the SPO site

También puedes exportar los resultados a diferentes tipos de archivos, incluyendo CSV, XML, JSON, YAML, HTML, y texto sin formato.

Eliminar Usuarios de Grupos del Sitio

Puede que necesites eliminar un usuario, probablemente porque lo agregaste al grupo incorrecto o el usuario ya no está en el equipo. El cmdlet Remove-SPOUser es la herramienta adecuada para esta tarea.

Por ejemplo, ejecuta el siguiente comando para eliminar al usuario [email protected] del grupo Design Team.

Remove-SPOUser `
    -LoginName spodesigner@lzex.ga `
    -Site <https://lzex.sharepoint.com/sites/MyFirstTeamSite> `
    -Group 'Design Team'

Como puedes ver, la lista de Usuarios en el Design Team ahora está vacía después de eliminar a su único miembro.

Removing a user for the SPO site group

Utilizando PowerShell de SharePoint Online para Automatización

Dado que estás trabajando con PowerShell, puedes aprovechar su potencia para la automatización. Por ejemplo, el scripting sería un enfoque más práctico al crear múltiples sitios.

Puedes combinar el comando New-SPOSite de PowerShell SharePoint Online con comandos incorporados como Import-Csv y ForEach-Object. Los siguientes pasos te dan un ejemplo de cómo crear múltiples sitios con diferentes propiedades.

1. Ejecuta el siguiente comando para crear un nuevo archivo CSV llamado sites.csv.

New-Item -Type File -Path .\sites.csv

2. A continuación, abre el archivo CSV en un editor de texto. Este ejemplo utiliza notepad.exe.

notepad.exe .\sites.csv

3. Copia el siguiente texto en tu archivo CSV y guárdalo. Asegúrate de reemplazar los valores de Propietario y URL para que coincidan con tu organización.

Owner,StorageQuota,Url,Template,Name
spoadmin@lzex.ga,100,https://lzex.sharepoint.com/sites/new-site,STS#0,Nuevo Sitio
ata_dev@lzex.ga,100,https://lzex.sharepoint.com/sites/dev-site,DEV#0,Sitio de Desarrollo

Tu archivo CSV se vería como la captura de pantalla a continuación.

Creating the CSV list of new sites

4. Ejecuta el siguiente script en PowerShell.

Import-Csv .\sites.csv | ForEach-Object {
    New-SPOSite `
        -Owner $_.Owner `
        -StorageQuota $_.StorageQuota `
        -Url $_.Url `
        -Template $_.Template `
        -Title $_.Name `
        -NoWait
}

Si no hay errores, no obtendrás resultados adicionales en la pantalla.

Creating multiple sites using the PowerShell SharePoint online script

5. Por último, ejecuta el siguiente comando para confirmar que los nuevos sitios existen.

Import-Csv .\sites.csv | ForEach-Object {
    Get-SPOSite -Identity $_.Url | Select-Object Title,Url,Owner
}
Listing the new sites

Puedes aplicar la misma técnica que acabas de realizar para automatizar tareas masivas, como la creación de grupos de sitios y las actualizaciones de pertenencia a grupos de sitios.

Conclusión

El módulo de PowerShell SharePoint Online te permite mejorar cómo gestionas tu organización de SharePoint Online. Este módulo no está destinado a reemplazar el centro de administración de SharePoint sino como una herramienta para aumentar tus habilidades en SharePoint Online.

Aparte del módulo de PowerShell SharePoint Online, ¿sabías que otro módulo te permite gestionar SharePoint Online en PowerShell? Sí, ese módulo es el módulo PnP PowerShell. ¿Por qué no exploras también ese módulo y comparas cuál funciona mejor para ti?

Source:
https://adamtheautomator.com/powershell-sharepoint/