Register-PSSessionConfiguration

새 세션 구성을 만들어 등록합니다.

구문

Register-PSSessionConfiguration [-AssemblyName] <string> [-ConfigurationTypeName] <string> [-ApplicationBase <string>] [-Name] <string> [-Force] [-MaximumReceivedDataSizePerCommandMB <double>] [-MaximumReceivedObjectSizeMB <double>] [-NoServiceRestart] [-ProcessorArchitecture <string>] [-SecurityDescriptorSDDL <string>] [-ShowSecurityDescriptorUI] [-StartupScript <string>] [-ThreadApartmentState {<STA> | <MTA> | <Unknown>}] [-ThreadOptions {<Default> | <UseNewThread> | <ReuseThread> | <UseCurrentThread>}] [-Confirm] [-WhatIf] [<CommonParameters>]

설명

Register-PSSessionConfiguration cmdlet은 로컬 컴퓨터에서 새 세션 구성을 만들고 등록합니다. 이 cmdlet은 시스템 관리자가 사용자에 대한 사용자 지정된 세션 구성을 관리하는 데 사용하도록 설계된 고급 cmdlet입니다.

모든 Windows PowerShell 원격 세션은 세션 구성을 사용합니다. 사용자는 컴퓨터에 연결하는 세션을 만드는 경우 구성을 선택하거나 Windows PowerShell 원격을 사용하도록 설정할 때 등록된 기본 구성을 사용합니다. 또한 현재 세션에서 만든 세션에 대한 기본 구성을 지정하는 $PSSessionConfigurationName 기본 설정 변수를 설정할 수 있습니다.

세션 구성은 세션에 대한 환경을 구성합니다. 새 구성 클래스를 구현하는 어셈블리를 사용하고 세션에서 실행되는 스크립트를 사용하여 구성을 정의할 수 있습니다. 구성은 세션에서 사용 가능한 명령을 결정할 수 있으며, 세션이 단일 개체나 명령에서 원격으로 수신할 수 있는 데이터 양을 제한하는 설정과 같이 컴퓨터를 보호하는 설정을 포함할 수 있습니다. 구성을 사용하는 데 필요한 사용 권한을 결정하는 보안 설명자도 지정할 수 있습니다.

매개 변수

-ApplicationBase <string>

AssemblyName 매개 변수의 값에 지정되는 어셈블리 파일(*.dll)의 경로를 지정합니다. AssemblyName 매개 변수의 값에 경로가 포함되지 않는 경우 이 매개 변수를 사용하십시오. 기본값은 현재 디렉터리입니다.

필수 여부

false

위치

named

기본값

현재 디렉터리

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-AssemblyName <string>

구성 유형이 정의된 어셈블리 파일(*.dll)의 이름을 지정합니다. 이 매개 변수나 ApplicationBase 매개 변수의 값에 .dll 경로를 지정할 수 있습니다.

이 매개 변수는 ConfigurationTypeName 매개 변수가 지정된 경우에 필요합니다.

필수 여부

true

위치

2

기본값

없음

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-ConfigurationTypeName <string>

이 구성에 사용되는 Microsoft .NET Framework 유형의 정규화된 이름을 지정합니다. 지정한 유형이 System.Management.Automation.Remoting.PSSessionConfiguration 클래스를 구현해야 합니다.

구성 유형을 구현하는 어셈블리 파일(.dll)을 지정하려면 AssemblyName 및 AssemblyBase 매개 변수를 사용합니다.

유형을 만들면 cmdlet의 특정 매개 변수를 표시 또는 숨기거나 사용자가 재정의할 수 없는 데이터 크기 및 개체 크기 제한을 설정하는 등 세션 구성의 추가 측면을 제어할 수 있습니다.

이 매개 변수를 생략하면 DefaultRemotePowerShellConfiguration 클래스가 세션 구성에 사용됩니다.

필수 여부

true

위치

3

기본값

System.Management.Automation.Remoting.PSSessionConfiguration

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Force

모든 사용자 확인 메시지를 표시하지 않고 WinRM 서비스를 다시 시작합니다. 서비스를 다시 시작하면 구성 변경 내용이 적용됩니다.

