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 cmdlet'ini kullandığınızda Invoke-Command , 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.

Birçok komut için PSComputerName varsayılan olarak görüntülenir. Örneğin, aşağıdaki komut server01 ve Server02 adlı iki uzak bilgisayarda bir Get-Culture komut çalıştırır. 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 hideComputerName parametresini Invoke-Command 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 komut ç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ülenmiyorsa PSComputerName özelliğini de görüntüleyebilirsiniz.

Örneğin, aşağıdaki komutlar cmdlet'ini Format-Table kullanarak PSComputerName özelliğini uzak Get-Date komutun çıkışına ekler.

$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 çıkartır.

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, veya Format.ps1xml dosyalarındaki Types.ps1xml 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çilen özellikleri biçimlendirmek ve görüntülemek için veya Format-Listgibi Format-Table biçimlendirme cmdlet'lerini kullanabilirsiniz. İsterseniz, cmdlet'ini Out-GridView 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. Ve cmdlet'lerini başka bir bilgisayardan biçimlendirme verileri almak için kullanırsınız Get-FormatDataExport-FormatData .

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ı PSComputerName üzerinde sıralamak için cmdlet'ini kullanabilirsinizSort-Object. Nesnenin başka bir özelliğine sahip olduğunuzda, farklı bilgisayarlardan gelen sonuçlar çıkışta aralara eklenir

Ayrıca bkz.