Cómo escribir un host de PowerShell personalizado [cerrado]

Similar a nuget

Buscando cualquier material de inicio con suerte antes de profundizar en el depurador

preguntado el 16 de mayo de 11 a las 18:05

Hola a todos, Tengo preguntas relacionadas ¿Qué método (en PSHostUserInterface) se llama cuando se llama Write-Error? -

4 Respuestas

MSDN tiene un . dedicado a escribir un host PowerShell en el SDK de PowerShell documentación, que es un buen punto de partida.

Además de eso un búsqueda devuelve lo siguiente:

  1. http://powershellstation.com/2009/10/12/writing-your-own-powershell-hosting-app-part-1-introduction/
  2. http://dougfinke.com/blog/index.php/2009/09/02/how-to-host-powershell-in-a-wpf-application/

Respondido el 20 de junio de 20 a las 12:06

No hay maravillosa documentación. He aprendido la mayor parte de lo que sé mediante la experimentación y el ejemplo. Y reflexión. No del tipo personal, del tipo de ingeniería inversa.

De Joel Bennett PoshConsole es probablemente el mejor ejemplo de OSS de un host personalizado que he encontrado. La StudioShell codebase también contiene un host interactivo simple basado en winforms.

El hospedaje puede ser relativamente simple dependiendo del nivel de interactividad que esté buscando. Si solo desea ejecutar algunos archivos de script, el código es tan simple como esto:

using( var runspace = RunspaceFactory.Create() )
{
  runspace.Open();
  using( var pipeline = runspace.CreatePipeline( "./myscript.ps1" ) )
  {
    Collection<PSObject> results = pipeline.Invoke();
    // ... process the results of running myscript.ps1
  }
}

Si necesita algún tipo de interactividad, como solicitar al usuario desde el script, está bastante limitado a beber el koolaid e implementar la mayoría de los contratos PSHost, PSHostUserInterface y PSHostRawUserInterface. Nuevamente, miraría los ejemplos vivos existentes antes de sumergirme en la madriguera del conejo por su cuenta.

contestado el 17 de mayo de 11 a las 18:05

No está creando ningún host de PowerShell aquí. - Solo un Runspace. - es decir, no está implementando PSHost en cualquier lugar. - BrainSlugs83

Tengo una serie de publicaciones de blog dedicadas a esto.

Aquíes el primero.

También he implementado un depurador. Estaré encantado de responder a las preguntas que pueda tener. Información de contacto en mi blog.

También, trabaja para aquíes un proyecto que realmente implementó un depurador usando la API ... es el único lugar donde he encontrado código publicado para hacer eso.

contestado el 17 de mayo de 11 a las 19:05

Me acabo de dar cuenta de que el primer enlace de la otra respuesta es el mismo que le di. Leí en MSDN y me detuve. :-) - Mike Shepard

Lo encontrará aquí, en el blog desde el que construí mi propio PowerShell, que interpreta scripts sin mostrar ninguna ventana.

Blog de Leporelo

Son realmente las primeras líneas que necesita y el acceso directo al SDK de PowerShell.

el caparazón respondiendo a mi propia necesidad (lo siento en francés)

contestado el 17 de mayo de 11 a las 07:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.