Manteniendo abierto el espacio de ejecución de Powershell en .Net

Estoy intentando ejecutar algún código de PowerShell desde VB.Net (¡los codificadores C # también pueden ayudar si lo saben!).
La primera parte del código, necesito conectarme a un na-controller con una contraseña y necesito mantener la conexión abierta. Tengo otros comandos que necesito ejecutar con el clic de un botón (obtener archivos, mostrar archivos, eliminar archivos específicos).
¿Cómo puedo mantener abierto el espacio de ejecución y ejecutar cada línea de código por separado? ¿Necesito usar el "CreateRunspacePool"? Si es así, ¿cómo lo uso?

Editar: Ahora estoy jugando con RunspaceStateInfo.State, pero no conozco una manera de mantener la conexión abierta. He intentado los eventos Page_Load y Page_Init para tenerlo abierto solo una vez, pero en algún lugar a lo largo de la línea, se cierra. He eliminado el comando ".Cerrar"

Respuestas a la pregunta(1)

Su respuesta a la pregunta