Write-Information

Spécifie comment PowerShell gère les données de flux d’informations pour une commande.

Syntax

Write-Information
     [-MessageData] <Object>
     [[-Tags] <String[]>]
     [<CommonParameters>]

Description

L’applet Write-Information de commande spécifie comment PowerShell gère les données de flux d’informations pour une commande.

Windows PowerShell 5.0 introduit un nouveau flux d’informations structurées. Vous pouvez utiliser ce flux pour transmettre des données structurées entre un script et ses appelants ou l’application hôte. Write-Information vous permet d’ajouter un message d’information au flux et de spécifier comment PowerShell gère les données de flux d’informations pour une commande. Les flux d’informations fonctionnent également pour PowerShell.Streamsles tâches planifiées, les travaux et les tâches planifiées.

Remarque

Le flux d’informations ne suit pas la convention standard de préfixe de ses messages avec « [Nom du flux] : ». Cela était destiné à la concision et aux propre lignes visuelles.

La $InformationPreference valeur de la variable de préférence détermine si le message que Write-Information vous fournissez s’affiche au point attendu dans l’opération d’un script. Étant donné que la valeur par défaut de cette variable est SilentlyContinue, par défaut, les messages d’information ne sont pas affichés. Si vous ne souhaitez pas modifier la valeur de $InformationPreference, vous pouvez remplacer sa valeur en ajoutant le paramètre commun InformationAction à votre commande. Pour plus d’informations, consultez about_Preference_Variables et about_CommonParameters.

Remarque

À compter de Windows PowerShell 5.0, Write-Host il s’agit d’un wrapper qui Write-Information vous Write-Host permet d’émettre une sortie vers le flux d’informations. Cela permet la capture ou la suppression de données écrites à l’aide Write-Host d’une compatibilité descendante. Pour plus d’informations, consultez Write-Host

Exemples

Exemple 1 : Écrire des informations pour obtenir les résultats

Dans cet exemple, vous affichez un message d’information, « Processus commençant par « P », avant d’exécuter la Get-Process commande pour rechercher tous les processus dont la valeur Nom commence par « p ». Étant donné que la $InformationPreference variable est toujours définie sur sa valeur par défaut, SilentlyContinue, vous ajoutez le paramètre InformationAction pour remplacer la $InformationPreference valeur et affichez le message. La valeur InformationAction est Continue, ce qui signifie que votre message est affiché, mais que le script ou la commande continue, s’il n’est pas encore terminé.

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

Exemple 2 : Écrire des informations et les étiqueter

Dans cet exemple, vous utilisez Write-Information pour informer les utilisateurs qu’ils devront exécuter une autre commande une fois qu’ils ont terminé d’exécuter la commande active. L’exemple ajoute la balise "Instructions" au message d’information. Après avoir exécuté cette commande, lorsque vous recherchez dans le flux d’informations les messages marqués "Instructions", le message se trouve dans les résultats.

$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.

Exemple 3 : Écrire des informations dans un fichier

Dans cet exemple, vous redirigez le flux d’informations dans la fonction vers Info.txt l’utilisation du code 6>. Lorsque vous ouvrez le Info.txt fichier, vous voyez le texte « Ici vous allez ».

function Test-Info
{
    Get-Process P*
    Write-Information "Here you go"
}
Test-Info 6> Info.txt

Exemple 4 : Passer un objet pour écrire des informations

Dans cet exemple, vous pouvez utiliser Write-Information pour écrire les 10 premiers processus d’utilisation du processeur les plus élevés à partir de la sortie de l’objet Get-Process qui a transité par plusieurs 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}

Exemple 5 : Enregistrement d’enregistrements d’informations dans une variable

À l’aide du paramètre InformationVariable , vous pouvez enregistrer des enregistrements d’informations dans une variable. Cela vous permet d’inspecter les messages de flux d’informations plus loin dans le script.

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

Paramètres

-MessageData

Spécifie un message d’information que vous souhaitez afficher aux utilisateurs lors de l’exécution d’un script ou d’une commande. Pour obtenir de meilleurs résultats, placez le message d’information entre guillemets.

Type:Object
Aliases:Msg, Message
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Tags

Une ou plusieurs chaînes que vous pouvez utiliser pour trier et filtrer les messages que vous avez ajoutés au flux d’informations avec Write-Information. Ce paramètre fonctionne de la même façon que le paramètre Tags dans New-ModuleManifest.

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entrées

Object

Vous pouvez diriger les objets vers le flux d’informations vers cette applet de commande.

Sorties

None

Cette applet de commande ne retourne pas de sortie. Il écrit uniquement dans le flux de messages d’informations.