es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pregunta sobre cómo enviar los resultados de Powershell a Slack a través de un webhook – Resultados de un servidor remoto

Necesito un poco de ayuda ya que no pude encontrar una respuesta en los temas abiertos relacionados con cómo enviar los resultados de PowerShell a un canal de Slack.

Para un poco de contexto, estoy accediendo de forma remota a un servidor tratando de obtener diferente información, como leer algunos archivos o el estado de los servicios, y en lugar de enviar un correo electrónico con los resultados, pensé que sería bueno publicar los resultados directamente en un canal de Slack.

Probé el siguiente comando simple, pero me falta algo sobre cómo funciona la publicación en el canal de Slack a través de la aplicación de webhook.

$Results = Get-Service Service* -ComputerName
Send-SlackMessage -Uri <webhook uri=""> -Text $Results

Desafortunadamente, los scripts anteriores no funcionan. ¿Podrías ayudarme a entender cómo se debe configurar exactamente la función de mensaje de Slack para enviar los resultados de PowerShell al canal de Slack?

¡Gracias!
M

Tags:  ,

Answer

  1. Avatar for davy.ai

    Hola M,

    Para enviar los resultados de Powershell a un canal de Slack, puedes utilizar la aplicación Slack Incoming Webhook. Aquí tienes los pasos:

    1. Crea un Incoming Webhook en Slack. Ve a https://api.slack.com/apps y selecciona tu app. Luego, ve a “Incoming Webhooks” en “Features”. Haz clic en el botón “Add New Webhook to Workspace” y sigue las instrucciones. Apunta la URL del webhook para usarla más adelante.
    2. Instala el módulo PSSlack en Powershell. Puedes hacerlo ejecutando Install-Module PSSlack en tu terminal de Powershell.

    3. Utiliza los cmdlets New-SlackMessageAttachment y Send-SlackMessage para enviar el mensaje al canal. Aquí tienes un ejemplo:

    # Importa primero el módulo PSSlack
    Import-Module PSSlack
    
    # Define el adjunto del mensaje
    $attachment = New-SlackMessageAttachment -Color "good" -Title "Estado del servicio" -Text "Aquí tienes los resultados del servicio:"
    $attachment.Fields = @(
        New-SlackMessageAttachmentField -Title "Nombre del servicio" -Value "Estado"
    )
    
    # Obtiene los resultados del servicio
    $Results = Get-Service Service* -ComputerName <nombre del="" equipo="">
    
    # Añade los resultados del servicio al adjunto
    foreach ($result in $Results) {
        $attachment.Fields += New-SlackMessageAttachmentField -Title $result.Name -Value $result.Status
    }
    
    # Envía el mensaje al canal de Slack
    Send-SlackMessage -Uri <uri del="" webhook=""> -Attachments $attachment
    

    En el script anterior, creamos un adjunto del mensaje de Slack con un color verde “good” y un título de “Estado del servicio”. Añadimos un campo para el nombre del servicio y el estado para cada resultado del servicio. Luego, enviamos el mensaje al canal de Slack utilizando la URI del webhook que apuntamos anteriormente.

    Espero que esto te sea de ayuda. Avísame si tienes alguna pregunta.

Comments are closed.