Bisakah Anda mengirimkan perintah ke VM dari server host?


0

Saya telah menulis file batch untuk mengatur alamat IP dari server host dan dua mesin virtual yang menjalankannya. Saat ini Anda harus menyalin skrip ke setiap mesin dan menjalankannya yang bukan yang saya inginkan, saya ingin menjalankan skrip di server host dan memiliki perintah yang diberikan ke masing-masing VM.

Apakah ini mungkin?


Apa yang dijalankan server dan VM?
Journeyman Geek

perintah apa yang ingin Anda sampaikan?

Tuan rumah dan salah satu VM menjalankan Server 2012 R2 dan VM lainnya adalah Windows 7. Saya ingin dapat mengatur IP statis atau mengatur mereka untuk mengambil DHCP.
Daniel Neocleous

Tiga oktet pertama harus berupa variabel yang akan diteruskan dari file batch.
Daniel Neocleous

Jawaban:


0

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

masukkan deskripsi gambar di sini

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

masukkan deskripsi gambar di sini

Dengan menetapkan variabel $outputFromSessionuntuk 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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.