AvoidUsingWriteHost

niveau de gravité : avertissement

Description

Cette règle détecte l’utilisation de Write-Host dans les fonctions qui n’utilisent pas le Show verbe. Write-Host est conçu pour produire une sortie uniquement à l’affichage dans l’hôte, comme l’impression d’un texte coloré ou la demande aux utilisateurs d’entrer avec Read-Host. Il utilise cette ToString() méthode pour écrire la sortie, les résultats dépendant du programme hôte PowerShell.

Comme Write-Host il n’envoie pas de sortie au pipeline, il vous faudra Write-Output une sortie implicite pour transmettre les données dans le pipeline.

Évitez d’utiliser Write-Host les fonctions in sauf si elles utilisent le Show verbe, ce qui signifie explicitement afficher l’information à l’utilisateur. Cette règle ne s’applique pas aux fonctions avec le verbe Show.

Remplacez Write-Host par Write-Output ou Write-Verbose selon votre intention. À utiliser Write-Verbose pour la journalisation et Write-Output pour retourner des objets.

Exemple

Non conforme

function Get-MeaningOfLife
{
    Write-Host 'Computing the answer to the ultimate question of life, the universe and everything'
    Write-Host 42
}

Compliant

Utilisez Write-Verbose pour les messages d’information. L’utilisateur peut décider s’il faut voir le message en fournissant le paramètre détaillé .

function Get-MeaningOfLife {
    [CmdletBinding()]Param() # makes it possible to support Verbose output

    Write-Verbose 'Computing the answer to the ultimate question of life, the universe and everything'
    Write-Output 42
}

function Show-Something {
    Write-Host 'Show something on screen'
}