호스트 서버에서 VM으로 명령을 전달할 수 있습니까?


0

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

이것이 가능한가?


서버와 VM은 무엇을 실행합니까?
Journeyman Geek

어떤 명령을 전달 하시겠습니까?

호스트와 VM 중 하나가 Server 2012 R2를 실행하고 다른 VM은 Windows 7입니다. 고정 IP를 설정하거나 DHCP를 사용하도록 설정할 수 있기를 원합니다.
Daniel Neocleous

처음 세 옥텟은 배치 파일에서 전달되는 변수 여야합니다.
Daniel Neocleous

답변:


0

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반환 된 내용을 캡처 하도록 변수 를 할당하면 원격 세션에서 로컬 세션으로 다시 전달 된 다음 필요할 경우 나중에 다른 곳에서 사용할 수 있습니다.

그렇게 쉬운 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.