7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)

Аватара пользователя
Neosev

7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)

Сообщение Neosev »

Собственно имеется Windows Embedded Standard 7 Evaluation Edition, в свою очередь майкрософт бесплатно раздаёт ключи для "пробы" на 180 дней. Суть задачи такова, автоматизировать выполнение команды slmgr –rearm с интеграцией в дистрибутив. К примеру, прошло 179 дней после установки ОС и выполняется данная команда, и потом опять через 179 дней.. можно непрерывно... (вообще всего 5 раз можно). Думаю понятно зачем... установить легально ось, и использовать 2,5 года бесплатно не заморачиваясь Изображение Подскажите, как это проще осуществить? На ум приходит планировщик заданий, написание мини-программки, создание службы... Но хочется получить совет, и в идеале рабочий пример. Заранее благодарен за любую помощь в этом вопросе.
Аватара пользователя
Vadikan

Re: 7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)

Сообщение Vadikan »

Цитата Neosev:



выполняется данная команда, и потом опять через 179 дней.. можно непрерывно... (
7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)




Планировщик - ваш лучший друг. В триггерах поставьте "Ежедневно" и кол-во дней.

См. также
Управление назначенными заданиями средствами командной строки (Schtasks)
Аватара пользователя
Neosev

Re: 7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)

Сообщение Neosev »

Спасибо... разобрался с планировщиком.. Осталось 2 вопроса, как сделать так, чтобы дата старта задачи была - дата установки ос? И каким образом в в дистрибутив будет проще импортировать задачу?
Аватара пользователя
Vadikan

Re: 7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)

Сообщение Vadikan »

Цитата Neosev:



Осталось 2 вопроса, как сделать так, чтобы дата старта задачи была - дата установки ос?
7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)




По-моему, это просто не нужно, т.к. после создания задачи при установке системы дата создания и так будет текущей Изображение Если вас это не устраивает, задайте вопрос в
Скриптовые языки администрирования Windows
. Нужен скрипт, определяющий текущую дату и подставляющий ее в команду Schtasks.




Цитата Neosev:



И каким образом в в дистрибутив будет проще импортировать задачу?
7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)




Сравнительная таблица тут
http://oszone.net/8594
Выбирайте из
SetupComplete.cmd
и
FirstLogonCommands
Аватара пользователя
Neosev

Re: 7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)

Сообщение Neosev »

Спасибо за подсказки... Вроде получилось.. но все равно есть косяки... Вообщем команда:



Код:

Код: Выделить всё

%WINDIR%\system32\Schtasks.exe /Create /RU "NT AUTHORITY\SYSTEM" /RL Highest /TN TASK /SC "DAILY" /MO "179" /TR "%WINDIR%\system32\slmgr.vbs -rearm"

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

Попробовал сделать "событийно-управляемую" задачу:



Код:

Код: Выделить всё

%WINDIR%\system32\Schtasks.exe /Create /TN TASK /TR "%WINDIR%\system32\slmgr.vbs -rearm" /SC ONEVENT /EC Application /MO *[System/EventID=4103] /RL Highest

Основываясь на событии, которое создается при окончании тестового периода, задание создается, но при появлении события - реакции ноль Изображение

Подскажите, где мой косяк?
Аватара пользователя
Vadikan

Re: 7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)

Сообщение Vadikan »

Цитата Neosev:



этот вопрос решается установкой галочки в параметрах события на "Немедленно запускать задачу, если пропущен плановый запуск", но как включить данный параметр через командную строку?
7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)




Экспортировать задание в XML, потом
Импорт задания
.
Аватара пользователя
Neosev

Re: 7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)

Сообщение Neosev »

Хотелось бы конечно в идеале чисто командой Изображение

По поводу этого варианта так же думал, но если экспортировать задание в XML, то дата старта (от которого будет высчитываться 179 дней) будет же та, которую сделаю при создании этого файла... (экспорте)
Аватара пользователя
Neosev

Re: 7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)

Сообщение Neosev »

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

Re: 7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)

Сообщение Morpheus »

Конкретизирую задачу, т.к. мне тема планировщика тоже интересна Изображение

Необходимо создать XML с текстом:



Код:

Код: Выделить всё

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2010-10-05T03:04:20.5546931</Date>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2010-10-05T03:03:30.0158025</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>179</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>false</AllowHardTerminate>
    <StartWhenAvailable>true</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>PT0S</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>%WINDIR%\system32\slmgr.vbs</Command>
      <Arguments>-rearm</Arguments>
    </Exec>
  </Actions>
</Task>

В котором вместо выделенного куска выводилась бы текущая дата (время не важно, наверное) + 179 дней.
Аватара пользователя
amel27

Re: 7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)

Сообщение amel27 »

VBS-вариант для актуализации выделенного куска XML-файла:

Код: Выделить всё

strFile = "TASK.XML"
Set objFormat = CreateObject("VBScript.RegExp")
objFormat.Pattern = "(\D)(?=\d\D)"
objFormat.Global = True
Set objStartB = CreateObject("VBScript.RegExp")
objStartB.Pattern = "(<StartBoundary>).*?(</StartBoundary>)"
objStartB.IgnoreCase = True
objStartB.Global = True
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oF = FSO.OpenTextFile(strFile,1)
sF = oF.ReadAll
oF.Close
DN = DateAdd("d",179,Now())
DT = Year(DN) &"-"& Month(DN) &"-"& Day(DN) &"T"& Hour(DN) &":"& Minute(DN) &":"& Second(DN) &".0000000"
sF = objStartB.Replace(sF, "$1"& objFormat.Replace(DT,"$10") &"$2")
Set oF = FSO.OpenTextFile(strFile, 2)
oF.Write(sF)
oF.Close
Ответить

Вернуться в «Скриптовые языки администрирования Windows»