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

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

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

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

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

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

このコマンドレットは、PowerShell 3.0 で導入されました。 PowerShell 6.0 以降、このコマンドレットは Windows プラットフォームでのみ使用できるようになりました。 PowerShell 7.3 では、サポートされているすべてのプラットフォームでこのコマンドレットを使用できるようになりました。

例 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

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

例 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

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

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

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

このシナリオでは、アクティブな構成ファイルを編集して、コマンドレットの 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

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'}

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

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

このパラメーターを省略すると、 New-PSSessionConfigurationFile Author パラメーターの値を使用して 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 キーの値は Restricted になります 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

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

  • Name - 関数の名前。 このキーは必須です。
  • 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 - ユーザーはコマンドレットと関数を実行できますが、スクリプト ブロック、変数、演算子などの言語要素を使用することはできません。
  • RestrictedLanguage - ユーザーはコマンドレットと関数を実行できますが、次の許可された変数を除き、スクリプト ブロックまたは変数を使用することはできません。 $PSCulture$PSUICulture$True$False$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 スナップインのみがリモート セッションにインポートされますが、コマンドレットが除外されない限り、ユーザーは、コマンドレットとAdd-PSSnapinコマンドレットをImport-Module使用してモジュールとスナップインをセッションに追加できます。

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

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

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

コマンドレットの 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 はホスト名です。

ユーザー ドライブ内のコンテンツは、ユーザー セッション間で保持され、自動的には削除されません。 既定では、ユーザーは最大 50 MB (メガバイト) のデータをユーザー ドライブに格納できます。 これは、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 がセッションで実行されます。

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

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

-RequiredGroups

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

ハッシュテーブルを入力して、ハッシュテーブルごとに 1 つのキー 、'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 メイン 管理 on doメイン コントローラーに属し、他のすべてのコンピューター上の管理リストに属します。

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 です。 このパラメーターの有効値は、次のとおりです。

  • 空 - 既定では、モジュールはセッションに追加されません。 このコマンドレットのパラメーターを使用して、モジュール、関数、スクリプト、およびその他の機能をセッションに追加できます。 このオプションは、選択したコマンドを追加してカスタム セッションを作成するように設計されています。 空のセッションにコマンドを追加しないと、セッションは式に制限され、使用できない場合があります。
  • 既定値 - Microsoft.PowerShell.Core モジュールをセッションに追加します。 このモジュールには、このコマンドレットを Import-Module 明示的に禁止しない限り、ユーザーが他のモジュールのインポートに使用できるコマンドレットが含まれています。
  • RestrictedRemoteServer。 次のプロキシ関数のみが含まれます。 Exit-PSSessionGet-CommandGet-FormatDataGet-HelpMeasure-ObjectOut-DefaultSelect-Object このコマンドレットのパラメーターを使用して、モジュール、関数、スクリプト、およびその他の機能をセッションに追加できます。
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:ドライブ ルートの既定のサイズは 50 MB (メガバイト)です。

このパラメーターは 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 はコマンドレットとその ipmo エイリアスをセッションから削除Import-Moduleします。

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

-VisibleCmdlets

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

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

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

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

-VisibleExternalCommands

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

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

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

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

-VisibleFunctions

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

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

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

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

-VisibleProviders

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

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

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

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

入力

None

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

出力

None

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

メモ

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

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

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

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