Share via


Get-PSSession

ローカル コンピューター上およびリモート コンピューター上の Windows PowerShell セッションを取得します。

構文

Get-PSSession
   [-Name <String[]>]
   [<CommonParameters>]
Get-PSSession
   [-ComputerName] <String[]>
   [-ApplicationName <String>]
   [-ConfigurationName <String>]
   [-Name <String[]>]
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [-Port <Int32>]
   [-UseSSL]
   [-ThrottleLimit <Int32>]
   [-State <SessionFilterState>]
   [-SessionOption <PSSessionOption>]
   [<CommonParameters>]
Get-PSSession
   [-ComputerName] <String[]>
   [-ApplicationName <String>]
   [-ConfigurationName <String>]
   -InstanceId <Guid[]>
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [-Port <Int32>]
   [-UseSSL]
   [-ThrottleLimit <Int32>]
   [-State <SessionFilterState>]
   [-SessionOption <PSSessionOption>]
   [<CommonParameters>]
Get-PSSession
   [-ConnectionUri] <Uri[]>
   [-ConfigurationName <String>]
   [-AllowRedirection]
   [-Name <String[]>]
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [-ThrottleLimit <Int32>]
   [-State <SessionFilterState>]
   [-SessionOption <PSSessionOption>]
   [<CommonParameters>]
Get-PSSession
   [-ConnectionUri] <Uri[]>
   [-ConfigurationName <String>]
   [-AllowRedirection]
   -InstanceId <Guid[]>
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [-ThrottleLimit <Int32>]
   [-State <SessionFilterState>]
   [-SessionOption <PSSessionOption>]
   [<CommonParameters>]
Get-PSSession
   [-InstanceId <Guid[]>]
   [<CommonParameters>]
Get-PSSession
   [-Id] <Int32[]>
   [<CommonParameters>]

説明

Get-PSSession コマンドレットは、ローカル コンピューターとリモート コンピューター上のユーザーが管理する PowerShell セッション (PSSessions) を取得します。

Windows PowerShell 3.0 以降では、セッションは各接続のリモート側のコンピューターに格納されます。 Get-PSSessionComputerName パラメーターまたは ConnectionUri パラメーターを使用すれば、現在のセッションで作成されなかった場合でも、ローカル コンピューターまたはリモート コンピューターに接続しているセッションを取得できます。

パラメーターが指定されていない場合、Get-PSSession は現在のセッションで作成されたすべてのセッションを取得します。

Get-PSSession から返されるセッションの中から選択するには、NameIDInstanceIDStateApplicationNameConfigurationName などのフィルター処理パラメーターを使用します。

それ以外のパラメーターは、ComputerName パラメーターや ConnectionUri パラメーターを使用して Get-PSSession コマンドを実行する際の一時的な接続を構成するために使用します。

注: Windows PowerShell 2.0 では、パラメーターなしで、Get-PSSession は現在のセッションで作成されたすべてのセッションを取得します。 ComputerName パラメーターは、現在のセッションで作成されたセッションを取得し、指定したコンピューターに接続します。

PowerShell セッションの詳細については、「 about_PSSessions」を参照してください。

例 1: 現在のセッションで作成されたセッションを取得する

Get-PSSession

このコマンドは、現在のセッションで作成されたすべての PSSession を取得します。 このコンピューターに接続しても、他のセッションまたは他のコンピューターで作成された PSSession は取得されません。

例 2: ローカル コンピューターに接続されているセッションを取得する

Get-PSSession -ComputerName "localhost"

このコマンドは、ローカル コンピューターに接続されている PSSession を 取得します。 ローカル コンピューターを示すには、コンピューター名、localhost、またはドット (.) を入力します。

このコマンドは、別のセッションまたは別のコンピューターで作成された場合でも、ローカル コンピューター上のセッションをすべて返します。

例 3: コンピューターに接続されているセッションを取得する

Get-PSSession -ComputerName "Server02"

Id Name            ComputerName    State         ConfigurationName     Availability
 -- ----            ------------    -----         -----------------     ------------
  2 Session3        Server02       Disconnected  ITTasks                       Busy
  1 ScheduledJobs   Server02       Opened        Microsoft.PowerShell     Available
  3 Test            Server02       Disconnected  Microsoft.PowerShell          Busy

このコマンドは、Server02 コンピューターに接続されている PSSession を 取得します。

このコマンドは、別のセッションまたは別のコンピューターで作成された場合でも、Server02 上のセッションをすべて返します。

出力は、状態が Disconnected で可用性が Busy のセッションが 2 つあることを示しています。 これらのセッション別のセッションで作成されており、現在使用されています。 ScheduledJobs セッション ([開く] と [使用可能]) は、現在のセッションで作成されました。

