PowerShell Core에서 WSMan(WS-Management) 원격WS-Management (WSMan) Remoting in PowerShell Core

원격 끝점 만들기 지침Instructions to Create a Remoting Endpoint

Windows용 PowerShell Core 패키지의 $PSHome에는 WinRM 플러그인(pwrshplugin.dll) 및 설치 스크립트(Install-PowerShellRemoting.ps1)가 들어 있습니다.The PowerShell Core package for Windows includes a WinRM plug-in (pwrshplugin.dll) and an installation script (Install-PowerShellRemoting.ps1) in $PSHome. 이러한 파일은 엔드포인트가 지정된 경우에 PowerShell이 들어오는 PowerShell 원격 연결을 수락하도록 허용합니다.These files enable PowerShell to accept incoming PowerShell remote connections when its endpoint is specified.

동기Motivation

PowerShell을 설치하면 New-PSSessionEnter-PSSession을 사용하여 원격 컴퓨터에 대한 PowerShell 세션을 설정할 수 있습니다.An installation of PowerShell can establish PowerShell sessions to remote computers using New-PSSession and Enter-PSSession. 들어오는 PowerShell 원격 연결을 수락하도록 허용하려면 사용자가 WinRM 원격 기능 엔드포인트를 만들어야 합니다.To enable it to accept incoming PowerShell remote connections, the user must create a WinRM remoting endpoint. 이는 사용자가 Install-PowerShellRemoting.ps1을 실행하여 WinRM 엔드포인트를 만드는 명시적인 옵트인 시나리오입니다.This is an explicit opt-in scenario where the user runs Install-PowerShellRemoting.ps1 to create the WinRM endpoint. 설치 스크립트는 Enable-PSRemoting에 추가 기능을 추가하여 동일한 동작을 수행할 때까지 단기적인 솔루션입니다.The installation script is a short-term solution until we add additional functionality to Enable-PSRemoting to perform the same action. 자세한 내용은 #1193 문제를 참조하세요.For more details, please see issue #1193.

스크립트 동작Script Actions

스크립트The script

  1. %windir%\System32\PowerShell 내에 플러그인에 대한 디렉터리를 만듭니다.Creates a directory for the plug-in within %windir%\System32\PowerShell
  2. pwrshplugin.dll을 해당 위치에 복사합니다.Copies pwrshplugin.dll to that location
  3. 구성 파일을 생성합니다.Generates a configuration file
  4. 해당 플러그 인을 WinRM에 등록합니다.Registers that plug-in with WinRM

등록Registration

스크립트는 관리자 수준의 PowerShell 세션 내에서 실행되어야 하며, 두 가지 모드로 실행됩니다.The script must be executed within an Administrator-level PowerShell session and runs in two modes.

등록할 PowerShell의 인스턴스에서 실행Executed by the instance of PowerShell that it will register

Install-PowerShellRemoting.ps1

등록할 인스턴스 대신 PowerShell의 다른 인스턴스에서 실행Executed by another instance of PowerShell on behalf of the instance that it will register

<path to powershell>\Install-PowerShellRemoting.ps1 -PowerShellHome "<absolute path to the instance's $PSHOME>"

예를 들면 다음과 같습니다.For Example:

Set-Location -Path 'C:\Program Files\PowerShell\6.0.0\'
.\Install-PowerShellRemoting.ps1 -PowerShellHome "C:\Program Files\PowerShell\6.0.0\"

참고: 원격 기능 등록 스크립트는 WinRM을 다시 시작하므로 스크립트가 실행된 후 기존의 모든 PSRP 세션이 즉시 종료됩니다.NOTE: The remoting registration script will restart WinRM, so all existing PSRP sessions will terminate immediately after the script is run. 원격 세션 중에 실행될 경우 연결이 종료됩니다.If run during a remote session, this will terminate the connection.

새 엔드포인트에 연결하는 방법How to Connect to the New Endpoint

-ConfigurationName "some endpoint name"을 지정하여 새로운 PowerShell 엔드포인트에 대한 PowerShell 세션을 만듭니다.Create a PowerShell session to the new PowerShell endpoint by specifying -ConfigurationName "some endpoint name". 위의 예제에서 PowerShell 인스턴스에 연결하려면 다음 중 하나를 사용합니다.To connect to the PowerShell instance from the example above, use either:

New-PSSession ... -ConfigurationName "powershell.6.0.0"
Enter-PSSession ... -ConfigurationName "powershell.6.0.0"

-ConfigurationName을 지정하지 않는 New-PSSessionEnter-PSSession 호출은 기본 PowerShell 엔드포인트인 microsoft.powershell을 대상으로 합니다.Note that New-PSSession and Enter-PSSession invocations that do not specify -ConfigurationName will target the default PowerShell endpoint, microsoft.powershell.