Cómo conectar PowerShell a SharePoint Online
PowerShell es una potente herramienta de automatización masiva diseñada para ayudar al departamento informático de una empresa a manipular y coordinar las operaciones subyacentes de un sistema operativo, una aplicación o una página web. ¿Cómo?
Con los famosos cmdlets y sus módulos preconfigurados.
Entre ellos destaca el dedicado a SharePoint Online.
Descubramos juntos todos los detalles.
Lo que encontrará en este artículo
PowerShell: qué es y para qué sirve
Automatización y scripting: así podríamos resumir, en pocas palabras, qué es PowerShell.
Esta plataforma fue creada por Microsoft para ayudar a los equipos informáticos a automatizar los procesos inherentes a los recursos informáticos de una empresa mediante scripts y comandos personalizados.
Por lo tanto, es una herramienta dirigida a usuarios con experiencia en programación que no quieren perder el tiempo creando automatizaciones manualmente, una a una, y empezando siempre desde cero.
En su lugar, desean automatizar tareas como la instalación de aplicaciones, la configuración de servidores o la gestión de colecciones de sitios de SharePoint en bloque.
Si usted también comparte este objetivo, o si simplemente siente curiosidad por lo que PowerShell puede hacer por su empresa, está usted en el artículo.
¿Qué es intranet.ai?
intranet.ai es la intranet empresarial lista para su uso, diseñada para reducir costos y tiempos de implementación, creando así un entorno de trabajo digital altamente colaborativo y moderno:
- Precio inicial de 3.650 €/año para una intranet completa
- 50+ aplicaciones, que incluyen búsqueda avanzada, gestión de documentos, noticias, notificaciones push a través de Teams, perfil personal y preguntas frecuentes
- Integración al 100% con SharePoint Online y Microsoft 365
Antes de ver cuáles son las principales características del producto, queremos hacer una pequeña aclaración, que puede parecer obvia para algunos de ustedes.
Queremos decir que PowerShell no tiene nada que ver con Power Automate, aunque sólo sea para crear automatizaciones.
PowerShell se caracteriza por su doble naturaleza, que implica ser un lenguaje de scripting así como un motor de automatización orientado a objetos.
Se trata, por tanto, de una herramienta que suelen utilizar los administradores de sistemas para gestionar servidores, redes, aplicaciones, sitios y servicios web empresariales, automatizando los procesos de los que dependen estos recursos.
Por su parte, Power Automate permite crear flujos de trabajo en la nube sin recurrir a la escritura de código y con el objetivo de integrar las funcionalidades de las herramientas de Microsoft, así como las de terceros.
Así, podría crear flujos de trabajo capaces de recopilar los archivos adjuntos de su correo electrónico y almacenarlos en una determinada biblioteca de SharePoint sin tener que acceder en ningún momento a Outlook.
Otro ejemplo sería automatizar el envío de notificaciones a sus grupos y canales de Teams cada vez que se publique un post en un sitio o página social de SharePoint.
O también podría crear un flujo para gestionar la aprobación de nuevos documentos cargados en el archivo.
Como puede ver, Power Automate ofrece las mejores sorpresas cuando se trata de automatizar sitios y, lo que es más importante, listas y bibliotecas de SharePoint.
Pero aquí no entraremos en más detalles.
Para profundizar en este tema, le recomendamos que lea nuestro artículo sobre
los flujos de trabajo para SharePoint Online.
Tras esta breve pero necesaria introducción, podemos adentrarnos en los entresijos de PowerShell para averiguar qué otras características lo diferencian de las herramientas de automatización comunes y lo convierten así en un activo atractivo con el que equipar a su equipo informático.
Cuáles son las principales características
de PowerShell
Como se anticipó en el último capítulo, PowerShell constituye tanto un lenguaje de scripting como una plataforma destinada a la automatización de sistemas operativos, especialmente, pero también de aplicaciones y páginas web.
En cuanto a los sistemas operativos, cabe señalar que una de las principales ventajas de PowerShell es que puede adaptarse sin problemas a las principales plataformas (Windows, Linux y macOS).
Para lograr su objetivo, aprovecha el marco .NET, lo que le permite ofrecer a los usuarios varias formas de crear sus automatizaciones. Entre ellas se incluyen:
- Cmdlet.
- Scripts.
- Archivos ejecutables.
- Clases .NET estándar.
Hay que abrir un breve paréntesis para los primeros.
En efecto, los cmdlets (pronunciado "command-lets") representan los elementos más característicos de PowerShell y los más utilizados por los usuarios.
En concreto, son comandos ligeros y especializados, ya que cada uno de ellos se ciñe a una sintaxis sencilla (Verbo-Sustantivo) y estandarizada que hace referencia a una única operación. Algunos ejemplos podrían ser "Obtener-ubicación", "Mover-artículo" y "Eliminar-artículo".
Sin embargo, los cmdlets pueden combinarse para crear scripts personalizados según la lógica del "pipelining", la función que permite transformar la salida de un comando en la entrada de otro y que, en PowerShell, permite que los objetos fluyan de un cmdlet al siguiente.
El resultado del pipelining (indicado con el símbolo "|") es una reacción en cadena que permite a los usuarios lograr soluciones más sofisticadas y procesar datos más complejos.
Si luego pensamos que PowerShell cuenta con más de 200 cmdlets, resulta evidente cómo estas cadenas pueden desarrollarse en tamaño y personalización, apoyándose también en el uso de expresiones condicionales, conmutadores (utilizados para sustituir una larga sucesión de condiciones if/then/else), bucles y variables.
Además, aunque los cmdlets son bastante autoexplicativos, como hemos visto, éstos vienen acompañados de su documentación, a la que puede acceder directamente dentro de la plataforma.
O bien, puede utilizar el comando "Get-Help", seguido de "online", para recuperar artículos web que traten sobre el comando o la función que está buscando.
De esta forma, será más fácil para los usuarios menos experimentados aprender los diferentes componentes del sistema y cómo utilizarlos para sus automatizaciones.
Pero eso no es todo.
Hay otros dos aspectos importantes que aún debemos explorar para completar nuestra visión general.
El primero se refiere a la posibilidad de utilizar PowerShell de forma remota.
De hecho, los usuarios pueden iniciar comandos y scripts desde ordenadores remotos aprovechando el protocolo WS-Management o Windows Management Instrumentation.
Sin entrar en demasiados detalles, basta con saber que WS-Management es el protocolo desarrollado por la DMTF (Distributed Management Task Force), de la que forma parte Microsoft, para poder gestionar y supervisar los recursos de una red independientemente del sistema operativo que se utilice.
Por su parte, Windows Management Instrumentation proporciona a los usuarios una representación unificada de los recursos de un sistema, lo que les permite manipularlos a distancia.
El segundo aspecto a destacar se refiere a la modularidad, es decir, a la capacidad de organizar en módulos cmdlets con funcionalidades relacionadas.
Además, por supuesto, de los creados por el usuario, PowerShell proporciona 4 tipos ya configurados. Hablemos de los módulos:
- Script.
Módulos utilizados principalmente para importar, exportar y gestionar funciones.
- Binarios.
Los módulos se manipulan para crear cmdlets con una funcionalidad más potente que la que se puede obtener de los scripts normales que ofrece la plataforma.
- Manifesto.
Módulos particulares, que se caracterizan por estar formados por archivos de texto, utilizados para describir los componentes de un módulo.
En concreto, definen sus cmdlets, funciones, requisitos y dependencias, ayudando así a los usuarios a desarrollar y desplegar diferentes módulos de forma más fácil y rápida.
- Dinámica.
Módulos que se instalan a petición de un script.
Dado que satisfacen una necesidad momentánea, no suelen almacenarse de forma permanente en la plataforma.
Además, puede descargar e instalar aún más módulos, que también están preconfigurados pero no están presentes en PowerShell.
Entre ellos se incluyen los relacionados con las colecciones de sitios de SharePoint, sus grupos de usuarios y la configuración de seguridad.
Dado que el tema de nuestro próximo capítulo se refiere a la relación entre PowerShell y un tenant de SharePoint Online, el módulo que nos interesa es precisamente el dedicado a la versión en la nube de SharePoint. Su nombre es "Microsoft.SharePoint.Online.Management”.
Cómo conectar un tenant de SharePoint Online
a PowerShell
Antes de ver juntos los pasos a seguir para conectar PowerShell a uno de sus tenants de SharePoint Online, necesitamos hacer una pequeña introducción.
PowerShell se aplica a cualquier versión de SharePoint, permitiendo a los usuarios gestionar la configuración de la plataforma a nivel de organización y de colección de sitios.
Sin embargo, como ya hemos anticipado, necesita descargar e instalar el módulo específico para el tipo de tenant que desea conectar, dependiendo de si es on-prem o en la nube.
En el primer caso, el módulo que necesita es el denominado "Microsoft.SharePoint.Management"; en el segundo, que es el que exploraremos en este capítulo, el módulo con el que debe equiparse se denomina "Microsoft.SharePoint.Online.Management".
Aunque los cmdlets y las funciones que contienen ambos módulos los distinguen entre sí, es posible encontrar puntos en común.
Por ejemplo, siempre hay comandos especializados en crear una nueva colección de sitios, definir su título, URL, propietario, cuota de almacenamiento y grupos de usuarios con los permisos correspondientes.
Además, puede encontrar cmdlets que le permiten obtener informes detallados y estadísticas sobre el uso y el rendimiento de los distintos sitios que componen una colección.
Dicho esto, pasemos ahora al núcleo de nuestro debate y pongámonos en el caso de que desee utilizar PowerShell para gestionar por lotes las operaciones de uno de sus tenants de SharePoint Online.
Si aún no ha instalado el módulo correspondiente, la forma más rápida de hacerlo es iniciar sesión como administrador en la galería PowerShell y ejecutar el cmdlet "Install-Module-Microsoft.SharePoint.Online.Management".
Una vez hecho esto, pase a la conexión con el tenant.
El camino se bifurca en dos direcciones paralelas aquí, dependiendo de si su cuenta de administrador tiene autenticación multifactor (MFA) o no.
Veamos ambos casos.
1) Pasos para la cuenta de administrador con autenticación multifactor
En resumen, así es como debe proceder:
- Acceda a la Galería PowerShell.
- Ejecute el comando "Connect-SPOService-URL(...)", especificando la dirección de su tenant.
- Introduzca sus credenciales de Microsoft en la ventana que se abrirá.
- Apruebe la solicitud de conexión, satisfaciendo los requisitos de autenticación.
Y ya está.
Ahora que el tenant está conectado a PowerShell, puede empezar a gestionar y manipular en serie las actividades que forman su base.
Pronto verá que su equipo de TI ya no tiene que perder horas o días enteros configurando los sitios de su empresa.
2) Pasos para la cuenta de administrador sin autenticación multifactor
En este caso, el proceso se vuelve significativamente menos exigente.
Esto es lo que tiene que hacer
- Acceda a la Galería PowerShell.
- Ejecute el comando "Connect-SPOService-URL(...)-Credential(...)", especificando la dirección de su arrendatario e introduciendo su UPN, que es la dirección de correo electrónico que indica tanto su nombre de usuario como su dominio.
- Introduzca la contraseña de su cuenta.
Una vez más, ha terminado.
¿Necesita una mano para gestionar sus sitios de Microsoft SharePoint?
Tenemos más de 100 para ayudar a su empresa a:
- Mejorar la gestión de documentos y recursos
- Distribuir los permisos adecuados a los usuarios
- Garantizar la seguridad de la información compartida
- Desarrollar partes web personalizadas y gráficos de marca
Giuseppe Marchi
Microsoft MVP para SharePoint y Microsoft 365 desde 2010.
Giuseppe es el fundador de intranet.ai y uno de los principales expertos en Italia en todo lo relacionado con Microsoft 365. Durante años, ha estado ayudando a las empresas a crear su entorno de trabajo digital en la nube de Microsoft, cuidando la experiencia de las personas.
Siga leyendo
SharePoint Sync: cómo sincronizar las bibliotecas de SharePoint
Pasos a seguir, productos a utilizar, beneficios y cuestiones: encuentre aquí todos los detalles sobre la sincronización de SharePoint.
SharePoint App: cómo utilizar la intranet desde su móvil
Abra, lea, publique, descubra: esta es su intranet SharePoint de bolsillo.
Microsoft Loop: qué es y por qué va a cambiar el trabajo digital
Loop es la nueva aplicación de Microsoft 365, aún en fase experimental: ¿a qué dará lugar?