例 4: このコマンドの結果を保存する

New-PSSession -ComputerName Server01, Server02, Server03
$s1, $s2, $s3 = Get-PSSession

この例では、 Get-PSSession コマンドの結果を複数の変数に保存する方法を示します。

最初のコマンドでは、 New-PSSession コマンドレットを使用して、3 台のリモート コンピューターに PSSession を 作成します。

2 番目のコマンドでは 、Get-PSSession コマンドレットを使用して 3 つの PSSession を取得します。 その後、各 PSSession を 個別の変数に保存します。

PowerShell は、オブジェクトの配列を変数の配列に割り当てると、最初のオブジェクトを最初の変数に割り当て、2 番目のオブジェクトを 2 番目の変数に割り当てます。 オブジェクトの数が変数の数よりも多い場合、残りのオブジェクトはすべて配列の最後の変数に割り当てられます。 変数の数がオブジェクトの数よりも多い場合、余分な変数は使用されません。

例 5: インスタンス ID を使用してセッションを削除する

Get-PSSession | Format-Table -Property ComputerName, InstanceID
$s = Get-PSSession -InstanceID a786be29-a6bb-40da-80fb-782c67f7db0f
Remove-PSSession -Session $s

この例では、インスタンス ID を使用して PSSession を取得し、 PSSession を削除する方法を示します。

最初のコマンドは、現在のセッションで作成されたすべての PSSession を取得します。 PSSessions を Format-Table コマンドレットに送信し、各 PSSessionComputerName プロパティと InstanceID プロパティを表示します。

2 番目のコマンドでは 、Get-PSSession コマンドレットを使用して特定の PSSession を取得し、$s変数に保存します。 コマンドは InstanceID パラメーターを使用して PSSession を識別します。

3 番目のコマンドでは、Remove-PSSession コマンドレットを使用して、$s変数の PSSession を削除します。

例 6: 特定の名前を持つセッションを取得する

この例のコマンドは、特定の名前形式に準拠し、特定のセッション構成を使用するセッションを探して接続します。 このようなコマンドを使用すれば、同僚が開始したタスクのセッションを探して接続し、そのタスクを完了することができます。

Get-PSSession -ComputerName Server02, Server12 -Name BackupJob* -ConfigurationName ITTasks -SessionOption @{OperationTimeout=240000}

Id Name            ComputerName    State         ConfigurationName     Availability
 -- ----            ------------    -----         -----------------     ------------
  3 BackupJob04     Server02        Disconnected        ITTasks                  None

$s = Get-PSSession -ComputerName Server02 -Name BackupJob04 -ConfigurationName ITTasks | Connect-PSSession
$s

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 5 BackupJob04     Server02        Opened        ITTasks                  Available

最初のコマンドは、BackupJob で始まり ITTasks セッション構成を使用する名前を持つ Server02 および Server12 リモート コンピューター上のセッションを取得します。コマンドは Name パラメーターを使用して名前パターンを指定し、 ConfigurationName パラメーターを使用してセッション構成を指定します。 SessionOption パラメーターの値は、OperationTimeout の値を 240,000 ミリ秒 (4 分) に設定するハッシュ テーブルです。 この設定により、コマンドの完了時間が長くなります。 ConfigurationName パラメーターと SessionOption パラメーターは、 Get-PSSession コマンドレットが各コンピューターで実行される一時的なセッションを構成するために使用されます。出力は、コマンドが BackupJob04 セッションを返したことを示しています。 セッションは切断され、 可用性 は None です。これは、使用されていないことを示します。

2 番目のコマンドでは 、Get-PSSession コマンドレットを使用して BackupJob04 セッションにアクセスし、Connect-PSSession コマンドレットを使用してセッションに接続します。 このコマンドは、セッションを $s 変数に保存します。

3 番目のコマンドは、$s 変数に保存されているセッションを取得します。 出力は、Connect-PSSession コマンドが成功したことを示しています。 このセッションは、Opened 状態にあり、使用可能です。

例 7: その ID を使用してセッションを取得する

Get-PSSession -Id 2

このコマンドは、ID 2 の PSSession を取得します。 ID プロパティの値は現在のセッションでのみ一意であるため、Id パラメーターはローカル コマンドに対してのみ有効です。

パラメーター

-AllowRedirection

このコマンドレットによって、代替の Uniform Resource Identifier (URI) へのこの接続のリダイレクトが許可されることを示します。 既定では、PowerShell は接続をリダイレクトしません。

