¿Qué son los espacios de ejecución en Windows PowerShell 2.0?

14

Hoy escuché un podcast de HanselMinutes sobre PowerShell 2.0 . Scott Hanselman entrevistó a Hal Rottenberg y Kirk Munro en TechEd 2009.

Hablaron sobre RunSpaces en PowerShell 2.0. ¿Puede alguien explicar el concepto detrás de ellos y dar algunos casos de uso (del mundo real) o ejemplos?

¡Gracias!

splattne
fuente

Respuestas:

17

Un Runspace es una instancia específica de PowerShell que contiene colecciones MODIFICABLES de comandos, proveedores, variables, funciones y elementos de lenguaje que están disponibles para el usuario de la línea de comandos (o más genéricamente, para la aplicación "host").

En términos generales, los espacios de ejecución son un tema para desarrolladores . Si está en la línea de comandos, solo puede modificarlos modificando su sesión , y si es un usuario típico de la línea de comandos, realmente ni siquiera estará al tanto de las Sesiones, excepto cuando las use para conectarse de forma remota. a otra computadora. Sin embargo, cada sesión tiene un Runspace (o RunspacePool ) asociado que controla lo que está disponible para usted, y es posible crear espacios de ejecución "restringidos" para darles a los usuarios acceso a ciertos comandos y no a otros ...

En PowerShell 2.0, usa la clase RunspaceFactory para crear Runspaces o RunspacePool. Puede leer más sobre Runspaces en MSDN

Jaykul
fuente
3

Un espacio de ejecución de PowerShell es efectivamente una instancia aislada del tiempo de ejecución de PowerShell, según tengo entendido.

Recientemente tuve algunas experiencias usando espacios de ejecución de PowerShell dentro de una aplicación web, para proporcionar algunas características de administración a través de una interfaz web. En particular, permitió que varios usuarios usaran la aplicación al mismo tiempo, sin afectarse entre sí.

Sam Cogan
fuente
3

El espacio de ejecución de PowerShell es un término obsoleto. Ahora usan la sesión de PowerShell (PSSession). Recomendaría comenzar con el tema de ayuda about_PSSessions .

aleksandar
fuente
Este post tiene un poco más de blurbage en esto: obscure-powershell-tidbits.blogspot.com/2008/12/...
squillman
44
Esto no es realmente cierto. Cambiaron el nombre de los Cmdlets porque los Cmdlets fueron nombrados incorrectamente en primer lugar: crean sesiones, que pueden o no crear un nuevo Runspace;) Pero el concepto subyacente de Runspace y Session no ha cambiado.
Jaykul