다시 시작하지 않고 다시 시작에 대한 확인 메시지를 표시하지 않으려면 NoServiceRestart 매개 변수를 사용합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-MaximumReceivedDataSizePerCommandMB <double>

단일 원격 명령으로 이 컴퓨터에 전송될 수 있는 데이터 양을 제한합니다. 데이터 크기를 MB 단위로 입력합니다. 기본값은 50MB입니다.

ConfigurationTypeName 매개 변수에 지정된 구성 유형에 데이터 크기 제한이 정의되어 있는 경우 구성 유형의 제한이 사용되고 이 매개 변수의 값은 무시됩니다.

필수 여부

false

위치

named

기본값

50

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-MaximumReceivedObjectSizeMB <double>

단일 개체로 이 컴퓨터에 전송될 수 있는 데이터 양을 제한합니다. 데이터 크기를 MB 단위로 입력합니다. 기본값은 10MB입니다.

ConfigurationTypeName 매개 변수에 지정된 구성 유형에 개체 크기 제한이 정의되어 있는 경우 구성 유형의 제한이 사용되고 이 매개 변수의 값은 무시됩니다.

필수 여부

false

위치

named

기본값

10

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Name <string>

세션 구성의 이름을 지정합니다. 이 매개 변수는 필수 사항입니다.

필수 여부

true

위치

1

기본값

없음

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-NoServiceRestart

WinRM 서비스를 다시 시작하지 않고, 서비스 다시 시작에 대한 확인 메시지를 표시하지 않습니다.

Register-PSSessionConfiguration 명령을 입력하면 기본적으로 WinRM 서비스를 다시 시작하여 새 세션 구성을 적용할지를 묻는 메시지가 표시됩니다. WinRM 서비스를 다시 시작해야 새 세션 구성이 적용됩니다.

확인 메시지를 표시하지 않고 WinRM 서비스를 다시 시작하려면 Force 매개 변수를 사용합니다. WinRM 서비스를 수동으로 다시 시작하려면 Restart-Service cmdlet을 사용합니다.

필수 여부

false

위치

named

기본값

False

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-ProcessorArchitecture <string>

구성에 대한 프로세서 아키텍처를 지정합니다. 이 값은 구성이 사용될 때 Windows PowerShell을 호스팅하는 프로세스의 32비트 버전을 시작할지 또는 64비트 버전을 시작할지를 결정합니다. 유효한 값은 x86, AMD64 및 IA64입니다.

기본값은 세션 구성을 호스팅하는 컴퓨터의 프로세서 아키텍처에 의해 결정됩니다.

필수 여부

false

위치

named

기본값

호스팅 컴퓨터의 프로세서 아키텍처

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-SecurityDescriptorSDDL <string>

구성에 대한 SDDL(Security Descriptor Definition Language) 문자열을 지정합니다.

이 문자열은 새 세션 구성을 사용하는 데 필요한 권한을 결정합니다. 세션에서 세션 구성을 사용하려면 최소한 구성에 대한 "실행(호출)" 권한이 사용자에게 있어야 합니다.

보안 설명자가 복잡한 경우 이 매개 변수 대신 ShowSecurityDescriptorUI 매개 변수를 사용하는 것도 고려하십시오. 같은 명령에서 두 매개 변수를 모두 사용할 수는 없습니다.

이 매개 변수를 생략하면 WinRM 서비스에 대한 루트 SDDL이 이 구성에 사용됩니다. 루트 SDDL을 보거나 변경하려면 WS-Management 공급자를 사용하십시오. 예를 들면 "Get-Item wsman:\localhost\service\rootSDDL"과 같습니다. WS-Management 공급자에 대한 자세한 내용을 보려면 "Get-Help wsman"을 입력하십시오.

필수 여부

false

위치

named

기본값

루트 SDDL의 값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-ShowSecurityDescriptorUI

세션 구성에 대한 SDDL을 만드는 데 도움이 되는 속성 시트를 표시합니다. Register-PSSessionConfiguration 명령을 입력한 후 WinRM 서비스를 다시 시작하면 속성 시트가 나타납니다.

구성에 대한 사용 권한을 설정하는 경우 세션에서 세션 구성을 사용하려면 최소한 "실행(호출)" 권한이 사용자에게 있어야 함을 명심하십시오.

