2

У меня есть пакетный файл (ниже), который отлично работает при запуске, однако, когда я настраивал bat-файл в планировщике задач, он не работает правильно. Планировщик задач действительно выполняет задачу успешно, поэтому я предполагаю, что это связано с разрешениями администратора для файла .exe. Я уже убедился, что администратор имеет право в параметрах локальной безопасности "входить в систему как пакетное задание", и я убедился, что администратор имеет полный контроль над всей папкой, в которой находится .exe. Когда я тестирую пакетный файл вручную, и он работает, я захожу как администратор.

РЕДАКТИРОВАТЬ: Сводка вопросов, которые задавали и отвечали в комментариях:

  1. M:\ - это сетевой диск. Он физически расположен на этом же сервере, но в соответствии с требованиями программы должна использоваться буква сетевого диска.
  2. переместил файл bat в C:\ в теории, что наличие его на рабочем столе может быть проблемой: без изменений.
  3. Когда исполняемый файл запускается, графический интерфейс должен запускаться. Это происходит, когда bat запускается вручную, но графический интерфейс не запускается при использовании диспетчера задач. Остальная часть летучей мыши бежит как задумано. По словам разработчика программного обеспечения, графический интерфейс должен иметь возможность запуска даже из диспетчера задач, и они не видели такого поведения раньше.

РЕДАКТИРОВАТЬ 2: Итак, я подтвердил, что проблема в том, что графический интерфейс должен запускаться, вопреки ожиданиям. Я могу заставить задачу работать, переключившись на Run only when user is logged on , что приводит к появлению пользовательского интерфейса. Однако, поскольку это сервер и задача выполняется в первые часы утра, пользователь, как правило, не вошел в систему. Есть ли способ заставить пользователя входить и выходить из системы в определенное время? Или другое решение, кроме как всегда оставлять пользователя в системе?

Пакетный файл (ПЕРЕСМОТРЕНО):

netsh interface set interface "Local Area Connection 2" DISABLED
iisreset /stop
timeout /t 120
iisreset /start
netsh interface set interface "Local Area Connection 2" ENABLED
start /d "M:\CBSW" optimize.exe T

Экспортированный XML из задачи в планировщике задач (ревизия:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2012-01-10T09:42:01.9781872</Date>
    <Author>DOMAIN\Administrator</Author>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2012-01-10T02:00:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByWeek>
        <DaysOfWeek>
          <Monday />
          <Thursday />
        </DaysOfWeek>
        <WeeksInterval>1</WeeksInterval>
      </ScheduleByWeek>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>DOMAIN\Administrator</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <IdleSettings>
      <Duration>PT10M</Duration>
      <WaitTimeout>PT1H</WaitTimeout>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
    <RestartOnFailure>
      <Interval>PT15M</Interval>
      <Count>3</Count>
    </RestartOnFailure>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>E:\IISRESET+Optimize.bat</Command>
      <WorkingDirectory>E:\Data\Optimize\</WorkingDirectory>
    </Exec>
  </Actions>
</Task>

1 ответ1

0

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

Но вы можете найти некоторые дополнительные ресурсы здесь:https://stackoverflow.com/questions/53232/how-can-i-run-a-windows-gui-application-on-as-a-service

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