다음을 통해 공유


Enter-PSSession

원격 컴퓨터로 대화형 세션을 시작합니다.

구문

Enter-PSSession
     [-ComputerName] <String>
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-ConfigurationName <String>]
     [-Port <Int32>]
     [-UseSSL]
     [-ApplicationName <String>]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [[-Session] <PSSession>]
     [<CommonParameters>]
Enter-PSSession
     [[-ConnectionUri] <Uri>]
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-ConfigurationName <String>]
     [-AllowRedirection]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [-InstanceId <Guid>]
     [<CommonParameters>]
Enter-PSSession
     [[-Id] <Int32>]
     [<CommonParameters>]
Enter-PSSession
     [-Name <String>]
     [<CommonParameters>]
Enter-PSSession
     [-VMId] <Guid>
     -Credential <PSCredential>
     [-ConfigurationName <String>]
     [<CommonParameters>]
Enter-PSSession
     [-VMName] <String>
     -Credential <PSCredential>
     [-ConfigurationName <String>]
     [<CommonParameters>]
Enter-PSSession
     [-ContainerId] <String>
     [-ConfigurationName <String>]
     [-RunAsAdministrator]
     [<CommonParameters>]

Description

cmdlet은 Enter-PSSession 단일 원격 컴퓨터로 대화형 세션을 시작합니다. 세션 중에 입력한 명령은 원격 컴퓨터에서 직접 입력하는 것처럼 원격 컴퓨터에서 실행됩니다. 한 번에 하나의 대화형 세션만 가질 수 있습니다.

일반적으로 ComputerName 매개 변수를 사용하여 원격 컴퓨터의 이름을 지정합니다. 그러나 대화형 세션에 cmdlet을 사용하여 New-PSSession 만든 세션을 사용할 수도 있습니다. 그러나 대화Connect-PSSession형 세션의 Disconnect-PSSession연결을 끊거나 다시 연결하는 데는 cmdlet 또는 Receive-PSSession cmdlet을 사용할 수 없습니다.

대화형 세션을 종료하고 원격 컴퓨터에서 연결을 끊려면 cmdlet을 Exit-PSSession 사용하거나 입력합니다 exit.

Important

Enter-PSSession 는 현재 대화형 세션을 새 대화형 원격 세션으로 대체하도록 설계되었습니다. 함수 또는 스크립트 내에서 호출하거나 실행 파일에 명령 powershell.exe 으로 전달하여 호출해서는 안 됩니다.

예제

예제 1: 대화형 세션 시작

PS C:\> Enter-PSSession
[localhost]: PS C:\>

이 명령은 로컬 컴퓨터에서 대화형 세션을 시작합니다. 명령 프롬프트가 변경되어 현재 다른 세션에서 명령을 실행하고 있음을 나타냅니다.

입력하는 명령은 새 세션에서 실행되고 결과는 텍스트로 기본 세션으로 반환됩니다.

예제 2: 대화형 세션 작업

첫 번째 명령은 cmdlet을 Enter-PSSession 사용하여 원격 컴퓨터인 Server01에서 대화형 세션을 시작합니다. 세션이 시작되면 명령 프롬프트가 컴퓨터 이름을 포함하도록 변경됩니다.

두 번째 명령은 PowerShell 프로세스를 가져오고 출력을 파일로 Process.txt 리디렉션합니다. 명령은 원격 컴퓨터에 제출되고 파일은 원격 컴퓨터에 저장됩니다.

세 번째 명령은 Exit 키워드를 사용하여 대화형 세션을 종료하고 연결을 닫습니다. 네 번째 명령은 Process.txt 파일이 원격 컴퓨터에 있는지 확인합니다. 로컬 컴퓨터의 ( Get-ChildItem "dir") 명령은 파일을 찾을 수 없습니다.

PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\>
[Server01]: PS C:\> Get-Process PowerShell > C:\ps-test\Process.txt
[Server01]: PS C:\> exit
PS C:\>
PS C:\> dir C:\ps-test\Process.txt
Get-ChildItem : Cannot find path 'C:\ps-test\Process.txt' because it does not exist.
At line:1 char:4
+ dir <<<<  c:\ps-test\Process.txt

이 명령은 원격 컴퓨터로 대화형 세션에서 작업하는 방법을 보여줍니다.

예제 3: 세션 매개 변수 사용

