Я запускаю два сценария PowerShell как запланированные задачи на нескольких серверах. Один сценарий (№1) перемещает папки из одного приложения в другую папку (корзину), другой сценарий (№2) перезапускает службы.
Сценарий №1 перемещает папки, копируя их в целевой путь, а затем удаляя папку в исходном пути. Сценарий работает при запуске вручную в консоли PowerShell, но когда он запускается как запланированная задача, он не копирует папки в целевой путь, но удаляет папку в исходном пути.
Сценарий № 2 перезапускает MySQL и IIS на двух серверах, но обычно не может перезапустить MSSQL на третьем сервере. Когда я проверяю историю запланированных задач, сценарий запускается в течение 30 минут, прежде чем он будет принудительно остановлен планировщиком. Он перезапускает один экземпляр MSSQL, поэтому это займет не более нескольких минут.
Оба сценария выполняются с наивысшими привилегиями с -ExecutionPolicy Bypass, а для папки Start In задан путь их установки. Я получаю ошибку (2) для операционного кода в истории. Это сообщение о том, что файл не найден. Каждый сценарий использует XML-файл для настроек.
Есть ли у кого-нибудь идеи, что мне может не хватать для запуска сценария без присмотра?
Спасибо.
С какими учетными данными выполняется запланированная задача? Системные и другие локальные учетные записи будут работать только в локальной системе. Если сценарий обращается к другим компьютерам в сети, задача должна выполняться с учетной записью домена, у которой есть достаточные права на другие сетевые ресурсы.
В первой / последней строке каждого скрипта добавьте следующее:
start-transcript c:\temp\something.log
stop-transcript
Таким образом вы сможете узнать, какие ошибки возникли во время выполнения скрипта.
Перед удалением источника проверьте успешность копирования. Если копирование выполняется с помощью cmd, например, copy-item
смотреть на $?
. Если это EXE как robocopy
смотреть на $lastExitCode
.