Write-Information
Gibt an, wie PowerShell Informationsstreamdaten für einen Befehl behandelt.
Syntax
Write-Information
[-MessageData] <Object>
[[-Tags] <String[]>]
[<CommonParameters>]
Beschreibung
Das Write-Information
Cmdlet gibt an, wie PowerShell Informationsstreamdaten für einen Befehl behandelt.
Windows PowerShell 5.0 führt einen neuen strukturierten Informationsstream ein. Sie können diesen Stream verwenden, um strukturierte Daten zwischen einem Skript und dessen Aufrufenden oder der Hostanwendung zu übertragen.
Write-Information
mit können Sie dem Stream eine Informationsmeldung hinzufügen und angeben, wie PowerShell Informationsstreamdaten für einen Befehl behandelt. Informationsstreams funktionieren auch für PowerShell.Streams
, Aufträge und geplante Vorgänge.
Hinweis
Der Informationsstream folgt nicht der Standardkonvention, seinen Nachrichten "[Stream Name]:" voran zu stellen. Dies war aus Platzgründen und visueller Sauberkeit gedacht.
Der $InformationPreference
Wert der Einstellungsvariablen bestimmt, ob die Nachricht, für die Sie angeben, Write-Information
am erwarteten Punkt im Vorgang eines Skripts angezeigt wird. Da der Standardwert dieser Variablen SilentlyContinue ist, werden standardmäßig keine Informationsmeldungen angezeigt.
Wenn Sie den Wert von nicht ändern möchten, können Sie den Wert überschreiben $InformationPreference
, indem Sie dem Befehl den allgemeinen Parameter InformationAction hinzufügen. Weitere Informationen finden Sie unter about_Preference_Variables und about_CommonParameters.
Hinweis
Ab Windows PowerShell 5.0 Write-Host
ist ein Wrapper für Write-Information
This ermöglicht es Ihnen, Write-Host
die Ausgabe an den Informationsstream auszugeben. Dies ermöglicht die Erfassung oder Unterdrückung von mit geschriebenen Write-Host
Daten, während die Abwärtskompatibilität erhalten bleibt. Weitere Informationen finden Sie unter Write-Host.
Beispiele
Beispiel 1: Schreiben von Informationen für Get-Ergebnisse
In diesem Beispiel zeigen Sie die Informationsmeldung "Prozesse beginnen mit 'P'" an, bevor Sie den Get-Process
Befehl ausführen, um alle Prozesse zu finden, die über einen Name-Wert verfügen, der mit "p" beginnt.
Da die $InformationPreference
Variable weiterhin auf ihren Standardwert SilentlyContinue festgelegt ist, fügen Sie den InformationAction-Parameter hinzu, um den $InformationPreference
Wert zu überschreiben und die Meldung anzuzeigen. Der InformationAction-Wert ist Continue. Dies bedeutet, dass Ihre Nachricht angezeigt wird, aber das Skript oder der Befehl wird fortgesetzt, 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 und Markieren von Informationen
In diesem Beispiel verwenden Write-Information
Sie, um Benutzern mitzuteilen, dass sie einen anderen Befehl ausführen müssen, nachdem sie den aktuellen Befehl ausgeführt haben. Im Beispiel wird der Informationsmeldung das Tag "Instructions"
hinzugefügt. Wenn Sie nach dem Ausführen dieses Befehls den Informationsdatenstrom nach Nachrichten mit Tags "Instructions"
durchsuchen, wird die Nachricht in den Ergebnissen angezeigt.
$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 Informationsstream in der Funktion mithilfe des Codes 6>
umInfo.txt
. Wenn Sie die Info.txt
Datei öffnen, wird der Text "Hier geht's" angezeigt.
function Test-Info
{
Get-Process P*
Write-Information "Here you go"
}
Test-Info 6> Info.txt
Beispiel 4: Übergeben eines Objekts zum Schreiben von Informationen
In diesem Beispiel können Sie verwenden Write-Information
, um die 10 wichtigsten CPU-Auslastungsprozesse aus der Objektausgabe zu schreiben, die Get-Process
mehrere Pipelines durchlaufen hat.
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 beim Ausführen eines Skripts oder Befehls angezeigt werden soll. 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, die Sie zum Sortieren und Filtern von Nachrichten verwenden können, die Sie dem Informationsstream mit 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 Pipeobjekte, die an den Informationsstream übergeben werden.