about_Remote_Output

Deskripsi singkat

Menjelaskan cara menginterpretasikan dan memformat output perintah jarak jauh.

Deskripsi panjang

Output perintah yang dijalankan pada komputer jarak jauh mungkin terlihat seperti output dari perintah yang sama yang dijalankan pada komputer lokal, tetapi ada beberapa perbedaan yang signifikan.

Topik ini menjelaskan cara menginterpretasikan, memformat, dan menampilkan output perintah yang dijalankan pada komputer jarak jauh.

Menampilkan nama komputer

Saat Anda menggunakan Invoke-Command cmdlet untuk menjalankan perintah di komputer jarak jauh, perintah mengembalikan objek yang menyertakan nama komputer yang menghasilkan data. Properti PSComputerName berisi nama komputer jarak jauh.

Untuk banyak perintah, PSComputerName ditampilkan secara default. Misalnya, perintah berikut menjalankan Get-Culture perintah pada dua komputer jarak jauh, Server01 dan Server02. Output, yang muncul di bawah ini, mencakup nama komputer jarak jauh tempat perintah dijalankan.

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

Anda dapat menggunakan parameter HideComputerName dari Invoke-Command untuk menyembunyikan properti PSComputerName . Parameter ini dirancang untuk perintah yang mengumpulkan data hanya dari satu komputer jarak jauh.

Perintah berikut menjalankan Get-Culture perintah pada komputer jarak jauh Server01. Ini menggunakan parameter HideComputerName untuk menyembunyikan properti PSComputerName dan properti terkait.

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

Anda juga dapat menampilkan properti PSComputerName jika tidak ditampilkan secara default.

Misalnya, perintah berikut menggunakan Format-Table cmdlet untuk menambahkan properti PSComputerName ke output perintah jarak jauh Get-Date .

$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

Objek yang dideserialisasi

Saat Anda menjalankan perintah jarak jauh yang menghasilkan output, output perintah dikirimkan di seluruh jaringan kembali ke komputer lokal.

Karena objek .NET langsung tidak dapat ditransmisikan melalui jaringan, objek langsung diserialisasikan atau dikonversi menjadi representasi XML objek dan propertinya. PowerShell mengirimkan objek berseri di seluruh jaringan.

Di komputer lokal, PowerShell menerima objek berseri dan mendeserialisasikannya dengan mengonversi objek berseri menjadi objek .NET standar.

Namun, objek yang dideserialisasi bukan objek langsung. Ini adalah rekam jepret objek pada saat serialisasi. Objek yang dideserialisasi mencakup properti tetapi tidak ada metode. Anda dapat menggunakan dan mengelola objek ini di PowerShell, termasuk meneruskannya dalam alur, menampilkan properti yang dipilih, dan memformatnya.

Sebagian besar objek yang dideserialisasi secara otomatis diformat untuk ditampilkan oleh entri dalam Types.ps1xml file atau Format.ps1xml . Namun, komputer lokal mungkin tidak memiliki file pemformatan untuk semua objek yang dihasilkan pada komputer jarak jauh. Saat objek tidak diformat, semua properti setiap objek muncul di konsol dalam daftar streaming.

Saat objek tidak diformat secara otomatis, Anda bisa menggunakan cmdlet pemformatan, seperti Format-Table atau Format-List, untuk memformat dan menampilkan properti yang dipilih. Atau, Anda dapat menggunakan Out-GridView cmdlet untuk menampilkan objek dalam tabel.

Saat Anda menjalankan perintah pada komputer jarak jauh yang menggunakan cmdlet yang tidak Anda miliki di komputer lokal, objek yang dikembalikan perintah mungkin tidak diformat seperti yang diharapkan jika Anda tidak memiliki file pemformatan untuk tipe objek tersebut di komputer Anda. Anda menggunakan Get-FormatData cmdlet dan Export-FormatData untuk mendapatkan data pemformatan dari komputer lain.

Beberapa jenis objek, seperti objek DirectoryInfo dan GUID, dikonversi kembali menjadi objek langsung saat diterima. Objek ini tidak memerlukan penanganan atau pemformatan khusus.

Mengurutkan hasil

Urutan nama komputer dalam parameter ComputerName cmdlet menentukan urutan di mana PowerShell terhubung ke komputer jarak jauh. Namun, hasilnya muncul dalam urutan data diterima dari komputer jarak jauh.

Anda dapat menggunakan Sort-Object cmdlet untuk mengurutkan hasil pada PSComputerName. Ketika Anda properti objek lainnya, hasil dari komputer yang berbeda diselingi dalam output

Baca juga