SchTasks, выделяющий ошибку (0x1) в Windows 2008 R2

Имеет значение, принадлежит ли этот каталог корню или как пользователь низшего уровня?

Если владелец является корнем, то apache/uWSGI/django не может изменить файлы.

Есть ли некоторые инструкции для установки пользователей и полномочий упростить развертывание при ограничении доступа к вещам, к которым я не хочу просто, чтобы у кого-либо был доступ?

Используйте sudo.

1
задан 19 July 2013 в 23:52
2 ответа

У меня вопрос: зачем я указываю начало пути, когда ясно сказано "Необязательно" в свойства задачи?

Допустим, я создаю запланированную задачу, которая будет запускать сценарий Powershell:

enter image description here

Почему это неправильно? Ну, во-первых, мы не уверены, правильно ли будет разрешен файл powershell.exe, потому что мы не знаем, правильно ли настроены переменные среды PATH у пользователя, выполняющего запланированную задачу. В зависимости от того, от кого вы настроили запуск задачи, будь то система или пользователь домена, их переменные PATH будут разными. Иногда это срабатывает, и powershell.exe запускается правильно, но почему бы не пойти дальше и не погадать и не указать полный путь к исполняемому файлу powershell.exe.

Во-вторых, script.ps1 - это где? Вы не уточнили. Powershell будет запущен, и его каталог запуска будет % WINDIR% \ System32 . Если только здесь вы не сохранили свой скрипт (а я надеюсь, что это не так), Powershell не сможет его найти.

enter image description here

Это лучше, когда мы дали полные пути к исполняемому файлу и скрипту. Но мы все еще не догадались, для чего нужен «Начать через (необязательно)». Итак, подождите, мы приближаемся.

Содержимое script.ps1 выглядит следующим образом:

«Привет, мир!» | Out-File test.txt

Итак, если бы я сейчас запустил указанную выше запланированную задачу, которая запускает Powershell, которая запускает script.ps1, где, по вашему мнению, будет записан test.txt?

Если вы угадали ]% WINDIR% \ System32 , тогда вы получите файл cookie!

Если бы я хотел, чтобы test.txt переходил в C: \ Scripts , я бы набрал C: \ Скрипты в поле «Начать в (необязательно)»!

Вот почему это необязательно.

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


Теперь перейдем ко второму вопросу.

Похоже, что schtasks.exe не имеет возможности добавить «Начать в» или «Рабочий каталог» запланированной задачи. Облом.

Вы можете использовать XML для задач Task Scheduler 2.0, что позволяет вам установить рабочий каталог. Вот XML-код тестовой задачи, которую я создал для этого вопроса:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2013-07-19T09:41:27.0446696</Date>
    <Author>DOMAIN\user</Author>
  </RegistrationInfo>
  <Triggers />
  <Principals>
    <Principal id="Author">
      <UserId>DOMAIN\user</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</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>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command>
      <Arguments>C:\Scripts\script.ps1</Arguments>
      <WorkingDirectory>C:\Scripts</WorkingDirectory>
    </Exec>
  </Actions>
</Task>

Вы можете использовать schtasks / XML для автоматического импорта задач из XML-файлов с помощью сценария.

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


Теперь перейдем ко второму вопросу.

Похоже, что schtasks.exe не имеет возможности добавить «Начало в» или «Рабочий каталог» запланированной задачи. Облом.

Вы можете использовать XML для задач Task Scheduler 2.0, что позволяет вам установить рабочий каталог. Вот XML-код тестовой задачи, которую я создал для этого вопроса:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2013-07-19T09:41:27.0446696</Date>
    <Author>DOMAIN\user</Author>
  </RegistrationInfo>
  <Triggers />
  <Principals>
    <Principal id="Author">
      <UserId>DOMAIN\user</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</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>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command>
      <Arguments>C:\Scripts\script.ps1</Arguments>
      <WorkingDirectory>C:\Scripts</WorkingDirectory>
    </Exec>
  </Actions>
</Task>

Вы можете использовать schtasks / XML для автоматического импорта задач из XML-файлов с помощью скриптов.

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


Теперь перейдем ко второму вопросу.

Похоже, что schtasks.exe не имеет возможности добавить «Запуск в» или «Рабочий каталог» запланированной задачи. Облом.

Вы можете использовать XML для задач Task Scheduler 2.0, что позволяет вам установить рабочий каталог. Вот XML-код тестовой задачи, которую я создал для этого вопроса:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2013-07-19T09:41:27.0446696</Date>
    <Author>DOMAIN\user</Author>
  </RegistrationInfo>
  <Triggers />
  <Principals>
    <Principal id="Author">
      <UserId>DOMAIN\user</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</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>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command>
      <Arguments>C:\Scripts\script.ps1</Arguments>
      <WorkingDirectory>C:\Scripts</WorkingDirectory>
    </Exec>
  </Actions>
</Task>

Вы можете использовать schtasks / XML для автоматического импорта задач из XML-файлов с помощью скриптов.


Теперь перейдем ко второму вопросу.

Похоже, что schtasks.exe не имеет возможности добавить «Начать в» или «Рабочий каталог» запланированной задачи. Облом.

Вы можете использовать XML для задач Task Scheduler 2.0, что позволяет вам установить рабочий каталог. Вот XML-код тестовой задачи, которую я создал для этого вопроса:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2013-07-19T09:41:27.0446696</Date>
    <Author>DOMAIN\user</Author>
  </RegistrationInfo>
  <Triggers />
  <Principals>
    <Principal id="Author">
      <UserId>DOMAIN\user</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</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>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command>
      <Arguments>C:\Scripts\script.ps1</Arguments>
      <WorkingDirectory>C:\Scripts</WorkingDirectory>
    </Exec>
  </Actions>
</Task>

Вы можете использовать schtasks / XML для автоматического импорта задач из XML-файлов с помощью скриптов.


Теперь перейдем ко второму вопросу.

Похоже, что schtasks.exe не имеет возможности добавить «Начать в» или «Рабочий каталог» запланированной задачи. Облом.

Вы можете использовать XML для задач Task Scheduler 2.0, что позволяет вам установить рабочий каталог. Вот XML-код тестовой задачи, которую я создал для этого вопроса:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2013-07-19T09:41:27.0446696</Date>
    <Author>DOMAIN\user</Author>
  </RegistrationInfo>
  <Triggers />
  <Principals>
    <Principal id="Author">
      <UserId>DOMAIN\user</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</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>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command>
      <Arguments>C:\Scripts\script.ps1</Arguments>
      <WorkingDirectory>C:\Scripts</WorkingDirectory>
    </Exec>
  </Actions>
</Task>

Вы можете использовать schtasks / XML для автоматического импорта задач из XML-файлов с помощью скриптов.

4
ответ дан 3 December 2019 в 17:48

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

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

RunAs /user:domain\serviceaccount PowerShell.exe

А затем запустите весь блок действия в PowerShell и посмотрите, не возникнет ли в нем ошибок:

PowerShell.exe -ExecutionPolicy Bypass -File "C:\Scripts\My-Automated-Task.ps1"
0
ответ дан 3 December 2019 в 17:48

Теги

Похожие вопросы