Introduction

  • Windows Task Scheduler® jobs can be migrated to JS7.
  • SOS provides a PowerShell script which creates JS7 workflows, calendars and schedules from Windows Task Scheduler® jobs.
  • The converted objects are added to a .zip archive for import into JS7, see the JS7 - Inventory Export and Import article.

Download

PowerShell Cmdlet

Name

ConvertFrom-WindowsTaskScheduler

SYNOPSIS

Converts jobs from the Windows Task Scheduler® to JS7

SYNTAX

ConvertFrom-WindowsTaskScheduler [-AgentName <String>] [[-TaskName] <String>] [[-TaskPath] <String>] [[-OutputDirectory] <String>] [[-ArchivePath] <String>]  [[-CalendarName] <String>]  [[-Timezone] <String>]  [<CommonParameters>]

DESCRIPTION

The job configuration from Windows Task Scheduler® is converted to JSON files which can be imported and deployed to JS7.

This includes creating a workflow JSON file and a schedule JSON file per converted job. JSON file names are created from the Windows Task Scheduler® task names.

The cmdlet adds JSON files to a .zip archive which can be imported into JS7.

PARAMETERS

AgentName

-AgentName <String>

Specifies the name of an Agent that should execute the converted jobs. Typically this will be an Agent running on the Windows machine from which jobs are converted.

Required?true
Position?1
Default value
Accept pipeline input?true (ByPropertyName)
Accept wildcard characters?false

TaskName

-TaskName <String>

Specifies an individual job to be converted. Note that job names are not unique with Windows Task Scheduler®. When used with the -TaskPath parameter then a single job can be selected.

Without this parameter all jobs are converted.

Required?false
Position?2
Default value
Accept pipeline input?true (ByPropertyName)
Accept wildcard characters?false

TaskPath

-TaskPath <String>

Specifies the path in the Windows Task Scheduler® repository from which jobs should be converted.

Without this parameter jobs from all paths are converted.

Required?false
Position?3
Default value
Accept pipeline input?true (ByPropertyName)
Accept wildcard characters?false

OutputDirectory

-OutputDirectory <String>

Specifies the output directory for converted jobs.

If the directory is not specified then a temporary directory is created and is removed after conversion of jobs.

Required?false
Position?4
Default value
Accept pipeline input?true (ByPropertyName)
Accept wildcard characters?false

ArchivePath

-ArchivePath <String>

Specifies the name of the .zip archive that holds the converted jobs and which is used for import into JS7.

By default the .zip archive is created in the current directory with the name js7-import.zip.

Required?false
Position?5
Default valuejs7-import.zip
Accept pipeline input?true (ByPropertyName)
Accept wildcard characters?false

CalendarName

-CalendarName <String>

Specifies the name of a common calendar for converted jobs in the JS7 inventory. All converted jobs use the same calendar.

By default a calendar with the name "Everyday" is created.

Required?false
Position?6
Default valueEveryday
Accept pipeline input?true (ByPropertyName)
Accept wildcard characters?false

Timezone

-Timezone <String>

Accepts the name of a Joda time zone, see http://joda-time.sourceforge.net/timezones.html
The specified time zone is added to the run-time settings of jobs. Note that JS7 might be operated in a time zone which is different from the time zone that the Windows Task Scheduler® is operated in.

For PowerShell FullCLR 5.1 the computer's time zone is used, for later PowerShell versions the UTC time zone is used by default.

Required?false
Position?7
Default value(&{ if ( $PSVersionTable.PSVersion.Major -le 5 ) {
[Windows.Globalization.Calendar,Windows.Globalization,ContentType=WindowsRuntime]::New().GetTimeZone() } else { 'Etc/UTC' } })
Accept pipeline input?true (ByPropertyName)
Accept wildcard characters?false

EXAMPLES

-------------------------- EXAMPLE 1 --------------------------

PS > ./ConvertFrom-WindowsTaskScheduler.ps1 -AgentName windowsAgent -TaskPath \Microsoft\Windows\Defrag\ -TaskName ScheduledDefrag -OutputDirectory C:/tmp/jobs

Converts the job from the specified path and writes the JSON files to the C:/tmp/jobs directory. Converted jobs are available for import from the default archive file js7-import.zip in the current directory.

-------------------------- EXAMPLE 2 --------------------------

PS > ./ConvertFrom-WindowsTaskScheduler.ps1 -AgentName windowsAgent -TaskPath \ -OutputDirectory C:/tmp/jobs

Converts jobs available in the root folder of Windows Task Scheduler® and writes the JSON files to the C:/tmp/jobs directory.

-------------------------- EXAMPLE 3 --------------------------

PS > ./ConvertFrom-WindowsTaskScheduler.ps1 -AgentName windowsAgent -Timezone 'Europe/London' -CalendarName DailyCalendar -OutputDirectory C:/tmp/jobs

Converts all jobs from any folders and writes the JSON files to the C:/tmp/jobs directory. The specified Joda time zone is added to the run-time settings of converted jobs. The specified calendar is created and assigned the converted jobs.

-------------------------- EXAMPLE 4 --------------------------

PS > ./ConvertFrom-WindowsTaskScheduler.ps1 -AgentName windowsAgent -ArchivePath C:/tmp/js7-import.zip -OutputDirectory C:/tmp/jobs

Converts all jobs from all folders and writes the JSON files to the C:/tmp/jobs directory. Converted jobs are available from the  C:/tmp/js7-import.zip archive file for import into JS7.

Limitations

  • Actions of Windows Task Scheduler® jobs are mapped to a single JS7 job script.
  • For cyclic jobs in JS7, repetitions have to occur within a 24 hours period. Windows Task Scheduler® knows about repetitions that exceed this period.


  • No labels