AvoidUsingWriteHost

Nível de gravidade: Aviso

Descrição

Esta regra deteta o uso de Write-Host em funções que não usam o Show verbo. Write-Host é concebida para produzir saída apenas de visualização no hospedeiro, como imprimir texto a cores ou pedir aos utilizadores a entrada com Read-Host. Utiliza o ToString() método para escrever a saída, com resultados dependentes do programa anfitrião PowerShell.

Como Write-Host não envia saída para o pipeline, vais precisar Write-Output de uma saída implícita para passar os dados pelo pipeline.

Evite usar Write-Host funções in a menos que usem o verbo Show , que significa explicitamente mostrar informação ao utilizador. Esta regra não se aplica a funções com o verbo Show.

Substitua Write-Host por Write-Output ou Write-Verbose com base na sua intenção. Uso Write-Verbose para registo e Write-Output para devolver objetos.

Exemplo

Não conforme

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

Compliant

Use Write-Verbose para mensagens informativas. O usuário pode decidir se deseja ver a mensagem fornecendo o parâmetro detalhado.

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'
}