Enter-PSSession
リモート コンピューターと対話型のセッションを開始します。
構文
Enter-PSSession [-ComputerName] <string> [-ApplicationName <string>] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-Port <int>] [-SessionOption <PSSessionOption>] [-UseSSL] [<CommonParameters>]
Enter-PSSession [[-Id] <int>] [<CommonParameters>]
Enter-PSSession [-InstanceId <Guid>] [<CommonParameters>]
Enter-PSSession [-Name <string>] [<CommonParameters>]
Enter-PSSession [[-Session] <PSSession>] [<CommonParameters>]
Enter-PSSession [[-ConnectionURI] <Uri>] [-AllowRedirection] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-SessionOption <PSSessionOption>] [<CommonParameters>]
説明
Enter-PSSession コマンドレットは、1 台のリモート コンピューターと対話型のセッションを開始します。セッション中は、リモート コンピューターに直接入力した場合と同様に、入力したコマンドがリモート コンピューターで実行されます。一度に複数の対話型のセッションを開始することはできません。
通常、ComputerName パラメーターを使用してリモート コンピューターの名前を指定します。ただし、New-PSSession を対話型のセッションに使用して、独自に作成したセッションを使用することもできます。
対話型のセッションを終了して、リモート コンピューターへの接続を解除するには、Exit-PSSession コマンドレットを使用するか、「exit」と入力します。
パラメーター
-AllowRedirection
この接続を代替 URI (Uniform Resource Identifier) にリダイレクトできます。
ConnectionURI パラメーターを使用すると、リモートの配信先は別の URI にリダイレクトするための命令を返すことができます。既定では、Windows PowerShell は接続をリダイレクトしませんが、ユーザーはこのパラメーターを使用して接続のリダイレクトを許可できます。
この接続を代替 URI にリダイレクトできます。
ConnectionURI パラメーターを使用すると、リモートの配信先は別の URI にリダイレクトするための命令を返すことができます。既定では、Windows PowerShell は接続をリダイレクトしませんが、ユーザーは AllowRedirection パラメーターを使用して接続のリダイレクトを許可できます。
また、$PSSessionOption preference 変数の MaximumConnectionRedirectionCount property プロパティ、または SessionOption パラメーターの値の MaximumConnectionRedirectionCount プロパティを設定することにより、接続をリダイレクトする回数を制限することもできます。既定値は 5 です。詳細については、SessionOption パラメーターの説明と、New-PSSessionOption を参照してください。
必須 |
false |
位置 |
named |
既定値 |
False |
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-ApplicationName <string>
接続 URI のアプリケーション名セグメントを指定します。ConnectionURI パラメーターをコマンド内で使用しない場合は、このパラメーターを使用してアプリケーション名を指定します。
既定値は、ローカル コンピューターの $PSSessionApplicationName ユーザー設定変数の値です。この設定変数を定義しない場合、既定値は WSMAN になります。この値はほとんどのユーザーに適しています。詳細については、「about_Preference_Variables」を参照してください。
WinRM サービスは、アプリケーション名を使用して接続要求を処理するリスナーを選択します。このパラメーターの値は、リモート コンピューターにあるリスナーの URLPrefix プロパティの値と一致する必要があります。
必須 |
false |
位置 |
named |
既定値 |
WSMAN |
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Authentication <AuthenticationMechanism>
ユーザーの資格情報の認証に使用するメカニズムを指定します。有効な値は、"Default"、"Basic"、"Credssp"、"Digest"、"Kerberos"、"Negotiate"、および "NegotiateWithImplicitCredential" です。既定値は "Default" です。
CredSSP 認証は、Windows Vista、Windows Server 2008、およびそれ以降のバージョンの Windows でのみ使用できます。
このパラメーターの値については、MSDN (Microsoft Developer Network) ライブラリの System.Management.Automation.Runspaces.AuthenticationMechanism 列挙体の説明 (https://go.microsoft.com/fwlink/?LinkId=144382) を参照してください。
注意: ユーザーの資格情報が認証対象のリモート コンピューターに渡される、資格情報のセキュリティ サービス プロバイダー (CredSSP) 認証は、リモート ネットワーク共有にアクセスする場合など、複数のリソースの認証を必要とするコマンドを対象としています。このメカニズムを使用すると、リモート操作のセキュリティ リスクが高まります。リモート コンピューターのセキュリティが低下している場合は、そのリモート コンピューターに渡される資格情報を使用してネットワーク セッションを制御できます。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-CertificateThumbprint <string>
この処理を実行するアクセス許可を持つユーザー アカウントのデジタル公開キー証明書 (X509) を指定します。証明書の拇印を入力します。
証明書は、クライアント証明書ベースの認証で使用されます。これらはローカル ユーザー アカウントにのみマッピングできます。ドメイン アカウントでは機能しません。
証明書の拇印を取得するには、Windows PowerShell Cert: ドライブで Get-Item または Get-ChildItem コマンドを使用します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-ComputerName <string>
指定されたリモート コンピューターと対話型のセッションを開始します。コンピューター名を 1 つだけ入力します。既定値はローカル コンピューターです。
1 つまたは複数のリモート コンピューターの NetBIOS 名、IP アドレス、または完全修飾ドメイン名を入力します。パイプを使用して Enter-PSSession にコンピューター名を渡すこともできます。
ComputerName パラメーターの値に IP アドレスを使用するには、コマンドに Credential パラメーターを含める必要があります。また、コンピューターが HTTPS トランスポート用に構成されているか、リモート コンピューターの IP アドレスがローカル コンピューター上の WinRM TrustedHosts リストに含まれている必要があります。コンピューター名を TrustedHosts リストに追加する方法については、「about_Remote_Troubleshooting」の「How to Add a Computer to the Trusted Host List (コンピューターを信頼されたホストの一覧に追加する方法)」を参照してください。
注: Windows Vista 以降のバージョンの Windows で、ローカル コンピューターを ComputerName パラメーターの値に含めるには、Windows PowerShell を起動する際に [管理者として実行] を指定する必要があります。
必須 |
true |
位置 |
1 |
既定値 |
|
パイプライン入力を許可する |
true (ByValue, ByPropertyName) |
ワイルドカード文字を許可する |
false |
-ConfigurationName <string>
対話型セッションに使用するセッション構成を指定します。
構成名またはセッション構成の完全修飾リソース URI を入力します。構成名のみを指定すると、スキーマ URI "https://schemas.microsoft.com/powershell" が先頭に付加されます。
セッションのセッション構成は、リモート コンピューター上にあります。指定したセッション構成がリモート コンピューター上に存在しない場合、コマンドは失敗します。
既定値は、ローカル コンピューターの $PSSessionConfigurationName ユーザー設定変数の値です。この設定変数を設定しない場合、既定値は Microsoft.PowerShell になります。詳細については、「about_Preference_Variables」を参照してください。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-ConnectionURI <Uri>
対話型セッションの接続エンドポイントを定義する URI (Uniform Resource Identifier) を指定します。URI は完全修飾名でなければなりません。
この文字列の形式は次のとおりです。
<Transport>://<ComputerName>:<Port>/<ApplicationName>
既定値は次のとおりです。
https://localhost:80/WSMAN
URI のトランスポート セグメントの有効な値は HTTP および HTTPS です。ConnectionURI を指定しない場合、UseSSL、ComputerName、Port、および ApplicationName パラメーターを使用して URI 値を指定できます。
対象のコンピューターが接続を別の URI にリダイレクトする場合、コマンドで AllowRedirection パラメーターを使用しない限り、Windows PowerShell によってリダイレクトが防止されます。
必須 |
false |
位置 |
2 |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Credential <PSCredential>
この処理を実行するアクセス許可を持つユーザー アカウントを指定します。既定値は現在のユーザーです。
"User01"、"Domain01\User01"、"User@Domain.com" のようなユーザー名を入力するか、Get-Credential コマンドレットで返されるような PSCredential オブジェクトを入力します。
ユーザー名を入力すると、パスワードの入力を促すメッセージが表示されます。
必須 |
false |
位置 |
named |
既定値 |
Current user |
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Id <int>
既存のセッションの ID を指定します。Enter-PSSession は、指定されたセッションを対話型のセッションに使用します。
セッションの ID を検索するには、Get-PSSession コマンドレットを使用します。
必須 |
false |
位置 |
1 |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-InstanceId <Guid>
既存のセッションのインスタンス ID を指定します。Enter-PSSession は、指定されたセッションを対話型のセッションに使用します。
インスタンス ID は GUID です。セッションのインスタンス ID を検索するには、Get-PSSession コマンドレットを使用します。Session、Name、または ID パラメーターを使用して既存のセッションを指定することもできます。または、ComputerName パラメーターを使用して一時セッションを開始することもできます。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Name <string>
既存のセッションのフレンドリ名を指定します。Enter-PSSession は、指定されたセッションを対話型のセッションに使用します。
指定した名前が複数のセッションに一致する場合、コマンドは失敗します。Session、InstanceID、または ID パラメーターを使用して既存のセッションを指定することもできます。または、ComputerName パラメーターを使用して一時セッションを開始することもできます。
セッションのフレンドリ名を設定するには、New-PSSession コマンドレットの Name パラメーターを使用します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Port <int>
このコマンドで使用するリモート コンピューター上のネットワーク ポートを指定します。既定値はポート 80 (HTTP ポート) です。
代替ポートを使用する前に、リモート コンピューター上でそのポートをリッスンするための WinRM リスナーを構成する必要があります。リスナーを構成するには、次のコマンドを使用します。
1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="<port-number>"}
必要がない限り、Port パラメーターを使用しないでください。このコマンドのポート設定は、すべてのコンピューターまたはコマンドが実行されるセッションに適用されます。代替ポート設定によって、すべてのコンピューターでのコマンドの実行が妨げられている可能性があります。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Session <PSSession>
対話型のセッションに使用する Windows PowerShell セッション (PSSession) を指定します。このパラメーターは、セッション オブジェクトを取得します。Name、InstanceID、または ID パラメーターを使用して PSSession を指定することもできます。
セッション オブジェクトを格納する変数を入力するか、New-PSSession コマンドや Get-PSSession コマンドなど、セッション オブジェクトを作成または取得するコマンドを入力します。パイプを使用して Enter-PSSession にセッション オブジェクトを渡すこともできます。このパラメーターでは、複数の PSSession を渡すことはできません。複数の PSSession を含む変数を入力した場合、コマンドは失敗します。
Exit-PSSession または EXIT キーワードを使用すると、対話型のセッションは終了しますが、作成した PSSession は開いたままになり引き続き使用できます。
必須 |
false |
位置 |
1 |
既定値 |
|
パイプライン入力を許可する |
true (ByValue, ByPropertyName) |
ワイルドカード文字を許可する |
true |
-SessionOption <PSSessionOption>
セッションの詳細オプションを設定します。New-PSSessionOption コマンドレットを使用して作成する SessionOption オブジェクトを入力します。
$PSSessionOption 設定変数の値が設定されている場合、オプションの既定値はこの値によって決まります。それ以外の場合、セッションではシステムの既定値が使用されます。
既定値を含め、セッション オプションの詳細については、New-PSSessionOption を参照してください。$PSSessionOption 設定変数の詳細については、「about_Preference_Variables」を参照してください。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-UseSSL
Secure Sockets Layer (SSL) プロトコルを使用してリモート コンピューターとの接続を確立します。既定では、SSL は使用されません。
WS-Management では、ネットワーク上で送信されるすべての Windows PowerShell コンテンツが暗号化されます。UseSSL は、HTTP 接続ではなく HTTPS 接続を使用してデータを送信する追加の保護機能です。
このパラメーターを使用するが、コマンドに使用されるポートで SSL が利用できない場合、コマンドは失敗します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.
入力と出力
入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。
入力 |
System.String または System.Management.Automation.Runspaces.PSSession パイプを使用して Enter-PSSession にコンピューター名 (文字列) またはセッション オブジェクトを渡すことができます。 |
出力 |
None このコマンドレットによる戻り値はありません。 |
注
-- リモート コンピューターに接続するには、リモート コンピューターの管理者グループのメンバーであることが必要です。
-- Windows Vista 以降のバージョンの Windows で、ローカル コンピューターで対話型のセッションを開始するには、Windows PowerShell を起動する際に [管理者として実行] を指定する必要があります。
-- Enter-PSSession を使用すると、リモート コンピューターのユーザー プロファイルが対話型のセッションに使用されます。Windows PowerShell スナップインを追加するコマンドおよびコマンド プロンプトを変更するコマンドを含む、リモート ユーザー プロファイルのコマンドは、リモート プロンプトが表示される前に実行されます。
-- Enter-PSSession は、ローカル コンピューターの UI カルチャ設定を対話型のセッションに使用します。ローカルの UI カルチャを検索するには、$UICulture 自動変数を使用します。
-- Enter-PSSession には Get-Command、Out-Default、および Exit-PSSession コマンドレットが必要です。これらのコマンドレットがリモート コンピューターのセッション構成に含まれていない場合、Enter-PSSession コマンドは失敗します。
-- コマンドを解析および解釈してからリモート コンピューターに送信する Invoke-Command と異なり、Enter-PSSession はコマンドを解釈せず、直接リモート コンピューターに送信します。
例 1
C:\PS>Enter-PSSession
LocalHost\PS>
説明
-----------
このコマンドを実行すると、ローカル コンピューターで対話型のセッションが開始されます。コマンド プロンプトが変わり、別のセッションでコマンドが実行されていることが示されます。
入力したコマンドは新しいセッションで実行され、結果は既定のセッションにテキストとして返されます。
例 2
C:\PS>enter-pssession -computer Server01
Server01\PS> get-process powershell > C:\ps-test\process.txt
Server01\PS> exit-pssession
C:\PS>
C:\PS> dir C:\ps-test\process.txt
Get-ChildItem : Cannot find path 'C:\ps-test\process.txt' because it does not exist.
At line:1 char:4
+ dir <<<< c:\ps-test\process.txt
説明
-----------
このコマンドは、リモート コンピューターとの対話型のセッションでの作業方法を示します。
最初のコマンドは、Enter-PSSession コマンドレットを使用して、Server01 というリモート コンピューターとの対話型のセッションを開始します。セッションが開始されると、コマンド プロンプトはコンピューター名を含むプロンプトに変わります。
2 番目のコマンドは、PowerShell プロセスを取得し、出力が Process.txt ファイルにリダイレクトされます。このコマンドはリモート コンピューターに送信され、ファイルはリモート コンピューターに保存されます。
3 番目のコマンドは、Exit キーワードを使用して対話型のセッションを終了し、接続を切断します。
4 番目のコマンドは、Process.txt ファイルがリモート コンピューター上に存在することを確認します。ローカル コンピューター上の Get-ChildItem ("dir") コマンドでは、ファイルを検出できません。
例 3
C:\PS>$s = new-pssession -computername Server01
C:\PS> Enter-PSSession -session $s
Server01\PS>
説明
-----------
これらのコマンドは、Enter-PSSession の Session パラメーターを使用して、既存の Windows PowerShell セッション (PSSession) で対話型のセッションを実行します。
例 4
C:\PS>Enter-PSSession -computername Server01 -port 90 -credential domain01\user01
Server01\PS>
説明
-----------
このコマンドを実行すると、Server01 コンピューターと対話型のセッションが開始されます。Port パラメーターを使用してポートを指定し、Credential パラメーターを使用してリモート コンピューターに接続するアクセス許可を持つユーザー アカウントを指定します。
例 5
C:\PS>Enter-PSSession -computername Server01
Server01:\PS> Exit-PSSession
C:\PS>
説明
-----------
この例は、対話型のセッションを開始および終了する方法を示しています。最初のコマンドは、Enter-PSSession コマンドレットを使用して、Server01 コンピューターとの対話型のセッションを開始します。
2 番目のコマンドは、Exit-PSSession コマンドレットを使用してセッションを終了します。Exit キーワードを使用して対話型のセッションを終了することもできます。Exit-PSSession および Exit は、同じ結果になります。
関連項目
概念
about_PSSessions
about_Remote
New-PSSession
Get-PSSession
Exit-PSSession
Remove-PSSession
Invoke-Command