次の方法で共有


Enter-PSSession

リモート コンピューターとの対話型セッションを開始します。

構文

Enter-PSSession
     [-ComputerName] <String>
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-Port <Int32>]
     [-UseSSL]
     [-ConfigurationName <String>]
     [-ApplicationName <String>]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [[-Session] <PSSession>]
     [<CommonParameters>]
Enter-PSSession
     [[-ConnectionUri] <Uri>]
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-ConfigurationName <String>]
     [-AllowRedirection]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [-InstanceId <Guid>]
     [<CommonParameters>]
Enter-PSSession
     [[-Id] <Int32>]
     [<CommonParameters>]
Enter-PSSession
     [-Name <String>]
     [<CommonParameters>]
Enter-PSSession
     [-VMGuid] <Guid>
     -Credential <PSCredential>
     [<CommonParameters>]
Enter-PSSession
     [-VMName] <String>
     -Credential <PSCredential>
     [<CommonParameters>]

説明

Enter-PSSession コマンドレットは、単一のリモート コンピューターとの対話型セッションを開始します。 セッション中に、入力したコマンドは、リモート コンピューターで直接入力した場合と同様に、リモート コンピューターで実行されます。 一度に 1 つのみの対話型セッションを確立できます。

通常、ComputerName パラメーターを使用して、リモート コンピューターの名前を指定します。 ただし、対話型セッションの New-PSSession コマンドレットを使用して作成したセッションを使用することもできます。 ただし、Disconnect-PSSession、Connect-PSSession、または Receive-PSSession コマンドレットを使用して、対話型セッションから切断したり、対話型セッションに再接続したりすることはできません。

対話型セッションを終了し、リモート コンピューターから切断するには、Exit-PSSession コマンドレットを使用するか、「」と入力します exit

例 1: 対話型セッションを開始する

PS C:\> Enter-PSSession
[localhost]: PS C:\>

このコマンドは、ローカル コンピューターで対話型セッションを開始します。 コマンド プロンプトが変更され、現在、別のセッションでコマンドを実行していることを示します。

入力したコマンドは新しいセッションで実行され、結果がテキストとして既定のセッションに返されます。

例 2: 対話型セッションを操作する

The first command uses the **Enter-PSSession** cmdlet to start an interactive session with Server01, a remote computer. When the session starts, the command prompt changes to include the computer name.
PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\>

The second command gets the Windows PowerShell process and redirects the output to the Process.txt file. The command is submitted to the remote computer, and the file is saved on the remote computer.
[Server01]: PS C:\> Get-Process PowerShell > C:\ps-test\Process.txt

The third command uses the **Exit** keyword to end the interactive session and close the connection.
[Server01]: PS C:\> exit
PS C:\>

The fourth command confirms that the Process.txt file is on the remote computer. A **Get-ChildItem** ("dir") command on the local computer cannot find the file.
PS C:\> 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

このコマンドは、リモート コンピューターとの対話型セッションで作業する方法を示します。

例 3: Session パラメーターを使用する

PS C:\> $s = New-PSSession -ComputerName Server01
PS C:\> Enter-PSSession -Session $s
[Server01]: PS C:\>

これらのコマンドは、Enter-PSSessionSession パラメーターを使用して、既存のWindows PowerShell セッション (PSSession) で対話型セッションを実行します。

例 4: 対話型セッションを開始し、ポートと資格情報のパラメーターを指定する

PS C:\> Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01
[Server01]: PS C:\>

このコマンドは、Server01 コンピューターとの対話型セッションを開始します。 Port パラメーターを使用して ポート を指定し、 Credential パラメーターを使用して、リモート コンピューターに接続するアクセス許可を持つユーザーのアカウントを指定します。

例 5: 対話型セッションを停止する

PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\> Exit-PSSession
PS C:\>

この例は、対話型セッションを開始および停止する方法を示しています。 最初のコマンドでは、 Enter-PSSession コマンドレットを使用して、Server01 コンピューターとの対話型セッションを開始します。