このパラメーターは、ConnectionUri パラメーターを使用して Get-PSSession コマンドを実行するために作成される一時的な接続を構成します。

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

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

-ApplicationName

アプリケーションの名前を指定します。 このコマンドレットは、指定したアプリケーションを使用するセッションにのみ接続します。

接続 URI のアプリケーション名セグメントを入力します。 たとえば、次の接続 URI では、アプリケーション名は WSMan: https://localhost:5985/WSMANです。 セッションのアプリケーション名は、セッションの Runspace.ConnectionInfo.AppName プロパティに保存されています。

このパラメーター値は、セッションを選択してフィルター処理するために使用されます。 セッションが使用するアプリケーションが変更されることはありません。

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

-Authentication

Get-PSSession コマンドが実行されるセッションの資格情報の認証に使用するメカニズムを指定します。

このパラメーターは、ComputerName パラメーターまたは ConnectionUri パラメーターを指定して Get-PSSession コマンドを実行するために作成される一時的な接続を構成します。

このパラメーターの有効値は、次のとおりです。

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

既定値は Default です。

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

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

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

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

-CertificateThumbprint

Get-PSSession コマンドを実行するセッションを作成するアクセス許可を持つユーザー アカウントのデジタル公開キー証明書 (x509) を指定します。 証明書の拇印を入力します。

このパラメーターは、ComputerName パラメーターまたは ConnectionUri パラメーターを指定して Get-PSSession コマンドを実行するために作成される一時的な接続を構成します。

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

証明書の拇印を取得するには、PowerShell 証明書: ドライブで Get-Item または Get-ChildItem コマンドを使用します。

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

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

-ComputerName

コンピューターの名前の配列を指定します。 指定されたコンピューターに接続しているセッションを取得します。 ワイルドカード文字は使用できません。 既定値はありません。

Windows PowerShell 3.0 以降では、PSSession オブジェクトは各接続のリモート側のコンピューターに格納されます。 指定したコンピューターでセッションを取得するために、PowerShell は各コンピューターへの一時的な接続を作成し、 Get-PSSession コマンドを実行します。

1 台以上のコンピューターの NetBIOS 名、IP アドレス、または完全修飾ドメイン名を入力します。 ローカル コンピューターを指定するには、コンピューター名、localhost、またはドット (.) を入力します。

注: このパラメーターは、PowerShell の 3.0 以降のバージョン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 セッションの構成名は、セッションの ConfigurationName プロパティに保存されています。

このパラメーター値は、セッションを選択してフィルター処理するために使用されます。 セッションが使用するセッション構成が変更されることはありません。

セッション構成の詳細については、「 about_Session_Configurations」を参照してください。

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

-ConnectionUri

Get-PSSession コマンドを実行する一時セッションの接続エンドポイントを定義する URI を指定します。 URI は完全修飾名にする必要があります。

このパラメーターは、ConnectionUri パラメーターを使用して Get-PSSession コマンドを実行するために作成される一時的な接続を構成します。

この文字列の形式は次のとおりです。

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

既定値は次のとおりです。 https://localhost:5985/WSMAN.

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

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

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

このパラメーターは、Windows PowerShellの 3.0 以降のバージョンWindows PowerShell実行されているコンピューターからのみセッションを取得します。 それ以前のバージョンではセッションが保存されません。

Type:Uri[]
Aliases:URI, CU
Position:0
Default value:Http://localhost:5985/WSMAN
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Credential

ユーザー資格情報を指定します。 このコマンドレットは、指定したユーザーのアクセス許可を使用してコマンドを実行します。 リモート コンピューターに接続して Get-PSSession コマンド を実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。 、、、 などのUser01Domain01\User01ユーザー名を入力するかUser@Domain.com、Get-Credential コマンドレットによって返される PSCredential オブジェクトを入力します。 ユーザー名を入力すると、このコマンドレットによってパスワードの入力が求められます。

このパラメーターは、 ComputerName パラメーターまたは ConnectionUri パラメーターを指定して Get-PSSession コマンドを実行するために作成される一時的な接続を構成します。

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

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

セッション ID の配列を指定します。 このコマンドレットは、指定された ID を持つセッションのみを取得します。 1 つ以上の ID をコンマで区切って入力するか、範囲演算子 (..) を使用して ID の範囲を指定します。 COMPUTERName パラメーターと共に ID パラメーターを使用することはできません。

ID は、現在のセッション内のユーザー管理セッションを一意に識別する整数です。 InstanceId よりも覚えて入力する方が簡単ですが、現在のセッション内でのみ一意です。 セッションの ID は、セッションの ID プロパティに保存されています。

Type:Int32[]
Position:0
Default value:All sessions
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

