Envoyer facilement une notification sur Slack avec PowerShell

Partager

Introduction

En tant qu’admin système nous adorons avoir des notifications surtout quand il y’a beaucoup d’automatisation dans nos procédures, avant il y’avait les mails, maintenant il y’a les applications de communication collaboratives, tel que Slack ou Teams pour les deux leaders. Dans cet article je l’ai fait avec Slack, mais il est aussi possible de le faire avec Teams.

Créer une chaîne dans Slack

  1. Se connecter à Slack via l’application ou la version Web.
  2. Cliquer sur le + à côté de Chaînes, puis entrer un nom pour la chaîne

3. Cliquer sur le menu avec la roue crantée et sélectionner « Ajouter une application »

4. Rechercher Webhook entrant et cliquer sur Installer

5. Puis cliquer sur Ajouter à Slack

6. Sélectionner la chaîne où publier et cliquer sur Ajouter l’intégration Webhooks entrants

7. Retourner dans la chaîne et cliquer sur « incoming-webhook » dans la nouvelle notification

8. Dans la popup, cliquer sur Paramètres

9. Personnaliser les paramètres du Webhook, on aura besoin de l’URL du Webhook plus tard pour la configuration du script, n’oubliez pas de valider en cliquant sur Enregistrer les paramètres

Le script Send-ToSlack.ps1

Ce script est simplement un exemple, dans l’entreprise où je travaille j’ai adapté ce script afin de remonter d’autres informations en fonctions des variables de séquences de tâches dont j’avais besoin, mais il peut très bien être utilisé de façon autonome sans ConfigMgr.

Téléchargement depuis GitHub

Configuration de base

  1. Il faut entrer l’URL du Webhook entrant de l’étape 9 de la partie configuration de Slack
  2. Entrer l’URL d’un logo
  3. Entrer le texte de pied de page
  4. Entrer l’URL d’un logo pour le pied de page
  5. Si vous désirer utiliser des variables de séquence de tâche de SCCM, il faudra dé-commenter le code se trouvant dans le rectangle bleu, toutes les variables peuvent-être utilisée, y compris vos personnalisées, il faudra juste veiller à les appeler par leurs bons noms 😉
  6. Possible d’ajouter d’autres informations, récupérer via WMI, Registre ou autres commandes PowerShell
  7. Pour les points 5 et 6, libre à vous d’en ajouter ou supprimer, ce script est simplement un exemple fonctionnel de ce qu’il est possible de faire

Fonction Send-ToSlack

La fonction Send-ToSlack est appelée à la fin de chaque création de message, il envoie à l’URI ($uri) de Slack, le JSON qui a été généré pour le message ($body)

Création d’un message

Status réussi

Si mon paramètre -Status est à 1, je génère le message suivant, pour les caractères spéciaux, ne pas oublier de les encoder en HTML

Exécution du script

PowerShell.exe -ExecutionPolicy Bypass -File .\Send-ToSlack.ps1 -Status 1

Résultat

Status échoué

Si mon paramètre -Status est à 0, je génère le message suivant, pour les caractères spéciaux, ne pas oublier de les encoder en HTML

Exécution du script

PowerShell.exe -ExecutionPolicy Bypass -File .\Send-ToSlack.ps1 -Status 0

Résultat

Documentation Slack

Plus d’info sur les messages dans Slack: https://api.slack.com/messaging


Partager

Steven Bart

Fondateur de StevenBart.com - Suisse. Je suis dans l'informatique depuis 2001, je travaille en tant qu'architecte poste de travail et m'occupe principalement de l'administration de MEMCM (SCCM), du déploiement en masse de postes de travail et d'applications. En savoir plus sur moi.