У меня проблема с частями скриптов PowerShell, которые не выполняются, когда скрипт запускается из запланированной задачи. При ручном выполнении работает нормально.
Например, у меня в скрипте есть следующее:
add-content c:\some_folder\output.txt "howdy"
c:\windows\system32\notepad.exe
Когда я запускаю сценарий вручную, выполняются обе команды. Когда запланированная задача запускается, первая команда выполняется, а вторая - нет. Это слишком упрощенный пример, но у меня есть более сложные сценарии, в которых я получаю аналогичное поведение ... сценарий делает то, что должен, при запуске вручную, но части не запускаются при запуске из запланированной задачи.
Запланированная задача настроена на запуск от имени локального администратора с выбранной опцией «Запускать с наивысшими привилегиями».
Любые идеи?
Проблема с приведенным вами примером заключается в том, что notepad.exe
требуется интерактивный сеанс для отображения пользовательского интерфейса. Когда вы запускаете запланированную задачу, интерактивный сеанс для размещения пользовательского интерфейса отсутствует.
Вы работаете в домене?
Попробуйте изменить разрешения безопасности для \ system32 \ cmd.exe и добавьте BATCH встроенной учетной записи с полным контролем.
Этот сценарий использует какие-либо сетевые ресурсы? Местный администратор не будет заниматься бизнесом, если вы звоните по сети.
Какой код выхода при запуске запланированной задачи? 0x0 - очевидный успех. 0x1 и 0x2 являются общими. Взгляните на c: \ windows \ Schedlgu.txt, где вы найдете дополнительную информацию.
Найдите CMD.EXE, щелкните правой кнопкой мыши и выберите «Запуск от имени» учетной записи, под которой вы планируете. Перейдите к месту сценария в этой командной строке и запустите сценарий оттуда. Убедитесь, что вы сняли @ECHO OFF сверху (если вы его использовали), чтобы все было видно.
Это должно позволить вам увидеть, где он терпит неудачу.
РЕДАКТИРОВАТЬ: Также - может помочь добавление эхо-строки на каждом этапе скрипта. Например, я часто помещаю «Эхо, запускающий скрипт >> check.txt» в начале, когда у меня возникают проблемы, а затем что-то подобное ниже, на каждом этапе или после любой важной операции. Затем вы можете увидеть, где произошло последнее выполнение, это также может быть полезно, если вы полагаетесь на переменные, которые также помещают их в вывод, поэтому добавьте туда 'var is now% var%'.
Можете ли вы приклеить полный сценарий?