호스트 서버에서 VM으로 명령을 전달할 수 있습니까? 컴퓨터에 복사하고

호스트 서버와 두 개의 가상 머신에서 실행되는 IP 주소를 설정하는 배치 파일을 작성했습니다. 현재 스크립트를 각 컴퓨터에 복사하고 원하는 것이 아닌 스크립트를 실행해야합니다. 호스트 서버에서 스크립트를 실행하고 각 VM에 명령을 전달하고 싶습니다.

이것이 가능한가?



답변

PowerShell 세션을 사용하여이를 쉽게 수행 할 수 있습니다.

먼저 PowerShell Remoting을 사용하도록 설정하십시오. 이렇게하려면 관리자 권한으로 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]& $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반환 된 내용을 캡처 하도록 변수 를 할당하면 원격 세션에서 로컬 세션으로 다시 전달 된 다음 필요할 경우 나중에 다른 곳에서 사용할 수 있습니다.

그렇게 쉬운 🙂


답변