AvoidUsingWriteHost

Nível de gravidade: aviso

Descrição

Essa regra detecta o uso de Write-Host em funções que não usam o Show verbo. Write-Host é projetado para produzir saída apenas para exibição no host, como imprimir texto colorido ou pedir aos usuários a entrada com Read-Host. Ele usa o ToString() método para escrever a saída, com resultados dependendo do programa host do PowerShell.

Como Write-Host não envia saída para o pipeline, você 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 elas usem o verbo Show , que significa explicitamente exibir informações para o usuário. Essa regra não se aplica a funções com o verbo Show.

Substitua Write-Host por Write-Output ou Write-Verbose conforme sua intenção. Use Write-Verbose para logar e Write-Output para retornar 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
}

Em conformidade

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