Как выполнить запланированную задачу с “schtasks”, не открывая новое окно командной строки?

У меня есть пакетный файл, который создает использование запланированной задачи schtasks как это:

schtasks /create /tn my_task_name 
                 /tr "...\my_path\my_task.bat"
                 /sc daily
                 /st 10:00:00 
                 /s \\my_computer_name 
                 /u my_username    
                 /p my_password

Это работает хорошо кроме факта это когда my_task.bat выполняется - новое окно командной строки открывается (и закрывается после выполнения).

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

Я думавший использовать

start /b ...\my_path\my_task.bat

но я не знаю, как, потому что, так как я должен звонить start от пакетного файла я должен предшествовать ему с cmd /c, который снова заставляет новое окно открываться.

Как я мог решить эту проблему?

6
задан 03.10.2010, 05:27

4 ответа

Наконец, я использовал этот код решить проблему:

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "...\my_task.bat" & Chr(34), 0
Set WshShell = Nothing

сохраненный это в run_my_task.vbs и запланированный run_my_task.vbs с schtasks как выше.

1
ответ дан 07.12.2019, 15:58

Я полагаю, что Вы видите поле, потому что учетная запись, которую Вы устанавливаете для выполнения его, как собственное. Попробуйте любой из них:

1: Выполните задачу как пользователя NT Authority\System

2: Сделайте новую учетную запись и поставите задачу для выполнения с ее учетными данными

3
ответ дан 07.12.2019, 15:58

Возможно, использование AT управляйте и не включайте /interactive переключатель.

Пример:
AT \\my_computer_name 10:00AM /EVERY:M,T,W,Th,F,S,Su "...\my_path\my_task.bat"

При необходимости в определенных учетных данных для my_task.bat для выполнения под, необходимо будет pobably поместить RUNAS в команде, потому что я верю, команда выполнит под контекстом защиты Расписания (Планировщик задач) сервис, который является "Локальной Системой" учетная запись. Добавление RUNAS команда и переключатели перед Вами Bat-файл должны зафиксировать это.

1
ответ дан 07.12.2019, 15:58

Можно сделать это путем определения / опции RU для schtasks. Эта опция

указывает учетную запись пользователя (пользовательский контекст), под которым работает задача. Для системной учетной записи допустимые значения"" ", NT AUTHORITY\SYSTEM" или "СИСТЕМА".

И таким образом, попробуйте это

schtasks /create /tn my_task_name 
                  ....
                 /st 10:00:00 
                 /ru "SYSTEM"
                 ....
3
ответ дан 07.12.2019, 15:58

Теги

Похожие вопросы