2 番目のコマンドでは、 Exit-PSSession コマンドレットを使用してセッションを終了します。 Exit キーワード (keyword)を使用して対話型セッションを終了することもできます。 Exit-PSSessionExit は同じ効果を持ちます。

パラメーター

-AllowRedirection

この接続を代替 Uniform Resource Identifier (URI) にリダイレクトできます。 既定では、リダイレクトは許可されません。

ConnectionURI パラメーターを使用すると、リモートの送信先は別の URI にリダイレクトするように指示を返すことができます。 既定では、Windows PowerShell は接続をリダイレクトしませんが、ユーザーはこのパラメーターを使用して接続をリダイレクトできます。

また、MaximumConnectionRedirectionCount セッション オプション値を変更することで、接続をリダイレクトする回数を制限することもできます。 New-PSSessionOption コマンドレットの MaximumRedirection パラメーターを使用するか、$PSSessionOption基本設定変数の MaximumConnectionRedirectionCount プロパティを設定します。 既定値は 5 です。

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

-ApplicationName

接続 URI のアプリケーション名セグメントを指定します。 このパラメーターは、このコマンドの ConnectionURI パラメーターを使用しないときに、アプリケーション名を指定するために使用します。

既定値は、ローカル コンピューター上の $PSSessionApplicationName ユーザー設定変数の値です。 このユーザー設定変数が定義されていない場合、既定値は WSMAN です。 この値はほとんどの用途に適しています。 詳細については、「about_Preference_Variables」を参照してください。

WinRM サービスでは、アプリケーション名を使用して、接続要求をサービスするリスナーを選択します。 このパラメーターの値は、リモート コンピューター上のリスナーの URLPrefix プロパティの値に一致している必要があります。

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

-Authentication

ユーザーの資格情報の認証に使用するメカニズムを指定します。 このパラメーターの有効値は、次のとおりです。

  • Default
  • Basic
  • Credssp
  • ダイジェスト
  • Kerberos
  • ネゴシエート
  • NegotiateWithImplicitCredential

既定値は Default です。

CredSSP 認証は、Windows Vista、Windows Server 2008、およびそれ以降のバージョンの Windows オペレーティング システムでのみ使用できます。

このパラメーターの値の詳細については、MSDN ライブラリの 「AuthenticationMechanism 列挙」を 参照してください。

注意: ユーザーの資格情報が認証されるリモート コンピューターにユーザーの資格情報が渡される資格情報セキュリティ サポート プロバイダー (CredSSP) 認証は、リモート ネットワーク共有へのアクセスなど、複数のリソースで認証を必要とするコマンド用に設計されています。 このメカニズムを使用すると、リモート操作のセキュリティ リスクが高まります。 リモート コンピューターのセキュリティが低下している場合は、そのリモート コンピューターに渡される資格情報を使用してネットワーク セッションが制御される場合があります。

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

この処理を実行するアクセス許可を持つユーザー アカウントのデジタル公開キー証明書 (X509) を指定します。 証明書の拇印を入力します。

証明書は、クライアント証明書ベースの認証で使用されます。 これらの証明書は、ローカル ユーザー アカウントにしかマップできません。ドメイン アカウントでは機能しません。

証明書を取得するには、Windows PowerShell Cert: ドライブで Get-Item または Get-ChildItem を使用します。

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

-ComputerName

コンピューター名を指定します。 このコマンドレットは、指定されたリモート コンピューターとの対話型セッションを開始します。 コンピューター名を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を開始する必要があります。

Type:String
Aliases:Cn
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ConfigurationName

対話型セッションに使用するセッション構成を指定します。

セッション構成の構成名または完全修飾リソース URI を入力します。 構成名のみを指定した場合は、次のスキーマ URI が先頭に付加されます。 https://schemas.microsoft.com/powershell

セッションのセッション構成は、リモート コンピューター上にあります。 指定したセッション構成がリモート コンピューター上に存在しない場合、コマンドは失敗します。

