윈도우지만 ssh 형태로 접속할 수 있으며, cli 명령어로 서버를 관리할 수 있네요.

관리할 윈도우 서버가 많다면 최고의 기능입니다~

 

설정해보니, 재미있네요~

 

[원격서버 작업]: 접속되는 서버

1. 원격서버 설정 적용하여, 원격 명령을 수신하도록 컴퓨터를 구성합니다.

    명령어: Enable-PSRemoting

 

명령어 입력 시, cmd 창이 관리자 권한으로 실행이 되지 않았다면 아래와 같은 메시지가 출력됩니다.

 

2. 방화벽 정책 추가

  - 방화벽에 접근허용 가능한 IP를 등록하고 허용하기

    명령어: New-NetFirewallRule -DisplayName "WindowsRemoteManagement" -Group "Windows 원격 관리" -Description "WS-Management를 통한 Windows 원격 관리에 대한 인바운드 규칙입니다. [TCP 5985]" -Direction Inbound -LocalPort 5985 -Protocol TCP -RemoteAddress 192.168.0.54 -Action Allow

 

[로컬PC 작업]: 접속하는 관리자 PC

1-1. 원격서버를 신뢰할 수 있는 장치로 등록

    명령어: Set-Item WSMan:\localhost\Client\TrustedHosts -Value "원격서버 IP"

1-2. 원격서버 장치 확인

    명령어: Get-Item WSMan:\localhost\Client\TrustedHosts

 

2. 원격서버 접속 가능한 계정 정보 (자격증명) 만들기

  - 원격서버로 접속하기 위한 계정의 패스워드를 입력

    명령어: $MyPassword = Read-Host "Password" -AsSecureString | ConvertFrom-SecureString (패스워드 변수로 저장)

  변수로 저장된 패스워드를 확인할 수 있지만, 암호화 되어 있음

 

3. 자격증명 만들기

  - 원격으로 접속할 서버의 계정 정보인 ID/PW를 저장

  ※ 임시 변수로 저장하는 것으로 파워쉘을 빠져나오면 계정 정보가 지워짐.

    명령어1: $MyPassword = $MyPassword | ConvertTo-SecureString
    명령어2: $ObjectTypeName = "System.Management.Automation.PSCredential"
    명령어3: $MyCredential = New-Object -TypeName $ObjectTypeName -ArgumentList "ID",$MyPassword

 

4. 원격 서버 접속

  - 원격으로 SSH 형태의 터미널 방식으로 접속

    명령어: Enter-PSSession -ComputerName "원격  서버 IP" -Credential $MyCredential

 

5. 원격서버에 명령어 전달

  - 원격서버에 직접 접속하지 않고 명령어만 전달하여 결과 확인 (서버 재시작 등등 가능)

    명령어: Invoke-Command -ComputerName "원격 서버 IP" -Credential $MyCredential -Command { 명령어 }

 

+ Recent posts