PS> $s = New-PSSession -ComputerName Server01
PS> Enter-PSSession -Session $s
[Server01]: PS>

이러한 명령은 세션 매개 변수 Enter-PSSession 를 사용하여 기존 PowerShell 세션(PSSession)에서 대화형 세션을 실행합니다.

예제 4: 대화형 세션을 시작하고 포트 및 자격 증명 매개 변수 지정

PS> Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01
[Server01]: PS>

이 명령은 Server01 컴퓨터에서 대화형 세션을 시작합니다. 포트 매개 변수를 사용하여 포트 및 자격 증명 매개 변수를 지정하여 원격 컴퓨터에 연결할 수 있는 권한이 있는 사용자의 계정을 지정합니다.

예제 5: 대화형 세션 중지

PS> Enter-PSSession -ComputerName Server01
[Server01]: PS> Exit-PSSession
PS>

이 예제에서는 대화형 세션을 시작하고 중지하는 방법을 보여줍니다. 첫 번째 명령은 cmdlet을 Enter-PSSession 사용하여 Server01 컴퓨터에서 대화형 세션을 시작합니다.

두 번째 명령은 cmdlet을 Exit-PSSession 사용하여 세션을 종료합니다. Exit 키워드를 사용하여 대화형 세션을 종료할 수도 있습니다. Exit-PSSession 종료와 같은 효과가 있습니다.

매개 변수

-AllowRedirection

이 연결을 대체 URI(Uniform Resource Identifier)로 리디렉션할 수 있습니다. 기본적으로 리디렉션은 허용되지 않습니다.

ConnectionURI 매개 변수를 사용하는 경우 원격 대상은 다른 URI로 리디렉션하는 명령을 반환할 수 있습니다. 기본적으로 PowerShell은 연결을 리디렉션하지 않지만 이 매개 변수를 사용하여 연결을 리디렉션할 수 있습니다.

MaximumConnectionRedirectionCount 세션 옵션 값을 변경 하여 연결이 리디렉션되는 횟수를 제한할 수도 있습니다. cmdlet의 MaximumRedirection 매개 변수를 New-PSSessionOption 사용하거나 기본 설정 변수의 $PSSessionOption MaximumConnectionRedirectionCount 속성을 설정합니다. 기본 값은 5입니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ApplicationName

연결 URI의 애플리케이션 이름 세그먼트를 지정합니다. 이 매개 변수를 사용하여 명령에서 ConnectionURI 매개 변수를 사용하지 않을 때 애플리케이션 이름을 지정합니다.

기본값은 로컬 컴퓨터의 $PSSessionApplicationName 기본 설정 변수 값입니다. 이 기본 설정 변수를 정의하지 않으면 WSMAN이 기본값으로 사용됩니다. 이 값은 대부분의 사용에 적합합니다. 자세한 내용은 about_Preference_Variables 참조하세요.

WinRM 서비스는 애플리케이션 이름을 사용하여 연결 요청을 서비스할 수신기를 선택합니다. 이 매개 변수의 값은 원격 컴퓨터에서 수신기의 URLPrefix 속성 값과 일치해야 합니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Authentication

사용자의 자격 증명을 인증하는 데 사용되는 메커니즘을 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 기본값
  • Basic
  • Credssp
  • 다이제스트
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

기본값은 Default입니다.

CredSSP 인증은 Windows Vista, Windows Server 2008 이상 버전의 Windows 운영 체제에서만 사용할 수 있습니다.

이 매개 변수의 값에 대한 자세한 내용은 AuthenticationMechanism 열거형을 참조 하세요.

주의

사용자의 자격 증명이 인증될 원격 컴퓨터에 전달되는 CredSSP(자격 증명 보안 지원 공급자) 인증은 원격 네트워크 공유 액세스와 같이 둘 이상의 리소스에 대한 인증이 필요한 명령을 위해 설계되었습니다. 이 메커니즘은 원격 작업의 보안 위험을 높입니다. 원격 컴퓨터가 손상된 경우 이 컴퓨터로 전달된 자격 증명을 사용하여 네트워크 세션을 제어할 수 있습니다.

형식:AuthenticationMechanism
허용되는 값:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-CertificateThumbprint

이 작업을 수행할 수 있는 권한이 있는 사용자 계정의 디지털 공개 키 인증서(X509)를 지정합니다. 인증서의 인증서 지문을 입력합니다.

