Write-Information

Gibt an, wie PowerShell Datenstromdaten für einen Befehl verarbeitet.

Syntax

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

Beschreibung

Das Write-Information Cmdlet gibt an, wie PowerShell Datenstromdaten für einen Befehl verarbeitet.

Windows PowerShell 5.0 führt einen neuen, strukturierten Informationsstrom ein. Sie können diesen Datenstrom verwenden, um strukturierte Daten zwischen einem Skript und seinen Aufrufern oder der Hostanwendung zu übertragen. Write-Information Mit dieser Option können Sie dem Datenstrom eine Informationsnachricht hinzufügen und angeben, wie PowerShell Datenstromdaten für einen Befehl verarbeitet. Informationsströme funktionieren auch für PowerShell.StreamsAufträge und geplante Vorgänge.

Hinweis

Der Informationsstrom folgt nicht der Standardkonvention, in der seine Nachrichten mit "[Stream Name]:" vorangestellt werden. Dies war für Kürze und visuelle Sauberkeit vorgesehen.

Der $InformationPreference Einstellungsvariablenwert bestimmt, ob die von Ihnen bereitgestellte Write-Information Nachricht am erwarteten Punkt im Skriptvorgang angezeigt wird. Da der Standardwert dieser Variable " SilentlyContinue" standardmäßig nicht angezeigt wird, werden Informationsmeldungen nicht angezeigt. Wenn Sie den Wert $InformationPreferencenicht ändern möchten, können Sie den Wert außer Kraft setzen, indem Sie den allgemeinen InformationAction-Parameter zu Ihrem Befehl hinzufügen. Weitere Informationen finden Sie unter about_Preference_Variables und about_CommonParameters.

Hinweis

Ab Windows PowerShell 5.0 ist ein Wrapper dafürWrite-Information, Write-Host dass Sie die Write-Host Ausgabe an den Informationsstream senden können. Dies ermöglicht die Erfassung oder Unterdrückung von Daten, die mithilfe Write-Host von Daten geschrieben wurden, während die Abwärtskompatibilität beibehalten wird. Weitere Informationen finden Sie unter Write-Host

Beispiele

Beispiel 1: Schreiben von Informationen für Get-Results

In diesem Beispiel zeigen Sie eine Informationsmeldung "Prozesse beginnend mit 'P'" an, bevor Sie den Get-Process Befehl ausführen, um alle Prozesse zu finden, die mit " p" beginnen. Da die $InformationPreference Variable weiterhin auf den Standardwert festgelegt ist, fügen Sie den Parameter InformationAction hinzu, um den $InformationPreference Wert außer Kraft zu setzen und die Nachricht anzuzeigen. Der InformationAction-Wert ist "Weiter", was bedeutet, dass Ihre Nachricht angezeigt wird, aber das Skript oder der Befehl fortgesetzt wird, wenn sie noch nicht abgeschlossen ist.

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

Beispiel 2: Schreiben von Informationen und Tagieren

In diesem Beispiel können Write-Information Sie Benutzern mitteilen, dass sie einen anderen Befehl ausführen müssen, nachdem sie den aktuellen Befehl ausgeführt haben. Im Beispiel wird das Tag "Instructions" der Informationsnachricht hinzugefügt. Nachdem Sie diesen Befehl ausgeführt haben, wird die Nachricht in den Ergebnissen angezeigt, wenn Sie den Informationsstrom nach Nachrichten durchsuchen, die markiert "Instructions"wurden.

$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.

Beispiel 3: Schreiben von Informationen in eine Datei

In diesem Beispiel leiten Sie den Informationsstrom in der Funktion an Info.txt die Verwendung des Codes 6>um. Wenn Sie die Info.txt Datei öffnen, wird der Text "Hier gehen Sie" angezeigt.

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

Beispiel 4: Übergeben des Objekts zum Schreiben von Informationen

In diesem Beispiel können Write-Information Sie die obersten 10 höchsten CPU-Auslastungsprozesse aus der Objektausgabe schreiben, die Get-Process durch mehrere Pipelines durchläuft.

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}

Parameter

-MessageData

Gibt eine Informationsmeldung an, die Benutzern angezeigt werden soll, während sie ein Skript oder einen Befehl ausführen. Um optimale Ergebnisse zu erzielen, schließen Sie die Informationsmeldung in Anführungszeichen ein.

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

-Tags

Gibt eine einfache Zeichenfolge an, mit der Sie Nachrichten sortieren und filtern können, die Sie dem Informationsstream Write-Informationhinzugefügt haben. Dieser Parameter funktioniert ähnlich wie der Tags-Parameter in New-ModuleManifest.

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

Eingaben

Object

Write-Information akzeptiert weitergeleitete Objekte, die an den Informationsstrom übergeben werden sollen.

Ausgaben

InformationRecord