Write-Information
Spécifie comment PowerShell gère les données de flux d’informations pour une commande.
Syntaxe
Write-Information
[-MessageData] <Object>
[[-Tags] <String[]>]
[<CommonParameters>]
Description
L’applet de commande Write-Information
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 les PowerShell.Streams
, les travaux et les tâches programmées.
Remarque
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 valeur de la variable de préférence $InformationPreference
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 paramètre InformationAction commun à votre commande. Pour plus d’informations, consultez about_Preference_Variables et about_CommonParameters.
Remarque
À partir de Windows PowerShell 5.0, Write-Host
est un wrapper pour Write-Information
. Cela permet d’utiliser Write-Host
pour émettre la sortie vers le flux d’informations. Cela permet la capture ou la suppression de données écrites à l’aide de Write-Host
tout en préservant la 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 commande Get-Process
pour rechercher tous les processus qui ont une valeur Name qui commence par « p ».
Étant donné que la variable
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’aide du code 6>
. Lorsque vous ouvrez le fichier Info.txt
, 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 : Transmettre un objet pour écrire des informations
Dans cet exemple, vous pouvez utiliser Write-Information
pour écrire les 10 principaux 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 |
Alias: | Msg, Message |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | 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 manière que le paramètre Balise dans New-ModuleManifest
.
Type: | String[] |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
Cette cmdlet permet de faire passer des objets dans le flux d'informations.
Sorties
None
Cette applet de commande ne retourne aucune sortie. Elle n'écrit que dans le flux de messages d'information.