Fonctions #
Coloration textuelle #
function Write-Color {
param (
[ValidateNotNullOrEmpty()]
$ColorType,
$Message
)
switch -Regex ( $ColorType )
{
'[Gg]reen|vert' { $fgcolor="Green" }
'[Rr]ed|rouge' { $fgcolor="Red" }
'[Ww]hite|blanc' { $fgcolor="White" }
'[Yy]ellow|jaune' { $fgcolor="Yellow" }
'[Cc]yan' { $fgcolor="Cyan" }
'[Gg]ray' { $fgcolor="Cyan" }
default { $fgcolor=1 }
}
Write-Host "$Message" -ForegroundColor $fgcolor -NoNewLine
}
Mise en forme textuel - Type bannière #
Dépendance Necessite la fonction
Write-Color
du point précédent.
function Write-Banner {
param (
[ValidateNotNullOrEmpty()]
$BannerType,
$Message
)
switch -Regex ( $BannerType )
{
'ok' { $fgcolor="Green"; $bannertext=" OK " }
'ko' { $fgcolor="Red"; $bannertext="KO" }
'up' { $fgcolor="Green"; $bannertext=" UP " }
'down' { $fgcolor="Green"; $bannertext="DOWN" }
'error|erreur' { $fgcolor="Red"; $bannertext = "ERR " }
'warning|warn' { $fgcolor="Yellow"; $bannertext = "WARN" }
'info' { $fgcolor="Cyan"; $bannertext = "INFO" }
'debug' { $fgcolor="Gray"; $bannertext = "DEBUG" }
default { $fgcolor=1 }
}
Write-Color "White" "["
Write-Color "$fgcolor" "$bannertext"
Write-Color "White" "] - $Message"
Write-Output ""
}
Cas d’utilisation #
Mini script de résolution DNS avec retour de message sur la réussite ou non de l’opération
$Domaine = "jeremy.norgol.fr"
Write-Banner "info" "Résolution en cours de: $Domaine"
try {
# Résolution du nom de domaine
$result = Resolve-DnsName -Name $Domaine -ErrorAction Stop
# Si la résolution est réussie, affiche une bannière OK de couleur verte
Write-Banner "ok" "Résolution de $Domaine; $result.IPAddress"
} catch {
# En cas d'erreur si le nom de domaine ne peut pas être résolu, affiche une bannière KO de couleur rouge
Write-Banner "ko" "Impossible d'établir la résolution de nom du domaine: $Domaine"
}