인증서는 클라이언트 인증서 기반 인증에 사용됩니다. 로컬 사용자 계정에만 매핑할 수 있습니다. 도메인 계정에서 작동하지 않습니다.

인증서를 얻으려면 PowerShell 인증서: 드라이브에서 또는 Get-ChildItem 명령을 사용합니다Get-Item.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ComputerName

컴퓨터 이름을 지정합니다. 이 cmdlet은 지정된 원격 컴퓨터로 대화형 세션을 시작합니다. 컴퓨터 이름을 하나만 입력합니다. 기본값은 로컬 컴퓨터입니다.

NetBIOS 이름, IP 주소 또는 컴퓨터의 정규화된 도메인 이름을 입력합니다. 컴퓨터 이름을 으로 파이프할 Enter-PSSession수도 있습니다.

ComputerName 매개 변수 값에 IP 주소를 사용하려면 명령에 자격 증명 매개 변수가 포함되어야 합니다. 또한 HTTPS 전송을 위해 컴퓨터를 구성해야 하거나 원격 컴퓨터의 IP 주소를 로컬 컴퓨터의 WinRM TrustedHosts 목록에 포함해야 합니다. 컴퓨터 이름을 TrustedHosts 목록에 추가하는 방법에 대한 지침은 about_Remote_Troubleshooting의 "신뢰할 수 있는 호스트 목록에 컴퓨터를 추가하는 방법"을 참조하세요.

참고 항목

Windows 운영 체제에서 ComputerName 매개 변수 값에 로컬 컴퓨터를 포함하려면 관리자 권한으로 실행 옵션을 사용하여 PowerShell을 시작해야 합니다.

형식:String
별칭:Cn
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-ConfigurationName

대화형 세션에 사용되는 세션 구성을 지정합니다.

세션 구성에 대한 구성 이름 또는 정규화된 리소스 URI를 입력합니다. 구성 이름만 지정하면 다음 스키마 URI가 앞에 추가됩니다 http://schemas.microsoft.com/powershell.

세션에 대한 세션 구성은 원격 컴퓨터에 있습니다. 지정된 세션 구성이 원격 컴퓨터에 없으면 명령이 실패합니다.

기본값은 로컬 컴퓨터의 $PSSessionConfigurationName 기본 설정 변수 값입니다. 이 기본 설정 변수가 설정되지 않은 경우 기본값은 Microsoft.PowerShell입니다. 자세한 내용은 about_Preference_Variables 참조하세요.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-ConnectionUri

세션의 연결 엔드포인트를 정의하는 URI를 지정합니다. URI는 정규화되어야 합니다. 이 문자열의 형식은 다음과 같습니다.

<Transport>://<ComputerName>:<Port>/<ApplicationName>

기본값은 다음과 같습니다.

http://localhost:5985/WSMAN

ConnectionURI를 지정하지 않으면 UseSSL, ComputerName, PortApplicationName 매개 변수를 사용하여 ConnectionURI 값을 지정할 있습니다.

URI의 전송 세그먼트에 유효한 값은 HTTP 및 HTTPS입니다. 전송 세그먼트를 사용하여 연결 URI를 지정하지만 포트를 지정하지 않으면 HTTP의 경우 80, HTTPS의 경우 443이라는 표준 포트를 사용하여 세션이 만들어집니다. PowerShell 원격에 기본 포트를 사용하려면 HTTP용 포트 5985 또는 HTTPS의 경우 5986을 지정합니다.

대상 컴퓨터가 연결을 다른 URI로 리디렉션하는 경우 명령에서 AllowRedirection 매개 변수를 사용하지 않는 한 PowerShell은 리디렉션을 방지합니다.

형식:Uri
별칭:URI, CU
Position:1
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-ContainerId

컨테이너의 ID를 지정합니다.

형식:String
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Credential

이 작업을 수행할 권한이 있는 사용자 계정을 지정합니다. 기본값은 현재 사용자입니다.

User01 또는 Domain01\User01과 같은 사용자 이름을 입력하거나 cmdlet에서 생성된 PSCredential 개체를 Get-Credential 입력합니다. 사용자 이름을 입력하면 암호를 입력하라는 메시지가 표시됩니다.

자격 증명은 PSCredential 개체에 저장되고 암호는 SecureString으로 저장됩니다.

참고 항목

SecureString 데이터 보호에 대한 자세한 내용은 SecureString이 얼마나 안전한가요?를 참조하세요.

