O que são os Runspaces no Windows PowerShell 2.0?

14

Hoje ouvi um podcast da HanselMinutes sobre o PowerShell 2.0 . Scott Hanselman entrevistou Hal Rottenberg e Kirk Munro na TechEd 2009.

Eles falaram sobre o RunSpaces no PowerShell 2.0. Alguém pode explicar o conceito por trás deles e dar alguns casos de uso (no mundo real) ou exemplos?

Obrigado!

splattne
fonte

Respostas:

17

Um Runspace é uma instância específica do PowerShell que contém coleções MODIFIAIS de comandos, provedores, variáveis, funções e elementos de linguagem que estão disponíveis para o usuário da linha de comando (ou mais genericamente, para o aplicativo "host").

De um modo geral, os Runspaces são um tópico do desenvolvedor . Se você estiver na linha de comando, poderá modificá-los apenas modificando sua sessão e, se for um usuário típico da linha de comando, nem perceberá as sessões, exceto quando as usar para se conectar remotamente. para outro computador. No entanto, cada sessão tem um Runspace (ou RunspacePool ) associado que controla o que está disponível para você, e é possível criar espaços de execução "restritos" para fornecer apenas aos usuários acesso a determinados comandos e não a outros ....

No PowerShell 2.0, você usa a classe RunspaceFactory para criar Runspaces ou RunspacePool. Você pode ler mais sobre os Runspaces no MSDN

Jaykul
fonte
3

Um espaço de execução do PowerShell é efetivamente uma instância isolada do tempo de execução do PowerShell, no meu entendimento de qualquer maneira.

Recentemente, tive algumas experiências usando os espaços de execução do PowerShell dentro de um aplicativo Web, para fornecer alguns recursos de administração por meio de uma interface web. Em particular, permitiu que vários usuários usassem o aplicativo ao mesmo tempo, sem afetar um ao outro.

Sam Cogan
fonte
3

O espaço de execução do PowerShell é um termo obsoleto. Eles usam a sessão do PowerShell (PSSession) agora. Eu recomendaria começar com o tópico de ajuda about_PSSessions .

aleksandar
fonte
Este post tem mais um pouco de blurbage sobre isso: obscure-powershell-tidbits.blogspot.com/2008/12/...
squillman
4
Isto não é realmente verdade. Eles renomearam os Cmdlets porque os Cmdlets foram nomeados incorretamente em primeiro lugar: eles criaram sessões, que podem ou não criar um novo Runspace;) Mas o conceito subjacente de Runspace e Session não mudou.
Jaykul