같은 명령에서 SecurityDescriptorSDDL 매개 변수와 이 매개 변수를 함께 사용할 수는 없습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-StartupScript <string>

Windows PowerShell 스크립트에 대한 정규화된 경로를 지정합니다. 지정한 스크립트는 세션 구성을 사용하는 새 세션에서 실행됩니다.

스크립트를 사용하여 세션을 추가로 구성할 수 있습니다. 스크립트에서 오류(종료되지 않는 오류 포함)가 생성되는 경우 세션이 만들어지지 않으며 사용자의 New-PSSession 명령이 실패합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-ThreadApartmentState <ApartmentState>

세션에 있는 스레드의 아파트 상태를 결정합니다. 유효한 값은 STA, MTA 및 Unknown입니다. 기본값은 Unknown입니다.

필수 여부

false

위치

named

기본값

Unknown

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-ThreadOptions <PSThreadOptions>

세션에서 명령을 실행할 때 스레드가 만들어져 사용되는 방법을 정의합니다. 유효한 값은 Default, ReuseThread, UseCurrentThread 및 UseNewThread입니다. 기본값은 UseCurrentThread입니다.

필수 여부

false

위치

named

기본값

UseCurrentThread

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Confirm

명령을 실행하기 전에 확인 메시지를 표시합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-WhatIf

명령을 실제로 실행하지 않고도 명령이 실행될 경우 발생할 수 있는 현상을 설명합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

없음

입력을 이 cmdlet으로 파이프할 수 없습니다.

출력

Microsoft.WSMan.Management.WSManConfigContainerElement

참고

Windows Vista 및 Windows Server 2008 이상 버전에서 이 cmdlet을 실행하려면 "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 시작해야 합니다.

이 cmdlet은 WS-Management(Web Services for Management) 플러그인 구성을 나타내는 XML을 생성하여 WS-Management로 보내고, WS-Management는 이 플러그인을 로컬 컴퓨터("new-item wsman:\localhost\plugin")에 등록합니다.

예 1

C:\PS>register-pssessionConfiguration -name NewShell -applicationBase c:\MyShells\ -assemblyName MyShell.dll -configurationTypeName MyClass

설명
-----------
이 명령은 NewShell 세션 구성을 등록하며 ApplicationName 및 ApplicationBase 매개 변수를 사용하여 MyShell.dll 파일의 위치를 지정합니다. 이 파일은 세션 구성의 cmdlet과 공급자를 지정합니다. 또한 이 명령은 ConfigurationTypeName 매개 변수를 사용하여 세션을 추가로 구성하는 새 클래스를 지정합니다.

이 구성을 사용하기 위해 사용자는 "new-pssession -configurationname newshell"을 입력합니다.





예 2

C:\PS>register-pssessionConfiguration -name MaintenanceShell -startupScript c:\ps-test\Maintenance.ps1

설명
-----------
이 명령은 MaintenanceShell 구성을 로컬 컴퓨터에 등록합니다. 또한 StartupScript 매개 변수를 사용하여 Maintenance.ps1 스크립트를 지정합니다.

사용자가 New-PSSession 명령을 사용하고 MaintenanceShell 구성을 선택하면 새 세션에서 Maintenance.ps1 스크립트가 실행됩니다. 스크립트는 모듈 가져오기, Windows PowerShell 스냅인 추가, 세션에 대한 실행 정책 설정 등 세션을 구성할 수 있습니다. 스크립트에서 오류(종료되지 않는 오류 포함)가 생성되는 경우 New-PSSession 명령이 실패합니다.





예 3

C:\PS>$sddl = "O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;FA;SA;GWGX;;WD)"

C:\PS> register-pssessionconfiguration -name AdminShell -securityDescriptorSDDL $sddl -maximumReceivedObjectSizeMB 20 -startupScript c:\scripts\AdminShell.ps1

설명
-----------
이 예에서는 AdminShell 세션 구성을 등록합니다. 

첫 번째 명령은 사용자 지정 SDDL을 $sddl 변수에 저장합니다. 

두 번째 명령은 새 셸을 등록합니다. 이 명령은 SecurityDescritorSDDL 매개 변수를 사용하여 $sddl 변수의 값에 SDDL을 지정하고 MaximumReceivedObjectSizeMB 매개 변수를 사용하여 개체 크기 제한을 늘립니다. 또한 StartupScript 매개 변수를 사용하여 세션을 구성하는 스크립트를 지정합니다.

SecurityDescriptorSDDL 매개 변수를 사용하는 대신 세션 구성에 대한 사용 권한을 설정할 때 사용 가능한 속성 시트를 표시하는 ShowSecurityDescriptorUI 매개 변수를 사용할 수 있습니다. 속성 시트에서 "확인"을 클릭하면 세션 구성에 대한 SDDL이 생성됩니다.





예 4

C:\PS>$s = register-pssessionConfiguration -name MaintenanceShell -startupScript c:\ps-test\Maintenance.ps1

C:\PS> $s

   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

Name                      Type                 Keys
----                      ----                 ----
MaintenanceShell          Container            {Name=MaintenanceShell}


C:\PS> $s.getType().fullname
TypeName: Microsoft.WSMan.Management.WSManConfigContainerElement


C:\PS> $s | format-list -property *

PSPath            : Microsoft.WSMan.Management\WSMan::localhost\Plugin\MaintenanceShell
PSParentPath      : Microsoft.WSMan.Management\WSMan::localhost\Plugin
PSChildName       : MaintenanceShell
PSDrive           : WSMan
PSProvider        : Microsoft.WSMan.Management\WSMan
PSIsContainer     : True
Keys              : {Name=MaintenanceShell}
Name              : MaintenanceShell
TypeNameOfElement : Container


C:\PS> dir wsman:\localhost\plugin

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

설명
-----------
이 예에서는 Register-PSSessionConfiguration 명령에서 WSManConfigContainerElement가 반환되는 것을 보여 줍니다. 또한 WSMan: 드라이브에서 컨테이너 요소를 찾는 방법을 보여 줍니다.

첫 번째 명령은 Register-PSSessionConfiguration cmdlet을 사용하여 MaintenanceShell 세션 구성을 등록합니다. 또한 cmdlet이 반환하는 개체를 $s 변수에 저장합니다.

두 번째 명령은 $s 변수의 내용을 표시합니다. 

세 번째 명령은 GetType 메서드와 해당 FullName 속성을 사용하여 Register-PSSessionConfiguration에서 반환되는 개체의 유형 이름을 표시합니다.

네 번째 명령은 Format-List cmdlet을 사용하여 Register-PSSessionConfiguration에서 반환되는 개체의 모든 속성을 목록으로 표시합니다. PSPath 속성은 개체가 WSMan: 드라이브의 디렉터리에 저장됨을 보여 줍니다.

다섯 번째 명령은 Get-ChildItem cmdlet을 사용하여 WSMan:\LocalHost\PlugIn 경로의 항목을 표시합니다. 이러한 항목에는 새로운 MaintenanceShell 구성 및 Windows PowerShell과 함께 제공되는 두 개의 기본 구성이 포함됩니다.





예 5

C:\PS>register-pssessionconfiguration -name WithProfile -startupScript add-profile.ps1

# Add-Profile.ps1

. c:\users\admin01\documents\windowspowershell\profile.ps1

설명
-----------
이 명령은 로컬 컴퓨터에서 WithProfile 세션 구성을 만들고 등록합니다. 또한 StartupScript 매개 변수를 사용하여 세션 구성을 사용하는 모든 세션에서 지정된 스크립트를 실행하도록 Windows PowerShell에 지정합니다.

지정된 스크립트인 Add-Profile.ps1의 내용도 표시됩니다. 스크립트에는 도트 소싱을 사용하여 현재 세션 범위에서 사용자의 CurrentUserAllHosts 프로필을 실행하는 단일 명령이 포함되어 있습니다.

프로필에 대한 자세한 내용은 about_Profiles를 참조하십시오. 도트 소싱에 대한 자세한 내용은 about_Scopes를 참조하십시오.





참고 항목

개념

about_Session_Configurations
Disable-PSSessionConfiguration
Enable-PSSessionConfiguration
Get-PSSessionConfiguration
Set-PSSessionConfiguration
Unregister-PSSessionConfiguration
WSMan Provider