次の方法で共有


New-PSSessionConfigurationFile

セッション構成を定義するファイルを作成します。

構文

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>]

説明

New-PSSessionConfigurationFile コマンドレットは、セッション構成と、セッション構成を使用して作成されるセッションの環境を定義する設定ファイルを作成します。 セッション構成でファイルを使用するには、Register-PSSessionConfigurationまたはSet-PSSessionConfigurationコマンドレットの Path パラメーターを使用します。

New-PSSessionConfigurationFile作成されるセッション構成ファイルは、セッション構成のプロパティと値のハッシュ テーブルを含む、人間が判読できるテキスト ファイルです。 ファイルのファイル名拡張子は .pssc です。

Path パラメーターを除き、New-PSSessionConfigurationFileのすべてのパラメーターは省略可能です。 パラメーターを省略すると、パラメーターの説明に記載された部分を除き、セッション構成ファイル内の対応するキーがコメント アウトされます。

セッション構成 (エンドポイントとも呼ばれます) は、コンピューターに接続する PowerShell セッション (PSSessions) の環境を定義するローカル コンピューター上の設定のコレクションです。 すべての PSSessions セッション構成を使用します。 特定のセッション構成を指定するには、New-PSSession コマンドレットなどのセッションを作成するコマンドレットの ConfigurationName パラメーターを使用します。

セッション構成ファイルを使用すると、複雑なスクリプトやコード アセンブリなしでセッション構成を簡単に定義できます。 ファイル内の設定は、オプションのスタートアップ スクリプトと、セッション構成内のすべてのアセンブリと共に使用されます。

セッション構成とセッション構成ファイルの詳細については、「 about_Session_Configurationsabout_Session_Configuration_Files」を参照してください。

このコマンドレットは、PowerShell 3.0 で導入されました。

例 1: NoLanguage セッションの作成と使用

この例では、言語なしのセッションを使用する方法と効果を示します。

これには次の手順が含まれます。

  1. 新しい構成ファイルを作成します。
  2. 構成を登録します。
  3. 構成を使用する新しいセッションを作成します。
  4. その新しいセッションでコマンドを実行します。

この例のコマンドを実行するには、[管理者として実行] オプションを使用して PowerShell を起動します。 このオプションは、 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

この例では、LanguageModeNoLanguage に設定されているため、Invoke-Commandは失敗します。

例 2: RestrictedLanguage セッションの作成と使用

この例では、言語なしのセッションを使用する方法と効果を示します。

これには次の手順が含まれます。

  1. 新しい構成ファイルを作成します。
  2. 構成を登録します。
  3. 構成を使用する新しいセッションを作成します。
  4. その新しいセッションでコマンドを実行します。

この例のコマンドを実行するには、[管理者として実行] オプションを使用して PowerShell を起動します。 このオプションは、 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

この例では、LanguageModeRestrictedLanguage に設定されているため、Invoke-Commandは成功します。

例 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 コマンドレット。 Set-PSSessionConfiguration コマンドレットは、現在の構成ファイルを新しい構成ファイルに置き換えます。 この新しい構成は、変更後に作成された新しいセッションにのみ影響します。 既存の "ITTasks" セッションは影響を受けません。

例 4: セッション構成ファイルの編集

この例は、構成ファイルのアクティブなセッション構成のコピーを編集することで、セッション構成を変更する方法を示しています。 構成ファイルのセッション構成コピーを変更するには、ファイルへのフル コントロール アクセス権が必要です。 これにより、ファイルのアクセス許可を変更することが必要になる場合があります。

このシナリオでは、アクティブな構成ファイルを編集して、 Select-String コマンドレットの新しいエイリアスを追加します。

次のコード例では、この変更を行うために次の手順を実行します。

  1. ITConfig セッションの構成ファイル パスを取得します。
  2. ユーザーは、 Notepad.exe を使用して構成ファイルを編集し、 AliasDefinitions 値を次のように変更 AliasDefinitions = @(@{Name='slst';Value='Select-String'})
  3. 更新された構成ファイルをテストします。
