Write-Information

PowerShell'in bir komut için bilgi akışı verilerini nasıl işlediğini belirtir.

Syntax

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

Description

cmdlet'i Write-Information , PowerShell'in bir komut için bilgi akışı verilerini nasıl işlediğini belirtir.

Windows PowerShell 5.0, yeni, yapılandırılmış bir bilgi akışı sunar. Bu akışı, bir betik ile çağıranları veya konak uygulaması arasında yapılandırılmış veriler iletmek için kullanabilirsiniz. Write-Information , akışa bilgi iletisi eklemenize ve PowerShell'in bir komut için bilgi akışı verilerini nasıl işleyeceğini belirtmenize olanak tanır. Bilgi akışları , işleri ve zamanlanmış görevler için PowerShell.Streamsde çalışır.

Not

Bilgi akışı, iletilerine "[Stream Name]:" ön eki eklemenin standart kuralına uymaz. Bu, kısa ve görsel temizlik için tasarlanmıştır.

Tercih $InformationPreference değişkeni değeri, sağladığınız Write-Information iletinin betiğin işleminde beklenen noktada görüntülenip görüntülenmeyeceğini belirler. Bu değişkenin varsayılan değeri SilentlyContinue olduğundan, bilgilendirici iletiler varsayılan olarak gösterilmez. değerini $InformationPreferencedeğiştirmek istemiyorsanız, komutunuza InformationAction common parametresini ekleyerek değerini geçersiz kılabilirsiniz. Daha fazla bilgi için bkz . about_Preference_Variables ve about_CommonParameters.

Not

Windows PowerShell 5.0'dan başlayarak, Write-Host Bilgi akışına çıktı yaymak için Write-Information kullanmanıza Write-Host olanak tanıyan bir sarmalayıcıdır. Bu, geriye dönük uyumluluğu korurken kullanılarak Write-Host yazılan verilerin yakalanmasını veya gizlenmesini sağlar. Daha fazla bilgi için bkz. Write-Host

Örnekler

Örnek 1: Get- results için bilgi yazma

Bu örnekte, 'p' ile başlayan Bir Ad değerine sahip tüm işlemleri bulmak için komutu çalıştırmadan Get-Process önce "P' ile başlayan işlemler" şeklinde bir bilgilendirme iletisi gösterirsiniz. $InformationPreference Değişken hala varsayılan olan SilentlyContinue olarak ayarlandığından, değeri geçersiz kılmak $InformationPreference için InformationAction parametresini ekler ve iletiyi gösterirsiniz. InformationAction değeri Devam'tır; yani iletiniz gösterilir, ancak betik veya komut henüz tamamlanmamışsa devam eder.

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

Örnek 2: Bilgi yazma ve etiketleme

Bu örnekte, geçerli komutu çalıştırmaları tamamlandıktan sonra kullanıcılara başka bir komut çalıştırmaları gerektiğini bildirmek için kullanırsınız Write-Information . Örnek, etiketi "Instructions" bilgilendiren iletiye ekler. Bu komutu çalıştırdıktan sonra, etiketli "Instructions"iletiler için bilgi akışında arama yaptığınızda, ileti sonuçlarda yer alır.

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

Örnek 3: Bir dosyaya bilgi yazma

Bu örnekte, işlevindeki Info.txt bilgi akışını kodunu 6>kullanmaya yönlendirirsiniz. Dosyayı açtığınızda Info.txt ,"İşte burada" metnini görürsünüz.

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

Örnek 4: Nesneyi yazma bilgilerine geçirme

Bu örnekte, birden çok işlem hattından geçen nesne çıkışından Get-Process en yüksek 10 CPU kullanım işlemini yazmak için kullanabilirsinizWrite-Information.

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}

Örnek 5: Bilgi kayıtlarını bir değişkene kaydetme

InformationVariable parametresini kullanarak, bilgi kayıtlarını bir değişkene kaydedebilirsiniz. Bu, betikte daha sonra bilgi akışı iletilerini incelemenize olanak tanır.

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

Parametreler

-MessageData

Kullanıcılara betik veya komut çalıştırırken görüntülemek istediğiniz bilgilendirici bir ileti belirtir. En iyi sonuçlar için, bilgi iletisini tırnak içine alın.

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

-Tags

ile Write-Informationbilgi akışına eklediğiniz iletileri sıralamak ve filtrelemek için kullanabileceğiniz bir veya daha fazla dize. Bu parametre, içindeki New-ModuleManifestTags parametresine benzer şekilde çalışır.

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

Girişler

Object

Bu cmdlet'e bilgi akışına geçirmek için nesneleri kanala aktarabilirsiniz.

Çıkışlar

None

Bu cmdlet çıkış döndürmez. Yalnızca bilgi iletisi akışına yazar.