Aracılığıyla paylaş


about_Remote_Output

Kısa açıklama

Uzak komutların çıkışını yorumlamayı ve biçimlendirmeyi açıklar.

Uzun açıklama

Uzak bir bilgisayarda çalıştırılan bir komutun çıktısı, aynı komutun yerel bilgisayarda çalıştırılan çıktısı gibi görünebilir, ancak bazı önemli farklılıklar vardır.

Bu konuda, uzak bilgisayarlarda çalıştırılacak komutların çıkışını yorumlama, biçimlendirme ve görüntüleme işlemleri açıklanmaktadır.

Bilgisayar adını görüntüleme

Uzak bir bilgisayarda komut çalıştırmak için Invoke-Command cmdlet'ini kullandığınızda, komut verileri oluşturan bilgisayarın adını içeren bir nesne döndürür. PSComputerName özelliği uzak bilgisayar adını içerir.

Çoğu komut için pscomputerName varsayılan olarak görüntülenir. Örneğin, aşağıdaki komut iki uzak bilgisayarda bir Get-Culture komutu çalıştırır: Server01 ve Server02. Aşağıda gösterilen çıkış, komutun çalıştırıldığı uzak bilgisayarların adlarını içerir.

Invoke-Command -ScriptBlock {Get-Culture} -ComputerName Server01, Server02
LCID  Name    DisplayName                PSComputerName
----  ----    -----------                --------------
1033  en-US   English (United States)    Server01
1033  es-AR   Spanish (Argentina)        Server02

PSComputerName özelliğini gizlemek için Invoke-CommandHideComputerName parametresini kullanabilirsiniz. Bu parametre, yalnızca bir uzak bilgisayardan veri toplayan komutlar için tasarlanmıştır.

Aşağıdaki komut, Server01 uzak bilgisayarında bir Get-Culture komutu çalıştırır. PSComputerName özelliğini ve ilgili özellikleri gizlemek için HideComputerName parametresini kullanır.

$invokeCommandSplat = @{
    ScriptBlock = {Get-Culture}
    ComputerName = 'Server01'
    HideComputerName = $true
}
Invoke-Command @invokeCommandSplat
LCID             Name             DisplayName
----             ----             -----------
1033             en-US            English (United States)

Varsayılan olarak görüntülenmediyse PSComputerName özelliğini de görüntüleyebilirsiniz.

Örneğin, aşağıdaki komutlar uzak Format-Table komutunun çıkışına PSComputerName özelliğini eklemek için Get-Date cmdlet'ini kullanır.

$invokeCommandSplat = @{
    ScriptBlock = {Get-Date}
    ComputerName = 'Server01', 'Server02'
}
Invoke-Command @invokeCommandSplat |
    Format-Table DateTime, PSComputerName -AutoSize
DateTime                            PSComputerName
--------                            --------------
Monday, July 21, 2008 7:16:58 PM    Server01
Monday, July 21, 2008 7:16:58 PM    Server02

Seri durumdan çıkarılmış nesneler

Çıkış oluşturan uzak komutları çalıştırdığınızda, komut çıkışı ağ üzerinden yerel bilgisayara geri iletilir.

Canlı .NET nesneleri ağ üzerinden aktarılabildiğinden, canlı nesneler serileştirilir veya nesnenin ve özelliklerinin XML gösterimlerine dönüştürülür. PowerShell, serileştirilmiş nesneyi ağ üzerinden iletir.

Yerel bilgisayarda, PowerShell serileştirilmiş nesneyi alır ve serileştirilmiş nesneyi standart bir .NET nesnesine dönüştürerek seri durumdan.

Ancak seri durumdan çıkarılmış nesne canlı bir nesne değildir. Serileştirme sırasında nesnenin anlık görüntüsü. Seri durumdan çıkarılmış nesne özellikleri içerir ancak yöntem içermiyor. PowerShell'de bu nesneleri işlem hatlarına geçirme, seçili özellikleri görüntüleme ve biçimlendirme dahil olmak üzere kullanabilir ve yönetebilirsiniz.

Seri durumdan çıkarılmış nesnelerin çoğu, Types.ps1xml veya Format.ps1xml dosyalarındaki girdiler tarafından görüntülenmek üzere otomatik olarak biçimlendirilir. Ancak, yerel bilgisayarda uzak bilgisayarda oluşturulan tüm nesneler için biçimlendirme dosyaları olmayabilir. Nesneler biçimlendirilmediğinde, her nesnenin tüm özellikleri bir akış listesinde konsolunda görünür.

Nesneler otomatik olarak biçimlendirilmediğinde, seçili özellikleri biçimlendirmek ve görüntülemek için Format-Table veya Format-Listgibi biçimlendirme cmdlet'lerini kullanabilirsiniz. İsterseniz, Out-GridView cmdlet'ini kullanarak tablodaki nesneleri görüntüleyebilirsiniz.

Yerel bilgisayarınızda bulunmayan cmdlet'leri kullanan uzak bir bilgisayarda bir komut çalıştırdığınızda, bilgisayarınızda bu nesne türleri için biçimlendirme dosyaları yoksa, komutun döndürdüğü nesneler beklendiği gibi biçimlendirilmeyebilir. Başka bir bilgisayardan biçimlendirme verileri almak için Get-FormatData ve Export-FormatData cmdlet'lerini kullanırsınız.

DirectoryInfo nesneleri ve GUID'leri gibi bazı nesne türleri alındığında canlı nesnelere geri dönüştürülür. Bu nesnelerin özel bir işleme veya biçimlendirmeye ihtiyacı yoktur.

Sonuçları sıralama

Cmdlet'lerin ComputerName parametresindeki bilgisayar adlarının sırası, PowerShell'in uzak bilgisayarlara bağlanma sırasını belirler. Ancak sonuçlar, verilerin uzak bilgisayarlardan alınma sırasına göre görüntülenir.

sonuçları Sort-Objectsıralamak için cmdlet'ini kullanabilirsiniz. Nesnenin başka bir özelliğine sahip olduğunuzda, farklı bilgisayarlardan gelen sonuçlar çıkışta aralara eklenir

Ayrıca bakınız