PowerShell HelpFile - about_pssessions
 記事記号:[me1561] 初版:2011/May/10

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

トピック
    about_PSSessions

簡易説明
    Windows PowerShell セッション (PSSession) について説明し、リモート コンピュ
    ーターへの固定接続を確立する方法を紹介します。


詳細説明
    リモート コンピューター上で Windows PowerShell コマンドを実行するには、コマ
    ンドレットの ComputerName パラメーターを使用するか、Windows PowerShell セッ
    ション (PSSession) を作成してその PSSession でコマンドを実行します。

    PSSession を作成すると、Windows PowerShell はリモート コンピューターへの固定
    接続を確立します。リモート コンピューターで一連の関連コマンドを実行するには、
    PSSession を使用します。同じ PSSession で実行されるコマンド間では、変数の値、
    エイリアス、関数などのデータを共有できます。

    ローカル コンピューターで PSSession を作成し、その PSSession でコマンドを実
    行することもできます。ローカル PSSession は、Windows PowerShell リモート処理
    インフラストラクチャを使用して PSSession を作成および維持します。

    ここでは、PSSession を作成、使用、取得、および削除する方法について説明します。
    高度な情報については、「about_PSSession_Details」を参照してください。

    注: PSSession は、Windows PowerShell リモート処理インフラストラクチャを使用
        します。PSSession を使用するには、ローカル コンピューターとリモート コン
        ピューターがリモート処理用に構成されている必要があります。詳細については、
        「about_Remote_Requirements」を参照してください。

        Windows Vista 以降のバージョンの Windows で、ローカル コンピューター上に 
        PSSession を作成するには、Windows PowerShell を起動する際に [管理者とし
        て実行] を指定する必要があります。
    

 セッションとは

    セッションとは、Windows PowerShell が実行される環境のことです。
    
    Windows PowerShell を起動するたびに、セッションが自動的に作成されます。ユー
    ザーは、そのセッションでコマンドを実行できます。モジュールやスナップインなど
    の項目をセッションに追加することも、変数、関数、エイリアスなどの項目を作成す
    ることもできます。これらの項目はセッションにのみ存在し、セッションが終了する
    と削除されます。

    "Windows PowerShell セッション" または "PSSession" と呼ばれる追加のセッショ
    ンを、ローカル コンピューターまたはリモート コンピューター上に作成することも
    できます。既定のセッションと同様に、PSSession でもコマンドを実行し、項目の追
    加と作成を行うことができます。

    ただし、自動的に開始されるセッションとは異なり、作成した PSSession はユーザ
    ー自身で制御できます。PSSession は取得、作成、構成、および削除が可能です。ま
    た、複数のコマンドを同じ PSSession で実行できます。PSSession は、セッション
    から削除するまで、開かれたまま使用可能な状態で残ります。
      
    リモート コンピューターで一連の関連コマンドを実行するには、通常は PSSession 
    を作成します。リモート コンピューター上に PSSession を作成すると、Windows Po
    werShell はリモート コンピューターに対する固定接続を確立し、セッションをサポ
    ートします。

    Invoke-Command コマンドレットまたは Enter-PSSession コマンドレットの compute
    rName パラメーターを使用してリモート コマンドを実行するか、対話型のセッショ
    ンを開始した場合、Windows PowerShell はリモート コンピューター上に一時セッシ
    ョンを作成し、コマンドが完了するか対話型のセッションが終了すると、そのセッシ
    ョンを閉じます。このような一時セッションをユーザーが制御することはできません。
    また、このような一時セッションは、複数のコマンドや複数の対話セッションには使
    用できません。

    Windows PowerShell における "現在のセッション" は、使用中のセッションのこと
    です。"現在のセッション" という言葉は、一時セッションや PSSession を含め、あ
    らゆる種類のセッションについて使用されることがあります。


 PSSession を使用する理由

    PSSession は、リモート コンピューターへの固定接続が必要な場合に使用します。P
    SSession では、変数の値、関数の内容、エイリアスの定義などのデータを共有する、
    一連のコマンドを実行できます。

    PSSession を作成せずにリモート コマンドを実行することもできます。リモート処
    理に対応したコマンドレットの ComputerName パラメーターを使用すると、1 台また
    は多数のコンピューター上で、単一のコマンドまたは一連の関連のないコマンドを実
    行できます。

    Invoke-Expression または Enter-PSSession の ComputerName パラメーターを使用
    した場合、Windows PowerShell はリモート コンピューターへの一時接続を確立し、
    コマンドが完了するとその接続を閉じます。接続が閉じられると、作成したすべての
    データ要素は削除されます。

    Get-Eventlog や Get-WmiObject など、ComputerName パラメーターを持つその他の
    コマンドレットは、さまざまなリモート処理テクノロジを使用してデータを収集しま
    す。いずれも、PSSession のような固定接続は作成しません。
     

 PSSession の作成方法

    PSSession を作成するには、New-PSSession コマンドレットを使用します。リモート 
    コンピューター上に PSSession を作成するには、New-PSSession コマンドレットの 
    ComputerName パラメーターを使用します。

    たとえば、次のコマンドを実行すると、Server01 コンピューター上に新しい PSSess
    ion が作成されます。

        new-pssession -computername Server01

    コマンドを送信すると、New-PSSession によって PSSession が作成され、PSSession 
    を表すオブジェクトが返されます。PSSession の作成時にオブジェクトを変数に保存
    することも、Get-PSSession コマンドを使用して後で PSSession を取得することも
    できます。

    たとえば、次のコマンドを実行すると、Server01 コンピューター上に新しい PSSess
    ion が作成され、作成されたオブジェクトが $ps 変数に保存されます。
    
        $ps = new-pssession -computername Server01


 複数のコンピューター上に PSSession を作成する方法

    複数のコンピューター上に PSSession を作成するには、New-PSSession コマンドレッ
    トの ComputerName パラメーターを使用します。一連のリモート コンピューターの名
    前をコンマ区切りで入力します。

    たとえば、Server01、Server02、Server03 の各コンピューター上に PSSession を作
    成するには、次のように入力します。

        new-PSSession -computername Server01, Server02, Server03

    New-PSSession により、各リモート コンピューター上に PSSession が 1 つ作成され
    ます。


 PSSession を取得する方法
 
    現在のセッションで作成された PSSession を取得するには、Get-PSSession コマン
    ドレットを使用します。Get-PSSession は、New-PSSession が返すオブジェクトと同
    じ種類のオブジェクトを返します。

    次のコマンドを実行すると、現在のセッションで作成されたすべての PSSession を
    取得できます。

        get-PSSession

    既定では、PSSession の ID と既定の表示名が表示されます。セッションの作成時に
    は、別の表示名を付けることができます。

        Id   Name       ComputerName    State    ConfigurationName
        ---  ----       ------------    -----    ---------------------
        1    Session1   Server01        Opened   Microsoft.PowerShell
        2    Session2   Server02        Opened   Microsoft.PowerShell
        3    Session3   Server03        Opened   Microsoft.PowerShell

   
    PSSession を変数に保存することもできます。次のコマンドを実行すると、PSSessio
    n を取得し、$ps123 変数に保存できます。

        $ps123 = get-PSSession

    PSSession コマンドレットを使用する際には、ID、名前、またはインスタンス ID (G
    UID) を使用して PSSession を参照できます。次のコマンドを実行すると、ID を使用
    して PSSession を取得し、$ps01 変数に保存できます。

        $ps01 = get-PSSession -id 1

    Get-PSSession で取得されるのは、現在のセッションで作成された PSSession だけで
    す。他のセッションまたは他のコンピューターで作成された PSSession は、そのセッ
    ションがローカル コンピューターに接続され、ローカル コンピューター上でコマン
    ドが実行されている場合でも取得されません。



 PSSession でコマンドを実行する方法

    1 つまたは複数の PSSession でコマンドを実行するには、Invoke-Command コマンド
    レットを使用します。Session パラメーターを使用して PSSession を指定し、Script
    Block パラメーターを使用してコマンドを指定します。

    たとえば、$ps123 変数に保存されている 3 つの PSSession それぞれで Get-ChildIt
    em ("dir") コマンドを実行するには、次のように入力します。

        invoke-command -session $ps123 -scriptblock {get-childitem}


 PSSession を削除する方法

    PSSession を終了する際には、Remove-PSSession コマンドレットを使用して PSSess
    ion を削除し、使用されていたリソースを解放します。

        remove-PSSession -session $ps

        - または -
          
        remove-PSSession -id 1
 
    PSSession を削除しない場合、その PSSession は、現在のセッションを閉じるか Wi
    ndows PowerShell を終了するまで、開かれたまま使用可能な状態で残ります。

    New-PSSession の TimeOut パラメーターを使用して、アイドル状態の PSSession の
    有効期限を設定することもできます。詳細については、「new-PSSession」を参照し
    てください。


 PSSession コマンドレット

    コマンドレット        説明
    -----------------     ------------------------------------------------------
    New-PSSession         ローカル コンピューターまたはリモート コンピューター上
                          に新しい PSSession を作成します。

    Get-PSSession         現在のセッションの PSSession を取得します。

    Remove-PSSession      現在のセッションの PSSession を削除します。

    Enter-PSSession       対話型のセッションを開始します。

    Exit-PSSession        対話型のセッションを終了します。

    

    PSSession コマンドレットの一覧を参照するには、次のコマンドを入力してください。
	
	get-help *-PSSession


 詳細情報

    PSSession の詳細については、「about_PSSession_Details」を参照してください。
    

関連項目
    about_Remote
    about_Remote_Requirements
    New-PSSession
    Get-PSSession
    Remove-PSSession
    Enter-PSSession
    Exit-PSSession
    Invoke-Command    
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、HelpFile、about_pssessions
ご利用数: 1913375
感想・要望・問い合わせは こちら