セッション状態とは、Windows PowerShell セッションまたはモジュールの現在の構成を指します。 Windows PowerShell セッションは、コマンド ライン ユーザーによって対話形式で使用されるか、ホスト アプリケーションによってプログラムによって使用される操作環境です。 セッションのセッション状態は、グローバル セッション状態と呼ばれます。
開発者の観点からは、Windows PowerShell セッションとは、ホスト アプリケーションが Windows PowerShell 実行空間を開いてから実行空間を閉じるまでの時間を指します。 別の方法を見て、セッションは、実行空間が存在する間に呼び出される Windows PowerShell エンジンのインスタンスの有効期間です。
モジュール セッションの状態
モジュール セッションの状態は、モジュールまたはその入れ子になったモジュールのいずれかがセッションにインポートされるたびに作成されます。 モジュールがコマンドレット、関数、スクリプトなどの要素をエクスポートすると、その要素への参照がセッションのグローバル セッション状態に追加されます。 ただし、要素を実行すると、モジュールのセッション状態内で実行されます。
データの Session-State
セッション状態データは、パブリックまたはプライベートにすることができます。 パブリック データはセッション状態外からの呼び出しで使用でき、プライベート データはセッション状態内からの呼び出しにのみ使用できます。 たとえば、モジュールは、モジュールによってのみ、またはエクスポートされたパブリック要素によってのみ内部的に呼び出すことができるプライベート関数を持つことができます。 これは、.NET Framework 型のプライベート メンバーとパブリック メンバーに似ています。
セッション状態データは、現在の Windows PowerShell セッションのコンテキスト内で実行エンジンの現在のインスタンスによって格納されます。 セッション状態データは、次の項目で構成されます。
パス情報
ドライブ情報
Windows PowerShell プロバイダー情報
インポートされたモジュールに関する情報と、モジュールによってエクスポートされるモジュール要素 (コマンドレット、関数、スクリプトなど) への参照。 この情報とこれらの参照は、グローバル セッション状態専用です。
セッション状態変数の情報
コマンドレット内の Session-State データへのアクセス
コマンドレットは、コマンドレット クラスの System.Management.Automation.PSCmdlet.SessionState* プロパティを介して間接的に、または System.Management.Automation.SessionState クラスを介してセッション状態データに直接アクセスできます。 System.Management.Automation.SessionState クラスには、さまざまな種類のセッション状態データの調査に使用できるプロパティが用意されています。
こちらもご覧ください
System.Management.Automation.PSCmdlet.SessionState
System.Management.Automation.SessionState
Windows PowerShell コマンドレット の作成
Windows PowerShell シェル SDK の
PowerShell