$ITConfig = Get-PSSessionConfiguration -Name ITConfig
notepad.exe $ITConfig.ConfigFilePath
Test-PSSessionConfigurationFile -Path $ITConfig.ConfigFilePath

True

Verbose パラメーターをTest-PSSessionConfigurationFileと共に使用して、検出されたエラーを表示します。 このコマンドレットは、ファイルでエラーが検出されない場合に $True を返します。

例 5: サンプル構成ファイルを作成する

この例では、すべてのコマンドレット パラメーターを使用する 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'}

型:IDictionary[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-AssembliesToLoad

セッション構成を使用するセッションに読み込むためのアセンブリを指定します。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Author

セッション構成または構成ファイルの作成者を指定します。 既定値は現在のユーザーです。 このパラメーターの値は、セッション構成ファイルに表示されますが、セッション構成オブジェクトのプロパティではありません。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CompanyName

セッション構成または構成ファイルを作成した会社を指定します。 既定値は Unknown です。 このパラメーターの値は、セッション構成ファイルに表示されますが、セッション構成オブジェクトのプロパティではありません。

型:String
配置:Named
規定値:Unknown
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

セッション構成ファイルの著作権を指定します。 このパラメーターの値は、セッション構成ファイルに表示されますが、セッション構成オブジェクトのプロパティではありません。

このパラメーターを省略すると、 New-PSSessionConfigurationFileAuthor パラメーターの値を使用して著作権ステートメントを生成します。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Description

セッション構成またはセッション構成ファイルの説明を指定します。 このパラメーターの値は、セッション構成ファイルに表示されますが、セッション構成オブジェクトのプロパティではありません。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-EnvironmentVariables

環境変数をセッションに追加します。 キーが環境変数名で、値が環境変数値のハッシュ テーブルを入力します。

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

型:IDictionary
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ExecutionPolicy

セッション構成を使用するセッションの実行ポリシーを指定します。 このパラメーターを省略すると、セッション構成ファイルの ExecutionPolicy キーの値が restricted。 PowerShell での実行ポリシーの詳細については、「 about_Execution_Policies」を参照してください。

型:ExecutionPolicy
指定可能な値:Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-FormatsToProcess

セッション構成を使用するセッションで実行する書式設定ファイル (.ps1xml) を指定します。 このパラメーターの値は、書式設定ファイルの完全パスまたは絶対パスである必要があります。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Full

この操作に、セッション構成ファイルに使用可能なすべての構成プロパティが含まれていることを示します。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-FunctionDefinitions

セッション構成を使用するセッションに、指定された関数を追加します。 ハッシュ テーブルに次のキーを入力します。

  • Name - 関数の名前。 このキーは必須です。
  • ScriptBlock - 関数本体。 スクリプト ブロックを入力します。 このキーは必須です。
  • オプション - 関数のオプション。 このキーはオプションです。 既定値は None です。 このパラメーターに使用できる値は、None、ReadOnly、Constant、Private、または AllScope です。

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

型:IDictionary[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-GroupManagedServiceAccount

指定したグループ管理サービス アカウントのコンテキストで実行するように、このセッション構成を使用してセッションを構成します。 セッションを正常に作成するには、このセッション構成が登録されているマシンに gMSA パスワードを要求するアクセス許可が必要です。 このフィールドは、 RunAsVirtualAccount パラメーターでは使用できません。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Guid

セッション構成ファイルの一意の識別子を指定します。 このパラメーターを省略すると、 New-PSSessionConfigurationFile はファイルの GUID を生成します。 PowerShell で新しい GUID を作成するには、「 New-Guid」と入力します。

型:Guid
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-LanguageMode

このセッション構成を使用するセッションで許可される PowerShell 言語の要素を決定します。 このパラメーターを使用して、特定のユーザーがコンピューター上で実行できるコマンドを制限できます。

このパラメーターの有効値は、次のとおりです。

  • FullLanguage - すべての言語要素が許可されます。
  • ConstrainedLanguage - 評価するスクリプトを含むコマンドは許可されません。 ConstrainedLanguage モードは、ユーザーのアクセスを Microsoft .NET Framework の型、オブジェクト、またはメソッドに制限します。
  • NoLanguage - ユーザーはコマンドレットと関数を実行できますが、スクリプト ブロック、変数、演算子などの言語要素を使用することはできません。
  • RestrictedLanguage - ユーザーはコマンドレットと関数を実行できますが、 $PSCulture$PSUICulture$True$False$Nullの各変数を除き、スクリプト ブロックまたは変数を使用することはできません。 ユーザーは、基本的な比較演算子 (-eq-gt-lt) のみを使用できます。 代入ステートメント、プロパティ参照、およびメソッド呼び出しは許可されません。

LanguageMode パラメーターの既定値は、SessionType パラメーターの値によって異なります。

  • 空 - NoLanguage
  • RestrictedRemoteServer - NoLanguage
  • 既定値 - FullLanguage
型:PSLanguageMode
指定可能な値:FullLanguage, RestrictedLanguage, NoLanguage, ConstrainedLanguage
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ModulesToImport

セッション構成を使用するセッションに自動的にインポートされたモジュールおよびスナップインを指定します。

既定では、 Microsoft.PowerShell.Core スナップインのみがリモート セッションにインポートされますが、コマンドレットを除外しない限り、ユーザーは Import-Module コマンドレットと Add-PSSnapin コマンドレットを使用して、モジュールとスナップインをセッションに追加できます。

このパラメーターの値の各モジュールまたはスナップインを、文字列によって、またはハッシュ テーブルとして表すことができます。 モジュール文字列は、モジュールまたはスナップインの名前のみで構成されます。 モジュール ハッシュ テーブルには、 ModuleNameModuleVersion、および GUID キーを含めることができます。 ModuleName キーのみが必要です。

たとえば、次の値は文字列とハッシュ テーブルで構成されます。 任意の順序での文字列とハッシュ テーブルの組み合わせは有効です。

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

Register-PSSessionConfiguration コマンドレットの ModulesToImport パラメーターの値は、セッション構成ファイルの ModulesToImport キーの値よりも優先されます。

型:Object[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-MountUserDrive

このセッション構成を使用して、 User: PSDrive を公開するセッションを構成します。 ユーザー ドライブは接続しているユーザーごとに一意であり、ファイル システム プロバイダーが公開されていない場合でも、ユーザーは PowerShell エンドポイントとの間でデータをコピーできます。 ユーザー ドライブ ルートは、 $env:LOCALAPPDATA\Microsoft\Windows\PowerShell\DriveRoots\の下に作成されます。 このエンドポイントに接続するユーザーには、それぞれ ${env:USERDOMAIN}_${env:USERNAME} という名前のフォルダーが作成されます。 ワークグループ内のコンピューターの場合、 $env:USERDOMAIN の値はホスト名です。

ユーザー ドライブ内のコンテンツは、ユーザー セッション間で保持され、自動的には削除されません。 既定では、ユーザーは最大 50 MB のデータをユーザー ドライブに格納できます。 これは、 UserDriveMaximumSize パラメーターを使用してカスタマイズできます。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Path

セッション構成ファイルのパスとファイル名を指定します。 ファイルには .pssc ファイル名拡張子が必要です。

型:String
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PowerShellVersion

セッション構成を使用するセッションの PowerShell エンジンのバージョンを指定します。 このパラメーターに使用できる値は 2.0 と 3.0 です。 このパラメーターを省略すると、 PowerShellVersion キーがコメントアウトされ、最新バージョンの PowerShell がセッションで実行されます。

Register-PSSessionConfiguration コマンドレットの PSVersion パラメーターの値は、セッション構成ファイルの PowerShellVersion キーの値よりも優先されます。

型:Version
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RequiredGroups

このセッション構成を使用するセッションに接続するユーザーの条件付きアクセス規則を指定します。

ハッシュテーブルを入力して、ハッシュテーブルごとに 1 つのキー 、'And' または 'Or' のみを使用してルールの一覧を作成し、値をセキュリティ グループ名または追加のハッシュテーブルの配列に設定します。

接続するユーザーを 1 つのグループのメンバーにする必要がある例: @{ And = 'MyRequiredGroup' }

エンドポイントにアクセスするために、ユーザーがグループ A またはグループ B と C の両方に属することを要求する例: @{ Or = 'GroupA', @{ And = 'GroupB', 'GroupC' } }

型:IDictionary
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RoleDefinitions

セキュリティ グループ (またはユーザー) とロール機能の間のマッピングを指定します。 ユーザーには、セッションの作成時にグループ メンバーシップに適用されるすべてのロール機能へのアクセス権が付与されます。

キーがセキュリティ グループの名前であり、値がセキュリティ グループで使用できるようにする必要があるロール機能の一覧を含むハッシュ テーブルであるハッシュ テーブルを入力します。

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

型:IDictionary
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RunAsVirtualAccount

コンピューターの (仮想) 管理者アカウントとして実行されるように、このセッション構成を使用してセッションを構成します。 このフィールドは、 GroupManagedServiceAccount パラメーターでは使用できません。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RunAsVirtualAccountGroups

セッション構成を使用するセッションが仮想アカウントとして実行されるときに、仮想アカウントに関連付けるセキュリティ グループを指定します。 省略すると、仮想アカウントはドメイン コントローラーの Domain Admins に属し、他のすべてのコンピューターの管理者に属します。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SchemaVersion

セッション構成ファイル スキーマのバージョンを指定します。 既定値は "1.0.0.0" です。

型:Version
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ScriptsToProcess

セッション構成を使用するセッションに、指定されたスクリプトを追加します。 スクリプトのパスとファイル名を入力します。 このパラメーターの値は、スクリプト ファイル名の完全パスまたは絶対パスである必要があります。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SessionType

セッション構成を使用して作成されるセッションの型を指定します。 既定値は Default です。 このパラメーターの有効値は、次のとおりです。

  • 空 - 既定では、モジュールはセッションに追加されません。 このコマンドレットのパラメーターを使用して、モジュール、関数、スクリプト、およびその他の機能をセッションに追加できます。 このオプションは、選択したコマンドを追加してカスタム セッションを作成するように設計されています。 空のセッションにコマンドを追加しないと、セッションは式に制限され、使用できない場合があります。
  • 既定値 - Microsoft.PowerShell.Core モジュールをセッションに追加します。 このモジュールには、このコマンドレットを明示的に禁止しない限り、ユーザーが他のモジュールのインポートに使用できる Import-Module コマンドレットが含まれています。
  • RestrictedRemoteServer。 Exit-PSSessionGet-CommandGet-FormatDataGet-HelpMeasure-ObjectOut-DefaultSelect-Objectのプロキシ関数のみが含まれます。 このコマンドレットのパラメーターを使用して、モジュール、関数、スクリプト、およびその他の機能をセッションに追加できます。
型:SessionType
指定可能な値:Empty, RestrictedRemoteServer, Default
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-TranscriptDirectory

このセッション構成を使用してセッションのセッション トランスクリプトを配置するディレクトリを指定します。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-TypesToProcess

指定した .ps1xml タイプ ファイルを、セッション構成を使用するセッションに追加します。 ファイル名の種類を入力します。 このパラメーターの値は、ファイル名型の完全パスまたは絶対パスである必要があります。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-UserDriveMaximumSize

このセッション構成を使用するセッションで公開されるユーザー ドライブの最大サイズを指定します。 省略すると、各 User: ドライブ ルートの既定のサイズは 50 MB です。

このパラメーターは、 MountUserDrive で使用する必要があります。

型:Int64
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-VariableDefinitions

セッション構成を使用するセッションに、指定された変数を追加します。 ハッシュ テーブルに次のキーを入力します。

  • 名前 - 変数の名前。 このキーは必須です。
  • 値 - 変数の値。 このキーは必須です。

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

型:Object
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-VisibleAliases

セッション内のエイリアスを、このパラメーターの値で指定されたエイリアスに加えて、 AliasDefinition パラメーターで定義したエイリアスに制限します。 ワイルドカード文字がサポートされています。 既定では、PowerShell エンジンによって定義されているすべてのエイリアスと、モジュールがエクスポートするすべてのエイリアスがセッションに表示されます。

例: VisibleAliases='gcm', 'gp'

セッション構成ファイルに Visible パラメーターが含まれている場合、PowerShell はセッションから Import-Module コマンドレットとその ipmo エイリアスを削除します。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-VisibleCmdlets

セッションのコマンドレットを、このパラメーターの値に指定されたコマンドレットに制限します。 ワイルドカード文字とモジュール修飾名がサポートされています。

既定では、セッション内のモジュールがエクスポートするすべてのコマンドレットが、セッションで表示されます。 SessionType および ModulesToImport パラメーターを使用して、セッションにインポートされるモジュールとスナップインを決定します。 ModulesToImport にモジュールが存在しない場合コマンドレットを公開すると、適切なモジュールの自動読み込みが試行されます。

セッション構成ファイルに Visible パラメーターが含まれている場合、PowerShell はセッションから Import-Module コマンドレットとその ipmo エイリアスを削除します。

型:Object[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-VisibleExternalCommands

セッションで実行できる外部バイナリ、スクリプト、およびコマンドを、このパラメーターの値で指定されたものに制限します。 ワイルドカード文字がサポートされています。

既定では、外部コマンドはセッションに表示されません。

Visible パラメーターがセッション構成ファイルに含まれている場合、PowerShell は、Import-Module コマンドレットとその ipmo エイリアスをセッションから削除します。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-VisibleFunctions

セッション内の関数を、このパラメーターの値で指定された関数に加えて、 FunctionDefinition パラメーターで定義した関数に制限します。 ワイルドカード文字がサポートされています。

既定では、セッション内のモジュールがエクスポートするすべての関数が、セッションで表示されます。 SessionType および ModulesToImport パラメーターを使用して、セッションにインポートされるモジュールとスナップインを決定します。

セッション構成ファイルに Visible パラメーターが含まれている場合、PowerShell はセッションから Import-Module コマンドレットとその ipmo エイリアスを削除します。

型:Object[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-VisibleProviders

セッション内の PowerShell プロバイダーを、このパラメーターの値で指定されたプロバイダーに制限します。 ワイルドカード文字がサポートされています。

既定では、セッション内のモジュールがエクスポートするすべてのプロバイダーが、セッションで表示されます。 SessionType および ModulesToImport パラメーターを使用して、セッションにインポートされるモジュールを決定します。

Visible パラメーターがセッション構成ファイルに含まれている場合、PowerShell は、Import-Module コマンドレットとそのipmoエイリアスをセッションから削除します。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

入力

None

このコマンドレットにオブジェクトをパイプすることはできません。

出力

None

このコマンドレットは、出力を返しません。

メモ

Windows PowerShell には、 New-PSSessionConfigurationFileの次のエイリアスが含まれています。

  • npssc

VisibleCmdletsVisibleProviders などのパラメーターは、セッションに項目をインポートしません。 代わりに、セッションにインポートされた項目の中から選択します。 たとえば、 VisibleProviders パラメーターの値が証明書プロバイダーであるが、 ModulesToImport パラメーターで証明書プロバイダーを含む Microsoft.PowerShell.Security モジュールが指定されていない場合、証明書プロバイダーはセッションに表示されません。

New-PSSessionConfigurationFile は、 Path パラメーターで指定したパスに .pssc ファイル名拡張子を持つセッション構成ファイルを作成します。 セッション構成ファイルを使用してセッション構成を作成すると、Register-PSSessionConfiguration コマンドレットは構成ファイルをコピーし、$PSHOME ディレクトリの SessionConfig サブディレクトリにファイルのアクティブなコピーを保存します。

セッション構成の ConfigFilePath プロパティには、アクティブなセッション構成ファイルの完全修飾パスが含まれています。 任意のテキスト エディターを使用して、 $PSHOME ディレクトリ内のアクティブな構成ファイルをいつでも変更できます。 加えた変更は、既存のセッションではなく、セッション構成を使用するすべての新しいセッションに影響します。

編集されたセッション構成ファイルを使用する前に、 Test-PSSessionConfigurationFile コマンドレットを使用して、構成ファイルのエントリが有効であることを確認します。