2016-06-06 2 views
0

У меня есть командный файл, который вызывает несколько команд и в конечном итоге запускает скрипт powershell. Он работает отлично вручную, однако в планировщике задач я вижу, что он завершает некоторые действия, но фактически не запускает сценарий powershell (последняя команда в файле bat). Сценарий создается/перезаписывается java-файлом, куда он отправляется из электронной почты. Все обновления и необходимые, но в конечном итоге электронные письма никогда не отправляются. Когда я нажимаю на файл bat в Win explorer, он работает так, как ожидалось.Bat File Запускает вручную, не заполняется с планировщиком задач

@echo off 
set Pathname="C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava" 
cd %Pathname% 
REM ECHO Directory: C:\Users\administrator\Documents\Notification 
CALL IndividualCMDCommands.bat 
set Pathname="C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\src" 
cd %Pathname% 
XCOPY C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\*.txt C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\src /Y 
javac -cp .;C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\joda-time-2.9.3\joda-time-2.9.3.jar ParseInfo.java 
java -cp .;C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\joda-time-2.9.3\joda-time-2.9.3.jar ParseInfo 
ECHO ParseInfo 
REM set Pathname="C:\Users\administrator\Documents\Notification" 
REM cd %Pathname% 
ECHO Powershell 
REM SET ThisScriptsDirectory="C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\src" 
SET PowerShellScriptPath=%TC:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\PSCMD.ps1 
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%PowerShellScriptPath%'"; 
ECHO Complete 
+3

Зачем использовать командный файл вообще? Просто используйте PowerShell для всего скрипта. –

+0

Каждый раз, когда запускается этот скрипт, сценарий Powershell перезаписывается. Причиной использования сценария powershell является сохранение команд электронной почты в отдельном файле, который я мог бы изменить, если это необходимо. Поэтому я хотел бы сохранить эту часть в своем собственном файле. –

+0

Я бы рекомендовал альтернативный подход, который не требует этого - вам не нужен пакетный файл. –

ответ

0

Это, скорее всего, связано с исполняемой учетной записью пользователя. Если вы можете настроить это в своем планировщике задач, запустите свой bat-файл под своей учетной записью или «интерактивным пользователем». Тогда это должно сработать.

Как отправляются электронные письма? Возможно, с помощью Outlook? При автоматическом запуске Outlook некоторые ограничения безопасности. Если он открыт пользователем A, он не разрешит автоматизацию пользователем B.

+0

Письма отправляются по Outlook. Хотя я был под одной учетной записью пользователя, когда создал файлы и задачу. В планировщике задач я задал задачу с наивысшими привилегиями и выполнил ее под одним и тем же пользователем. –

+0

Повышенные привилегии по-прежнему рассматриваются как внешний пользователь Outlook. Если вы закроете внешний вид перед запуском скрипта, это не должно быть проблемой. Попробуйте запустить PowerShell ISE из диспетчера, а затем отлаживайте свой скрипт, чтобы увидеть, где он не работает. –

-1

Пожалуйста, попробуйте выполнить команду ниже для запуска сценария powershell. C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -NoProfile -ExecutionPolicy Bypass -file "& '% PowerShellScriptPath%'"

Смежные вопросы