既定値は、ローカル コンピューター上の $PSSessionConfigurationName ユーザー設定変数の値です。 このユーザー設定変数が設定されていない場合、既定値は Microsoft.PowerShell です。 詳細については、「about_Preference_Variables」を参照してください。

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

-ConnectionUri

セッションの接続エンドポイントを定義する URI を指定します。 URI は完全修飾名にする必要があります。 この文字列の形式は次のとおりです。

<Transport>://<ComputerName>:<Port>/<ApplicationName>

既定値は、次のとおりです。

https://localhost:5985/WSMAN

ConnectionURI を指定しなかった場合は、UseSSLComputerNamePort、および ApplicationName パラメーターを使用して、ConnectionURI 値を指定できます。

URI のトランスポート セグメントの有効な値は、HTTP および HTTPS です。 トランスポート セグメントを使用して接続 URI を指定したが、ポートを指定しない場合、セッションは標準ポート (HTTP の場合は 80、HTTPS の場合は 443) を使用して作成されます。 Windows PowerShell リモート処理用の既定のポートを使用するには、HTTP の場合は 5985、HTTPS の場合は 5986 を指定します。

送信先コンピューターが別の URI に接続をリダイレクトする場合、コマンドで AllowRedirection パラメーターを使用しない限り、Windows PowerShell はリダイレクションを阻止します。

Type:Uri
Aliases:URI, CU
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Credential

この処理を実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。

ユーザー名 (、、、 などUser01Domain01\User01) を入力するかUser@Domain.comPSCredential オブジェクト (Get-Credential コマンドレットによって返されるオブジェクトなど) を入力します。

ユーザー名を入力すると、このコマンドレットによってパスワードの入力が求められます。

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

-EnableNetworkAccess

このコマンドレットがループバック セッションに対話型セキュリティ トークンを追加することを示します。 対話型トークンを使用すると、他のコンピューターからデータを取得するコマンドをループバック セッションで実行できます。 たとえば、リモート コンピューターからローカル コンピューターに XML ファイルをコピーするコマンドをセッションで実行できます。

ループバック セッションは、同じコンピューターで開始および終了する PSSession です。 ループバック セッションを作成するには、 ComputerName パラメーターを省略するか、その値を に設定します。 (dot)、localhost、またはローカル コンピューターの名前。

既定では、ループバック セッションはネットワーク トークンを使用して作成されます。これにより、リモート コンピューターに対して認証するための十分なアクセス許可が提供されない可能性があります。

EnableNetworkAccess パラメーターは、ループバック セッションでのみ有効です。 リモート コンピューターでセッションを作成するときに EnableNetworkAccess を 使用すると、コマンドは成功しますが、 パラメーターは無視されます。

Authentication パラメーターの CredSSP 値を使用して、ループバック セッションでリモート アクセスを許可することもできます。その場合、セッションの資格情報が他のコンピューターに委任されます。

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

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

-Id

既存のセッションの ID を指定します。 Enter-PSSession では、 対話型セッションに指定されたセッションが使用されます。

セッションの ID を検索するには、Get-PSSession コマンドレットを使用します。

Type:Int32
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

既存のセッションのインスタンス ID を指定します。 Enter-PSSession では、 対話型セッションに指定されたセッションが使用されます。

インスタンス ID は GUID です。 セッションのインスタンス ID を見つけるには、 Get-PSSession コマンドレットを 使用します。 セッション名前、または ID パラメーターを使用して、既存のセッションを指定することもできます。 または、 ComputerName パラメーターを使用して一時的なセッションを開始できます。

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

-Name

既存のセッションのフレンドリ名を指定します。 Enter-PSSession では、 対話型セッションに指定されたセッションが使用されます。

指定した名前が複数のセッションと一致する場合、コマンドは失敗します。 SessionInstanceID、または ID パラメーターを使用して、既存のセッションを指定することもできます。 または、 ComputerName パラメーターを使用して一時的なセッションを開始できます。

セッションのフレンドリ名を確立するには、New-PSSession コマンドレットの Name パラメーターを使用します。

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

-Port

