Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » 7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)

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

Новый участник


Сообщения: 24
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Отправлено: 01:55, 29-09-2010

 

(*.*)


Сообщения: 36491
Благодарности: 6675

Профиль | Сайт | Отправить PM | Цитировать


Цитата Neosev:
выполняется данная команда, и потом опять через 179 дней.. можно непрерывно... ( »
Планировщик - ваш лучший друг. В триггерах поставьте "Ежедневно" и кол-во дней.
См. также Управление назначенными заданиями средствами командной строки (Schtasks)

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:31, 29-09-2010 | #2



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

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


Новый участник


Сообщения: 24
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Отправлено: 03:03, 29-09-2010 | #3


(*.*)


Сообщения: 36491
Благодарности: 6675

Профиль | Сайт | Отправить PM | Цитировать


Цитата Neosev:
Осталось 2 вопроса, как сделать так, чтобы дата старта задачи была - дата установки ос? »
По-моему, это просто не нужно, т.к. после создания задачи при установке системы дата создания и так будет текущей Если вас это не устраивает, задайте вопрос в Скриптовые языки администрирования Windows. Нужен скрипт, определяющий текущую дату и подставляющий ее в команду Schtasks.

Цитата Neosev:
И каким образом в в дистрибутив будет проще импортировать задачу? »
Сравнительная таблица тут http://oszone.net/8594 Выбирайте из SetupComplete.cmd и FirstLogonCommands

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:12, 02-10-2010 | #4


Новый участник


Сообщения: 24
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо за подсказки... Вроде получилось.. но все равно есть косяки... Вообщем команда:
Код: Выделить весь код
%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
Основываясь на событии, которое создается при окончании тестового периода, задание создается, но при появлении события - реакции ноль
Подскажите, где мой косяк?

Отправлено: 23:46, 03-10-2010 | #5


(*.*)


Сообщения: 36491
Благодарности: 6675

Профиль | Сайт | Отправить PM | Цитировать


Цитата Neosev:
этот вопрос решается установкой галочки в параметрах события на "Немедленно запускать задачу, если пропущен плановый запуск", но как включить данный параметр через командную строку? »
Экспортировать задание в XML, потом Импорт задания.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 00:20, 04-10-2010 | #6


Новый участник


Сообщения: 24
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Отправлено: 00:36, 04-10-2010 | #7


Новый участник


Сообщения: 24
Благодарности: 1

Профиль | Отправить PM | Цитировать


Неужели ни у кого нету идей, насчет того как решить данную задачу не "ручным" методом?

Отправлено: 23:38, 04-10-2010 | #8


Аватара для Morpheus

Ветеран


Сообщения: 12426
Благодарности: 2328

Профиль | Отправить PM | Цитировать


Конкретизирую задачу, т.к. мне тема планировщика тоже интересна
Необходимо создать 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 дней.

Отправлено: 03:44, 05-10-2010 | #9


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


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
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:54, 05-10-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » 7 / 2008 R2 - [решено] Автоматическое выполнение команды (schtasks)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как сдедать выполнение команды только после выполнения куска кода? Ingolder Скриптовые языки администрирования Windows 8 01-09-2010 22:52
CMD/BAT - [решено] Выполнение команды запуск sfx архива timon45 Скриптовые языки администрирования Windows 4 21-08-2010 22:11
Разное - проблема с schtasks dimV Microsoft Windows 2000/XP 1 30-06-2010 15:26
[решено] Как заткнуть *.cmd? Как скрыть выполнение DOS-овской команды? J-S Автоматическая установка Windows 2000/XP/2003 5 08-05-2010 22:24
CMD/BAT - [решено] удаленное выполнение команды Diver1 Скриптовые языки администрирования Windows 2 20-03-2009 10:39




 
Переход