Anda dapat dengan mudah mencapai ini dengan menggunakan Sesi PowerShell.
Pertama, Aktifkan PowerShell Remoting. Untuk melakukan ini, buka PowerShell sebagai administrator dan jalankan enable-psremoting -force
.
Apa pun yang Anda nyatakan secara lokal dapat diteruskan ke sesi menggunakan sintaksis yang mirip dengan yang berikut:
$a = 1
$b = 2
New-PSSession -ComputerName MyRemoteMachineName | Out-Null
Invoke-Command -Session (Get-PSSession) -ArgumentList($a, $b) -ScriptBlock {
$args[0]
$args[1]
}
Get-PSSession | Remove-PSSession
Dengan mendeklarasikan variabel dan meneruskannya ke perintah sesi "Daftar Argumen", mereka diteruskan ke sesi jauh secara berurutan. Dalam hal ini:
ArgumentList($a, $b)
menjadi $args[0]
& $args[1]
. Variabel ke-3 bisa menjadi $ags[2]
(dan seterusnya).
mengambil dari suatu sesi sama mudahnya - dengan yang berikut:
$myString = "Something"
New-PSSession -ComputerName MyRemoteComputerName | Out-Null
$outputFromSession = Invoke-Command -Session (Get-PSSession) -ArgumentList($myString) -ScriptBlock {
$args[0] + " " + $env:COMPUTERNAME
}
$outputFromSession
Get-PSSession | Remove-PSSession
Dengan menetapkan variabel $outputFromSession
untuk menangkap apa pun yang dikembalikan - ini dilewatkan kembali dari sesi jarak jauh ke sesi lokal dan kemudian dapat digunakan nanti dan di tempat lain jika diperlukan.
Semudah itu :)
Ben