파워쉘을 이용해 원격관리를 하다보면 세션에 대해 고민하는 경우가 있습니다.
Enter-PSSession 를 이용하면 직접 서버에 연결해 커맨드를 던져야 하기때문에
주로 Invoke-Command 를 이용해 처리하곤 하는데 이 Invoke-Command 는 한 스크립트 블록이
끝나면 해당 세션 역시 종료되기 때문에 코드가 긴 경우 보기에 좀 지저분해 보이는 부분이
있습니다.
이런 경우 Invoke-Command의 Session 파라미터에 세션을 생성해 사용하면 편리한 코딩을 할 수 있습니다
세션을 만드는 cmdlet은 new-pssession 이며 사용법은 아래와 같습니다.
#세션을 생성합니다.
PS > $session = new-pssession -ComputerName Server -Authentication Credential -Credential Server\account
#연결된 세션을 이용해 명령을 실행1
PS > Invoke-Command -Session $session -ScriptBlock { Import-Module -Name WebAdministration }
#연결된 세션을 이용해 명령을 실행2
PS > Invoke-Command -Session $session -ScriptBlock { New-WebAppPool site1App }
#명령수행 후 세션 삭제
PS > remove-PSSession -session $ps
참고
http://64.4.11.252/ko-kr/library/dd347706.aspx