about_Session_Configurations

업데이트 날짜: 2014년 5월

적용 대상: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

항목

about_Session_Configurations

간단한 설명

컴퓨터에 원격으로 연결할 수 있는 사용자와 실행할 수 있는 명령을 결정하는 세션 구성에 대해 설명합니다.

자세한 설명

"끝점"으로도 알려진 세션 구성은 원격 또는 로컬 사용자가 로컬 컴퓨터에서 Windows PowerShell에 연결할 때 만들어지는 Windows PowerShell® 세션에 대한 환경을 정의하는 로컬 컴퓨터의 설정 그룹입니다.

컴퓨터 관리자는 세션 구성을 사용하여 컴퓨터를 보호하고 컴퓨터에 연결하는 사용자에 대한 사용자 지정 환경을 정의할 수 있습니다.

또한 관리자는 세션 구성을 사용하여 컴퓨터에 원격으로 연결하는 데 필요한 권한을 확인할 수 있습니다. 기본적으로 Administrators 그룹의 구성원만 세션 구성을 사용하여 원격으로 컴퓨터에 연결할 수 있는 권한이 있지만 모든 사용자 또는 선택한 사용자가 컴퓨터에 원격으로 연결할 수 있도록 기본 설정을 변경할 수 있습니다.

Windows PowerShell 3.0부터 세션 구성 파일을 사용하여 세션 구성의 요소를 정의할 수 있습니다. 이 기능을 사용하면 코드를 작성하지 않고 세션을 사용자 지정하고 세션 구성의 속성을 검색하기가 쉽습니다. 세션 구성 파일을 만들려면 New-PSSessionConfiguration cmdlet을 사용합니다. 세션 구성 파일에 대한 자세한 내용은 about_Session_Configuration_Files(https://go.microsoft.com/fwlink/?LinkId=236023)(영문)를 참조하세요.

세션 구성은 WS-Management(Web Services for Management) 기반 Windows PowerShell 원격의 기능입니다. 이 구성은 New-PSSession, Invoke-Command 또는 Enter-PSSession cmdlet을 사용하여 원격 컴퓨터에 연결하는 경우에만 사용됩니다.

참고: 세션 구성을 관리하려면 "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 시작합니다.

세션 구성 정보

모든 Windows PowerShell 세션에서는 세션 구성을 사용합니다. 여기에는 New-PSSession 또는 Enter-PSSession cmdlet을 사용하여 만든 영구 세션 및 Windows PowerShell에서 WS-Management 기반 원격 기술을 사용하는 cmdlet(예: Invoke-Command)의 ComputerName 매개 변수를 사용할 때 만드는 임시 세션이 포함됩니다.

관리자는 세션 구성을 사용하여 컴퓨터의 리소스를 보호하고 컴퓨터에 연결하는 사용자에 대한 사용자 지정 환경을 만들 수 있습니다. 예를 들어 세션 구성을 사용하여 컴퓨터가 세션에서 받는 개체의 크기를 제한하고 세션의 언어 모드를 정의하며 세션에서 사용할 수 있는 cmdlet, 공급자 및 함수를 지정할 수 있습니다.

세션 구성을 사용하여 컴퓨터에 연결할 수 있는 사용자는 세션 구성의 보안 설명자를 구성하여 결정합니다. 사용자가 세션에서 사용하려면 세션 구성에 대한 Execute 권한이 있어야 합니다. 사용자에게 컴퓨터에서 세션 구성을 사용하는 데 필요한 권한이 없으면 컴퓨터에 원격으로 연결할 수 없습니다.

기본적으로 컴퓨터의 관리자만 기본 세션 구성을 사용할 수 있는 권한이 있습니다. 그러나 모든 사용자 또는 선택한 사용자만 컴퓨터에서 세션 구성을 사용하거나 아무도 사용할 수 없도록 보안 설명자를 변경할 수 있습니다. 여기에 하위 섹션 본문을 삽입합니다.

기본 제공 세션 구성

Windows PowerShell3.0에는 Microsoft.PowerShell 및 Microsoft.PowerShell.Workflow라는 기본 제공 세션 구성이 있습니다. 64비트 버전의 Windows가 실행되는 컴퓨터에서 Windows PowerShell은 32비트 세션 구성인 Microsoft.PowerShell32도 제공합니다.

Windows PowerShell 세션 구성은 기본적으로 세션에 사용됩니다. 즉, 세션을 만드는 명령에 New-PSSession, Enter-PSSession 또는 Invoke-Command cmdlet의 ConfigurationName 매개 변수가 포함되지 않은 경우에 사용됩니다.

기본 세션 구성에 대한 보안 설명자를 사용하면 로컬 컴퓨터에서 Administrators 그룹의 구성원만 해당 구성을 사용할 수 있습니다. 따라서 기본 설정을 변경하지 않으면 Administrators 그룹의 구성원만 원격으로 컴퓨터에 연결할 수 있습니다.

$PSSessionConfigurationName 기본 설정 변수를 사용하여 기본 세션 구성을 변경할 수 있습니다. 자세한 내용은 about_preference_variables를 참조하세요.

로컬 컴퓨터에서 세션 구성 보기

로컬 컴퓨터에서 세션 구성을 가져오려면 Get-PSSessionConfiguration cmdlet을 사용합니다.

예를 들어 다음을 입력합니다.

        PS C:\> Get-PSSessionConfiguration | Format-List -Property Name, Permission

        Name       : microsoft.powershell
        Permission : BUILTIN\Administrators AccessAllowed

        Name       : microsoft.powershell.workflow
        Permission : BUILTIN\Administrators AccessAllowed

        Name       : microsoft.powershell32
        Permission : BUILTIN\Administrators AccessAllowed

Windows PowerShell 3.0에서는 세션 구성 개체가 확장되어 세션 구성 파일을 사용하여 구성된 세션 구성의 속성을 표시합니다.

예를 들어 세션 구성 개체의 모든 속성을 보려면 다음을 입력합니다.

        PS C:\> Get-PSSessionConfiguration | Format-List -Property *

또한 Windows PowerShell에서 WSMan 공급자를 사용하여 세션 구성을 볼 수 있습니다. WSMan 공급자는 세션에 WSMAN: 드라이브를 만듭니다.

WSMAN: 드라이브에서 세션 구성은 Plugin 노드에 있습니다. 모든 세션 구성은 Plugin 노드에 있지만 Plugin 노드에는 세션 구성이 아닌 항목이 있습니다.

예를 들어 로컬 컴퓨터에서 세션 구성을 보려면 다음을 입력합니다. 여기에 하위 섹션 본문을 삽입합니다.

         PS C:\> dir wsman:\localhost\plugin\microsoft*
      
            WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

         Type            Keys                                Name
         ----            ----                                ----
         Container       {Name=microsoft.powershell}         microsoft.powershell
         Container       {Name=microsoft.powershell.workf... microsoft.powershell.workflow
         Container       {Name=microsoft.powershell32}       microsoft.powershell32

원격 컴퓨터에서 세션 구성 보기

원격 컴퓨터에서 세션 구성을 보려면 Connect-WSMan cmdlet을 사용하여 원격 컴퓨터에 대한 메모를 로컬 컴퓨터의 WSMAN: 드라이브에 추가한 다음 WSMAN: 드라이브를 사용하여 세션 구성을 봅니다.

예를 들어 다음 명령은 Server01 원격 컴퓨터에 대한 노드를 로컬 컴퓨터의 WSMAN: 드라이브에 추가합니다.

        PS C:\> Connect-WSMan server01.corp.fabrikam.com

명령이 완료되면 Server01 컴퓨터에 대한 노드로 이동하여 세션 구성을 볼 수 있습니다.

예를 들면 다음과 같습니다.

        PS C:\> cd wsman:
        
        PS WSMan:\> dir 

        ComputerName                                  Type
        ------------                                  ----
        localhost                                     Container
        server01.corp.fabrikam.com                    Container

        PS WSMan:\> dir server01*\plugin\*


               WSManConfig: Microsoft.WSMan.Management\WSMan::server01.corp.fabrikam.com\Plugin


        Type            Keys                                Name
        ----            ----                                ----
        Container       {Name=microsoft.powershell}         microsoft.powershell
        Container       {Name=microsoft.powershell.workf... microsoft.powershell.workflow
        Container       {Name=microsoft.powershell32}       microsoft.powershell32

세션 구성의 보안 설명자 변경

Windows Server 2012 및 최신 버전의 Windows Server에서는 기본적으로 기본 제공 세션 구성이 원격 사용자에 대해 사용하도록 설정되어 있습니다. 지원되는 다른 Windows 버전에서는 세션 구성의 보안 설명자를 변경하여 원격 액세스를 허용해야 합니다.

컴퓨터에서 세션 구성에 대한 원격 액세스를 사용하도록 설정하려면 Enable-PSRemoting cmdlet을 사용합니다. 여기에 하위 섹션 본문을 삽입합니다.

또한 기본적으로 컴퓨터에서 Administrators 그룹의 구성원만 기본 세션 구성에 대한 Execute 권한을 갖지만 기본 세션 구성 및 직접 만든 모든 세션 구성에서 보안 설명자를 변경할 수 있습니다.

다른 사용자에게 원격으로 컴퓨터에 연결할 수 있는 권한을 제공하려면 Set-PSSessionConfiguration cmdlet을 사용하여 해당 사용자에 대한 "Execute" 권한을 Microsoft.PowerShell 및 Microsoft.PowerShell32 세션 구성의 보안 설명자에 추가합니다.

예를 들어 다음 명령은 Microsoft.PowerShell 기본 세션 구성에 대한 보안 설명자를 변경할 수 있는 속성 페이지를 엽니다.

        PS C:\> Set-PSSessionConfiguration -name Microsoft.PowerShell -ShowSecurityDescriptorUI

컴퓨터의 모든 세션 구성에 대한 사용 권한을 모든 사용자에게 거부하려면 Disable-PSSessionConfiguration cmdlet을 사용합니다. 예를 들어 다음 명령은 컴퓨터에서 기본 세션 구성을 사용하지 않도록 설정합니다.

        PS C:\> Disable-PSSessionConfiguration -Name Microsoft.PowerShell

원격 사용자는 컴퓨터에 연결할 수 없도록 하지만 로컬 사용자는 연결할 수 있도록 허용하려면 Disable-PSRemoting cmdlet을 사용합니다. Disable-PSRemoting은 "Network_Deny_All" 항목을 컴퓨터의 모든 세션 구성에 추가합니다.

        PS C:\> Disable-PSRemoting

원격 사용자가 컴퓨터에서 모든 세션 구성을 사용할 수 있도록 허용하려면 Enable-PSRemoting 또는 Enable-PSSessionConfiguration cmdlet을 사용합니다. 예를 들어 다음 명령은 기본 제공 세션 구성에 대한 원격 액세스를 사용하도록 설정합니다.

        PS C:\> Enable-PSSessionConfiguration -name Microsoft.Power*

세션 구성의 보안 설명자에서 다른 항목을 변경하려면 Set-PSSessionConfiguration cmdlet을 사용합니다. SecurityDescriptorSDDL 매개 변수를 사용하여 SDDL 문자열 값을 제출합니다. ShowSecurityDescriptorUI 매개 변수를 사용하여 새 SDDL을 만들 수 있도록 하는 사용자 인터페이스 속성 시트를 표시합니다.

예를 들면 다음과 같습니다.

        PS C:\> Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUI

새 세션 구성 만들기

로컬 컴퓨터에서 새 세션 구성을 만들려면 Register-PSSessionConfiguration cmdlet을 사용합니다. 새 세션 구성을 정의하려면 C# 어셈블리, Window PowerShell 스크립트 및 Register-PSSessionConfiguration cmdlet의 매개 변수를 사용할 수 있습니다.

예를 들어 다음 명령은 원격 명령에서 받은 데이터를 20MB로 제한한다는 점을 제외하고 Microsoft.PowerShell 세션 구성과 동일한 세션 구성을 만듭니다. 을 만듭니다. 기본값은 50MB입니다. 여기에 하위 섹션 본문을 삽입합니다.

        PS C:\> Register-PSSessionConfiguration -Name NewConfig --MaximumReceivedDataSizePerCommandMB                    20

세션 구성을 만드는 경우 다른 세션 구성 cmdlet을 사용하여 세션 구성을 관리할 수 있으며, 이 세션 구성은 WSMAN: 드라이브에 나타납니다.

자세한 내용은 Register-PSSessionConfiguration을 참조하세요.

세션 구성 제거

로컬 컴퓨터에서 세션 구성을 제거하려면 Unregister-PSSessionConfiguration cmdlet을 사용합니다. 예를 들어 다음 명령은 컴퓨터에서 NewConfig 세션 구성을 제거합니다.

        PS C:\> Unregister-PSSessionConfiguration -Name NewConfig

자세한 내용은 Unregister-PSSessionConfiguration을 참조하세요.

세션 구성 복원

실수로 삭제된(등록되지 않은) 기본 세션 구성을 복원하려면 Enable-PSRemoting cmdlet을 사용합니다.

Enable-PSRemoting cmdlet은 컴퓨터에 없는 모든 기본 세션 구성을 다시 만들며, 기존 세션 구성의 속성 값을 덮어쓰거나 변경하지 않습니다.

기본 세션 구성의 원래 속성 값을 복원하려면 Unregister-PSSessionConfiguration을 사용하여 세션 구성을 삭제한 다음 Enable-PSRemoting cmdlet을 사용하여 다시 만듭니다.

세션 구성 선택

세션에 대한 특정 세션 구성을 선택하려면 New-PSSession, Enter-PSSession 또는 Invoke-Command의 ConfigurationName 매개 변수를 사용합니다.

예를 들어 이 명령은 New-PSSession cmdlet을 사용하여 Server01 컴퓨터에서 PSSession을 시작합니다. 이 명령은 ConfigurationName 매개 변수를 사용하여 Server01 컴퓨터에서 WithProfile 구성을 선택합니다.

        PS C:\> New-PSSession -ComputerName Server01 -ConfigurationName WithProfile

이 명령은 현재 사용자에게 WithProfile 세션 구성을 사용할 수 있는 권한이 있거나 필요한 사용 권한이 있는 사용자의 자격 증명을 제공할 수 있는 경우에만 성공합니다.

또한 $PSSessionConfigurationName 기본 설정 변수를 사용하여 컴퓨터에서 기본 세션 구성을 변경할 수 있습니다. $PSSessionConfigurationName 기본 설정 변수에 대한 자세한 내용은 about_Preference_Variables를 참조하세요.

키워드

about_Endpoints

about_SessionConfigurations

참고 항목

about_Preference_Variables

about_PSSession

about_Remote

about_Session_Configuration_Files

New-PSSession

Disable-PSSessionConfiguration

Enable-PSSessionConfiguration

Get-PSSessionConfiguration

New-PSSessionConfigurationFile

Register-PSSessionConfiguration

Set-PSSessionConfiguration

Test-PSSessionConfigurationFile

Unregister-PSSessionConfiguration