Write-Information

Spécifie comment PowerShell gère les données de flux d’informations d’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é. 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 informationnel au flux et de spécifier la façon dont PowerShell gère les données du 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.

Notes

Le flux d’informations ne suit pas la convention standard de préfixe de ses messages avec « [Nom du flux] : ». Cela a été destiné à la concision et à la propreté visuelle.

La $InformationPreference valeur de la variable de préférence détermine si le message que vous fournissez Write-Information 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 InformationAction paramètre commun à votre commande. Pour plus d’informations, consultez about_Preference_Variables et about_CommonParameters.

Notes

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

Write-Information est également une activité de flux de travail prise en charge dans PowerShell 5.x.

Exemples

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

Dans cet exemple, vous affichez un message informationnel« Got your features! », après avoir exécuté la Get-WindowsFeature commande pour rechercher toutes les fonctionnalités qui ont une valeur Name qui commence par « p ». Étant donné que la $InformationPreference variable est toujours définie sur sa valeur par défaut, SilentlyContinuevous ajoutez le InformationAction paramètre pour remplacer la $InformationPreference valeur et affichez le message. La InformationAction valeur 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é.

Get-WindowsFeature -Name p*
Write-Information -MessageData "Got your features!" -InformationAction Continue

Display Name                                            Name                       Install State
------------                                            ----                       -------------
[ ] Print and Document Services                         Print-Services                 Available
    [ ] Print Server                                    Print-Server                   Available
    [ ] Distributed Scan Server                         Print-Scan-Server              Available
    [ ] Internet Printing                               Print-Internet                 Available
    [ ] LPD Service                                     Print-LPD-Service              Available
[ ] Peer Name Resolution Protocol                       PNRP                           Available
[X] Windows PowerShell                                  PowerShellRoot                 Installed
    [X] Windows PowerShell 5.0                          PowerShell                     Installed
    [ ] Windows PowerShell 2.0 Engine                   PowerShell-V2                    Removed
    [X] Windows PowerShell ISE                          PowerShell-ISE                 Installed
Got your features!

Exemple 2 : Écrire des informations et la baliser

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 les instructions de balise au message informationnel. Après avoir exécuté cette commande, si vous recherchez le flux d’informations pour les messages étiquetés Instructions, le message spécifié ici figure parmi les résultats.

$message = "To filter your results for PowerShell, pipe your results to the Where-Object cmdlet."
Get-WindowsFeature -Name p*
Write-Information -MessageData $message -Tags "Instructions" -InformationAction Continue

Display Name                                            Name                       Install State
------------                                            ----                       -------------
[ ] Print and Document Services                         Print-Services                 Available
    [ ] Print Server                                    Print-Server                   Available
    [ ] Distributed Scan Server                         Print-Scan-Server              Available
    [ ] Internet Printing                               Print-Internet                 Available
    [ ] LPD Service                                     Print-LPD-Service              Available
[ ] Peer Name Resolution Protocol                       PNRP                           Available
[X] Windows PowerShell                                  PowerShellRoot                 Installed
    [X] Windows PowerShell 5.0                          PowerShell                     Installed
    [ ] Windows PowerShell 2.0 Engine                   PowerShell-V2                    Removed
    [X] Windows PowerShell ISE                          PowerShell-ISE                 Installed
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 une Info.txt 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 l’objet pour écrire des informations

Dans cet exemple, vous pouvez utiliser Write-Information pour écrire les 10 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}

Paramètres

-MessageData

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

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

-Tags

Spécifie une chaîne simple 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 manière 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

Write-Information accepte les objets canalés à passer au flux d’informations.

Sorties

InformationRecord