คุณสามารถส่งคำสั่งไปยัง VM จากโฮสต์เซิร์ฟเวอร์ได้หรือไม่


0

ฉันได้เขียนแบตช์ไฟล์เพื่อตั้งค่าที่อยู่ IP ของโฮสต์เซิร์ฟเวอร์และเครื่องเสมือนสองเครื่องที่ทำงานอยู่ ในขณะที่คุณต้องคัดลอกสคริปต์ลงบนเครื่องแต่ละเครื่องแล้วเรียกใช้งานซึ่งไม่ใช่สิ่งที่ฉันต้องการฉันต้องการเรียกใช้สคริปต์บนเซิร์ฟเวอร์โฮสต์และมีคำสั่งส่งผ่านไปยัง VM แต่ละเครื่อง

เป็นไปได้ไหม


เซิร์ฟเวอร์และ VM เรียกใช้อะไร
Journeyman Geek

คุณต้องการส่งคำสั่งอะไร

โฮสต์และหนึ่งใน VM ทำงาน Server 2012 R2 และ VM อื่น ๆ คือ Windows 7 ฉันต้องการตั้งค่า IP แบบคงที่หรือตั้งค่าให้ใช้ DHCP
Daniel Neocleous

สามอ็อกเท็ตแรกจะต้องเป็นตัวแปรซึ่งจะถูกส่งจากแบตช์ไฟล์
Daniel Neocleous

คำตอบ:


0

คุณสามารถทำสิ่งนี้ได้อย่างง่ายดายด้วยการใช้ 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

enter image description here

โดยการประกาศตัวแปรและส่งพวกเขาไปยังคำสั่งเซสชัน "รายการอาร์กิวเมนต์" พวกมันจะถูกส่งผ่านไปยังเซสชันระยะไกลตามลำดับ ในกรณีนี้: 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

enter image description here

โดยการกำหนดตัวแปร $outputFromSession เพื่อจับภาพสิ่งใดก็ตามที่ส่งคืน - สิ่งนี้จะถูกส่งกลับจากเซสชันระยะไกลไปยังโลคัลและสามารถใช้ในภายหลังและที่อื่น ๆ หากจำเป็น

ง่ายเหมือนที่ :)

เบน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.