about_Session_Configurations
簡単な説明
コンピューターにリモート接続できるユーザーとそのユーザーが実行できるコマンドを決定するセッション構成について説明します。
長い説明
セッション構成 ("エンドポイント" とも呼ばれる) は、リモートユーザーまたはローカル ユーザーがローカル コンピューター上の PowerShell に接続するときに作成される PowerShell セッションの環境を定義する、ローカル コンピューター上の設定のグループです。
コンピューターの管理者は、セッション構成を使用してコンピューターを保護し、コンピューターに接続するユーザーのカスタム環境を定義できます。
管理者は、セッション構成を使用して、コンピューターにリモート接続するために必要なアクセス許可を決定することもできます。 既定では、Administrators グループのメンバーだけが、セッション構成を使用してリモート接続するためのアクセス許可を持っていますが、既定の設定を変更して、すべてのユーザーまたは選択したユーザーがコンピューターにリモート接続できるようすることができます。
PowerShell 3.0 から、セッション構成ファイルを使用して、セッション構成の要素を定義できます。 この機能を使用すると、コードを記述せずにセッションを簡単にカスタマイズしたり、セッション構成のプロパティを検出したりできます。 セッション構成ファイルを作成するには、次のコマンドレットNew-PSSessionConfigurationします。 セッション構成ファイルの詳細については、「about_Session_Configuration_Files」を参照してください。
セッション構成は、WSMAN ベースの PowerShell リモート処理の機能です。 これらは、、、または コマンドレットを使用New-PSSession``Invoke-Command``Enter-PSSessionしてリモート コンピューターに接続する場合にのみWindowsされます。
コンピューター上のセッション構成を管理するにはWindows管理者として実行] オプションを使用して PowerShell を起動 します。
セッション構成について
すべての PowerShell セッションでは、セッション構成が使用されます。 これには、New-PSSession または Enter-PSSession コマンドレットを使用して作成する永続的なセッションと、Ws-Management ベースのリモート処理テクノロジ (Invoke-Command など) を使用するコマンドレットの ComputerName パラメーターを使用するときに PowerShell によって作成される一時セッションが含まれます。
管理者は、セッション構成を使用して、コンピューターのリソースを保護し、コンピューターに接続するユーザー用のカスタム環境を作成できます。 たとえば、セッション構成を使用して、コンピューターがセッションで受け取るオブジェクトのサイズを制限し、セッションの言語モードを定義し、セッションで使用できるコマンドレット、プロバイダー、および関数を指定できます。
セッション構成のセキュリティ記述子を構成することで、セッション構成を使用してコンピューターに接続できるユーザーを決定します。 ユーザーがセッションで使用するには、セッション構成に対する実行アクセス許可が必要です。 ユーザーがコンピューター上のセッション構成を使用するために必要なアクセス許可を持てない場合、ユーザーはコンピューターにリモートで接続できません。
既定では、コンピューターの管理者だけが既定のセッション構成を使用する権限を持っています。 ただし、セキュリティ記述子を変更して、すべてのユーザー、ユーザー、または選択したユーザーだけがコンピューター上のセッション構成を使用できるようすることができます。
組み込みのセッション構成
PowerShell 3.0 には、Microsoft.PowerShell と Microsoft.PowerShell.Workflow という名前の組み込みセッション構成が含まれています。 64 ビット バージョンの Windows を実行しているコンピューターでは、PowerShell には Microsoft.PowerShell32 (32 ビット セッション構成) も用意されています。
Microsoft.PowerShell セッション構成は、セッションに既定で使用されます。つまり、セッションを作成するコマンドに New-PSSession、Enter-PSSession、または Invoke-Command コマンドレットの ConfigurationName パラメーターが含まれる場合です。
既定のセッション構成のセキュリティ記述子では、ローカル コンピューター上の Administrators グループのメンバーだけがそれらを使用できます。 そのため、既定の設定を変更しない限り、Administrators グループのメンバーだけがリモートでコンピューターに接続できます。
既定のセッション構成は、ユーザー設定変数の $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
セッション構成オブジェクトが PowerShell 3.0 で展開され、セッション構成ファイルを使用して構成されたセッション構成のプロパティが表示されます。
たとえば、セッション構成オブジェクトのすべてのプロパティを表示するには、次のコマンドを入力します。
PS C:> Get-PSSessionConfiguration | Format-List -Property *
PowerShell で WSMan プロバイダーを使用して、セッション構成を表示できます。 WSMan プロバイダーは、セッション内に WSMAN: ドライブを作成します。
WSMAN: ドライブでは、セッション構成は [プラグイン] ノードにあります。 (すべてのセッション構成はプラグイン ノードに含まれていますが、プラグイン ノードにはセッション構成ではない項目があります)。
たとえば、ローカル コンピューターでセッション構成を表示するには、次のコマンドを入力します。
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.wor... microsoft.powershell.workflow
Container {Name=microsoft.powershell32} microsoft.powershell32
リモート コンピューターでのセッション構成の表示
リモート コンピューター上のセッション構成を表示するには、Connect-WSMan コマンドレットを使用してリモート コンピューターのメモをローカル コンピューターの WSMAN: ドライブに追加し、WSMAN: ドライブを使用してセッション構成を表示します。
たとえば、次のコマンドは、Server01 リモート コンピューターのノードをローカル コンピューターの WSMAN: ドライブに追加します。
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\Pl
ugin
Type Keys Name
---- ---- ----
Container {Name=microsoft.powershell} microsoft.powershell
Container {Name=microsoft.powershell.wor... microsoft.powershell.workflow
Container {Name=microsoft.powershell32} microsoft.powershell32
セッション構成のセキュリティ記述子の変更
Windows Server 2012 Server の新しいWindowsでは、既定でリモート ユーザーに対して組み込みのセッション構成が有効になります。 サポートされている他のバージョンの Windows、リモート アクセスを許可するためにセッション構成のセキュリティ記述子を変更する必要があります。
コンピューター上のセッション構成へのリモート アクセスを有効にするには、次のコマンドレットEnable-PSRemotingします。 このコマンドレットは、次の 2 つのセッション構成を作成します。
- 名前を "PowerShell" と定義します。 + "現在の PowerShell バージョン"
- 名前が "PowerShell.6" で、特定の PowerShell バージョンに関連付け解除されます。
また、既定では、コンピューター上の Administrators グループのメンバーだけが既定のセッション構成に対する実行アクセス許可を持っていますが、既定のセッション構成および作成したセッション構成でセキュリティ記述子を変更できます。
他のユーザーにコンピューターにリモート接続するためのアクセス許可を付与するには、Set-PSSessionConfiguration コマンドレットを使用して、Microsoft.PowerShell と Microsoft.PowerShell32 セッション構成のセキュリティ記述子に、それらのユーザーの "実行" アクセス許可を追加します。
たとえば、次のコマンドを実行すると、Microsoft.PowerShell の既定のセッション構成のセキュリティ記述子を変更できるプロパティ ページが開きます。
Set-PSSessionConfiguration -name Microsoft.PowerShell `
-ShowSecurityDescriptorUI
コンピューター上のすべてのセッション構成に対するすべてのアクセス許可を拒否するには、次のコマンドレットDisable-PSSessionConfigurationします。 たとえば、次のコマンドは、コンピューター上の既定のセッション構成を無効にします。
PS C:> Disable-PSSessionConfiguration -Name Microsoft.PowerShell
リモート ユーザーがコンピューターに接続するのを防ぐが、ローカル ユーザーの接続を許可するには、Disable-PSRemotingします。 Disable-PSRemoting、コンピューター上Network_Deny_Allセッション構成に "Network_Deny_All" エントリを追加します。
PS C:> Disable-PSRemoting
リモート ユーザーがコンピューター上のすべてのセッション構成を使用するには、 Enable-PSRemoting または Enable-PSSessionConfigurationします。 たとえば、次のコマンドを実行すると、組み込みのセッション構成へのリモート アクセスが有効になります。
PS C:> Enable-PSSessionConfiguration -name Microsoft.Power*
セッション構成のセキュリティ記述子に他の変更を加えるには、次のコマンドレットSet-PSSessionConfigurationします。 SecurityDescriptorSDDL パラメーターを使用して、SDDL 文字列値を送信します。 ShowSecurityDescriptorUI パラメーターを使用して、新しい SDDL の作成に役立つユーザー インターフェイス プロパティ シートを表示します。
次に例を示します。
Set-PSSessionConfiguration -Name Microsoft.PowerShell `
-ShowSecurityDescriptorUI
新しいセッション構成の作成
ローカル コンピューターに新しいセッション構成を作成するには、次のコマンドレットRegister-PSSessionConfigurationします。 新しいセッション構成を定義するには、C# アセンブリ、PowerShell スクリプト、および Register-PSSessionConfiguration コマンドレットのパラメーターを使用できます。
たとえば、次のコマンドは、リモート コマンドから受信したデータを 20 メガバイト (MB) に制限する点を除き、Microsoft.PowerShell セッション構成と同一のセッション構成を作成します。 (既定値は 50 MB)。
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_PSSessions
- about_Remote
- about_Session_Configuration_Files
- New-PSSession
- Disable-PSSessionConfiguration
- Enable-PSSessionConfiguration
- Get-PSSessionConfiguration
- Register-PSSessionConfiguration
- Set-PSSessionConfiguration
- Unregister-PSSessionConfiguration
- New-PSSessionConfigurationFile
- Test-PSSessionConfigurationFile
フィードバック
フィードバックの送信と表示