Que sont les espaces d'exécution dans Windows PowerShell 2.0?

14

Aujourd'hui, j'ai écouté un podcast HanselMinutes sur PowerShell 2.0 . Scott Hanselman a interviewé Hal Rottenberg et Kirk Munro à TechEd 2009.

Ils ont parlé de RunSpaces dans PowerShell 2.0. Quelqu'un peut-il expliquer le concept sous-jacent et donner des cas d'utilisation ou des exemples (réels)?

Merci!

splattne
la source

Réponses:

17

Un Runspace est une instance spécifique de PowerShell qui contient des collections MODIFIABLES de commandes, fournisseurs, variables, fonctions et éléments de langage qui sont disponibles pour l'utilisateur de la ligne de commande (ou plus généralement, pour l'application "hôte").

De manière générale, les espaces d'exécution sont un sujet pour les développeurs . Si vous êtes en ligne de commande, vous ne pouvez les modifier qu'en modifiant votre session , et si vous êtes un utilisateur de ligne de commande typique, vous ne serez même pas vraiment au courant des sessions, sauf lorsque vous les utilisez pour vous connecter à distance vers un autre ordinateur. Cependant, chaque session a un Runspace associé (ou RunspacePool ) qui contrôle ce qui est à votre disposition, et il est possible de créer des espaces d'exécution "contraints" afin de donner uniquement aux utilisateurs l'accès à certaines commandes et pas à d'autres ....

Dans PowerShell 2.0, vous utilisez la classe RunspaceFactory pour créer des espaces d'exécution ou RunspacePool. Vous pouvez en savoir plus sur Runspaces sur MSDN

Jaykul
la source
3

Un espace d'exécution PowerShell est en fait une instance isolée du temps d'exécution PowerShell, à ma connaissance en aucune façon.

J'ai récemment eu quelques expériences d'utilisation d'espaces d'exécution PowerShell dans une application Web, pour fournir des fonctionnalités d'administration via une interface Web. En particulier, il permettait à plusieurs utilisateurs d'utiliser l'application en même temps, sans se toucher mutuellement.

Sam Cogan
la source
3

PowerShell runspace est un terme obsolète. Ils utilisent maintenant la session PowerShell (PSSession). Je recommanderais de commencer par la rubrique d' aide about_PSSessions .

aleksandar
la source
Ce post a un peu plus de texte à ce sujet: obscure-powershell-tidbits.blogspot.com/2008/12/…
squillman
4
Ce n'est pas vraiment vrai. Ils ont renommé les Cmdlets parce que les Cmdlets ont été mal nommés en premier lieu: ils créent des sessions, qui peuvent ou non créer un nouvel Runspace;) Mais le concept sous-jacent de Runspace et Session n'a pas changé.
Jaykul