Share via


Write-Information

Especifica como o PowerShell manipula dados de fluxo de informações para um comando.

Syntax

Write-Information
     [-MessageData] <Object>
     [[-Tags] <String[]>]
     [<CommonParameters>]

Description

O Write-Information cmdlet especifica como o PowerShell lida com dados de fluxo de informações para um comando.

Windows PowerShell 5.0 apresenta um novo fluxo de informações estruturados. Você pode usar esse fluxo para transmitir dados estruturados entre um script e seus chamadores ou o aplicativo host. Write-Information permite adicionar uma mensagem informativa ao fluxo e especificar como o PowerShell lida com dados de fluxo de informações para um comando. Os fluxos de informações também funcionam para PowerShell.Streamstrabalhos e tarefas agendadas.

Observação

O fluxo de informações não segue a convenção padrão de prefixar suas mensagens com "[nome Stream]:". Isso foi destinado à brevidade e à limpeza visual.

O $InformationPreference valor da variável de preferência determina se a mensagem fornecida a Write-Information é exibida no ponto esperado na operação de um script. Como o valor padrão dessa variável é SilentlyContinue, por padrão, as mensagens informativas não são mostradas. Se você não quiser alterar o valor de $InformationPreference, poderá substituir seu valor adicionando o parâmetro comum InformationAction ao seu comando. Para obter mais informações, consulte about_Preference_Variables e about_CommonParameters.

Observação

A partir do Windows PowerShell 5.0, Write-Host é um wrapper para Write-Information Isso permite que você use Write-Host para emitir a saída para o fluxo de informações. Isso permite a captura ou supressão de dados gravados usando Write-Host , preservando a compatibilidade com versões anteriores. Para obter mais informações, consulte Write-Host

Exemplos

Exemplo 1: Gravar informações para Obter resultados

Neste exemplo, você mostra uma mensagem informativa , "Processos que começam com 'P'", antes de executar o Get-Process comando para localizar todos os processos que têm um valor Name que começa com 'p'. Como a $InformationPreference variável ainda está definida como seu padrão, SilentlyContinue, você adiciona o parâmetro InformationAction para substituir o $InformationPreference valor e mostra a mensagem. O valor informationAction é Continue, o que significa que sua mensagem é mostrada, mas o script ou comando continua, se ainda não tiver sido concluído.

Write-Information -MessageData "Processes starting with 'P'" -InformationAction Continue
Get-Process -Name p*

Processes starting with 'P'

     18    19.76      15.16       0.00    6232   0 PFERemediation
     20     8.92      25.15       0.00   24944   0 policyHost
      9     1.77       7.64       0.00    1780   0 powercfg
     10    26.67      32.18       0.00    7028   0 powercfg
      8    26.55      31.59       0.00   13600   0 powercfg
      9     1.66       7.55       0.00   22620   0 powercfg
     21     6.17       4.54     202.20   12536   1 PowerMgr
     42    84.26      12.71   2,488.84   20588   1 powershell
     27    47.07      45.38       2.05   25988   1 powershell
     27    24.45       5.31       0.00   12364   0 PresentationFontCache
     92   112.04      13.36      82.30   13176   1 pwsh
    106   163.73      93.21     302.25   14620   1 pwsh
    227   764.01      92.16   1,757.22   25328   1 pwsh

Exemplo 2: gravar informações e marcá-la

Neste exemplo, você usa Write-Information para informar aos usuários que eles precisarão executar outro comando depois que terminarem de executar o comando atual. O exemplo adiciona a marca "Instructions" à mensagem informativa. Depois de executar esse comando, quando você pesquisa no fluxo de informações mensagens marcadas "Instructions", a mensagem está nos resultados.

$message = "To filter your results for PowerShell, pipe your results to the Where-Object cmdlet."
Get-Process -Name p*
Write-Information -MessageData $message -Tags "Instructions" -InformationAction Continue

NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
     18    19.76      15.16       0.00    6232   0 PFERemediation
     20     8.92      25.15       0.00   24944   0 policyHost
      9     1.77       7.64       0.00    1780   0 powercfg
     10    26.67      32.18       0.00    7028   0 powercfg
      8    26.55      31.59       0.00   13600   0 powercfg
      9     1.66       7.55       0.00   22620   0 powercfg
     21     6.17       4.54     202.20   12536   1 PowerMgr
     42    84.26      12.71   2,488.84   20588   1 powershell
     27    47.07      45.38       2.05   25988   1 powershell
     27    24.45       5.31       0.00   12364   0 PresentationFontCache
     92   112.04      13.36      82.30   13176   1 pwsh
    106   163.73      93.21     302.25   14620   1 pwsh
    227   764.01      92.16   1,757.22   25328   1 pwsh

To filter your results for PowerShell, pipe your results to the Where-Object cmdlet.

Exemplo 3: gravar informações em um arquivo

Neste exemplo, você redireciona o fluxo de informações na função para Info.txt usar o código 6>. Ao abrir o Info.txt arquivo, você verá o texto "Aqui vai você".

function Test-Info
{
    Get-Process P*
    Write-Information "Here you go"
}
Test-Info 6> Info.txt

Exemplo 4: Passar objeto para gravar informações

Neste exemplo, você pode usar para gravar Write-Information os 10 processos de utilização de CPU mais altos da Get-Process saída do objeto que passou por vários pipelines.

Get-Process | Sort-Object CPU -Descending |
    Select-Object Id, ProcessName, CPU -First 10 |
    Write-Information -InformationAction Continue

@{Id=12692; ProcessName=chrome; CPU=39431.296875}
@{Id=21292; ProcessName=OUTLOOK; CPU=23991.875}
@{Id=10548; ProcessName=CefSharp.BrowserSubprocess; CPU=20546.203125}
@{Id=312848; ProcessName=Taskmgr; CPU=13173.1875}
@{Id=10848; ProcessName=SnapClient; CPU=7014.265625}
@{Id=9760; ProcessName=Receiver; CPU=6792.359375}
@{Id=12040; ProcessName=Teams; CPU=5605.578125}
@{Id=498388; ProcessName=chrome; CPU=3062.453125}
@{Id=6900; ProcessName=chrome; CPU=2546.9375}
@{Id=9044; ProcessName=explorer; CPU=2358.765625}

Exemplo 5: salvando registros de informações em uma variável

Usando o parâmetro InformationVariable , você pode salvar registros de informações em uma variável. Isso permite que você inspecione as mensagens de fluxo de informações posteriormente no script.

Get-Process -Id $PID |
    Select-Object ProcessName, CPU, Path |
    Write-Information -Tags 'PowerShell' -InformationVariable 'InfoMsg'
$InfoMsg | Select-Object *

MessageData     : @{ProcessName=pwsh; CPU=12.36; Path=/opt/microsoft/powershell/7/pwsh}
Source          : Write-Information
TimeGenerated   : 10/19/2023 11:28:15
Tags            : {PowerShell}
User            : sdwheeler
Computer        : circumflex
ProcessId       : 237
NativeThreadId  : 261
ManagedThreadId : 10

Parâmetros

-MessageData

Especifica uma mensagem informativa que você deseja exibir aos usuários enquanto eles executam um script ou comando. Para obter melhores resultados, coloque a mensagem informativa entre aspas.

Type:Object
Aliases:Msg, Message
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Tags

Uma ou mais cadeias de caracteres que você pode usar para classificar e filtrar mensagens que você adicionou ao fluxo de informações com Write-Information. Esse parâmetro funciona de forma semelhante ao parâmetro Tags em New-ModuleManifest.

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

Object

Você pode redirecionar objetos para passar para o fluxo de informações para este cmdlet.

Saídas

None

Esse cmdlet não retorna nenhuma saída. Ele grava apenas no fluxo de mensagens de informações.