Подтвердить что ты не робот

Указание текущего каталога для запланированных задач с помощью файла schtasks.exe

У меня есть приложение, которое вызывается запланированной задачей. Он переместился с Windows Server 2003 на Windows Server 2008. В 2003 году приложение запускалось в каталоге, в котором находился исполняемый файл. В 2008 году Environment.CurrentDirectory (С#) сообщает, что он работает в C:\Windows\System32. Как установить текущую директорию? Я использую schtasks.exe для развертывания в командной строке.

UPD: через интерфейс, кажется, это поле "Начать в (необязательное)" на экране редактирования действия.

UPD: похоже, что использование XML файла может помочь, но я хочу обойтись без него.

4b9b3361

Ответ 1

Недавно я столкнулся с той же проблемой. Как я решил, это добавить переключатель /V 1 в команду schtasks.

/V1 создает запланированную задачу, совместимую с предварительным представлением, и автоматически заполняет каталог Start In.

Ответ 2

Просто хотел добавить данные, которые действительны для Windows Server 2008 и 2012. Как многие люди могут лучше понять снимки экрана, вот скриншот:
enter image description here

Подводя итог. Когда вы создаете действие для запланированной задачи, у вас есть возможность установить поле "Начать в (необязательное)" (округленное красным цветом на снимке экрана). Это будет каталог, из которого запускается ваш процесс.

Надеюсь, это поможет!

Ответ 3

Вы можете установить начало в каталог, используя следующую команду

Ключ\находится в переключателе /​​tr.

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

Ответ 4

См. мой ответ на аналогичный вопрос, о том, как установить параметр "Пробуждать компьютер для запуска этой задачи...", который доступен только с Пользовательский интерфейс планировщика заданий (и через XML), а не командную строку schtasks.exe /create.

Гайки и болты:

  • Создайте свою задачу с помощью schtasks.exe /create /tn MyTask ...
  • Экспортируйте свою задачу в XML через schtasks.exe /query /xml /tn MyTask > MyTask.xml
  • Обновите этот XML через XSLT или выполните поиск/замените
  • Повторно импортировать (перезаписать старую задачу) с помощью schtasks.exe /create /tn MyTask /xml MyTask.xml /f

Подробности здесь.

Ответ 5

Попробуйте cd /d "<WorkingDirectory>" & schtasks <SchtasksParams>

Измените рабочий каталог, а затем запустите schtasks.

Ответ 6

Я надеюсь, что люди увидят этот ответ для XML-подхода (честно говоря, я считаю, что это более чистый метод, и там есть более подробная документация о том, какие параметры вы можете настроить для настройки определенных функций в задаче тоже).

Шаг 1: создайте XML файл, который задает все параметры задачи, несколько мест для дополнительной информации о XML-элементах:

Шаг 2: Конкретно для "where" задача будет выполняться с (как в стартовом каталоге script начнется в командной строке, это напрямую связано с вопросом OP. Вам необходимо настроить такой параметр...

<?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> 

Обратите внимание, что не указано никаких кавычек в параметре WorkDirectory. Я сделал эту ошибку раньше.

Шаг 3: Поскольку вы будете использовать schtasks.exe, чтобы СОЗДАТЬ эту новую задачу с помощью XML, загляните сюда для получения дополнительной информации: https://msdn.microsoft.com/en-us/library/bb736357.aspx

Шаг 4: В командной строке Windows вы выполните что-то вроде этого (как только ваш XML будет готов)

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

Надеюсь, это поможет немного - получайте удовольствие!

Ответ 7

Используйте My.Application.Info.DirectoryPath в приложении без необходимости настройки XML.