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