Powershell: FileSystemWatcher ejecutándose en segundo plano

0

He creado un script de PowerShell que contiene FileSystemWatcher que crea varios eventos de cambio de archivo. Funciona perfectamente bien cuando se ejecuta dentro de PowerShell ISE, pero mi objetivo final es poder ejecutar esto como una tarea en segundo plano que no está en PowerShell ISE.

Luego comencé a buscar envolver el código dentro de una GUI que he hecho y funciona. Cuando ejecuto el código, crea un formulario que contiene 2 botones, cuando hace clic en el botón1, quiero que esto inicie el código y al presionar el botón2 se detiene el código o tengo un controlador, de modo que cuando presiono cierta tecla, el código se detiene.

Lo que veo es que cuando presiono el botón1 el script comienza y se ejecuta, pero no puedo cancelarlo sin cerrar la ventana de la consola que está detrás. También lo que estoy notando, cuando se ejecuta a través de PowerShell ISE, recibo una notificación por correo electrónico del evento que ocurrió, cuando esto se ejecuta a través de la GUI que he creado, nota que los archivos cambian pero no recibo una notificación por correo electrónico.

¿Alguien podría ayudar por favor?

Tony
fuente
Tony: dices " my end goal is to be able to run this as a background task that's not in PowerShell ISE", pero luego comienzas a hablar sobre un contenedor GUI y demás. Para su "objetivo final" visualizo algunas soluciones diferentes para eso, pero las otras cosas solo agregan confusión. ¿Estaría satisfecho SOLO con una solución que le brinde lo que pregunta en el primer párrafo o su pregunta, es decir, " my end goal is to be able to run this as a background task that's not in PowerShell ISE" ?? Vuelve a etiquetarme con el @letrero y mi nombre en un comentario separado para aclarar. @Name Typing my message
Pimp Juice IT
@walmart Si puedes ayudarme a ejecutarlo como una tarea en segundo plano, sería genial, gracias.
Tony
Una actualización sobre esto, puedo hacer que el script se ejecute en segundo plano, pero la funcionalidad del correo electrónico no funciona. He creado una función que crea los SystemWatchers y en la parte inferior tengo una configuración de bucle que llama a la función. Si llamo al nombre de la función, se verán los archivos, pero no se activará ningún correo electrónico si ejecuto el mismo código sin la función, SystemFileWatcher crea los eventos de Watcher y cuando se activa un evento, recibo un correo electrónico. Si puedo hacer que la función de correo electrónico funcione, debería poder ejecutar el script en segundo plano desde una tarea programada.
Tony
Sí, parece que ya está utilizando lo que iba a sugerir con el Programador de tareas. Si edita su pregunta, agrega su trabajo que tiene trabajando con la lógica de PowerShell y la lógica de la función, explique que este es realmente el problema que tiene, probablemente tendrá mucha más suerte para obtener una respuesta. Hay algunas personas excelentes de PowerShell en SU, pero creo que el código, una pequeña aclaración, etc., lo ayudará a obtener una respuesta y probablemente mucho más rápido que cómo se publica su pregunta ahora. Simplemente edite su pregunta anterior y agregue la aclaración y el código con el que necesita ayuda.
Pimp Juice IT