Set-PSSessionConfiguration

登録済みのセッション構成のプロパティを変更します。

構文

Set-PSSessionConfiguration
   [-Name] <String>
   [-ApplicationBase <String>]
   [-RunAsCredential <PSCredential>]
   [-ThreadApartmentState <ApartmentState>]
   [-ThreadOptions <PSThreadOptions>]
   [-AccessMode <PSSessionConfigurationAccessMode>]
   [-UseSharedProcess]
   [-StartupScript <String>]
   [-MaximumReceivedDataSizePerCommandMB <Double>]
   [-MaximumReceivedObjectSizeMB <Double>]
   [-SecurityDescriptorSddl <String>]
   [-ShowSecurityDescriptorUI]
   [-Force]
   [-NoServiceRestart]
   [-PSVersion <Version>]
   [-SessionTypeOption <PSSessionTypeOption>]
   [-TransportOption <PSTransportOption>]
   [-ModulesToImport <Object[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-PSSessionConfiguration
   [-Name] <String>
   [-AssemblyName] <String>
   [-ApplicationBase <String>]
   [-ConfigurationTypeName] <String>
   [-RunAsCredential <PSCredential>]
   [-ThreadApartmentState <ApartmentState>]
   [-ThreadOptions <PSThreadOptions>]
   [-AccessMode <PSSessionConfigurationAccessMode>]
   [-UseSharedProcess]
   [-StartupScript <String>]
   [-MaximumReceivedDataSizePerCommandMB <Double>]
   [-MaximumReceivedObjectSizeMB <Double>]
   [-SecurityDescriptorSddl <String>]
   [-ShowSecurityDescriptorUI]
   [-Force]
   [-NoServiceRestart]
   [-PSVersion <Version>]
   [-SessionTypeOption <PSSessionTypeOption>]
   [-TransportOption <PSTransportOption>]
   [-ModulesToImport <Object[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-PSSessionConfiguration
   [-Name] <String>
   [-RunAsCredential <PSCredential>]
   [-ThreadApartmentState <ApartmentState>]
   [-ThreadOptions <PSThreadOptions>]
   [-AccessMode <PSSessionConfigurationAccessMode>]
   [-UseSharedProcess]
   [-StartupScript <String>]
   [-MaximumReceivedDataSizePerCommandMB <Double>]
   [-MaximumReceivedObjectSizeMB <Double>]
   [-SecurityDescriptorSddl <String>]
   [-ShowSecurityDescriptorUI]
   [-Force]
   [-NoServiceRestart]
   [-TransportOption <PSTransportOption>]
   -Path <String>
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

説明

このコマンドレットは、Windows プラットフォームでのみ使用できます。

Set-PSSessionConfiguration コマンドレットは、ローカル コンピューター上のセッション構成のプロパティを変更します。

Name パラメーターを使用して、変更するセッション構成を識別します。 その他のパラメーターは、セッション構成のプロパティに新しい値を指定するために使用します。 構成からプロパティ値を削除し、既定値を使用するには、対応するパラメーターに空の文字列 ("") または $Null の値を入力します。

PowerShell 3.0 以降では、セッション構成ファイルを使用してセッション構成を定義できます。 この機能を使用すれば、セッション構成を使用するセッションのプロパティの設定や変更を迷わず簡単に実行できます。 セッション構成ファイルを指定するには、Set-PSSessionConfigurationPath パラメーターを使用します。 セッション構成ファイルの詳細については、 about_Session_Configuration_Filesを参照してください。 セッション構成ファイルを作成および変更する方法については、 New-PSSessionConfigurationFile コマンドレットを参照してください。

セッション構成では、ローカル コンピューターに接続するリモート セッション (PSSessions) の環境を定義します。 すべての PSSession はセッション構成を使用します。 セッション構成によって、 PSSessionの機能 (セッションで使用可能なモジュール、実行が許可されるコマンドレット、言語モード、クォータ、タイムアウトなど) が決まります。 セッション構成のセキュリティ記述子によって、セッション構成を使用してローカル コンピューターに接続できるユーザーが決まります。 セッション構成の詳細については、「 about_Session_Configurations」を参照してください。

セッション構成のプロパティを表示するには、 Get-PSSessionConfiguration コマンドレットまたは WSMan プロバイダーを使用します。 WSMan プロバイダーの詳細については、「 Get-Help WSMan」と入力します。

例 1: セッション構成の作成と変更

この例では、構成からスタートアップ スクリプトを追加および削除する方法を示します。

最初のコマンドは、 AdminShell 構成を作成します。 2 番目のコマンドは、 AdminConfig.ps1 スクリプトを構成に追加します。 この変更は、 WinRMを再起動したときに有効になります。 3 番目のコマンドは、 AdminConfig.ps1 スクリプトを構成から削除します。

Register-PSSessionConfiguration -Name "AdminShell" -AssemblyName "C:\Shells\AdminShell.dll" -ConfigurationTypeName "AdminClass"
Set-PSSessionConfiguration -Name "AdminShell" -StartupScript "AdminConfig.ps1"
Set-PSSessionConfiguration -Name "AdminShell" -StartupScript $Null

例 2: 結果を表示する

次の使用例は、 MaximumReceivedObjectSizeMB プロパティの値を 20に増やします。 このコマンドでは、 WinRM サービスの再起動も求められます。 この変更は、 WinRM サービスが再起動されるまで有効ではありません。

Set-PSSessionConfiguration -Name "IncObj" -MaximumReceivedObjectSizeMB 20

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

ParamName                       ParamValue
---------                       ----------
psmaximumreceivedobjectsizemb   20

"Restart WinRM service"
WinRM service need to be restarted to make the changes effective. Do you want to run the command "restart-service winrm"?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

例 3: さまざまな方法で結果を表示する

この例では、 Set-PSSessionConfigurationMaintenanceShell セッション構成のスタートアップ スクリプトを Maintenance.ps1に変更します。 出力には変更が表示され、 WinRM サービスを再起動するように求められます。 応答は y (はい) です。

Get-PSSessionConfiguration は、 MaintenanceShell セッション構成を取得します。 パイプライン演算子 (|) は、コマンドの結果を Format-Listに送信し、構成オブジェクトのすべてのプロパティを一覧に表示します。 次に、WSMan プロバイダーを使用して、 MaintenanceShell 構成の初期化パラメーターを表示します。 Get-ChildItemは、MaintenanceShell プラグインの InitializationParameters ノード内の子項目を取得します。 WSMan プロバイダーの詳細については、「 Get-Help wsman」と入力します。

Set-PSSessionConfiguration -Name "MaintenanceShell" -StartupScript "C:\ps-test\Maintenance.ps1"

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

ParamName            ParamValue
---------            ----------
startupscript        c:\ps-test\Mainte...

"Restart WinRM service"
WinRM service need to be restarted to make the changes effective. Do you want to run
the command "restart-service winrm"?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

Get-PSSessionConfiguration MaintenanceShell | Format-List -Property *

xmlns            : http://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration
Name             : MaintenanceShell
Filename         : %windir%\system32\pwrshplugin.dll
SDKVersion       : 1
XmlRenderingType : text
lang             : en-US
PSVersion        : 2.0
startupscript    : c:\ps-test\Maintenance.ps1
ResourceUri      : http://schemas.microsoft.com/powershell/MaintenanceShell
SupportsOptions  : true
ExactMatch       : true
Capability       : {Shell}
Permission       :

Get-ChildItem WSMan:\localhost\Plugin\MaintenanceShell\InitializationParameters

ParamName     ParamValue
---------     ----------
PSVersion     2.0
startupscript c:\ps-test\Maintenance.ps1

パラメーター

-AccessMode

セッション構成を有効化および無効化し、コンピューター上のリモート セッションまたはローカル セッションにセッション構成を使用できるかどうかを決定します。 このパラメーターの有効値は、次のとおりです。

  • Disabled. セッション構成を無効にします。 コンピューターへのリモート アクセスまたはローカル アクセスに使用できません。 この値は、セッション構成 (WSMan:\<ComputerName>\PlugIn\<SessionConfigurationName>\Enabled) の Enabled プロパティをFalseに設定します。
  • Local. セッション構成のセキュリティ記述子に Network_Deny_All エントリを追加します。 ローカル コンピューターのユーザーは、セッション構成を使用して同じコンピューター上にローカル ループバック セッションを作成できますが、リモート ユーザーはアクセスを拒否されます。
  • Remote. セッション構成のセキュリティ記述子から Deny_All エントリと Network_Deny_All エントリを削除します。 ローカル コンピューターおよびリモート コンピューターのユーザーは、セッション構成を使用して、このコンピューターでセッションを作成し、コマンドを実行できます。

既定値は Remote です。

他のコマンドレットは、後でこのパラメーターの値をオーバーライドできます。 たとえば、 Enable-PSRemoting コマンドレットは、コンピューター上のすべてのセッション構成を有効にし、それらに対するリモート アクセスを許可し、 Disable-PSRemoting コマンドレットは、コンピューター上のすべてのセッション構成へのローカル アクセスのみを許可します。

このパラメーターは PowerShell 3.0 で導入されました。

型:PSSessionConfigurationAccessMode
指定可能な値:Disabled, Local, Remote
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ApplicationBase

AssemblyName パラメーターの値に指定するアセンブリ ファイル (*.dll) のパスを指定します。

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

-AssemblyName

アセンブリ名を指定します。 このコマンドレットは、アセンブリで定義されているクラスに基づいてセッション構成を作成します。

セッション構成を定義するアセンブリ .dll ファイルのファイル名または完全パスを入力します。 ファイル名のみを入力する場合は、 ApplicationBase パラメーターの値にパスを入力できます。

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

-ConfigurationTypeName

AssemblyName パラメーターでアセンブリで定義されているセッション構成の種類を指定します。 指定する型は、 System.Management.Automation.Remoting.PSSessionConfiguration クラスを実装する必要があります。

アセンブリ名を指定する場合、このパラメーターは必須です。

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

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

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

-Force

すべてのユーザー プロンプトを抑制し、プロンプトを表示せずに WinRM サービスを再起動します。 サービスを再起動すると、構成の変更が有効になります。

再起動を防ぎ、再起動プロンプトを表示しないようにするには、 NoServiceRestart パラメーターを使用します。

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

-MaximumReceivedDataSizePerCommandMB

任意の 1 つのリモート コマンドでこのコンピューターに送信できるデータ量の制限を指定します。 データ サイズはメガバイト (MB) 単位で入力します。 既定値は、50 です。

ConfigurationTypeName パラメーターで指定された構成の種類でデータ サイズの制限が定義されている場合は、構成の種類の制限が使用されます。 このパラメーターの値は無視されます。

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

-MaximumReceivedObjectSizeMB

任意の 1 つのオブジェクトでこのコンピューターに送信できるデータ量の制限を指定します。 データ サイズをメガバイト単位で入力します。 既定値は、10 です。

ConfigurationTypeName パラメーターで指定されている構成の種類でオブジェクト サイズの制限が定義されている場合は、構成の種類の制限が使用されます。 このパラメーターの値は無視されます。

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

-ModulesToImport

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

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

このパラメーター値で指定されたモジュールは、セッション構成ファイル (New-PSSessionConfigurationFile) で指定されたモジュールに加えてインポートされます。 ただし、セッション構成ファイル内の設定によって、モジュールでエクスポートされたコマンドが非表示になったり、ユーザーが使用できなくなったりすることがあります。

このパラメーター値で指定されたモジュールは、指定されたモジュールのリストを、Register-PSSessionConfiguration コマンドレットの ModulesToImport パラメーターに置き換えます。

このパラメーターは PowerShell 3.0 で導入されました。

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

-Name

変更するセッション構成の名前を指定します。

このパラメーターを使用してセッション構成の名前を変更することはできません。

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

-NoServiceRestart

WinRM サービスを再起動せず、サービスの再起動を求めるメッセージを表示しません。

既定では、 Set-PSSessionConfigurationを実行すると、新しいセッション構成を有効にするために、 WinRM サービスを再起動するように求められます。 WinRM サービスが再起動されるまで、新しいセッション構成は有効ではありません。

メッセージを表示せずに WinRM サービスを再起動するには、 Force パラメーターを使用します。 WinRM サービスを手動で再起動するには、Restart-Service コマンドレットを使用します。

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

-Path

セッション構成ファイル (.pssc) のパス ( New-PSSessionConfigurationFile コマンドレットによって作成されたものなど) を指定します。 パスを省略した場合、既定値は現在のディレクトリになります。

セッション構成ファイルを変更する方法については、 New-PSSessionConfigurationFile コマンドレットのヘルプ トピックを参照してください。

このパラメーターは PowerShell 3.0 で導入されました。

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

-PSVersion

このセッション構成を使用するセッションの PowerShell のバージョンを指定します。

このパラメーターの値は、セッション構成ファイルの PowerShellVersion キーの値よりも優先されます。

このパラメーターは PowerShell 3.0 で導入されました。

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

-RunAsCredential

セッション内のコマンドの資格情報を指定します。 既定では、コマンドは現在のユーザーのアクセス許可で実行されます。

このパラメーターは PowerShell 3.0 で導入されました。

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

-SecurityDescriptorSddl

構成に対して別のセキュリティ記述子定義言語 (SDDL) 文字列を指定します。

この文字列によって、新しいセッション構成を使用するために必要なアクセス許可が決定します。 セッションでセッション構成を使用するには、構成に対する Execute(Invoke) 以上のアクセス許可がユーザーに必要です。

構成に既定のセキュリティ記述子を使用するには、空の文字列 ("") または値 $Nullを入力します。 既定値は、 WSMan: ドライブのルート SDDL です。

セキュリティ記述子が複雑な場合は、このパラメーターの代わりに ShowSecurityDescriptorUI パラメーターを使用することを検討してください。 両方のパラメーターを同じコマンドで使用することはできません。

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

-SessionTypeOption

セッション構成の種類固有のオプションを指定します。 New-PSWorkflowExecutionOption コマンドレットが返すPSWorkflowExecutionOption オブジェクトなどのセッションの種類のオプション オブジェクトを入力します。

セッション構成を使用するセッションのオプションは、セッション オプションの値とセッション構成オプションによって決定されます。 指定しない限り、セッションで設定されたオプション ( New-PSSessionOption コマンドレットなど) は、セッション構成で設定されたオプションよりも優先されます。 ただし、セッション オプションの値は、セッション構成に設定されている最大値を超えることはできません。

このパラメーターは PowerShell 3.0 で導入されました。

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

-ShowSecurityDescriptorUI

このパラメーターを使用すると、コマンドレットは、セッション構成用の新しい SDDL を作成するのに役立つプロパティ シートを開きます。 プロパティ シートは、 Set-PSSessionConfiguration コマンドを実行し、 WinRM サービスを再起動した後に表示されます。

構成にアクセス許可を設定する場合は、セッションでセッション構成を使用するには、少なくとも Execute(Invoke) アクセス許可が必要です。

同じコマンドで SecurityDescriptorSDDL パラメーターとこのパラメーターを使用することはできません。

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

-StartupScript

構成のスタートアップ スクリプトを指定します。 PowerShell スクリプトの完全修飾パスを入力します。 指定されたスクリプトが、セッション構成を使用する新しいセッションで実行されます。

セッション構成からスタートアップ スクリプトを削除するには、空の文字列 ("") または $Null の値を入力します。

スタートアップ スクリプトを使用して、ユーザー セッションをさらに構成できます。 スクリプトでエラーが生成された場合 (終了しないエラーであっても)、セッションは作成されず、 New-PSSession コマンドは失敗します。

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

-ThreadApartmentState

使用するスレッド モジュールのアパートメント状態を指定します。 使用可能な値は次のとおりです。

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

-ThreadOptions

構成のスレッド オプションの設定を指定します。 この設定は、セッションでコマンドが実行されたときのスレッドの作成方法および使用方法を定義します。 このパラメーターの有効値は、次のとおりです。

  • Default
  • ReuseThread
  • UseCurrentThread
  • UseNewThread

既定値は UseCurrentThread です。

詳細については、「 PSThreadOptions 列挙型を参照してください。

型:PSThreadOptions
指定可能な値:Default, UseNewThread, ReuseThread, UseCurrentThread
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-TransportOption

セッション構成のトランスポート オプションを指定します。 New-PSTransportOption コマンドレットが返すWSManConfigurationOption オブジェクトなどのトランスポート オプション オブジェクトを入力します。

セッション構成を使用するセッションのオプションは、セッション オプションの値とセッション構成オプションによって決定されます。 指定しない限り、セッションで設定されたオプション ( New-PSSessionOption コマンドレットなど) は、セッション構成で設定されたオプションよりも優先されます。 ただし、セッション オプションの値は、セッション構成に設定されている最大値を超えることはできません。

このパラメーターは PowerShell 3.0 で導入されました。

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

-UseSharedProcess

プロセスを 1 つだけ使用して、同じユーザーによって起動され、同じのセッション構成を使用するすべてのセッションをホストします。 既定では、各セッションは、個別のプロセスでホストされます。

このパラメーターは PowerShell 3.0 で導入されました。

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

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

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

入力

None

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

出力

WSManConfigLeafElement

メモ

このコマンドレットは、Windows プラットフォームでのみ使用できます。

このコマンドレットを実行するには、 Run as administrator オプションを使用して PowerShell を起動します。

Set-PSSessionConfiguration コマンドレットは構成名を変更せず、WSMan プロバイダーは Rename-Item コマンドレットをサポートしていません。 セッション構成の名前を変更するには、 Unregister-PSSessionConfiguration コマンドレットを使用して構成を削除し、 Register-PSSessionConfiguration コマンドレットを使用して新しいセッション構成を作成して登録します。

Set-PSSessionConfiguration コマンドレットを使用して、既定のMicrosoft.PowerShellMicrosoft.PowerShell32セッション構成を変更できます。 これらの構成は保護されません。 既定のセッション構成の元のバージョンに戻すには、 Unregister-PSSessionConfiguration コマンドレットを使用して既定のセッション構成を削除し、 Enable-PSRemoting コマンドレットを使用して復元します。

セッション構成オブジェクトのプロパティは、セッション構成に設定されているオプションとその値によって異なります。 また、セッション構成ファイルを使用するセッション構成には追加のプロパティがあります。

WSMan: ドライブのコマンドを使用して、セッション構成のプロパティを変更できます。 ただし、PowerShell 2.0 の WSMan: ドライブを使用して、 OutputBufferingMode など、PowerShell 3.0 で導入されたセッション構成プロパティを変更することはできません。 Windows PowerShell 2.0 のコマンドではエラーは生成されませんが、効果はありません。 PowerShell 3.0 で導入されたプロパティを変更するには、PowerShell 3.0 以降の WSMan: ドライブを使用します。