2009-01-27 20 views
10

¿Hay alguna manera de agrupar PowerShell para que no tenga que instalarlo en el sistema operativo? Idealmente, me gustaría usarlo en mi proceso de compilación, pero quiero algo que sea autónomo; No quiero confiar en cada computadora cliente que instale PowerShell. Estoy pensando en crear una aplicación de consola que aloje un entorno de PowerShell, pero agrupa los ensamblados de PowerShell localmente.¿Ejecutar scripts de PowerShell sin instalar PowerShell?

Suponiendo que es posible, ¿hay problemas de regalías/licencias con dicha configuración?

+2

Hoy PowerShell está activado de forma predeterminada en Windows 7 y Windows Server 2008 R2. Si puede limitarse a esas plataformas, el problema desaparece. –

Respuesta

7

No estoy seguro de cuánto tiempo tendré que ser capaz de ver si las bibliotecas se pueden copiar de forma un tanto independiente. ¿Estás esperando que .NET Framework 2.0 esté en la máquina?

Hay alguna información aquí: http://karlprosser.com/coder/2008/06/19/portable-powershell-part-2-roll-your-own-plus-a-challenge/

Pero esto no es apoyado oficialmente por Microsoft. La postura de Microsoft probablemente sea que debe instalar PowerShell con msi/msu o agregar la característica.

+0

Gracias por el enlace, "Portable PowerShell" es exactamente lo que estoy buscando, Y estoy tratando de redistribuirlo ampliamente. Entonces, después de leer su publicación, parece que a) ninguna de las herramientas de virtualización de la aplicación es gratuita, yb) No es probable que pueda redistribuir PowerShell de todos modos por razones legales. –

+0

Ah, también me permito mencionar esta empresa/producto: http://www.specopssoft.com/powershell/ Algo sobre lo que leer, especialmente si decide distribuir PowerShell en todo momento y no tiene una solución como System Center Configuration Manager o SMS. –

5

Puede alojar un motor de tiempo de ejecución de powershell dentro de una aplicación .NET utilizando System.Management.Automation dll, pero creo que para ejecutar esto, todavía necesita tener acceso al tiempo de ejecución de powershell en la máquina. A menos que haya una manera de contener todo el tiempo de ejecución dentro de la aplicación, que no parece posible para mi investigación, deberá instalar PowerShell en cada máquina. Si le sirve de consuelo, en el momento en que Windows 7 viene con PowerShell instalado por defecto.

+0

Me estoy retrasando por un tiempo esperando que alguien responda con "¡SÍ, ES POSIBLE! ¡AQUÍ ES CÓMO!" De lo contrario, obtienes la marca de verificación. –

+1

System.Management.Automation.dll ES el tiempo de ejecución de PowerShell. PowerShell.exe es solo una interfaz de consola para eso. Otra de las principales metas de diseño fue el alojamiento del tiempo de ejecución de PowerShell en otra cosa, tal como lo estableció el equipo de PowerShell. – JasonMArcher

Cuestiones relacionadas