Назад | Перейти на главную страницу

Система не может найти указанный файл - Планировщик заданий. Win Server 2012

У меня есть пакетный файл сценария, который должен зашифровать файл с помощью pgp. Я определил задачу в планировщике задач для этого, но я продолжаю получать сообщение об ошибке «Система не может найти указанный файл».

Интересно, что когда я запускаю ту же строку сценария в моем PowerShell, зашифрованный файл успешно создается.

Мне было интересно, знает ли кто-нибудь, что здесь может быть не так?

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

код пакетного сценария находится здесь:

rem @echo off 
@set path=c:\test;%path%

@set d=%date:~-4,4%%date:~4,2%%date:~-7,2% 
@set d=%d: =_% 
@set t=%time:~0,2%%time:~3,2%%time:~6,2% @set t=%t: =0%

Rem  Generate PGP encrypted file 
@echo Starting PGP... >> c:\apps\ftpLogs\test.log 
gpg2 --batch --yes -r testkey --output c:\test\foo\test_20150505.pgp --encrypt c:\test\foo\test_20150505.txt >> c:\apps\ftpLogs\test.log

и скрипт, который я запустил в моем PowerShell, который отлично работает, выглядит следующим образом:

gpg2 --batch --yes -r testkey --output c:\test\foo\test_20150505.pgp --encrypt c:\test\foo\test_20150505.txt >> c:\apps\ftpLogs\test.log

Наконец я смог решить проблему. Проблема была в полномочиях пользователя. Предполагалось, что пакетный сценарий зашифрует файл, а затем отправит зашифрованный файл по ftp на ftp-сервер поставщика.

Очевидно, в Windows Server 2012 АДМИНИСТРАТОРЫ имеют разрешение на создание файла (здесь зашифрованный файл), в то время как у этого пользователя нет разрешения на его отправку. и пользователь SYSTEM имеет разрешение на отправку, но не на создание. (Оба они имели это право еще в Win Server 2008).

поэтому в конце я сделал две разные задачи пакетного сценария и запланировал их с интервалом в 10 минут. Первый запускал указанный выше код с привилегиями АДМИНИСТРАТОРА, а второй отправлял его с помощью СИСТЕМ.

У меня была такая же ошибка, но в моем случае она возникла только при запуске задачи в качестве учетной записи службы; задача работала нормально при работе в качестве пользователя моего домена. Ошибка была в основном отвлекающим маневром, и вместо этого она была связана с использованием графического интерфейса для выбора опции, которая может не поддерживаться. Обычно не устанавливайте «Если задача уже запущена ...» на «Остановить существующий экземпляр». Используйте любой из трех других вариантов.

Более подробная информация Вот.