Что такое Runspaces в Windows PowerShell 2.0?

14

Сегодня я слушал подкаст HanselMinutes о PowerShell 2.0 . Скотт Хансельман взял интервью у Хэла Роттенберга и Кирка Манро на TechEd 2009.

Они говорили о RunSpaces в PowerShell 2.0. Может кто-нибудь объяснить, что за ними стоит, и привести некоторые (реальные) варианты использования или примеры?

Благодарность!

splattne
источник

Ответы:

17

Runspace - это особый экземпляр PowerShell, который содержит MODIFIABLE наборы команд, поставщиков, переменных, функций и языковых элементов, которые доступны пользователю командной строки (или, в более общем смысле, приложению «хост»).

Вообще говоря, Runspaces - это тема для разработчиков . Если вы работаете в командной строке, вы можете изменять их только путем изменения сеанса , а если вы обычный пользователь командной строки, вы даже не будете знать о сеансах, за исключением случаев, когда вы используете их для удаленного подключения. на другой компьютер. Тем не менее, каждый сеанс имеет ассоциированное Runspace (или RunspacePool ), которое контролирует то, что доступно для вас, и можно создавать «ограниченные» пространства выполнения, чтобы предоставить пользователям доступ только к определенным командам, а не к другим ....

В PowerShell 2.0 вы используете класс RunspaceFactory для создания Runspaces или RunspacePool. Вы можете прочитать больше о Runspaces на MSDN

Jaykul
источник
3

В моем понимании, пространство выполнения powershell - это, по сути, изолированный экземпляр среды выполнения powershell.

Недавно у меня был некоторый опыт использования пространств выполнения PowerShell внутри веб-приложения для предоставления некоторых функций администрирования через веб-интерфейс. В частности, это позволило нескольким пользователям использовать приложение одновременно, не влияя друг на друга.

Сэм Коган
источник
3

PowerShell Runspace - это устаревший термин. Они используют сессию PowerShell (PSSession) сейчас. Я бы порекомендовал начать с темы справки about_PSSessions .

Александар
источник
В этом посте есть еще одно недоразумение: obscure-powershell-tidbits.blogspot.com/2008/12/…
squillman
4
Это не совсем правда. Они переименовали Cmdlets, потому что Cmdlets были названы в первую очередь неточно: они создают сеансы, которые могут создавать или не создавать новое Runspace;) Но основная концепция Runspace и Session не изменилась.
Джайкуль