about_Session_Configurations

適用対象: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

トピック

about_Session_Configurations

簡単な説明

コンピューターにリモート接続できるユーザーとそのユーザーが実行できるコマンドを決定するセッション構成について説明します。

詳細な説明

「エンドポイント」とも呼ばれるセッション構成は、Windows PowerShell® セッションの環境を定義するローカル コンピューター上の複数の設定のことです。これらのセッションは、リモート ユーザーないしローカル ユーザーがローカル コンピューター上で Windows PowerShell に接続する際に作られます。

コンピューターの管理者は、コンピューターを保護し、コンピューターに接続するユーザー用のカスタム環境を定義するセッション構成を使用できます。

管理者は、コンピューターへのリモート接続に必要なアクセス許可を決定するためにセッション構成を使用できます。既定では、管理者グループのメンバーだけがセッション構成を使用してリモート接続する権限を持ちますが、すべてのユーザー、または選択したユーザーに対し、自分のコンピューターへのリモート接続を許可するよう既定の設定を変更することができます。

Windows PowerShell 3.0 以降は, セッション構成ファイルを使用して、セッション構成の要素を定義できます。この機能を使用すると、コードを記述せずにセッションをカスタマイズして、セッション構成のプロパティを検出することが容易になります。セッション構成ファイルを作成するには、New-PSSessionConfiguration コマンドレットを使用してください。セッション構成ファイルの詳細については、about_Session_Configuration_Files (https://go.microsoft.com/fwlink/?LinkId=236023) を参照してください。

セッション構成はWeb Services for Management (WS 管理) ベースの Windows PowerShell リモート処理の特徴です。セッション構成は、New-PSSession、Invoke-Command、または Enter-PSSession コマンドレットを使用しリモート コンピュータに接続する場合にのみ使用します 。

注記: セッション構成を操作するには、[管理者として実行] オプションを選択して Windows PowerShell を開始します。

セッション構成について

すべての Windows PowerShell セッションはセッション構成を使用します。セッション構成は New-PSSession または Enter-PSSession コマンドレットを使って作成する永続セッションおよび、Invoke-Command のような WS 管理ベースのリモート処理技術を使用するコマンドレットの ComputerName パラメーターを使用する際に Windows PowerShell が作成する一時セッションを含みます。

コンピューターの管理者は、コンピューターのリソースを保護し、コンピューターに接続するユーザー用のカスタム環境を定義するためにセッション構成を使用できます。たとえば、セッションでコンピューターが受信するオブジェクトのサイズを制限したり、セッションの言語のモードを定義したり、あるいはセッションで使用できるコマンドレット、プロバイダーおよび関数を指定するためにセッション構成を行うこともできます。

セッション構成のセキュリティ記述子を構成すると、コンピューターに接続するセッション構成を使用できるユーザーを指定できます。ユーザーがセッション構成をセッションで使用するには、Execute 権限が必要です。ユーザーがコンピューターのいずれのセッション構成についても必要な使用許可を持たない場合、ユーザーはリモートでコンピューターに接続できません。

既定では、コンピューターの管理者のみ、既定のセッション構成を使用する権限を持っています。しかし、セキュリティ記述子を変更して、コンピューターのセッション構成の使用を全員に許可したり、全員に使用を禁止したり、選択したユーザーにのみ許可することができます。ここにサブセクションの本文を挿入します。

組み込みのセッション構成

Windows PowerShell 3.0 には、Microsoft.PowerShell および Microsoft.PowerShell.Workflow という組み込みのセッション構成が設定されています。64 ビット版の Windows を動作しているコンピューター上では、Windows PowerShell は 32 ビットのセッション構成である Microsoft.PowerShell32 も提供します。

Windows PowerShell のセッション構成は既定のセッションに、すなわち、セッションを作成するコマンドが New-PSSession、Enter-PSSession、または Invoke-Command コマンドレットの ConfigurationName パラメータを含まない場合に使用されます。

既定のセッション構成のセキュリティ記述子は、それらを使用するローカル コンピューター上の管理者グループのメンバーのみを許可します。そのため、既定の設定を変更しない限り、管理者グループのメンバーのみが、コンピューターにリモートで接続できます。

$PSSessionConfigurationName のユーザー設定変数を使用することで、既定のセッション構成を変更できます。詳細については、about_Preference_Variables を参照してください。

ローカル コンピューター上のセッション構成を表示する

自分のローカル コンピューター上のセッション構成を取得するには、Get-PSSessionConfiguration コマンドレットを使用します。

たとえば、次のように入力します。

        PS C:\> Get-PSSessionConfiguration | Format-List -Property Name, Permission

        Name       : microsoft.powershell
        Permission : BUILTIN\Administrators AccessAllowed

        Name       : microsoft.powershell.workflow
        Permission : BUILTIN\Administrators AccessAllowed

        Name       : microsoft.powershell32
        Permission : BUILTIN\Administrators AccessAllowed

セッション構成のオブジェクトの機能は Windows PowerShell 3.0 で、セッション構成ファイルを使用することで構成されるセッション構成のプロパティを表示するために拡張されています。

たとえば、セッション構成のオブジェクトのすべてのプロパティを表示するには、次のように入力します。

        PS C:\> Get-PSSessionConfiguration | Format-List -Property *

セッション構成を表示するために、Windows PowerShell の WSMan プロバイダーを使用することもできます。WSMan プロバイダーは、WSMAN: ドライブをセッションに作成します。

WSMAN: ドライブにおいて、セッション構成はPlugin ノードにあります。(すべてのセッション構成は、Plugin ノードにありますが、Plugin ノード内にはセッション構成でない項目があります)。

たとえば、ローカル コンピューター上のセッション構成を表示するには、次のように入力します。ここにサブセクションの本文を挿入します。

         PS C:\> dir wsman:\localhost\plugin\microsoft*
      
            WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

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

リモート コンピューター上のセッション構成を表示する

リモート コンピューター上のセッション構成を表示するには、Connect-WSMan コマンドレットを使用し、リモートコンピュータ用のノードを自分のローカルコンピュータ上の WSMAN: ドライブに追加し、続いて WSMAN:ドライブを使用してセッション構成を表示します。

たとえば、次のコマンドは、ローカル コンピューター上の WSMAN: ドライブに Server01 リモート コンピューター用のノードを追加します。

        PS C:\> Connect-WSMan server01.corp.fabrikam.com

コマンドが完了すると、Server01 コンピューターのノードに移動し、セッション構成を表示できます。

たとえば、次のように入力します。

        PS C:\> cd wsman:
        
        PS WSMan:\> dir 

        ComputerName                                  Type
        ------------                                  ----
        localhost                                     Container
        server01.corp.fabrikam.com                    Container

        PS WSMan:\> dir server01*\plugin\*


               WSManConfig: Microsoft.WSMan.Management\WSMan::server01.corp.fabrikam.com\Plugin


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

セッション構成のセキュリティ記述子を変更する

Windows Server 2012 およびそれ以降の Windows Server では、組み込みのセッション構成がリモートユーザーに対し既定で有効になっています。その他のサポートされているバージョンの Windows では、リモート アクセスを許可するにはセッション構成のセキュリティ記述子を変更する必要があります。

コンピューター上のセッション構成へのリモート アクセスを有効にするには、Enable-PSRemoting コマンドレットを使用します。ここにサブセクションの本文を挿入します。

また、既定ではコンピューターの管理者グループのメンバーのみに、既定のセッション構成の実行権限が認められていますが、既定のセッション構成においても、自分で作成したいかなるセッション構成においても、セキュリティ記述子を変更することができます。

他のユーザーにコンピューターにリモート接続する権限を付与するには、Set-PSSessionConfiguration コマンドレットを使用し、Microsoft.PowerShell および Microsoft.PowerShell32 セッション構成のセキュリティ記述子にこれらのユーザーの "実行" 権限を追加します。

たとえば、次のコマンドで、Microsoft.PowerShell の既定のセッション構成のセキュリティ記述子を変更できるプロパティ ページを開きます。

        PS C:\> Set-PSSessionConfiguration -name Microsoft.PowerShell -ShowSecurityDescriptorUI

コンピューター上のすべてのセッション構成に対して全ユーザーに与えられる権限を拒否するには、Disable-PSSessionConfiguration コマンドレットを使用します。たとえば、次のコマンドは、コンピューター上の既定のセッション構成を無効にします。

        PS C:\> Disable-PSSessionConfiguration -Name Microsoft.PowerShell

リモート ユーザーのコンピューターへの接続を防ぎ、かつローカル ユーザーの接続を許可するには、Disable-PSRemoting コマンドレットを使用します。Disable-PSRemoting は、コンピューター上のすべてのセッション構成に、"Network_Deny_All" エントリを追加します。

        PS C:\> Disable-PSRemoting

リモート ユーザーにコンピューター上のすべてのセッション構成の使用を許可するには、Enable-PSRemoting または Enable-PSSessionConfiguration コマンドレットを使用します。たとえば、次のコマンドは、組み込みのセッション構成へのリモート アクセスを有効にします。

        PS C:\> Enable-PSSessionConfiguration -name Microsoft.Power*

セッション構成のセキュリティ記述子にその他の変更を加えるには、Set-PSSessionConfiguration コマンドレットを使用します。SDDL 文字列の値を送信するには SecurityDescriptorSDDL パラメータを使用します。ShowSecurityDescriptorUI パラメータを使用すると、新しい SDDL を作成するのに役立つユーザー インターフェイスのプロパティ シートを表示できます。

たとえば、次のように入力します。

        PS C:\> Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUI

新規のセッション構成を作成する

ローカル コンピューター上で新規のセッション構成を作成するには、Register-PSSessionConfiguration コマンドレットを使用します。新規のセッション構成を定義するには、C# アセンブリ、Window PowerShell スクリプト、および Register-PSSessionConfiguration コマンドレットのパラメーターを使用できます。

たとえば、次のコマンドは、リモートコマンドから受信したデータを 20 メガバイト (MB) (既定値は 50 MB) に制限する点を除き、Microsoft.PowerShell のセッション構成と同一のセッション構成を作成します。ここにサブセクションの本文を挿入します。

        PS C:\> Register-PSSessionConfiguration -Name NewConfig --MaximumReceivedDataSizePerCommandMB                    20

作成したセッション構成は、その他のセッション構成コマンドレットを使用して管理でき、また WSMAN: ドライブに表示されます。

詳細については、Register-PSSessionConfiguration を参照してください。

セッション構成を削除する

ローカル コンピュータからセッション構成を削除するには、Unregister-PSSessionConfiguration コマンドレットを使用します。たとえば、次のコマンドは、コンピューターから NewConfig セッション構成を削除します。

        PS C:\> Unregister-PSSessionConfiguration -Name NewConfig

詳細については、Unregister-PSSessionConfiguration を参照してください。

セッション構成を復元する

誤って削除 (登録解除) された既定のセッションの構成を復元するには、Enable-PSRemoting コマンドレットを使用します。

Enable-PSRemoting コマンドレットは、コンピューター上に存在しないすべての既定のセッション構成を再作成します。上記コマンドレットでは、既存のセッション構成が上書きされたり、プロパティの値が変更されることはありません。

既定のセッション構成の元のプロパティ値を復元するには、Unregister-PSSessionConfiguration を使用してセッション構成を削除し、続いて Enable-PSRemoting コマンドレットを使用して再作成します。

セッション構成を選択する

セッションで特定のセッション構成を選択するには、New-PSSession、Enter-PSSession、または Invoke-Command の ConfigurationName パラメーターを使用します。

たとえば、このコマンドは New-PSSession のコマンドレットを使用して Server01 コンピューター上で PSSession を開始します。このコマンドは、ConfigurationName パラメータを使用して、Server01 コンピューター上の WithProfile 構成を選択します。

        PS C:\> New-PSSession -ComputerName Server01 -ConfigurationName WithProfile

このコマンドは、現在のユーザーが WithProfile のセッション構成を使用する権限があるか、必要な権限を持つユーザーの資格情報を提供できる場合にのみ成功します。

コンピューター上の既定のセッション構成を変更するには $PSSessionConfigurationName ユーザー設定変数を使用することもできます。$PSSessionConfigurationName ユーザー設定変数の詳細については、about_Preference_Variables を参照してください。

キーワード

about_Endpoints

about_SessionConfigurations

関連項目

about_Preference_Variables

about_PSSession

about_Remote

about_Session_Configuration_Files

New-PSSession

Disable-PSSessionConfiguration

Enable-PSSessionConfiguration

Get-PSSessionConfiguration

New-PSSessionConfigurationFile

Register-PSSessionConfiguration

Set-PSSessionConfiguration

Test-PSSessionConfigurationFile

Unregister-PSSessionConfiguration