PowerShell HelpFile - about_pssession_details
 記事記号:[me1562] 初版:2011/May/10

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

トピック
    about_PSSession_Details

簡易説明
    Windows PowerShell セッションについて、およびリモート コマンドを使用する際に 
    Windows PowerShell セッションが果たす役割について、詳しく説明します。

詳細説明
    セッションとは、Windows PowerShell が実行される環境のことです。セッションは 
    Windows PowerShell を起動すると自動的に作成されます。自分のコンピューターま
    たは他のコンピューターに、"Windows PowerShell セッション" または "PSSession" 
    と呼ばれる追加のセッションを作成することもできます。

    Windows PowerShell によって自動的に作成されるセッションとは異なり、自分で作
    成した PSSession は自ら制御、管理する必要があります。

    PSSession は、リモート コンピューティングにおいて重要な役割を果たします。リ
    モート コンピューターに接続される PSSession を作成すると、Windows PowerShel
    l はリモート コンピューターに対する固定接続を確立し、PSSession をサポートし
    ます。この PSSession を使用して、データを共有する一連のコマンド、関数、およ
    びスクリプトを実行できます。

    ここでは、Windows PowerShell でのセッションと PSSession について詳しく説明し
    ます。セッションで実行できるタスクの基本的な情報については、「about_PSSessio
    ns」を参照してください。

  セッションについて

    技術的に言えば、セッションは Windows PowerShell の実行環境です。各セッション
    には、System.Management.Automation エンジンのインスタンスと、Windows PowerSh
    ell が実行されるホスト プログラムが含まれます。ホストには、使い慣れた Window
    s PowerShell コンソールのほか、コマンドを実行する Cmd.exe などのプログラムや、
    Windows PowerShell をホストするように作成された Windows PowerShell Integrate
    d Scripting Environment (ISE) などのプログラムがあります。Windows の側から見
    ると、セッションはターゲット コンピューター上の Windows プロセスです。

    各セッションは、別々に構成されます。各セッションには、独自のプロパティ、実行
    ポリシー、およびプロファイルが含まれます。セッションの作成時に存在する環境は、
    コンピューターの環境を変更しても、セッションの有効期間中は保持されます。あら
    ゆるセッションはグローバル スコープで作成されます。スクリプトで作成するセッ
    ションも同様です。

    セッションで一度に実行できるコマンド (またはコマンド パイプライン) は 1 つだ
    けです。2 つ目のコマンドを同期的に (一度に 1 つずつ) 実行した場合は、最初の
    コマンドが完了するのを最大 4 分間待機します。一方、非同期的に (同時に) 実行
    した場合は、失敗に終わります。

  PSSession について

    セッションは、Windows PowerShell を起動するたびに作成されます。また、Windows 
    PowerShell は、個々のコマンドを実行するために一時セッションを作成します。ただ
    し、自分で制御および管理できるセッション ("Windows PowerShell セッション" ま
    たは "PSSession") を作成することもできます。
 
    PSSession は、リモート コマンドを実行するうえで重要です。Invoke-Command コマ
    ンドレットまたは Enter-PSSession コマンドレットの ComputerName パラメーター
    を使用した場合、Windows PowerShell はコマンドを実行するための一時セッション
    を確立し、コマンドまたは対話型のセッションが完了するとそのセッションを閉じま
    す。

    ただし、New-PSSession コマンドレットを使用して PSSession を作成した場合、Win
    dows PowerShell は、複数のコマンドや対話型のセッションを実行できる永続的なセ
    ッションをリモート コンピューターで確立します。作成した PSSession は、削除す
    るか作成元のセッションを閉じるまで、開かれたまま使用可能な状態で残ります。

    リモート コンピューター上に PSSession を作成した場合、リモート コンピュータ
    ー上に PowerShell プロセスが作成され、ローカル コンピューターからリモート コ
    ンピューター上のプロセスへの接続が確立されます。ローカル コンピューター上に 
    PSSession を作成した場合、新しいプロセスと接続はいずれもローカル コンピュー
    ター上に作成されます。


  PSSession はいつ必要になるか

    Invoke-Command と Enter-PSSession には、ComputerName パラメーターと Session 
    パラメーターの両方があります。そのどちらかを使用して、リモート コマンドを実
    行できます。

    1 台または多数のコンピューター上で単一のコマンドまたは一連の関連のないコマン
    ドを実行するには、ComputerName パラメーターを使用します。

    データを共有するコマンドを実行するには、リモート コンピューターへの固定接続
    が必要です。その場合は、PSSession を作成し、Session パラメーターを使用して 
    PSSession でコマンドを実行します。

    Get-Process、Get-Service、Get-EventLog、Get-WmiObject など、リモート コンピ
    ューターからデータを取得する他の多くのコマンドレットには、ComputerName パラ
    メーターのみが用意されています。これらのコマンドレットは、Windows PowerShell 
    リモート処理以外のテクノロジを使用して、データをリモートで収集します。これら
    のコマンドレットには Session パラメーターはありませんが、Invoke-Command コマ
    ンドレットを使用すると、これらのコマンドを PSSession で実行できます。
 

  PSSession はどのようにして作成するか

    PSSession を作成するには、New-PSSession コマンドレットを使用します。New-PSSe
    ssion を使用すると、PSSession をローカル コンピューターまたはリモート コンピ
    ューター上に作成できます。


  PSSession はどのコンピューター上にも作成できるか

    リモート コンピューターに接続される PSSession を作成するには、コンピューター
    が Windows PowerShell のリモート処理用に構成されている必要があります。現在の
    ユーザーは、リモート コンピューターの Administrators グループのメンバーであ
    るか、Administrators グループのメンバーの資格情報を提供できる必要があります。
    詳細については、「about_Remote_Requirements」を参照してください。


  他のユーザーが作成した PSSession を自分のコンピューターで表示することはできるか

    できません。取得して管理できるのは、現在のセッションで作成した PSSession に
    限られます。他のユーザーが作成した PSSession は、そのユーザーがローカル コン
    ピューターでコマンドを実行した場合でも、表示できません。


  PSSession でバックグラウンド ジョブを実行できるか

    できます。バックグラウンド ジョブは、現在のセッションと対話することなくバッ
    クグラウンドで非同期的に実行されるコマンドです。ジョブを開始するコマンドを送
    信すると、コマンドからはジョブ オブジェクトが返されますが、ジョブは完了する
    までバックグラウンドで実行され続けます。

    バックグラウンド ジョブをローカル コンピューターで開始するには、Start-Job コ
    マンドを使用します。バックグラウンド ジョブは、(ComputerName パラメーターを
    使用して) 一時接続で実行することも、(Session パラメーターを使用して) PSSessi
    on で実行することもできます。

    バックグラウンド ジョブをリモート コンピューターで開始するには、Invoke-Comma
    nd コマンドレットとその AsJob パラメーターを使用するか、Invoke-Command コマ
    ンドレットを使用して Start-Job コマンドをリモート コンピューターで実行します。
    AsJob パラメーターを使用する場合は、ComputerName パラメーターまたは Session 
    パラメーターを使用できます。

    Invoke-Command を使用して Start-Job コマンドを実行する場合は、コマンドを PSS
    ession で実行する必要があります。ComputerName パラメーターを使用すると、ジョ
    ブ オブジェクトが返されたときに Windows PowerShell が接続を終了するため、ジョ
    ブが中断されます。

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


  対話型のセッションを実行できるか

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

    対話型のセッションは、(ComputerName パラメーターを使用して) 一時セッションで
    実行することも、(Session パラメーターを使用して) PSSession で実行することもで
    きます。PSSession を使用すると、以前のコマンドのデータ、および対話型のセッシ
    ョン中に生成されるすべてのデータが PSSession に保持され、後のコマンドでも使用
    できるようになります。

    対話型のセッションを終了しても、PSSession は開かれたまま残り、引き続き使用す
    ることができます。

    詳細については、「Enter-PSSession」および「Exit-PSSession」を参照してください。
 

  PSSession は必ず削除する必要があるか

    はい。PSSession はプロセスです。プロセスとは、ユーザーが使用していない間でも
    メモリなどのリソースを消費する自己完結型の環境です。PSSession は、使用を終了
    したら削除してください。複数の PSSession を作成する場合は、使用していない PS
    Session を終了し、使用中の PSSession だけを維持するようにしてください。

    PSSession を削除するには、Remove-PSSession コマンドレットを使用します。この
    コマンドレットは PSSession を削除し、PSSession によって使用されていたすべて
    のリソースを解放します。

    New-PSSession の TimeOut パラメーターを使用して、指定した時間の経過後にアイ
    ドル状態の PSSession を閉じることもできます。詳細については、「New-PSSessio
    n」を参照してください。

    PSSession を削除せず、タイムアウトも設定しなかった場合は、PSSession を閉じる
    か、その作成元のセッションを閉じるか、または Windows PowerShell を終了するま
    で、PSSession は開かれたまま残り、引き続き使用することができます。ただし、リ
    モート コンピューター上の PSSession は、リモート コンピューターが 4 分間応答
    しなくなると自動的に切断されます (リモート コンピューターは、3 分ごとにハー
    トビート パルスを送信するように構成されています)。

    PSSession オブジェクトを変数に保存してから PSSession を削除するか、タイムア
    ウトさせた場合、PSSession オブジェクトは変数内に保持されますが、PSSession は
    アクティブではなくなり、使用や復旧ができなくなります。
    

  セッションや PSSession はすべて同じように動作するか

    いいえ。開発者は、選択したプロバイダーとコマンドレットだけが含まれるカスタム 
    セッションを作成できます。あるセッションで機能するコマンドが別のセッションで
    機能しない場合は、セッションが制限されている可能性があります。


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