このコマンドに使用するリモート コンピューターのネットワーク ポートを指定します。 リモート コンピューターに接続するには、リモート コンピューターで、接続に使用されるポートをリッスンすることが必要です。 既定のポートは、HTTP の WinRM ポートである 5985 と、HTTPS の WinRM ポートである 5986 です。

代替ポートを使用する前に、そのポートでリッスンするようにリモート コンピューター上の WinRM リスナーを構成する必要があります。 リスナーを構成するには、次のコマンドを使用します。

1. winrm delete winrm/config/listener?Address=*+Transport=HTTP

2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}

必要な場合を除き、Port パラメーターを使用しないでください。 コマンドのポート設定は、コマンドが実行されるすべてのコンピューターまたはセッションに適用されます。 代替ポートの設定によっては、コマンドがすべてのコンピューターで実行されない場合があります。

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

-Session

対話型セッションに使用するWindows PowerShell セッション (PSSession) を指定します。 このパラメーターは、セッション オブジェクトを受け取ります。 また、NameInstanceID、または ID パラメーターを使用して PSSession を指定することもできます。

セッション オブジェクトを含む変数、または New-PSSession コマンドや Get-PSSession コマンドなどのセッション オブジェクトを作成または取得 するコマンドを 入力します。 セッション オブジェクトを Enter-PSSession にパイプすることもできます。 このパラメーターを使用して送信できる PSSession は 1 つだけです。 複数の PSSession を含む変数を入力すると、コマンドは失敗します。

Exit-PSSession または EXIT キーワード (keyword)を使用すると、対話型セッションは終了しますが、作成した PSSession は開いたままで使用できます。

Type:PSSession
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SessionOption

セッションの詳細オプションを設定します。 New-PSSessionOption コマンドレットを使用して作成した SessionOption オブジェクトや、キーがセッション オプション名で値がセッション オプション値であるハッシュ テーブルなど、SessionOption オブジェクトを入力します。

オプションの既定値は、$PSSessionOption ユーザー設定変数が設定されている場合は、その値によって決まります。 それ以外の場合、既定値はセッション構成で設定されたオプションによって決まります。

セッション オプションの値は、$PSSessionOption ユーザー設定変数およびセッション構成で設定されたセッションの既定値よりも優先されます。 ただし、セッション構成で設定された最大値、クォータ、または制限よりも優先されることはありません。

既定値を含む、セッション オプションの詳細については、「New-PSSessionOption」を参照してください。 $PSSessionOption基本設定変数の詳細については、「 about_Preference_Variables」を参照してください。 セッション構成の詳細については、「 about_Session_Configurations」を参照してください。

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

-UseSSL

このコマンドレットが Secure Sockets Layer (SSL) プロトコルを使用してリモート コンピューターへの接続を確立することを示します。 既定では、SSL は使用されません。

WS-Management は、ネットワークを介して転送されるすべての Windows PowerShell コンテンツを暗号化します。 UseSSL パラメーターは、HTTP 接続ではなく HTTPS 接続を介してデータを送信する追加の保護です。

このパラメーターを使用しても、コマンドに使用されているポートで SSL を使用できない場合、コマンドは失敗します。

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

-VMGuid

仮想マシンの ID を指定します。

Type:Guid
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMName

仮想マシンの名前を指定します。

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

入力

System.String, System.Management.Automation.Runspaces.PSSession

コンピューター名を文字列またはセッション オブジェクトとしてこのコマンドレットにパイプできます。

出力

None

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

メモ

  • リモート コンピューターに接続するには、リモート コンピューターの Administrators グループのメンバーであることが必要です。
  • 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 はコマンドを解釈せずにリモート コンピューターに直接送信します。
  • 入力するセッションがコマンドの処理中にビジー状態になっている場合、Windows PowerShell Enter-PSSession コマンドに応答するまでに遅延が発生する可能性があります。 セッションが使用可能になるとすぐに接続されます。 Enter-PSSession コマンドを取り消すには、 キーを押しますCTRL+C