Bagikan melalui


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 cmdlet Invoke-Command 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 perintah Get-Culture 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 Invoke-Command untuk menyembunyikan properti PSComputerName. Parameter ini dirancang untuk perintah yang mengumpulkan data hanya dari satu komputer jarak jauh.

Perintah berikut menjalankan perintah Get-Culture 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 cmdlet Format-Table untuk menambahkan properti PSComputerName ke output perintah Get-Date jarak jauh.

$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 yang diserialisasikan atau dikonversi menjadi representasi XML objek dan propertinya. PowerShell mengirimkan objek berseri di seluruh jaringan.

Di komputer lokal, PowerShell menerima objek berseri dan deserialisasi 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 file Types.ps1xml 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 cmdlet Out-GridView 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 cmdlet Get-FormatData dan Export-FormatData untuk mendapatkan data pemformatan dari komputer lain.

Beberapa jenis objek, seperti DirectoryInfo objek 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 cmdlet Sort-Object untuk mengurutkan hasil pada PSComputerName. Ketika Anda properti objek lainnya, hasil dari komputer yang berbeda diselingi dalam output

Lihat juga