Búsqueda de sitios web

SharePoint Online: ¿Cómo programar un script de PowerShell mediante Azure Automation?


Requisito: Programe scripts de PowerShell para SharePoint Online mediante Azure Automation.

¿Cómo utilizar Azure Automation para programar scripts de PowerShell para SharePoint Online?

Azure Automation es una excelente opción si busca programar sus tareas recurrentes de PowerShell directamente en la nube, sin depender de su servidor local o máquinas virtuales a través del Programador de tareas de Windows. Programar un script de PowerShell para que se ejecute en Azure le permite automatizar tareas y procesos en su entorno de Azure. Con un poco de configuración, puede programar fácilmente sus scripts de PowerShell para que se ejecuten en momentos o intervalos específicos, lo que facilita la automatización de una amplia variedad de tareas y procesos. En esta guía, recorreremos los pasos para configurar y programar un script de PowerShell para ejecutarlo en Azure, incluida la creación de un runbook, la configuración de la programación y la prueba del script.

Suponiendo que tiene una suscripción de Azure existente, estos son los pasos para crear una tarea programada automatizada en Azure de alto nivel:

  1. Cree una cuenta de automatización de Azure
  2. Configurar credenciales para conectarse a SharePoint Online
  3. Importar módulos necesarios
  4. Cree un Runbook y agregue scripts para ejecutar
  5. Programe el script de PowerShell

Paso 1: crear una cuenta de Azure Automation

Si no tiene ninguna cuenta de automatización de Azure creada, primero debe crear una.

  1. Inicie sesión en el Portal de Azure https://portal.azure.com
  2. Haga clic en el botón "Crear un recurso" >> Busque y busque "Automatización" >> Haga clic en "Agregar" para crear una nueva cuenta de automatización.

  3. En mi caso, creé una cuenta de automatización como "SharePoint-Online-Reporting". Una vez creado, accederá a la página de la cuenta de automatización que se creó.

Paso 2: Importe los módulos PowerShell necesarios

Usaremos el módulo PnP PowerShell para SharePoint Online en nuestro script de PowerShell. Entonces, primero tenemos que importarlo a nuestro entorno.

  1. Abra la cuenta de Automatización creada >> Haga clic en “Galería de módulos” en la navegación de la izquierda.
  2. Busque y encuentre “SharePointPnPPowerShellOnline” (o cualquier otro módulo relevante) >> Haga clic en el enlace del módulo >> use el botón “Importar” para importar el módulo.

  3. Esto tomará un momento e importará el módulo seleccionado.

Paso 3: Agregar credenciales para ejecutar como cuenta

Necesitamos configurar las credenciales para ejecutar el script de PowerShell en Azure Automation Runbook. Entonces, la idea es que nuestro script de PowerShell obtenga las credenciales almacenadas de la cuenta de automatización de Azure, se conecte al inquilino de SharePoint Online, genere el informe de almacenamiento para todos los sitios y luego envíe un correo electrónico todos los días.

  1. Desde la cuenta de automatización, haga clic en el enlace "Credenciales" en el inicio rápido.
  2. Haga clic en el botón "Agregar una credencial". Proporcione cualquier credencial válida que tenga el acceso necesario. En mi caso, he utilizado una cuenta con la función de administrador de SharePoint Online. Haga clic en el botón "Crear" para crear una credencial.

¡Ahora podemos usar esta credencial en nuestros scripts de PowerShell!

Paso 4: crear un Runbook con PowerShell Script

Como su nombre indica, Runbook es el contenedor del script que vamos a ejecutar. Runbook enumera todos los Runbooks publicados disponibles para automatización.

  1. Abra la cuenta de Azure Automation creada >> Haga clic en "Runbooks" en automatización de procesos.
  2. Haga clic en “Crear un Runbook” >> Asigne un nombre y seleccione su tipo como PowerShell y haga clic en el botón “Crear”.

Una vez creado el PowerShell Runbook, lo llevará a la página para editar el script de PowerShell para ejecutar. Escriba los scripts de PowerShell necesarios para la automatización. En mi caso, escribí el siguiente script de PowerShell para generar un informe de almacenamiento para todos los sitios del inquilino y enviar un correo electrónico.


#Get Stored Credentials
$CrescentCred = Get-AutomationPSCredential -Name "StorageRptCred"

#Set Variables
$TenantAdminURL = "https://crescent-admin.sharepoint.com"
$EmailTo = "Salaudeen@crescent.com"
 
#Connect to PnP Online
Connect-PnPOnline -Url $TenantAdminURL -Credentials $CrescentCred

$CSSStyle = "<style>
table {font-family: Arial, Helvetica, sans-serif; border-collapse: collapse; width: 100%;}
table td, th {border: 1px solid #ddd; padding: 8px;}
table tr:hover {background-color: #ddd;}
table th { padding-top: 12px; padding-bottom: 12px; text-align: left; background-color: #4CAF50; color: white;}
</style>"

#Get the Site collection Storage details
[string]$EmailBody = Get-PnPTenantSite | Select @{Label="Title";Expression={$_.Title}}, 
                                        @{Label="URL";Expression={$_.URL}}, 
                                        @{Label="Allocated (GB)";Expression={$_.StorageMaximumLevel/1MB}}, 
                                        @{Label="Used (MB)";Expression={$_.StorageUsage}}, 
                                        @{Label="Warning Level (GB)";Expression={$_.StorageWarningLevel/1MB}} | 
ConvertTo-Html -Title "Crescent Inc. Storage Report" -Head $CSSStyle -PreContent "Sites Storage Report"

#Send Email
Send-PnPMail -To $EmailTo -Subject "Storage Report" -Body $EmailBody

Guarde y pruebe el script de PowerShell haciendo clic en "Guardar" y haciendo clic en los botones "Panel de prueba" en el editor de código. Una vez que esté de acuerdo con el script, haga clic en "Publicar" para publicar el Runbook, ya que el Runbook debe publicarse para crear programaciones.

Paso 5: agregue una programación a su secuencia de comandos de PowerShell

Como paso final, debemos agregar una programación al script de PowerShell. A continuación se explica cómo crear una programación para Azure Runbook.

  1. Haga clic en "Horarios" en el Runbook creado >> Haga clic en el enlace "Agregar un horario".
  2. Elija "Vincular una programación a su runbook" >> Haga clic en el enlace "Crear una nueva programación".
  3. Ingrese los detalles necesarios para su programación, como nombre, descripción, fecha de inicio, hora, zona horaria y detalles de recurrencia. En mi caso, el programa se ejecutará todos los días a la hora indicada hasta la fecha de vencimiento.

Muy bien, ahora hemos configurado el script de PowerShell en la automatización de Azure. Espere a que se ejecute el trabajo programado y aquí están mis correos electrónicos de trabajo programado en acción:

Si desea programar una secuencia de comandos de PowerShell, también puede utilizar el Programador de tareas de Windows: ¿Cómo crear una tarea programada para la secuencia de comandos de PowerShell con el Programador de tareas de Windows?

Conclusión

En conclusión, programar un script de PowerShell para que se ejecute en Azure puede ser una forma útil de automatizar tareas y procesos en su entorno de Azure. Si sigue los pasos descritos en esta guía, puede programar sus scripts de PowerShell para que se ejecuten en momentos o intervalos específicos, puede ahorrar tiempo y esfuerzo al automatizar tareas repetitivas o que consumen mucho tiempo y garantizar que su entorno de Azure funcione sin problemas y de manera eficiente.

Artículos relacionados