El script de PowerShell del Programador de tareas no se ejecuta

El script de PowerShell del Programador de tareas no se ejecuta

Tengo un script de PowerShell que abre un archivo de Excel todos los días por la mañana, ejecuta una macro y se cierra. Esto funcionó bien hasta hace poco que trasladamos nuestras unidades de red heredadas a Sharepoint Online.

El script, si lo ejecuto manualmente, se inicia y hace lo que tiene que hacer. Sin embargo, cuando lo coloco en el Programador de tareas, no abre el archivo.

He intentado:

  • Colocar el script fuera de mi carpeta OneDrive: el script se ejecuta pero el archivo no se abre.
  • Colocar tanto el script como el archivo fuera de OneDrive y Sharepoint: el script se ejecuta y se abre el archivo.
  • Con ambos en OD/SP, ejecute un programador de tareas para abrir una ventana de Powershell y ejecute el script desde allí: la primera ventana se abre pero Powershell se cierra cuando se ejecuta el segundo script.

El usuario que ejecuta la tarea, yo mismo, tiene control total sobre las carpetas donde se encuentran tanto el script como el archivo y, como se mencionó, en todos estos casos el script funciona si se ejecuta manualmente. Parece que no puedo encontrar nada en Internet ni en los registros (a menos que sea ciego, no se crean registros después de ejecutar todas las tareas anteriores), y estoy empezando a quedarme sin pelos. para tirar.

¿Alguien tiene alguna idea/consejo?

¡Gracias!

Respuesta1

El script de PowerShell del Programador de tareas no se ejecuta

Basado en lo que usted describe y lo que veo en elArchivo XML según su configuracióndonde tienes. . .

<Exec>
  <Command>"C:\Path\To\OneDrive - Company Ltd\Scripts\pwsh\DonwloadOpen.ps1"</Command>
  <Arguments>-ExecutionPolicy Bypass</Arguments>
<Exec>

Creo que es necesario configurarlo así para ejecutar PowerShell desde el Programador de tareas. . .

<Exec>
  <Command>Powershell</Command>
  <Arguments>-ExecutionPolicy Bypass -File "C:\Path\To\OneDrive - Company Ltd\Scripts\pwsh\DonwloadOpen.ps1"</Arguments>
</Exec>

Entonces desde elAcciónpestaña creará unAccióndefinido como:

  • Acción: Start a program
  • Programa/guión: Powershell
  • Agregue argumentos (opcional): -ExecutionPolicy Bypass -File "C:\Path\To\OneDrive - Company Ltd\Scripts\pwsh\DonwloadOpen.ps1"
  • Comience en (opcional): C:\Windows\System32\WindowsPowerShell\v1.0 ingrese la descripción de la imagen aquí

Además, algunas de estas opciones en su caso pueden ayudar, pero según la seguridad y su configuración, no estoy 100% seguro de que sean necesarias, pero sí bastante fáciles de probar. . .

Desde elGeneralpestaña de la tarea programada, asegúrese de queEjecutar ya sea que el usuario haya iniciado sesión o noy elEjecutar con los privilegios más altosambas opciones están seleccionadas.

ingrese la descripción de la imagen aquí

Recursos adicionales


información relacionada