Notifications

CréationNicolas THOREZ 2019/02/24 18:38

Tout comme les mails, les notifications à l'écran peuvent être utiles. Personnellement, je ne les utilise pas trop, l'essentiel de mes scripts se faisant sur un serveur sur lequel je n'ai pas constamment les yeux braqués. Je préfère les mails qui ont le bénéfice de laisser une trace.

# On charge les Assembly Windows
Add-Type -AssemblyName System.Windows.Forms

# On crée l'objet pour la notification
$global:balloon = New-Object System.Windows.Forms.NotifyIcon

# On charge l'icône. Cela peut être None, Info, Warning ou Error
$path = (Get-Process -id $pid).Path
$balloon.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path) 
$balloon.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::Error

# On ajoute le texte de la notification
$balloon.BalloonTipText = 'Le script a détecté un virus'

# On ajoute un titre
$balloon.BalloonTipTitle = "Script de détection de virus"

# On rend la notification visible sinon ça n'a pas beaucoup d'intérêt.
$balloon.Visible = $true

# On règle la durée d'affichage en ms
$balloon.ShowBalloonTip(5000)

On peut aussi utiliser ce code :

# On charge les Assembly Windows
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") 
[reflection.assembly]::loadwithpartialname("System.Drawing")

# On crée nos variables
$Path = Get-Process -id $PID | Select-Object -ExpandProperty Path            		
$Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($Path)    		
$Notify = new-object system.windows.forms.notifyicon
$Notify.icon = $Icon
$Notify.visible = $True	
$Title = "Script de détection de virus"
$Message = "Le script a détecté un virus"

# On lance la notification. La aussi, on définira l'icône par None, Info, Warning ou Error
$notify.showballoontip(10,$title,$Message, [system.windows.forms.tooltipicon]::error)

Une autre solution est d'utiliser le module BurntToast.

# D'abord, il faut installer le module
Install-Module BurntToast

# Ensuite, on peut l'utiliser comme on le souhaite. On va d'abord créer nos variables
# L'icône ou l'image
$Logo = .\logo.png

# La notification sous la forme "Titre","Texte"
$Text = "Script de détection de virus","Le script a détecté un virus"

# On envoie la notification
New-BurntToastNotification -AppLogo $Logo -Text $Text

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • powershell_notif.txt
  • Dernière modification : 2021/07/27 11:31
  • de nekan