https://dinamizartj.com/74pjlaa7k 원격지에 있는 Powershell 에 접속이 가능하다 정확히는 Session 을 만들수 있는데 이 Session을 이용하여 원격지에 있는 Powershell 과 상호작용이 가능한것이다.
자주쓰게 되는 기능인데 물어보는 분들이 많아 정리 해 둔다.
자세한 규칙이나 프로토콜, 원리등을 설명하면 20페이지정도 문서가 나올꺼 같지만 여기선 필요한 과정들에 대한 설명만 기록한다.
바쁜사람들은 아래를 보고 따라하자.
https://brufaganya.cat/2020/y6c6v40 A 가 B 에 원격 접속 하고 싶을 때.
초간단 설정
정말 바쁘거나 세부내용을 알기 싫고 모르겠으면 A와 B 양쪽에 아래 명령을 입력하고 “사용하기” 로 넘어가자.
https://www.ibericadron.com/8f0ojjw6ghs Enable-PSRemoting -Force Set-item WSMan:localhostClientTrustedHosts -Value * -Force
https://ics-seville.org/3nqpvrewke7
A 측에 할 작업
Enable-PSRemoting
https://cafearabo.com/2qru6st 다음과 같은 셋팅을 한꺼번에 하려고 한단다.
https://www.grupoalliance.com/2023/09/20/zdh9m1j5ne 1. WinRM 서비스 시작 또는 다시 시작(이미 시작된 경우) 2. WinRM 서비스 유형을 자동 시작으로 설정 3. 모든 IP 주소에 대한 요청을 허용하는 수신기 만들기 4. WS-Management 트래픽에 대한 방화벽 예외 사용(http 전용)
Tramadol Buy Online Cheap Uk 그뒤 SDDL 별로 https://www.ibct-global.com/gvzpgq4wq Set-PSSessionConfiguration 을 수행 하면서 질문을 하는데, 필요한것 것들에 대해 Y를 눌려 수행한다. (잘 모르겠으면 A – Yes to All)
이해가 잘 안가거나 다 Yes 하고 싶으면 -Force 옵션을 붙히자.
https://www.foroacce.com/cli7zuva Enable-PSRemoting -Force
A 와 B 에 모두 할 작업
WSMan:localhostClientTrustedHosts 설정
Powershell 원격제어를 하는 Protocol 은 상호간에 TrustedHost 가 설정 되어 있어야 한다.
다음 명령으로 현재 값을 확이해 보면 Value 가 공란으로 있을 것이다.
Get-Item WSMan:localhostClientTrustedHosts
이 값을 상대방의 ComputerName, IP, Domain 등으로 설정하면된다.
값은 ,로 구분해 Array로 넣을 수 있고 * 를 사용할 수 있다.
예를 들어.
모든 대상에 대해서 허용.
Set-item WSMan:localhostClientTrustedHosts -value *
컴퓨터 이름이 Alpha, Beta 인 두 대상을 허용.
Set-item WSMan:localhostClientTrustedHosts -value Alpha,Beta
IP 가 192.168.0.10 인 대상을 허용.
Set-item WSMan:localhostClientTrustedHosts -value 192.168.0.10
https://prepnsell.com/blog/2023/09/20/77e2i56t 역시 잘 모르겠으면 다음을 입력하자.
Set-item WSMan:localhostClientTrustedHosts -value *
사용 하기
ssh 나 telnet 처럼 원격으로 접속하여 사용하길 원하면 다음 명령을 이용한다.
Enter-PSSession [대상]
명령하나를 원격지에 수행하고 싶다면 Invoke-Command 를 이용한다.
Invoke-Command -ComputerName [대상] -ScriptBlock {[수행할 명령, 스크립트]}
예
Invoke-Command -ComputerName talsu.net -ScriptBlock {Get-Process}
ComputerName 대신 미리 New-PSSession 명령을 이용해 Session 을 만들어 그것을 사용할 수도 있다. 말그대로 같은Session에서 수행 되기 때문에 연속적인 작업을 나누어 할수 있고 여러번 수행할때 속도도 빠르다.
$session = New-PSSession [대상] Invoke-Command -Session $session -ScriptBlock {[수행할 명령, 스크립트]}
예
$session = New-PSSession talsu.net Invoke-Command -Session $session -ScriptBlock {Get-Process}