Write-Information
Hiermee geeft u op hoe PowerShell gegevensstroomgegevens voor een opdracht verwerkt.
Syntax
Write-Information
[-MessageData] <Object>
[[-Tags] <String[]>]
[<CommonParameters>]
Description
De Write-Information
cmdlet geeft aan hoe PowerShell gegevensstroomgegevens voor een opdracht verwerkt.
Windows PowerShell 5.0 introduceert een nieuwe, gestructureerde informatiestroom. U kunt deze stroom gebruiken om gestructureerde gegevens te verzenden tussen een script en de aanroepers of de hosttoepassing.
Write-Information
hiermee kunt u een informatief bericht toevoegen aan de stroom en opgeven hoe PowerShell gegevens van gegevensstromen verwerkt voor een opdracht. Informatiestromen werken ook voor PowerShell.Streams
, taken en geplande taken.
Notitie
De informatiestroom volgt niet de standaardconventie van het voorvoegsel "[Stream Name]:". Dit was bedoeld voor de beknoptheid en visuele netheid.
De $InformationPreference
waarde van de voorkeursvariabele bepaalt of het bericht dat u opgeeft Write-Information
, wordt weergegeven op het verwachte punt in de bewerking van een script. Omdat de standaardwaarde van deze variabele SilentlyContinue is, worden informatieve berichten standaard niet weergegeven.
Als u de waarde van $InformationPreference
niet wilt wijzigen, kunt u de waarde ervan overschrijven door de algemene parameter InformationAction toe te voegen aan uw opdracht. Zie about_Preference_Variables en about_CommonParameters voor meer informatie.
Notitie
Vanaf Windows PowerShell 5.0 Write-Host
is een wrapper voor Write-Information
Hiermee kunt u uitvoer Write-Host
verzenden naar de informatiestroom. Dit maakt het mogelijk om gegevens die zijn geschreven met behulp Write-Host
van vast te leggen of te onderdrukken, met behoud van compatibiliteit met eerdere versies. Zie Write-Host voor meer informatie
Voorbeelden
Voorbeeld 1: informatie schrijven voor Get- results
In dit voorbeeld geeft u een informatief bericht weer, 'Processen beginnen met 'P'', voordat u de Get-Process
opdracht uitvoert om alle processen te zoeken die een Naam-waarde hebben die begint met 'p'.
Omdat de variabele nog steeds is ingesteld op de $InformationPreference
standaardwaarde SilentlyContinue, voegt u de parameter InformationAction toe om de $InformationPreference
waarde te overschrijven en het bericht weer te geven. De waarde InformationAction is Doorgaan, wat betekent dat uw bericht wordt weergegeven, maar dat het script of de opdracht wordt voortgezet als het nog niet is voltooid.
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
Voorbeeld 2: Informatie schrijven en taggen
In dit voorbeeld gebruikt Write-Information
u om gebruikers te laten weten dat ze een andere opdracht moeten uitvoeren nadat ze klaar zijn met het uitvoeren van de huidige opdracht. In het voorbeeld wordt de tag "Instructions"
toegevoegd aan het informatieve bericht. Wanneer u na het uitvoeren van deze opdracht in de informatiestroom zoekt naar berichten met het label "Instructions"
, wordt het bericht weergegeven in de resultaten.
$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.
Voorbeeld 3: gegevens naar een bestand schrijven
In dit voorbeeld leidt u de informatiestroom in de functie om naar Info.txt
met behulp van de code 6>
. Wanneer u het Info.txt
bestand opent, ziet u de tekst 'Hier gaat u heen'.
function Test-Info
{
Get-Process P*
Write-Information "Here you go"
}
Test-Info 6> Info.txt
Voorbeeld 4: object doorgeven om informatie te schrijven
In dit voorbeeld kunt u gebruiken Write-Information
om de top 10 processen met het hoogste CPU-gebruik te schrijven van de Get-Process
objectuitvoer die meerdere pijplijnen heeft doorgegeven.
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}
Voorbeeld 5: informatierecords opslaan in een variabele
Met behulp van de parameter InformationVariable kunt u informatierecords opslaan in een variabele. Hiermee kunt u de berichten van de gegevensstroom verderop in het script inspecteren.
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
Parameters
-MessageData
Hiermee geeft u een informatief bericht dat u wilt weergeven aan gebruikers wanneer ze een script of opdracht uitvoeren. Voor de beste resultaten plaatst u het informatieve bericht tussen aanhalingstekens.
Type: | Object |
Aliases: | Msg, Message |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Tags
Een of meer tekenreeksen die u kunt gebruiken om berichten te sorteren en te filteren die u hebt toegevoegd aan de informatiestroom met Write-Information
. Deze parameter werkt op dezelfde manier als de parameter Tags in New-ModuleManifest
.
Type: | String[] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Invoerwaarden
U kunt objecten doorsnijden om door te geven aan de informatiestroom naar deze cmdlet.
Uitvoerwaarden
None
Deze cmdlet retourneert geen uitvoer. Er wordt alleen naar de informatieberichtenstroom geschreven.