windows windows-server-2008 scheduled-tasks schtasks.exe

windows - Especificar el directorio en ejecución para tareas programadas usando schtasks.exe



windows-server-2008 scheduled-tasks (7)

Tengo una aplicación a la que llama una tarea programada. Pasó de Windows Server 2003 a Windows Server 2008. En 2003, la aplicación se ejecutó en el directorio donde estaba ubicado el ejecutable. En 2008 Environment.CurrentDirectory (C #) informa que se está ejecutando en C: / Windows / System32. ¿Cómo configuro el directorio en funcionamiento? Estoy usando schtasks.exe para la implementación de línea de comandos.

UPD : a través de la interfaz, parece ser el campo "Comenzar en (opcional)" en la pantalla de edición de acciones.

UPD : Parece que usar el archivo XML puede ayudar, pero estoy buscando hacerlo sin él.


Recientemente me encontré con el mismo problema. La forma en que lo resolví fue agregar el modificador / V1 al comando schtasks.

/ V1 crea una tarea programada compatible previa a la vista y completa automáticamente el directorio Inicio en.


Pruebe cd /d "<WorkingDirectory>" & schtasks <SchtasksParams>

Cambie el directorio de trabajo y luego ejecute schtasks .


Puede establecer el inicio en el directorio usando el siguiente comando

La clave es el / en el modificador / tr.

SCHTASKS /Create /u username /p pswd /ru "NT AUTHORITY/SYSTEM" /rp /sc ONSTART /tn task-name /tr "/"D:/name-of-file-to-run/" "


Use My.Application.Info.DirectoryPath en la aplicación sin necesidad de una configuración XML.


Solo quería agregar detalles que son válidos para Windows Server 2008 y 2012. Como mucha gente puede entender mejor las capturas de pantalla aquí, hay una captura de pantalla:

En resumen. Cuando crea la acción para su tarea programada, tiene la opción de configurar el campo "Comenzar en (opcional)" (redondeado en rojo en la captura de pantalla). Este será el directorio desde donde se desencadena su proceso.

¡Espero que esto ayude!


Consulte mi respuesta a una pregunta similar , sobre cómo configurar la opción "Despertar la computadora para ejecutar esta tarea ..." que solo está disponible desde la IU del Programador de tareas (y a través del XML), y no desde schtasks.exe /create línea de comando

Las tuercas y tornillos son:

  1. Crea tu tarea a través de schtasks.exe /create /tn MyTask ...
  2. Exporte su tarea a XML a través de schtasks.exe /query /xml /tn MyTask > MyTask.xml
  3. Actualice este XML a través de XSLT o una búsqueda / reemplazo
  4. schtasks.exe /create /tn MyTask /xml MyTask.xml /f (sobrescribir la tarea anterior) a través de schtasks.exe /create /tn MyTask /xml MyTask.xml /f

Los detalles estan aqui


Espero que la gente vea esta respuesta para el enfoque XML (francamente, creo que es un método más limpio y hay una mejor documentación sobre qué parámetros se pueden configurar para configurar funciones específicas dentro de la tarea también).

Paso 1: crea un archivo XML que establece todas las configuraciones de tareas , varios lugares para obtener más información sobre los elementos XML:

Paso 2: Específico de "dónde" se ejecutará la tarea (como en el directorio de inicio el script comenzará en la línea de comando, esto está directamente relacionado con la pregunta del OP ... Necesitará configurar el parámetro como tal ...

<?xml version="1.0" encoding="UTF-16"?> <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> <RegistrationInfo> <Date>2012-08-19T16:49:14.6182</Date> <Author>YOUR-COMPUTER-DOMAIN/YOUR-USERNAME</Author> </RegistrationInfo> ... a bunch of other stuff in between here .... <Actions Context="Author"> <Exec> <Command>C:/PythonEXE/mini_program_test.exe</Command> <Arguments></Arguments> <WorkingDirectory>C:/Some/where/here/</WorkingDirectory> </Exec> </Actions> </Task>

Tenga en cuenta que no hay comillas en el paramaestre WorkingDirectory - He cometido ese error antes.

Paso 3: dado que usará schtasks.exe para CREAR esta nueva tarea a través del XML, mire aquí para obtener más información: https://msdn.microsoft.com/en-us/library/bb736357.aspx

Paso 4: en la línea de comandos de Windows, ejecutarás algo como esto (una vez que tu XML esté listo)

C:/>schtasks /CREATE /TN "TASK-NAME-HERE" /RU "YOUR-USERNAME" /RP "YOUR-PASSWORD" /XML C:/YOUR-XML-FILE-LOCATION/ready.xml

Espero que esto ayude un poco - ¡diviértete!