형식:PSCredential
Position:1
Default value:Current user
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-EnableNetworkAccess

이 cmdlet은 루프백 세션에 대화형 보안 토큰을 추가한다는 것을 나타냅니다. 대화형 토큰을 사용하면 루프백 세션에서 다른 컴퓨터에서 데이터를 가져오는 명령을 실행할 수 있습니다. 예를 들어 원격 컴퓨터에서 로컬 컴퓨터로 XML 파일을 복사하는 명령을 세션에서 실행할 수 있습니다.

루프백 세션은 동일한 컴퓨터에서 시작되고 끝나는 PSSession 입니다. 루프백 세션을 만들려면 ComputerName 매개 변수를 생략하거나 값을 .로 설정합니다. (점), localhost 또는 로컬 컴퓨터의 이름입니다.

기본적으로 루프백 세션은 원격 컴퓨터에 인증하기에 충분한 권한을 제공하지 않을 수 있는 네트워크 토큰을 사용하여 만들어집니다.

EnableNetworkAccess 매개 변수는 루프백 세션에서만 유효합니다. 원격 컴퓨터에서 세션을 만들 때 EnableNetworkAccess를 사용하면 명령이 성공하지만 매개 변수는 무시됩니다.

세션 자격 증명을 다른 컴퓨터에 위임하는 인증 매개 변수의 CredSSP 값을 사용하여 루프백 세션에서 원격 액세스를 허용할 수도 있습니다.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Id

기존 세션의 ID를 지정합니다. Enter-PSSession 는 대화형 세션에 대해 지정된 세션을 사용합니다.

세션의 ID를 찾으려면 cmdlet을 Get-PSSession 사용합니다.

형식:Int32
Position:0
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-InstanceId

기존 세션의 인스턴스 ID를 지정합니다. Enter-PSSession 는 대화형 세션에 대해 지정된 세션을 사용합니다.

인스턴스 ID는 GUID입니다. 세션의 인스턴스 ID를 찾으려면 cmdlet을 Get-PSSession 사용합니다. 세션, 이름 또는 ID 매개 변수를 사용하여 기존 세션을 지정할 수도 있습니다. 또는 ComputerName 매개 변수를 사용하여 임시 세션을 시작할 수 있습니다.

형식:Guid
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Name

기존 세션의 이름을 지정합니다. Enter-PSSession 는 대화형 세션에 대해 지정된 세션을 사용합니다.

지정한 이름이 둘 이상의 세션과 일치하면 명령이 실패합니다. 세션, InstanceID 또는 ID 매개 변수를 사용하여 기존 세션을 지정할 수도 있습니다. 또는 ComputerName 매개 변수를 사용하여 임시 세션을 시작할 수 있습니다.

세션에 친숙한 이름을 설정하려면 cmdlet의 Name 매개 변수를 New-PSSession 사용합니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Port

이 명령에 사용되는 원격 컴퓨터의 네트워크 포트를 지정합니다. 원격 컴퓨터에 연결하려면 원격 컴퓨터가 연결에서 사용하는 포트에서 수신 대기해야 합니다. 기본 포트는 HTTP용 WinRM 포트인 5985와 HTTPS용 WinRM 포트인 5986입니다.

대체 포트를 사용하려면 먼저 원격 컴퓨터에 해당 포트에서 수신 대기할 WinRM 수신기를 구성해야 합니다. 다음 명령을 사용하여 수신기를 구성합니다.

  1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
  2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}

반드시 사용해야 하는 경우가 아니면 포트 매개 변수를 사용하지 마세요. 명령의 포트 설정은 명령이 실행되는 모든 컴퓨터 또는 세션에 적용됩니다. 대체 포트 설정을 사용하면 명령이 모든 컴퓨터에서 실행되지 않을 수 있습니다.

형식:Int32
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-RunAsAdministrator

PSSession관리자 권한으로 실행됨을 나타냅니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Session

대화형 세션에 사용할 PowerShell 세션(PSSession)을 지정합니다. 이 매개 변수는 세션 개체를 가져옵니다. 이름, InstanceID 또는 ID 매개 변수를 사용하여 PSSession지정할 수도 있습니다.

세션 개체 또는 명령과 같은 세션 개체를 만들거나 가져오는 명령이 포함된 변수를 New-PSSession Get-PSSession 입력합니다. 세션 개체를 .에 파이프할 Enter-PSSession수도 있습니다. 이 매개 변수를 사용하여 하나의 PSSession 만 제출할 수 있습니다. 둘 이상의 PSSession을 포함하는 변수를 입력하면 명령이 실패합니다.

