5

Я написал следующий файл .ps1:-

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$request = [System.Net.WebRequest]::Create("https://localhost/")
$response = $request.GetResponse()
$response.Close()

и я поставил задачу в планировщике задач Windows Server 2012 r2, чтобы вызвать te выше файла ps1. Теперь я запускаю эту задачу вручную, но она продолжает показывать "0x41301", что означает, что она все еще выполняется ... хотя, если я непосредственно запускаю Приведенный выше код внутри окна PowerShell закончится менее чем за секунду? так почему вызов этого ps1 с помощью задачи Шулера никогда не закончится?

Редактировать - вот экспортированный XML:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2016-02-09T00:35:11.5514762</Date>
    <Author>ad-services\user.service</Author>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <Repetition>
        <Interval>PT5M</Interval>
        <Duration>PT30M</Duration>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <StartBoundary>2016-02-09T19:30:01</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>S-1-5-20</UserId>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\Users\user.service\Documents\AppPoolActivation.ps1</Command>
    </Exec>
  </Actions>
</Task>

3 ответа3

9

Я считаю, что это показывает проблему:

  <Actions Context="Author">
    <Exec>
      <Command>C:\Users\user.service\Documents\AppPoolActivation.ps1</Command>
    </Exec>
  </Actions>

Вы не должны просто положить.Сценарий PS1 в качестве команды, которую вы хотите запустить, приведет к сбою или выполнению странных вещей. :)

Вместо этого в Задаче измените «Программу / скрипт», которую вы хотите запустить:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Добавьте сценарий через поле "Аргументы" задачи, а также включите изменения политики выполнения (при необходимости). то есть:

-ExecutionPolicy Bypass -file "C:\Users\user.service\Documents\AppPoolActivation.ps1"

Вы также можете изменить поле "Начать с", чтобы оно соответствовало пути, в котором существует сценарий, а именно: C:\Users\user.service\Documents\ .

Совет: не храните сценарий в папке профиля пользователя, так как это может вызвать проблемы с доступом. Вместо этого создайте папку (вне папки « Users ») для хранения ваших сценариев и убедитесь, что учетная запись пользователя, используемая для запуска задачи, имеет соответствующий доступ.

0

Или просто на вкладке "Действие" заполните программу / скрипт: дополнения powershell (необязательно): -NonInteractive -file «C:\yourscript.ps1»

-1

У меня была эта проблема, так как у меня была задана задача «запускать, вошел ли пользователь в систему или нет» .. Когда я переключил его на "Запускать только когда пользователь вошел в систему" и протестировал его, я понял, что у меня была ПАУЗА в одном из моих пакетных файлов, которые я забыл удалить!

Я знаю, что это, вероятно, не связано, но, надеюсь, это поможет кому-то в будущем!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .