Write-Information
Anger hur PowerShell hanterar informationsströmdata för ett kommando.
Syntax
Write-Information
[-MessageData] <Object>
[[-Tags] <String[]>]
[<CommonParameters>]
Description
Cmdleten Write-Information
anger hur PowerShell hanterar informationsströmdata för ett kommando.
Windows PowerShell 5.0 introducerar en ny, strukturerad informationsström. Du kan använda den här strömmen för att överföra strukturerade data mellan ett skript och dess anropare eller värdprogrammet.
Write-Information
kan du lägga till ett informationsmeddelande i strömmen och ange hur PowerShell hanterar informationsströmdata för ett kommando. Informationsströmmar fungerar också för PowerShell.Streams
, jobb och schemalagda aktiviteter.
Anteckning
Informationsströmmen följer inte standardkonventionen där meddelandena inleds med "[Stream Name]:". Detta var avsett för korthet och visuell renlighet.
Värdet för $InformationPreference
inställningsvariabel avgör om meddelandet du anger till Write-Information
visas vid den förväntade tidpunkten i ett skripts åtgärd. Eftersom standardvärdet för den här variabeln är TystFortsättvisas som standard inte informationsmeddelanden.
Om du inte vill ändra värdet för $InformationPreference
kan du åsidosätta dess värde genom att lägga till InformationAction gemensam parameter i kommandot. Mer information finns i about_Preference_Variables och about_CommonParameters.
Obs
Från och med Windows PowerShell 5.0 är Write-Host
en omslutning för Write-Information
Detta gör att du kan använda Write-Host
för att generera utdata till informationsströmmen. Detta möjliggör insamling eller undertryckning av data som skrivits med Write-Host
samtidigt som bakåtkompatibiliteten bevaras. Mer information finns i Write-Host
Exempel
Exempel 1: Skriv information för Get-results
I det här exemplet visar du ett informationsmeddelande, "Processer som börjar med "P", innan du kör kommandot Get-Process
för att hitta alla processer som har ett Namn värde som börjar med "p".
Eftersom variabeln $InformationPreference
fortfarande är inställd på standardvärdet TystKontinueralägger du till parametern InformationAction för att åsidosätta värdet för $InformationPreference
och visa meddelandet. Värdet InformationAction är Fortsätt, vilket innebär att meddelandet visas, men skriptet eller kommandot fortsätter om det inte är klart än.
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
Exempel 2: Skriv information och tagga den
I det här exemplet använder du Write-Information
för att meddela användarna att de behöver köra ett annat kommando när de har kört det aktuella kommandot. Exemplet lägger till taggen "Instructions"
i informationsmeddelandet. När du har kört det här kommandot visas meddelandet i resultatet när du söker i informationsströmmen efter meddelanden som har taggats "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.
Exempel 3: Skriva information till en fil
I det här exemplet omdirigerar du informationsströmmen i funktionen till Info.txt
med hjälp av koden 6>
. När du öppnar filen Info.txt
visas texten "Här är du".
function Test-Info
{
Get-Process P*
Write-Information "Here you go"
}
Test-Info 6> Info.txt
Exempel 4: Skicka objekt för att skriva information
I det här exemplet kan du använda Write-Information
för att skriva de 10 processer med högst processoranvändning från utdata från Get-Process
-objektet som har passerat genom flera pipelines.
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}
Exempel 5: Spara data i en variabel
Med parametern InformationVariable kan du spara informationsposter i en variabel. På så sätt kan du inspektera informationsströmmeddelandena senare i skriptet.
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
Parametrar
-MessageData
Anger ett informationsmeddelande som du vill visa för användare när de kör ett skript eller kommando. För bästa resultat sätter du informationsmeddelandet i citattecken.
Typ: | Object |
Alias: | Msg, Message |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Tags
En eller flera strängar som du kan använda för att sortera och filtrera meddelanden som du har lagt till i informationsströmmen med Write-Information
. Den här parametern fungerar på samma sätt som parametern Taggar i New-ModuleManifest
.
Typ: | String[] |
Position: | 1 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
Du kan skicka objekt till informationsströmmen till den här cmdleten.
Utdata
None
Den här cmdleten returnerar inga utdata. Den skriver endast till informationsmeddelandeströmmen.