사용하거나 EXIT 키워드를 사용하면 Exit-PSSession 대화형 세션이 종료되지만 만든 PSSession은 열려 있고 사용할 수 있습니다.

형식:PSSession
Position:0
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-SessionOption

세션에 대한 고급 옵션을 설정합니다. cmdlet을 사용하여 New-PSSessionOption 만든 개체와 같은 SessionOption 개체 또는 키가 세션 옵션 이름이고 값이 세션 옵션 값인 해시 테이블을 입력합니다.

옵션의 기본값은 설정된 경우 기본 설정 변수의 $PSSessionOption 값에 따라 결정됩니다. 그렇지 않으면 기본값은 세션 구성에 설정된 옵션에 의해 설정됩니다.

세션 옵션 값은 기본 설정 변수 및 세션 구성에서 설정된 세션의 $PSSessionOption 기본값보다 우선합니다. 그러나 세션 구성에 설정된 최대 값, 할당량 또는 제한보다 우선하지 않습니다.

기본값을 포함하여 세션 옵션에 대한 설명은 다음을 참조하세요 New-PSSessionOption. 기본 설정 변수에 $PSSessionOption 대한 자세한 내용은 about_Preference_Variables 참조하세요. 세션 구성에 대한 자세한 내용은 about_Session_Configurations를 참조하세요.

형식:PSSessionOption
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-UseSSL

이 cmdlet은 SSL(Secure Sockets Layer) 프로토콜을 사용하여 원격 컴퓨터에 대한 연결을 설정합니다. 기본적으로 SSL은 사용되지 않습니다.

WS-Management는 네트워크를 통해 전송되는 모든 PowerShell 콘텐츠를 암호화합니다. UseSSL 매개 변수는 HTTP 연결 대신 HTTPS 연결을 통해 데이터를 보내는 추가 보호입니다.

이 매개 변수를 사용하지만 명령에 사용되는 포트에서 SSL을 사용할 수 없는 경우 명령이 실패합니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-VMId

가상 머신의 ID를 지정합니다.

형식:Guid
별칭:VMGuid
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-VMName

가상 머신의 이름을 지정합니다.

형식:String
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

입력

String

컴퓨터 이름을 문자열로 이 cmdlet에 파이프할 수 있습니다.

PSSession

세션 개체를 이 cmdlet으로 파이프할 수 있습니다.

출력

None

이 cmdlet은 출력을 반환하지 않습니다.

참고

Windows PowerShell에는 다음 별칭이 포함됩니다.Enter-PSSession

  • etsn

원격 컴퓨터에 연결하려면 원격 컴퓨터에서 Administrators 그룹의 구성원이어야 합니다. 로컬 컴퓨터에서 대화형 세션을 시작하려면 관리자 권한으로 실행 옵션을 사용하여 PowerShell을 시작해야 합니다.

사용하는 Enter-PSSession경우 원격 컴퓨터의 사용자 프로필이 대화형 세션에 사용됩니다. PowerShell 모듈을 추가하고 명령 프롬프트를 변경하는 명령을 포함하여 원격 사용자 프로필의 명령은 원격 프롬프트가 표시되기 전에 실행됩니다.

Enter-PSSession 는 대화형 세션에 대한 로컬 컴퓨터의 UI 문화권 설정을 사용합니다. 로컬 UI 문화권을 찾으려면 자동 변수를 $UICulture 사용합니다.

Enter-PSSession 에는 Get-Command, Out-DefaultExit-PSSession cmdlet이 필요합니다. 이러한 cmdlet이 원격 컴퓨터의 세션 구성에 포함되지 않으면 명령이 Enter-PSSession 실패합니다.

명령을 원격 컴퓨터로 보내기 전에 구문 분석하고 해석하는 것과 달리 Invoke-Command해석 Enter-PSSession 없이 원격 컴퓨터에 직접 명령을 보냅니다.

입력하려는 세션이 명령을 처리하는 데 사용 중인 경우 PowerShell이 명령에 응답 Enter-PSSession 하기 전에 지연이 있을 수 있습니다. 세션을 사용할 수 있는 즉시 연결됩니다. 명령을 취소 Enter-PSSession 하려면 Ctrl+C를 누릅니다.