원격 컴퓨터에서 PowerShell 명령을 실행하는 방법

0
1524

PowerShell Remoting을 사용하면 원격 Windows 시스템에서 PowerShell 명령을 실행하거나 전체 PowerShell 세션에 액세스 할 수 있습니다. 다른 운영 체제의 원격 터미널에 액세스하는 것은 SSH와 유사합니다.

PowerShell은 기본적으로 잠겨 있으므로 사용하기 전에 PowerShell Remoting을 활성화해야합니다. 홈 네트워크와 같이 도메인 대신 작업 그룹을 사용하는 경우이 설정 과정이 좀 더 복잡하지만 안내해 드리겠습니다.

관련 : PowerShell과 Windows 명령 프롬프트의 차이점

원격으로 액세스하려는 PC에서 PowerShell Remoting을 사용하도록 설정

첫 번째 단계는 원격으로 연결하려는 PC에서 PowerShell Remoting을 활성화하는 것입니다. 해당 PC에서 관리자 권한으로 PowerShell을 열어야합니다.

Windows 10에서 Windows + X를 누른 다음 고급 사용자 메뉴에서 PowerShell (관리자)을 선택하십시오.

Windows 7 또는 8에서 시작을 누른 다음 “powershell”을 입력하십시오. 결과를 마우스 오른쪽 단추로 클릭하고 “관리자 권한으로 실행”을 선택하십시오.

PowerShell 창에서 다음 cmdlet (명령의 PowerShell 이름)을 입력 한 다음 Enter 키를 누릅니다.

Enable-PSRemoting -Force

이 명령은 WinRM 서비스를 시작하고 시스템에서 자동으로 시작되도록 설정하고 들어오는 연결을 허용하는 방화벽 규칙을 만듭니다. 그만큼 -Force cmdlet의 일부는 PowerShell에 각 단계에 대한 메시지를 표시하지 않고 이러한 작업을 수행하도록 지시합니다.

PC가 도메인의 일부이면 모든 설정이 필요합니다. 연결 테스트로 넘어갈 수 있습니다. 컴퓨터가 가정 또는 소규모 비즈니스 네트워크에있는 작업 그룹의 일부인 경우 설치 작업이 조금 더 필요합니다.

참고 : 도메인 환경에서 원격 설정의 성공 여부는 전적으로 네트워크 설정에 달려 있습니다. 관리자가 구성한 그룹 정책에 따라 원격 기능이 자동으로 비활성화되거나 활성화 될 수 있습니다. PowerShell을 관리자 권한으로 실행하는 데 필요한 권한이 없을 수도 있습니다. 항상 그렇듯이 이러한 작업을 시도하기 전에 관리자에게 문의하십시오. 연습을 허용하지 않는 데는 합당한 이유가 있거나, 기꺼이 연습 할 수 있습니다.

작업 그룹 설정

컴퓨터가 도메인에 있지 않은 경우 몇 가지 단계를 더 수행하여 설정해야합니다. 이전 섹션에서 설명한대로 연결하려는 PC에서 원격 기능을 이미 활성화해야합니다.

관련 : Windows에서 개인 네트워크와 공용 네트워크의 차이점은 무엇입니까?

참고 : PowerShell Remoting이 작업 그룹 환경에서 작동하려면 네트워크를 공용이 아닌 개인 네트워크로 구성해야합니다. 차이점에 대한 자세한 내용과 이미 공용 네트워크를 설정 한 경우 개인 네트워크로 변경하는 방법에 대해서는 개인 네트워크와 공용 네트워크에 대한 당사의 가이드를 확인하십시오.

다음으로, 연결할 PC 모두에서 TrustedHosts 설정을 구성해야합니다. 연결하려는 PC (또는 PC)가 서로 컴퓨터를 신뢰합니다. 두 가지 방법 중 하나로이 작업을 수행 할 수 있습니다.

홈 네트워크에 있고 원격으로 연결할 PC를 신뢰하는 경우 PowerShell에 다음 cmdlet을 입력 할 수 있습니다 (다시 관리자로 실행해야 함).

Set-Item wsman:localhostclienttrustedhosts *

별표는 모든 PC에 대한 와일드 카드 기호입니다. 대신 연결할 수있는 컴퓨터를 제한하려는 경우 별표를 쉼표로 구분 된 승인 된 PC의 IP 주소 또는 컴퓨터 이름 목록으로 바꿀 수 있습니다.

해당 명령을 실행 한 후 새 설정을 적용하려면 WinRM 서비스를 다시 시작해야합니다. 다음 cmdlet을 입력 한 다음 Enter 키를 누릅니다.

Restart-Service WinRM

그리고 연결하려는 PC와 연결하려는 PC에서이 두 cmdlet을 실행해야합니다.

연결 테스트

PowerShell Remoting을 위해 PC를 설정 했으므로 이제 연결을 테스트해야합니다. 원격 시스템에 액세스하려는 PC에서 다음 cmdlet을 PowerShell (원격 PC의 이름 또는 IP 주소와 함께“COMPUTER”로 교체)에 입력 한 다음 Enter 키를 누릅니다.

Test-WsMan COMPUTER

이 간단한 명령은 WinRM 서비스가 원격 PC에서 실행 중인지 테스트합니다. 성공적으로 완료되면 창에 원격 컴퓨터의 WinRM 서비스에 대한 정보가 표시됩니다. 이는 WinRM이 활성화되어 있고 PC와 통신 할 수 있음을 나타냅니다. 명령이 실패하면 대신 오류 메시지가 표시됩니다.

단일 원격 명령 실행

원격 시스템에서 명령을 실행하려면 Invoke-Command 다음 구문을 사용하는 cmdlet :

Invoke-Command -ComputerName COMPUTER -ScriptBlock { COMMAND } -credential USERNAME

“컴퓨터”는 원격 PC의 이름 또는 IP 주소를 나타냅니다. “COMMAND”는 실행하려는 명령입니다. “USERNAME”은 원격 컴퓨터에서와 같이 명령을 실행하려는 사용자 이름입니다. 사용자 이름의 비밀번호를 입력하라는 메시지가 표시됩니다.

다음은 예입니다. IP 주소가 10.0.0.22 인 원격 컴퓨터에서 C : 디렉토리의 내용을보고 싶습니다. 사용자 이름“wjgle”을 사용하고 싶기 때문에 다음 명령을 사용합니다.

Invoke-Command -ComputerName 10.0.0.22 -ScriptBlock { Get-ChildItem C: } -credential wjgle

원격 세션 시작

Invoke-Command cmdlet과 원격 IP 주소를 반복적으로 입력하는 대신 원격 PC에서 여러 cmdlet을 실행하려는 경우 대신 원격 세션을 시작할 수 있습니다. 다음 cmdlet을 입력 한 다음 Enter 키를 누르십시오.

Enter-PSSession -ComputerName COMPUTER -Credential USER

다시“COMPUTER”를 원격 PC의 이름 또는 IP 주소로 바꾸고“USER”를 호출하려는 사용자 계정의 이름으로 바꿉니다.

프롬프트가 변경되어 연결된 원격 컴퓨터를 나타내며 원격 시스템에서 직접 여러 PowerShell cmdlet을 실행할 수 있습니다.