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.Streams
trabalhos 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
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.