セッションのインスタンス ID の配列を指定します。 このコマンドレットは、指定されたインスタンス ID を持つセッションのみを取得します。

インスタンス ID は、ローカル コンピューターまたはリモート コンピューターのセッションを一意に識別する GUID です。 InstanceID は、PowerShell で複数のセッションが実行されている場合でも一意です。

セッションのインスタンス ID は、セッションの InstanceID プロパティに保存されています。

Type:Guid[]
Position:Named
Default value:All sessions
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

セッション名の配列を指定します。 このコマンドレットは、指定されたフレンドリ名を持つセッションのみを取得します。 ワイルドカード文字を使用できます。

セッションのフレンドリ名は、セッションの Name プロパティに保存されています。

Type:String[]
Position:Named
Default value:All sessions
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-Port

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

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

Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse

New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>

このパラメーターは、 ComputerName パラメーターまたは ConnectionUri パラメーターを指定して Get-PSSession コマンドを実行するために作成される一時的な接続を構成します。

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

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

Type:Int32
Position:Named
Default value:5985, 5986
Required:False
Accept pipeline input:False
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

-State

セッション状態を指定します。 このコマンドレットは、指定された状態のセッションのみを取得します。 このパラメーターに使用できる値は、All、Opened、Disconnected、Closed、Broken です。 既定値は All です。

セッション状態の値は、現在のセッションを基準にしています。 現在のセッションで作成されておらず、現在のセッションに接続されていないセッションは、別のセッションに接続されている場合でも、状態は Disconnected になります。

セッションの状態は、セッションの State プロパティに保存されています。

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

Type:SessionFilterState
Accepted values:All, Opened, Disconnected, Closed, Broken
Position:Named
Default value:All
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ThrottleLimit

Get-PSSession コマンドを実行するために確立できる最大コンカレント接続数を指定します。 このパラメーターを省略した場合、または値 0 (ゼロ) を入力した場合は、既定値の 32 が使用されます。 スロットル制限は現在のコマンドのみに適用され、セッションまたはコンピューターには適用されません。

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

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

-UseSSL

このコマンドレットが Secure Sockets Layer (SSL) プロトコルを使用して 、Get-PSSession コマンドを実行する接続を確立することを示します。 既定では、SSL は使用されません。 コマンドに使用するポートで SSL が使用できない場合に、このパラメーターを指定すると、コマンドは失敗します。

このパラメーターは、ComputerName パラメーターを指定して Get-PSSession コマンドを実行するために作成される一時的な接続を構成します。

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

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

入力

None

パイプを使用してこのコマンドレットに入力を渡すことはできません。

出力

PSSession

メモ

  • このコマンドレットは、 New-PSSession、Enter-PSSession 、および Invoke-Command コマンドレットを使用して作成されたものなど、ユーザーが管理するセッション PSSession オブジェクトを取得します。 PowerShell の起動時に作成されるシステムマネージド セッションは取得されません。
  • Windows PowerShell 3.0 以降、PSSession オブジェクトは、サーバー側または接続の受信側にあるコンピューターに格納されます。 ローカル コンピューターまたはリモート コンピューターに格納されているセッションを取得するために、PowerShell は指定されたコンピューターへの一時的なセッションを確立し、セッションでクエリ コマンドを実行します。
  • リモート コンピューターに接続しているセッションを取得するには、ComputerName パラメーターまたは ConnectionUri パラメーターを使用してリモート コンピューターを指定します。 Get-PSSession が取得するセッションをフィルター処理するには、NameIDInstanceID、および State パラメーターを使用します。 それ以外のパラメーターは、Get-PSSession が使用する一時的なセッションを構成するために使用します。
  • ComputerName パラメーターまたは ConnectionUri パラメーターを使用すると、Get-PSSession は PowerShell Windows PowerShell 3.0 以降のバージョンを実行しているコンピューターからのみセッションを取得します。
  • PSSessionState プロパティの値は、現在のセッションに対して相対的です。 したがって、 Disconnected の値は、 PSSession が現在のセッションに接続されていないことを意味します。 ただし、 PSSession がすべてのセッションから切断されているわけではありません。 別のセッションに接続されている可能性があるためです。 現在のセッションから PSSession に接続できるか、または PSSession に再接続できるかを確認するには、 Availability プロパティを使用します。

Availability の値が None の場合は、セッションに接続できることを示します。 [ビジー] の値は、PSSession が別のセッションに接続されているため、接続できないことを示します。

セッションの State プロパティの値の詳細については、「 RunspaceState 列挙」を参照してください。

セッションの Availability プロパティの値の詳細については、「 RunspaceAvailability 列挙」を参照してください。