今天,我聆听了关于PowerShell 2.0的HanselMinutes播客。 Scott Hanselman在TechEd 2009采访了Hal Rottenberg和Kirk Munro。
他们谈到了PowerShell 2.0中的RunSpaces 。 有人可以解释他们背后的概念,并给出一些(现实世界)的用例或例子吗?
谢谢!
运行空间是PowerShell的一个特定实例,它包含可供命令行用户(或更一般地说,“主机”应用程序)使用的命令,提供程序,variables,函数和语言元素的MODIFIABLE集合。
一般来说,运行空间是一个开发人员的话题。 如果您在命令行中,则只能通过修改会话来修改它们,而如果您是典型的命令行用户,则除了使用它们远程连接时,您甚至不会意识到会话到另一台电脑。 但是,每个会话都有一个关联的Runspace (或RunspacePool ),用于控制可用的内容,并且可以创build“受限”的运行空间,以便仅允许用户访问某些命令,而不是其他用户。
在PowerShell 2.0中,您使用RunspaceFactory类来创build运行空间或运行空间池。 您可以在MSDN上阅读有关运行空间的更多信息
一个PowerShell的运行空间实际上是一个孤立的PowerShell运行时实例,以我的理解任何方式。
我最近有一些在Web应用程序中使用PowerShell运行空间的经验,通过Web界面提供一些pipe理function。 特别是它允许多个用户同时使用应用程序,而不会相互影响。
PowerShell运行空间是过时的术语。 他们现在使用PowerShell会话(PSSession)。 我会build议从about_PSSessions开始帮助主题。
下面是使用Runspaces和RunspaceFactory的一些工作示例:
http://www.nivot.org/2009/01/22/CTP3TheRunspaceFactoryAndPowerShellAccelerators.aspx
-Oisin