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.Streams
Aufträ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 $InformationPreference
nicht ä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-Information
hinzugefü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
Write-Information
akzeptiert weitergeleitete Objekte, die an den Informationsstrom übergeben werden sollen.