Write-Information
Hiermee geeft u op hoe PowerShell gegevensstroomgegevens verwerkt voor een opdracht.
Syntaxis
Default (Standaard)
Write-Information
[-MessageData] <Object>
[[-Tags] <String[]>]
[<CommonParameters>]
Description
De Write-Information cmdlet geeft aan hoe PowerShell gegevensstroomgegevens verwerkt voor een opdracht.
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 kunt u een informatief bericht toevoegen aan de stream en opgeven hoe PowerShell gegevensstroomgegevens voor een opdracht verwerkt. Informatiestromen werken ook voor PowerShell.Streams, banen en geplande activiteiten.
Opmerking
De informatiestroom volgt niet de standaardconventie waarbij berichten worden voorafgegaan door '[Stream Name]:'. Dit was bedoeld voor beknoptheid en visuele netheid.
De waarde van de $InformationPreference voorkeursvariabele bepaalt of het bericht dat u opgeeft voor Write-Information wordt weergegeven op het verwachte punt in de bewerking van een script. Omdat de standaardwaarde van deze variabele is SilentlyContinue, worden standaard informatieve berichten niet weergegeven.
Als u de waarde van $InformationPreferenceniet wilt wijzigen, kunt u de waarde ervan overschrijven door de InformationAction algemene parameter toe te voegen aan uw opdracht. Zie about_Preference_Variables en about_CommonParametersvoor meer informatie.
Opmerking
Vanaf Windows PowerShell 5.0 is Write-Host een wrapper voor Write-Information Hiermee kunt u Write-Host gebruiken om uitvoer naar de informatiestroom te verzenden. Dit maakt het vastleggen of onderdrukken van gegevens mogelijk die zijn geschreven met behulp van Write-Host, terwijl achterwaartse compatibiliteit behouden blijft. Voor meer informatie zie Write-Host
Voorbeelden
Voorbeeld 1: Schrijf informatie voor Get-resultaten
In dit voorbeeld geeft u een informatief bericht weer, 'Processen beginnend met 'P', voordat u de opdracht Get-Process uitvoert om alle processen te vinden met een naam waarde die begint met 'p'.
Omdat de $InformationPreference variabele nog steeds is ingesteld op de 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 het script of de opdracht wordt voortgezet, als deze nog niet voltooid zijn.
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 u Write-Information 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. Nadat u deze opdracht hebt uitgevoerd, wordt het bericht in de resultaten weergegeven wanneer u in de informatiestroom zoekt naar berichten die zijn getagd "Instructions".
$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 bestand Info.txt opent, ziet u de tekst 'Hier heb je het'.
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 Write-Information gebruiken om de tien hoogste CPU-gebruiksprocessen te schrijven uit de Get-Process objectuitvoer die meerdere pijplijnen heeft doorlopen.
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 de parameter InformationVariable kunt u gegevensrecords opslaan in een variabele. Hiermee kunt u de informatiestroomberichten later 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 op dat u wilt weergeven voor gebruikers wanneer ze een script of opdracht uitvoeren. Plaats het informatieve bericht tussen aanhalingstekens voor de beste resultaten.
Parametereigenschappen
| Type: | Object |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | Msg, Bericht |
Parametersets
(All)
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | True |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Tags
Een of meer tekenreeksen die u kunt gebruiken om berichten te sorteren en te filteren die u met Write-Informationaan de informatiestroom hebt toegevoegd. Deze parameter werkt op dezelfde manier als de parameter Tags in New-ModuleManifest.
Parametereigenschappen
| Type: | String[] |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | 1 |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.
Invoerwaarden
Object
U kunt objecten doorsluisen om door te geven aan de informatiestroom naar deze cmdlet.
Uitvoerwaarden
None
Deze cmdlet retourneert geen uitvoer. Het schrijft alleen naar de informatieberichtstroom.