about_Session_Configurations

간단한 설명

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

자세한 설명

"엔드포인트"라고도 하는 세션 구성은 원격 또는 로컬 사용자가 로컬 컴퓨터의 PowerShell에 연결할 때 생성되는 PowerShell 세션에 대한 환경을 정의하는 로컬 컴퓨터의 설정 그룹입니다.

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

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

PowerShell 3.0부터 세션 구성 파일을 사용하여 세션 구성의 요소를 정의할 수 있습니다. 이 기능을 사용하면 코드를 작성하지 않고도 세션을 쉽게 사용자 지정하고 세션 구성의 속성을 검색할 수 있습니다. 세션 구성 파일을 만들려면 New-PSSessionConfiguration cmdlet을 사용합니다. 세션 구성 파일에 대한 자세한 내용은 about_Session_Configuration_Files 참조하세요.

세션 구성은 WSMAN 기반 PowerShell 원격의 기능입니다. 또는 cmdlet을 New-PSSessionInvoke-CommandEnter-PSSession 사용하여 원격 Windows 컴퓨터에 연결할 때만 사용됩니다.

Windows 컴퓨터에서 세션 구성을 관리하려면 관리자 권한으로 실행 옵션을 사용하여 PowerShell을 시작합니다.

세션 구성 정보

모든 PowerShell 세션은 세션 구성을 사용합니다. 여기에는 New-PSSession 또는 Enter-PSSession cmdlet을 사용하여 만든 영구 세션과 Invoke-Command와 같은 WS 관리 기반 원격 기술을 사용하는 cmdlet의 ComputerName 매개 변수를 사용할 때 PowerShell에서 만드는 임시 세션이 포함됩니다.

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

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

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

기본 제공 세션 구성

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

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

기본 세션 구성에 대한 보안 설명자는 로컬 컴퓨터의 관리istrators 그룹의 멤버만 사용할 수 있도록 허용합니다. 따라서 기본 설정을 변경하지 않는 한 관리istrators 그룹의 멤버만 원격으로 컴퓨터에 연결할 수 있습니다.

$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

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

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

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

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

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

예를 들어 로컬 컴퓨터에서 세션 구성을 보려면 다음을 입력합니다.

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.wor... microsoft.powershell.workflow
Container  {Name=microsoft.powershell32}     microsoft.powershell32

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

원격 컴퓨터에서 세션 구성을 보려면 커넥트-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\Pl
ugin

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

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

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

컴퓨터의 세션 구성에 대한 원격 액세스를 사용하도록 설정하려면 Enable-PSRemoting cmdlet을 사용합니다. 이 cmdlet은 두 개의 세션 구성을 만듭니다.

  • 이름이 "PowerShell" + "현재 PowerShell 버전"으로 정의됨
  • 이름이 "PowerShell.6"이고, 특정 PowerShell 버전에 적용되지 않습니다.

또한 기본적으로 컴퓨터의 관리istrators 그룹의 멤버만 기본 세션 구성에 대한 Execute 권한을 가지고 있지만 기본 세션 구성 및 사용자가 만든 모든 세션 구성에서 보안 설명자를 변경할 수 있습니다.

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

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

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을 만드는 데 도움이 되는 사용자 인터페이스 속성 시트를 표시합니다.

예시:

Set-PSSessionConfiguration -Name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

새 세션 구성 만들기

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

예를 들어 다음 명령은 원격 명령에서 받은 데이터를 20MB(메가바이트)로 제한한다는 점을 제외하고 Microsoft.PowerShell 세션 구성과 동일한 세션 구성을 만듭니다. 기본값은 50MB입니다.

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

참고 항목