понедельник, 11 апреля 2011 г.

Миграция заданий из 2003 в 2008


Что ж, самое время мне все-таки выучить синтаксис команды schtasks, который я так не желал учить. Некоторое время назад мне пришлось решать проблему перемещения ряда задач с одного сервера на другой. Сама по себе задача не слишком радующая, а тут еще пришлось копировать их с Windows 2003 на Windows 2008. Когда переносимая задача одна это легко делается вручную, но если их много… Вот тут-то и наступает момент триумфа schtasks!
Что он может для нас сделать, так это экспортировать задачу с удаленного сервера в формат XML. Предположим, мы имеем задачу “Command Prompt”, которая единоразово запускает cmd.exe:
image
image
image
Давайте используем наше секретное оружие:
image
В файле Task.xml мы получим следующее содержание:
   1: <?xml version="1.0" encoding="utf-16"?>
   2: <Task version="1.1" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
   3:   <RegistrationInfo>
   4:     <Author>trofimov</Author>
   5:   </RegistrationInfo>
   6:   <Triggers>
   7:     <TimeTrigger>
   8:       <Enabled>true</Enabled>
   9:       <StartBoundary>2011-04-10T23:43:00</StartBoundary>
  10:     </TimeTrigger>
  11:   </Triggers>
  12:   <Settings>
  13:     <Enabled>true</Enabled>
  14:     <DeleteExpiredTaskAfter>PT0S</DeleteExpiredTaskAfter>
  15:     <ExecutionTimeLimit>PT259200S</ExecutionTimeLimit>
  16:     <Hidden>false</Hidden>
  17:     <WakeToRun>false</WakeToRun>
  18:     <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
  19:     <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
  20:     <RunOnlyIfIdle>false</RunOnlyIfIdle>
  21:     <Priority>5</Priority>
  22:     <IdleSettings>
  23:       <Duration>PT600S</Duration>
  24:       <WaitTimeout>PT3600S</WaitTimeout>
  25:       <StopOnIdleEnd>false</StopOnIdleEnd>
  26:       <RestartOnIdle>false</RestartOnIdle>
  27:     </IdleSettings>
  28:   </Settings>
  29:   <Principals>
  30:     <Principal>
  31:       <UserId>System</UserId>
  32:     </Principal>
  33:   </Principals>
  34:   <Actions>
  35:     <Exec>
  36:       <Command>C:\WINDOWS\system32\cmd.exe</Command>
  37:       <WorkingDirectory>C:\WINDOWS\system32</WorkingDirectory>
  38:     </Exec>
  39:   </Actions>
  40: </Task>

которое мы можем импортировать в наш сервер W2008R2 с помощью schtasks или даже через GUI:

image

image

image

Разумеется, schtasks более эффективен в случае перемещения многих задач, однако GUI намного более эффектен ;)

Комментариев нет: