Share via


New-PSSessionConfigurationFile

세션 구성을 정의하는 파일을 만듭니다.

Syntax

New-PSSessionConfigurationFile
   [-Path] <String>
   [-SchemaVersion <Version>]
   [-Guid <Guid>]
   [-Author <String>]
   [-Description <String>]
   [-CompanyName <String>]
   [-Copyright <String>]
   [-SessionType <SessionType>]
   [-TranscriptDirectory <String>]
   [-RunAsVirtualAccount]
   [-RunAsVirtualAccountGroups <String[]>]
   [-MountUserDrive]
   [-UserDriveMaximumSize <Int64>]
   [-GroupManagedServiceAccount <String>]
   [-ScriptsToProcess <String[]>]
   [-RoleDefinitions <IDictionary>]
   [-RequiredGroups <IDictionary>]
   [-LanguageMode <PSLanguageMode>]
   [-ExecutionPolicy <ExecutionPolicy>]
   [-PowerShellVersion <Version>]
   [-ModulesToImport <Object[]>]
   [-VisibleAliases <String[]>]
   [-VisibleCmdlets <Object[]>]
   [-VisibleFunctions <Object[]>]
   [-VisibleExternalCommands <String[]>]
   [-VisibleProviders <String[]>]
   [-AliasDefinitions <IDictionary[]>]
   [-FunctionDefinitions <IDictionary[]>]
   [-VariableDefinitions <Object>]
   [-EnvironmentVariables <IDictionary>]
   [-TypesToProcess <String[]>]
   [-FormatsToProcess <String[]>]
   [-AssembliesToLoad <String[]>]
   [-Full]
   [<CommonParameters>]

Description

cmdlet은 New-PSSessionConfigurationFile 세션 구성을 사용하여 만든 세션의 환경 및 세션 구성을 정의하는 설정 파일을 만듭니다. 세션 구성에서 파일을 사용하려면 or Set-PSSessionConfiguration cmdlet의 Path 매개 변수를 Register-PSSessionConfiguration 사용합니다.

만드는 세션 구성 파일 New-PSSessionConfigurationFile 은 세션 구성 속성 및 값의 해시 테이블을 포함하는 사람이 읽을 수 있는 텍스트 파일입니다. 파일 확장명은 .pssc 파일 이름입니다.

Path 매개 변수를 New-PSSessionConfigurationFile 제외한 모든 매개 변수는 선택 사항입니다. 매개 변수를 생략하면 매개 변수 설명에 명시된 경우를 제외하고 세션 구성 파일의 해당 키가 주석 처리됩니다.

엔드포인트라고도 하는 세션 구성은 컴퓨터에 연결하는 PowerShell 세션(PSSessions)에 대한 환경을 정의하는 로컬 컴퓨터의 설정 컬렉션입니다. 모든 PSSessions 는 세션 구성을 사용합니다. 특정 세션 구성을 지정하려면 cmdlet과 같은 세션을 만드는 cmdlet의 ConfigurationName 매개 변수를 New-PSSession 사용합니다.

세션 구성 파일을 사용하면 복잡한 스크립트 또는 코드 어셈블리 없이 세션 구성을 쉽게 정의할 수 있습니다. 파일의 설정은 선택적 시작 스크립트 및 세션 구성의 모든 어셈블리와 함께 사용됩니다.

세션 구성 및 세션 구성 파일에 대한 자세한 내용은 about_Session_Configurationsabout_Session_Configuration_Files 참조하세요.

이 cmdlet은 PowerShell 3.0에서 도입되었습니다. PowerShell 6.0부터 이 cmdlet은 Windows 플랫폼에서만 사용할 수 있었습니다. PowerShell 7.3은 지원되는 모든 플랫폼에서 이 cmdlet을 사용할 수 있도록 했습니다.

예제

예제 1: NoLanguage 세션 만들기 및 사용

이 예제에서는 언어가 없는 세션을 사용하는 방법과 그 효과를 보여 줍니다.

단계는 다음과 같습니다.

  1. 새 구성 파일을 만듭니다.
  2. 구성을 등록합니다.
  3. 구성을 사용하는 새 세션을 만듭니다.
  4. 새 세션에서 명령을 실행합니다.

이 예제에서 명령을 실행하려면 관리자 권한으로 실행 옵션을 사용하여 PowerShell을 시작합니다. 이 옵션은 cmdlet을 Register-PSSessionConfiguration 실행하는 데 필요합니다.

New-PSSessionConfigurationFile -Path .\NoLanguage.pssc -LanguageMode NoLanguage
Register-PSSessionConfiguration -Path .\NoLanguage.pssc -Name NoLanguage -Force
$NoLanguageSession = New-PSSession -ComputerName Srv01 -ConfigurationName NoLanguage
Invoke-Command -Session $NoLanguageSession -ScriptBlock {
  if ((Get-Date) -lt '1January2099') {'Before'} else {'After'}
}

The syntax is not supported by this runspace. This might be because it is in no-language mode.
    + CategoryInfo          : ParserError: (if ((Get-Date) ...') {'Before'}  :String) [], ParseException
    + FullyQualifiedErrorId : ScriptsNotAllowed
    + PSComputerName        : localhost

이 예제에서는 LanguageModeInvoke-CommandNoLanguage로 설정되었기 때문에 실패합니다.

예제 2: RestrictedLanguage 세션 만들기 및 사용

이 예제에서는 언어가 없는 세션을 사용하는 방법과 그 효과를 보여 줍니다.

단계는 다음과 같습니다.

  1. 새 구성 파일을 만듭니다.
  2. 구성을 등록합니다.
  3. 구성을 사용하는 새 세션을 만듭니다.
  4. 새 세션에서 명령을 실행합니다.

이 예제에서 명령을 실행하려면 관리자 권한으로 실행 옵션을 사용하여 PowerShell을 시작합니다. 이 옵션은 cmdlet을 Register-PSSessionConfiguration 실행하는 데 필요합니다.

New-PSSessionConfigurationFile -Path .\NoLanguage.pssc -LanguageMode RestrictedLanguage
Register-PSSessionConfiguration -Path .\NoLanguage.pssc -Name RestrictedLanguage -Force
$RestrictedSession = New-PSSession -ComputerName Srv01 -ConfigurationName RestrictedLanguage
Invoke-Command -Session $RestrictedSession -ScriptBlock {
  if ((Get-Date) -lt '1January2099') {'Before'} else {'After'}
}

Before

이 예제에서는 Invoke-Command LanguageMode가 RestrictedLanguage로 설정되었기 때문에 성공합니다.

예제 3: 세션 구성 파일 변경

이 예제에서는 "ITTasks"라는 기존 세션에서 사용되는 세션 구성 파일을 변경하는 방법을 보여 줍니다. 이전에는 이러한 세션에 핵심 모듈과 내부 ITTasks 모듈만 있었습니다. 관리자는 ITTasks 세션 구성을 사용하여 만든 세션에 PSScheduledJob 모듈을 추가하려고 합니다.

New-PSSessionConfigurationFile -Path .\New-ITTasks.pssc -ModulesToImport Microsoft*, ITTasks, PSScheduledJob
Set-PSSessionConfiguration -Name ITTasks -Path .\New-ITTasks.pssc

New-PSSessionConfigurationFile 필요한 모듈을 가져오는 세션 구성 파일을 만드는 cmdlet입니다. cmdlet은 Set-PSSessionConfiguration 현재 구성 파일을 새 구성 파일로 바꿉니다. 이 새 구성은 변경 후 생성된 새 세션에만 영향을 줍니다. 기존 "ITTasks" 세션은 영향을 받지 않습니다.

예제 4: 세션 구성 파일 편집

이 예제에서는 구성 파일의 활성 세션 구성 복사본을 편집하여 세션 구성을 변경하는 방법을 보여줍니다. 구성 파일의 세션 구성 복사본을 수정하려면 파일에 대한 모든 권한이 있어야 합니다. 이렇게 하려면 파일에 대한 사용 권한을 변경해야 할 수 있습니다.

이 시나리오에서는 활성 구성 파일을 편집하여 cmdlet에 Select-String 대한 새 별칭을 추가하려고 합니다.

아래 예제 코드는 다음 단계를 수행하여 이 변경을 수행합니다.

  1. ITConfig 세션에 대한 구성 파일 경로를 가져옵니다.
  2. 사용자는 다음과 같이 메모장.exe 사용하여 구성 파일을 편집하여 AliasDefinitions 값을 변경합니다AliasDefinitions = @(@{Name='slst';Value='Select-String'}).
  3. 업데이트된 구성 파일을 테스트합니다.
$ITConfig = Get-PSSessionConfiguration -Name ITConfig
notepad.exe $ITConfig.ConfigFilePath
Test-PSSessionConfigurationFile -Path $ITConfig.ConfigFilePath

True

자세한 정보 표시 매개 변수를 Test-PSSessionConfigurationFile 사용하여 검색된 오류를 표시합니다. 파일에서 오류가 검색되지 않으면 cmdlet이 반환 $True 됩니다.

예제 5: 샘플 구성 파일 만들기

이 예제에서는 모든 cmdlet 매개 변수를 사용하는 명령을 보여줍니다 New-PSSessionConfigurationFile . 각 매개 변수에 대한 올바른 입력 형식을 표시하기 위해 포함됩니다.

결과 SampleFile.pssc가 출력에 표시됩니다.

$configSettings = @{
    Path = '.\SampleFile.pssc'
    SchemaVersion = '1.0.0.0'
    Author = 'User01'
    Copyright = '(c) Fabrikam Corporation. All rights reserved.'
    CompanyName = 'Fabrikam Corporation'
    Description = 'This is a sample file.'
    ExecutionPolicy = 'AllSigned'
    PowerShellVersion = '3.0'
    LanguageMode = 'FullLanguage'
    SessionType = 'Default'
    EnvironmentVariables = @{TESTSHARE='\\Test2\Test'}
    ModulesToImport = @{ModuleName='PSScheduledJob'; ModuleVersion='1.0.0.0'; GUID='50cdb55f-5ab7-489f-9e94-4ec21ff51e59'},'PSDiagnostics'
    AssembliesToLoad = 'System.Web.Services','FSharp.Compiler.CodeDom.dll'
    TypesToProcess = 'Types1.ps1xml','Types2.ps1xml'
    FormatsToProcess = 'CustomFormats.ps1xml'
    ScriptsToProcess = 'Get-Inputs.ps1'
    AliasDefinitions = @{Name='hlp';Value='Get-Help';Description='Gets help.';Options='AllScope'},
        @{Name='Update';Value='Update-Help';Description='Updates help';Options='ReadOnly'}
    FunctionDefinitions = @{Name='Get-Function';ScriptBlock={Get-Command -CommandType Function};Options='ReadOnly'}
    VariableDefinitions = @{Name='WarningPreference';Value='SilentlyContinue'}
    VisibleAliases = 'c*','g*','i*','s*'
    VisibleCmdlets = 'Get*'
    VisibleFunctions = 'Get*'
    VisibleProviders = 'FileSystem','Function','Variable'
    RunAsVirtualAccount = $true
    RunAsVirtualAccountGroups = 'Backup Operators'
}
New-PSSessionConfigurationFile @configSettings
Get-Content SampleFile.pssc

@{

# Version number of the schema used for this document
SchemaVersion = '1.0.0.0'

# ID used to uniquely identify this document
GUID = '1caeff7f-27ca-4360-97cf-37846f594235'

# Author of this document
Author = 'User01'

# Description of the functionality provided by these settings
Description = 'This is a sample file.'

# Company associated with this document
CompanyName = 'Fabrikam Corporation'

# Copyright statement for this document
Copyright = '(c) Fabrikam Corporation. All rights reserved.'

# Session type defaults to apply for this session configuration. Can be 'RestrictedRemoteServer' (recommended), 'Empty', or 'Default'
SessionType = 'Default'

# Directory to place session transcripts for this session configuration
# TranscriptDirectory = 'C:\Transcripts\'

# Whether to run this session configuration as the machine's (virtual) administrator account
RunAsVirtualAccount = $true

# Groups associated with machine's (virtual) administrator account
RunAsVirtualAccountGroups = 'Backup Operators'

# Scripts to run when applied to a session
ScriptsToProcess = 'Get-Inputs.ps1'

# User roles (security groups), and the role capabilities that should be applied to them when applied to a session
# RoleDefinitions = @{ 'CONTOSO\SqlAdmins' = @{ RoleCapabilities = 'SqlAdministration' }; 'CONTOSO\SqlManaged' = @{ RoleCapabilityFiles = 'C:\RoleCapability\SqlManaged.psrc' }; 'CONTOSO\ServerMonitors' = @{ VisibleCmdlets = 'Get-Process' } }

# Language mode to apply when applied to a session. Can be 'NoLanguage' (recommended), 'RestrictedLanguage', 'ConstrainedLanguage', or 'FullLanguage'
LanguageMode = 'FullLanguage'

# Execution policy to apply when applied to a session
ExecutionPolicy = 'AllSigned'

# Version of the PowerShell engine to use when applied to a session
PowerShellVersion = '3.0'

# Modules to import when applied to a session
ModulesToImport = @{
    'GUID' = '50cdb55f-5ab7-489f-9e94-4ec21ff51e59'
    'ModuleName' = 'PSScheduledJob'
    'ModuleVersion' = '1.0.0.0' }, 'PSDiagnostics'

# Aliases to make visible when applied to a session
VisibleAliases = 'c*', 'g*', 'i*', 's*'

# Cmdlets to make visible when applied to a session
VisibleCmdlets = 'Get*'

# Functions to make visible when applied to a session
VisibleFunctions = 'Get*'

# Providers to make visible when applied to a session
VisibleProviders = 'FileSystem', 'Function', 'Variable'

# Aliases to be defined when applied to a session
AliasDefinitions = @{
    'Description' = 'Gets help.'
    'Name' = 'hlp'
    'Options' = 'AllScope'
    'Value' = 'Get-Help' }, @{
    'Description' = 'Updates help'
    'Name' = 'Update'
    'Options' = 'ReadOnly'
    'Value' = 'Update-Help' }

# Functions to define when applied to a session
FunctionDefinitions = @{
    'Name' = 'Get-Function'
    'Options' = 'ReadOnly'
    'ScriptBlock' = {Get-Command -CommandType Function} }

# Variables to define when applied to a session
VariableDefinitions = @{
    'Name' = 'WarningPreference'
    'Value' = 'SilentlyContinue' }

# Environment variables to define when applied to a session
EnvironmentVariables = @{
    'TESTSHARE' = '\\Test2\Test' }

# Type files (.ps1xml) to load when applied to a session
TypesToProcess = 'Types1.ps1xml', 'Types2.ps1xml'

# Format files (.ps1xml) to load when applied to a session
FormatsToProcess = 'CustomFormats.ps1xml'

# Assemblies to load when applied to a session
AssembliesToLoad = 'System.Web.Services', 'FSharp.Compiler.CodeDom.dll'

}

매개 변수

-AliasDefinitions

세션 구성을 사용하는 세션에 지정된 별칭을 추가합니다. 다음 키를 사용하여 해시 테이블을 입력합니다.

  • 이름 - 별칭의 이름입니다. 이 키는 필수입니다.
  • 값 - 별칭이 나타내는 명령입니다. 이 키는 필수입니다.
  • 설명 - 별칭을 설명하는 텍스트 문자열입니다. 이 키는 선택 사항입니다.
  • 옵션 - 별칭 옵션입니다. 이 키는 선택 사항입니다. 기본 값은 None입니다. 이 매개 변수에 허용되는 값은 None, ReadOnly, Constant, Private 또는 AllScope입니다.

예: @{Name='hlp';Value='Get-Help';Description='Gets help';Options='ReadOnly'}

Type:IDictionary[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AssembliesToLoad

세션 구성을 사용하는 세션에 로드할 어셈블리를 지정합니다.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Author

세션 구성 또는 구성 파일의 작성자를 지정합니다. 기본값은 현재 사용자입니다. 이 매개 변수 값은 세션 구성 파일에 표시되지만 세션 구성 개체의 속성이 아닙니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CompanyName

세션 구성 또는 구성 파일을 만든 회사를 지정합니다. 기본값은 Unknown입니다. 이 매개 변수 값은 세션 구성 파일에 표시되지만 세션 구성 개체의 속성이 아닙니다.

Type:String
Position:Named
Default value:Unknown
Required:False
Accept pipeline input:False
Accept wildcard characters:False

세션 구성 파일의 저작권을 지정합니다. 이 매개 변수 값은 세션 구성 파일에 표시되지만 세션 구성 개체의 속성이 아닙니다.

이 매개 변수를 생략하면 Author 매개 변수 New-PSSessionConfigurationFile 값을 사용하여 copyright 문을 생성합니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

세션 구성 또는 세션 구성 파일에 대한 설명을 지정합니다. 이 매개 변수 값은 세션 구성 파일에 표시되지만 세션 구성 개체의 속성이 아닙니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnvironmentVariables

세션에 환경 변수를 추가합니다. 키가 환경 변수 이름이고 값이 환경 변수 값인 해시 테이블을 입력합니다.

예: EnvironmentVariables=@{TestShare='\\Server01\TestShare'}

Type:IDictionary
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ExecutionPolicy

세션 구성을 사용하는 세션의 실행 정책을 지정합니다. 이 매개 변수를 생략하면 세션 구성 파일의 ExecutionPolicy 키 값이 제한됩니다. PowerShell의 실행 정책에 대한 자세한 내용은 about_Execution_Policies 참조하세요.

Type:ExecutionPolicy
Accepted values:Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FormatsToProcess

세션 구성을 사용하는 세션에서 실행되는 서식 파일(.ps1xml)을 지정합니다. 이 매개 변수의 값은 서식 파일의 전체 또는 절대 경로여야 합니다.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Full

이 작업에 세션 구성 파일에 가능한 모든 구성 속성이 포함되어 있음을 나타냅니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FunctionDefinitions

세션 구성을 사용하는 세션에 지정된 함수를 추가합니다. 다음 키를 사용하여 해시 테이블을 입력합니다.

  • 이름 - 함수의 이름입니다. 이 키는 필수입니다.
  • ScriptBlock - 함수 본문입니다. 스크립트 블록을 입력합니다. 이 키는 필수입니다.
  • 옵션 - 함수 옵션입니다. 이 키는 선택 사항입니다. 기본 값은 None입니다. 이 매개 변수에 허용되는 값은 None, ReadOnly, Constant, Private 또는 AllScope입니다.

예: @{Name='Get-PowerShellProcess';ScriptBlock={Get-Process PowerShell};Options='AllScope'}

Type:IDictionary[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GroupManagedServiceAccount

지정된 그룹 관리 서비스 계정의 컨텍스트에서 실행되도록 이 세션 구성을 사용하여 세션을 구성합니다. 세션이 성공적으로 생성되려면 이 세션 구성이 등록된 컴퓨터에 gMSA 암호를 요청할 수 있는 권한이 있어야 합니다. 이 필드는 RunAsVirtualAccount 매개 변수와 함께 사용할 수 없습니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Guid

세션 구성 파일에 대한 고유 식별자를 지정합니다. 이 매개 변수 New-PSSessionConfigurationFile 를 생략하면 파일에 대한 GUID가 생성됩니다. PowerShell에서 새 GUID를 만들려면 .를 입력합니다 New-Guid.

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LanguageMode

이 세션 구성을 사용하는 세션에서 허용되는 PowerShell 언어의 요소를 결정합니다. 이 매개 변수를 사용하여 특정 사용자가 컴퓨터에서 실행할 수 있는 명령을 제한할 수 있습니다.

이 매개 변수에 허용되는 값은 다음과 같습니다.

  • FullLanguage - 모든 언어 요소가 허용됩니다.
  • ConstrainedLanguage - 평가할 스크립트를 포함하는 명령은 허용되지 않습니다. ConstrainedLanguage 모드는 Microsoft .NET Framework 형식, 개체 또는 메서드에 대한 사용자 액세스를 제한합니다.
  • NoLanguage - 사용자는 cmdlet 및 함수를 실행할 수 있지만 스크립트 블록, 변수 또는 연산자와 같은 언어 요소는 사용할 수 없습니다.
  • RestrictedLanguage - 사용자가 cmdlet 및 함수를 실행할 수 있지만 다음 허용된 변수를 제외하고 스크립트 블록 또는 변수$PSCulture$False$PSUICulture$True$Null를 사용할 수 없습니다. 사용자는 기본 비교 연산자(-eq, , -gt-lt)만 사용할 수 있습니다. 할당 문, 속성 참조 및 메서드 호출은 허용되지 않습니다.

LanguageMode 매개 변수의 기본값은 SessionType 매개 변수의 값에 따라 달라집니다.

  • 비어 있음 - NoLanguage
  • RestrictedRemoteServer - NoLanguage
  • 기본값 - FullLanguage
Type:PSLanguageMode
Accepted values:FullLanguage, RestrictedLanguage, NoLanguage, ConstrainedLanguage
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ModulesToImport

세션 구성을 사용하는 세션으로 자동으로 가져오는 모듈 및 스냅인을 지정합니다.

기본적으로 Microsoft.PowerShell.Core 스냅인만 원격 세션으로 가져오지만 cmdlet이 제외되지 않는 한 사용자는 해당 및 Add-PSSnapin cmdlet을 사용하여 Import-Module 모듈 및 스냅인을 세션에 추가할 수 있습니다.

이 매개 변수 값의 각 모듈 또는 스냅인은 문자열 또는 해시 테이블로 나타낼 수 있습니다. 모듈 문자열은 모듈 또는 스냅인의 이름으로만 구성됩니다. 모듈 해시 테이블에는 ModuleName, ModuleVersionGUID 키가 포함될 수 있습니다. ModuleName 키만 필요합니다.

예를 들어 다음 값은 문자열과 해시 테이블로 구성됩니다. 문자열과 해시 테이블의 조합은 임의의 순서로 유효합니다.

'TroubleshootingPack', @{ModuleName='PSDiagnostics'; ModuleVersion='1.0.0.0';GUID='c61d6278-02a3-4618-ae37-a524d40a7f44'}

cmdlet의 ModulesToImport 매개 변수 Register-PSSessionConfiguration 값이 세션 구성 파일의 ModulesToImport 키 값보다 우선합니다.

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MountUserDrive

이 세션 구성을 사용하여 PSDrive를 노출 User: 하는 세션을 구성합니다. 사용자 드라이브는 각 연결 사용자에 대해 고유하며 파일 시스템 공급자가 노출되지 않더라도 PowerShell 엔드포인트에서 데이터를 복사할 수 있습니다. 사용자 드라이브 루트는 아래에 $env:LOCALAPPDATA\Microsoft\PowerShell\DriveRoots\만들어집니다. 엔드포인트에 연결하는 각 사용자에 대해 이름으로 $env:USERDOMAIN\$env:USERNAME폴더가 만들어집니다. 작업 그룹의 컴퓨터의 $env:USERDOMAIN 경우 값은 호스트 이름입니다.

사용자 드라이브의 콘텐츠는 사용자 세션 간에 유지되며 자동으로 제거되지 않습니다. 기본적으로 사용자는 사용자 드라이브에 최대 50MB의 데이터만 저장할 수 있습니다. UserDriveMaximumSize 매개 변수를 사용하여 사용자 지정할 수 있습니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

세션 구성 파일의 경로와 파일 이름을 지정합니다. 파일에 파일 이름 확장명이 .pssc 있어야 합니다.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-PowerShellVersion

세션 구성을 사용하는 세션에서 PowerShell 엔진의 버전을 지정합니다. 이 매개 변수에 허용되는 값은 2.0 및 3.0입니다. 이 매개 변수 를 생략하면 PowerShellVersion 키가 주석 처리되고 최신 버전의 PowerShell이 세션에서 실행됩니다.

cmdlet의 PSVersion 매개 변수 Register-PSSessionConfiguration 값이 세션 구성 파일의 PowerShellVersion 키 값보다 우선합니다.

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RequiredGroups

이 세션 구성을 사용하는 세션에 연결하는 사용자에 대한 조건부 액세스 규칙을 지정합니다.

해시 테이블, 'And' 또는 'Or'당 1개의 키만 사용하여 규칙 목록을 작성하는 해시 테이블을 입력하고 값을 보안 그룹 이름 또는 추가 해시 테이블의 배열로 설정합니다.

사용자를 단일 그룹의 구성원으로 연결하도록 요구하는 예제: @{ And = 'MyRequiredGroup' }

사용자가 엔드포인트에 액세스하기 위해 그룹 A 또는 그룹 B와 C 둘 다에 속하도록 요구하는 예제: @{ Or = 'GroupA', @{ And = 'GroupB', 'GroupC' } }

Type:IDictionary
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RoleDefinitions

보안 그룹(또는 사용자)과 역할 기능 간의 매핑을 지정합니다. 사용자에게 세션이 생성될 때 그룹 멤버 자격에 적용되는 모든 역할 기능에 대한 액세스 권한이 부여됩니다.

키가 보안 그룹의 이름이고 값이 보안 그룹에 제공되어야 하는 역할 기능 목록을 포함하는 해시 테이블인 해시 테이블을 입력합니다.

예: @{'Contoso\Level 2 Helpdesk Users' = @{ RoleCapabilities = 'Maintenance', 'ADHelpDesk' }}

Type:IDictionary
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsVirtualAccount

이 세션 구성을 사용하여 컴퓨터의(가상) 관리자 계정으로 실행되도록 세션을 구성합니다. 이 필드는 GroupManagedServiceAccount 매개 변수와 함께 사용할 수 없습니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsVirtualAccountGroups

세션 구성을 사용하는 세션이 가상 계정으로 실행될 때 가상 계정과 연결할 보안 그룹을 지정합니다. 생략하면 가상 계정은 do기본 관리s on do기본 컨트롤러 및 다른 모든 컴퓨터의 관리istrator에 속합니다.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SchemaVersion

세션 구성 파일 스키마의 버전을 지정합니다. 기본값은 "1.0.0.0"입니다.

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScriptsToProcess

세션 구성을 사용하는 세션에 지정된 스크립트를 추가합니다. 스크립트의 경로와 파일 이름을 입력합니다. 이 매개 변수의 값은 스크립트 파일 이름의 전체 또는 절대 경로여야 합니다.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionType

세션 구성을 사용하여 만든 세션의 유형을 지정합니다. 기본값은 Default입니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 비어 있음 - 기본적으로 세션에 추가되는 모듈이 없습니다. 이 cmdlet의 매개 변수를 사용하여 모듈, 함수, 스크립트 및 기타 기능을 세션에 추가합니다. 이 옵션은 선택한 명령을 추가하여 사용자 지정 세션을 만들도록 설계되었습니다. 빈 세션에 명령을 추가하지 않으면 세션이 식으로 제한되며 사용하지 못할 수 있습니다.
  • 기본값 - 세션에 Microsoft.PowerShell.Core 모듈을 추가합니다. 이 모듈에는 이 cmdlet을 명시적으로 금지하지 않는 한 사용자가 다른 모듈을 가져오는 데 사용할 수 있는 cmdlet이 포함되어 Import-Module 있습니다.
  • RestrictedRemoteServer. 다음 프록시 함수만 포함합니다. Exit-PSSession, , Get-FormatDataGet-Command, Get-Help, Measure-ObjectOut-DefaultSelect-Object. 이 cmdlet의 매개 변수를 사용하여 모듈, 함수, 스크립트 및 기타 기능을 세션에 추가합니다.
Type:SessionType
Accepted values:Empty, RestrictedRemoteServer, Default
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TranscriptDirectory

이 세션 구성을 사용하여 세션에 대한 세션 기록을 배치할 디렉터리를 지정합니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TypesToProcess

세션 구성을 사용하는 세션에 지정된 .ps1xml 형식 파일을 추가합니다. 형식 파일 이름을 입력합니다. 이 매개 변수의 값은 파일 이름 형식의 전체 또는 절대 경로여야 합니다.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserDriveMaximumSize

이 세션 구성을 사용하는 세션에서 노출되는 사용자 드라이브의 최대 크기를 지정합니다. 생략하면 각 User: 드라이브 루트의 기본 크기는 50MB입니다.

이 매개 변수는 MountUserDrive와 함께 사용해야 합니다.

Type:Int64
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VariableDefinitions

세션 구성을 사용하는 세션에 지정된 변수를 추가합니다. 다음 키를 사용하여 해시 테이블을 입력합니다.

  • 이름 - 변수의 이름입니다. 이 키는 필수입니다.
  • 값 - 변수 값입니다. 이 키는 필수입니다.

예: @{Name='WarningPreference';Value='SilentlyContinue'}

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VisibleAliases

세션의 별칭을 이 매개 변수 값에 지정된 별칭과 AliasDefinition 매개 변수에 정의한 별칭으로 제한합니다. 와일드카드 문자가 지원됩니다. 기본적으로 PowerShell 엔진에서 정의한 모든 별칭과 모듈이 내보내는 모든 별칭이 세션에 표시됩니다.

예: VisibleAliases='gcm', 'gp'

Visible 매개 변수가 세션 구성 파일에 포함되면 PowerShell은 세션에서 cmdlet 및 해당 ipmo 별칭을 제거 Import-Module 합니다.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-VisibleCmdlets

세션의 cmdlet을 이 매개 변수 값에 지정된 cmdlet으로 제한합니다. Wild카드 문자 및 모듈 정규화된 이름이 지원됩니다.

기본적으로 세션 내보내기에서 모듈이 세션에 표시되는 모든 cmdlet이 표시됩니다. SessionTypeModulesToImport 매개 변수를 사용하여 세션으로 가져올 모듈 및 스냅인을 결정합니다. ModulesToImportcmdlet을 노출하는 모듈이 없으면 해당 모듈이 자동으로 로드됩니다.

Visible 매개 변수가 세션 구성 파일에 포함되면 PowerShell은 세션에서 cmdlet 및 해당 ipmo 별칭을 제거 Import-Module 합니다.

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VisibleExternalCommands

세션에서 실행할 수 있는 외부 이진 파일, 스크립트 및 명령을 이 매개 변수 값에 지정된 것으로 제한합니다. 와일드카드 문자가 지원됩니다.

기본적으로 외부 명령은 세션에 표시되지 않습니다.

세션 구성 파일에 Visible 매개 변수가 포함되어 있으면 PowerShell은 세션에서 cmdlet 및 해당 ipmo 별칭을 제거 Import-Module 합니다.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-VisibleFunctions

세션의 함수를 이 매개 변수 값에 지정된 함수와 FunctionDefinition 매개 변수에 정의한 함수로 제한합니다. 와일드카드 문자가 지원됩니다.

기본적으로 세션 내보내기에서 모듈이 세션에 표시되는 모든 함수가 표시됩니다. SessionTypeModulesToImport 매개 변수를 사용하여 세션으로 가져올 모듈 및 스냅인을 결정합니다.

Visible 매개 변수가 세션 구성 파일에 포함되면 PowerShell은 세션에서 cmdlet 및 해당 ipmo 별칭을 제거 Import-Module 합니다.

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-VisibleProviders

세션의 PowerShell 공급자를 이 매개 변수 값에 지정된 공급자로 제한합니다. 와일드카드 문자가 지원됩니다.

기본적으로 세션 내보내기에서 모듈이 있는 모든 공급자는 세션에 표시됩니다. SessionTypeModulesToImport 매개 변수를 사용하여 세션으로 가져올 모듈을 결정합니다.

Visible 매개 변수가 세션 구성 파일에 포함되면 PowerShell은 세션에서 cmdlet 및 해당 ipmo 별칭을 제거 Import-Module 합니다.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

입력

None

개체를 이 cmdlet으로 파이프할 수 없습니다.

출력

None

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

참고

  • VisibleCmdlet 및 VisibleProviders같은 매개 변수는 세션에 항목을 가져오지 않습니다. 대신 세션으로 가져온 항목 중에서 선택합니다. 예를 들어 VisibleProviders 매개 변수의 값이 인증서 공급자이지만 ModulesToImport 매개 변수가 인증서 공급자를 포함하는 Microsoft.PowerShell.Security 모듈을 지정하지 않으면 인증서 공급자가 세션에 표시되지 않습니다.

  • New-PSSessionConfigurationFile는 Path 매개 변수에 지정한 경로에 .pssc 파일 이름 확장명을 가진 세션 구성 파일을 만듭니다. 세션 구성 파일을 사용하여 세션 구성 Register-PSSessionConfiguration 을 만들 때 cmdlet은 구성 파일을 복사하고 파일의 활성 복사본을 디렉터리의 SessionConfig 하위 디렉터리에 $PSHOME 저장합니다.

    세션 구성의 ConfigFilePath 속성에는 활성 세션 구성 파일의 정규화된 경로가 포함됩니다. 언제든지 텍스트 편집기를 사용하여 디렉터리의 활성 구성 파일을 $PSHOME 수정할 수 있습니다. 변경 내용은 세션 구성을 사용하지만 기존 세션은 사용하지 않는 모든 새 세션에 영향을 줍니다.

    편집된 세션 구성 파일을 사용하기 전에 cmdlet을 Test-PSSessionConfigurationFile 사용하여 구성 파일 항목이 유효한지 확인합니다.