会话状态是指 Windows PowerShell 会话或模块的当前配置。 Windows PowerShell 会话是命令行用户或主机应用程序以编程方式交互使用的作环境。 会话的会话状态称为全局会话状态。
从开发人员的角度来看,Windows PowerShell 会话是指主机应用程序打开 Windows PowerShell 运行空间和关闭运行空间之间的时间。 另一种方法是会话是运行空间存在时调用的 Windows PowerShell 引擎实例的生存期。
模块会话状态
只要模块或其嵌套模块之一导入到会话中,模块会话状态就创建。 当模块导出 cmdlet、函数或脚本等元素时,将该元素的引用添加到会话的全局会话状态。 但是,在运行元素时,它将在模块的会话状态内执行。
Session-State 数据
会话状态数据可以是公共或专用数据。 公共数据可用于从会话状态外部调用,而专用数据仅可用于会话状态内的调用。 例如,模块可以有一个专用函数,该函数只能由模块调用,也可以仅由导出的公共元素在内部调用。 这类似于 .NET Framework 类型的私有和公共成员。
会话状态数据由当前 Windows PowerShell 会话上下文中的执行引擎的当前实例存储。 会话状态数据包含以下项:
路径信息
驱动器信息
Windows PowerShell 提供程序信息
有关导入的模块以及模块元素(如 cmdlet、函数和脚本)的引用的信息,这些元素由模块导出。 此信息和这些引用仅适用于全局会话状态。
会话状态变量信息
访问 Cmdlet 中的 Session-State 数据
Cmdlet 可以通过 cmdlet 类的 System.Management.Automation.PSCmdlet.SessionState* 属性间接访问会话状态数据,也可以直接通过 System.Management.Automation.SessionState 类访问会话状态数据。 System.Management.Automation.SessionState 类提供可用于调查不同类型的会话状态数据的属性。
另请参阅
System.Management.Automation.PSCmdlet.SessionState