คุณสามารถทำสิ่งนี้ได้อย่างง่ายดายด้วยการใช้ PowerShell Sessions
ก่อนอื่นให้เปิดใช้งานการควบคุมระยะไกลของ PowerShell เมื่อต้องการทำสิ่งนี้ให้เปิด PowerShell ในฐานะผู้ดูแลระบบแล้วเรียกใช้ enable-psremoting -force
.
ทุกสิ่งที่คุณประกาศในเครื่องสามารถส่งผ่านไปยังเซสชันโดยใช้ไวยากรณ์ที่คล้ายกับสิ่งต่อไปนี้:
$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
โดยการประกาศตัวแปรและส่งพวกเขาไปยังคำสั่งเซสชัน "รายการอาร์กิวเมนต์" พวกมันจะถูกส่งผ่านไปยังเซสชันระยะไกลตามลำดับ ในกรณีนี้: ArgumentList($a, $b)
กลายเป็น $args[0]
& amp; $args[1]
. ตัวแปรที่สามอาจกลายเป็น $ags[2]
(และอื่น ๆ )
การดึงข้อมูลจากเซสชันนั้นง่ายพอ ๆ กันดังต่อไปนี้:
$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
โดยการกำหนดตัวแปร $outputFromSession
เพื่อจับภาพสิ่งใดก็ตามที่ส่งคืน - สิ่งนี้จะถูกส่งกลับจากเซสชันระยะไกลไปยังโลคัลและสามารถใช้ในภายหลังและที่อื่น ๆ หากจำเป็น
ง่ายเหมือนที่ :)
เบน