다음을 통해 공유


New-JobTrigger

예약된 작업에 대한 작업 트리거를 만듭니다.

구문

New-JobTrigger
   [-RandomDelay <TimeSpan>]
   -At <DateTime>
   [-Once]
   [-RepetitionInterval <TimeSpan>]
   [-RepetitionDuration <TimeSpan>]
   [-RepeatIndefinitely]
   [<CommonParameters>]
New-JobTrigger
   [-DaysInterval <Int32>]
   [-RandomDelay <TimeSpan>]
   -At <DateTime>
   [-Daily]
   [<CommonParameters>]
New-JobTrigger
   [-WeeksInterval <Int32>]
   [-RandomDelay <TimeSpan>]
   -At <DateTime>
   -DaysOfWeek <DayOfWeek[]>
   [-Weekly]
   [<CommonParameters>]
New-JobTrigger
   [-RandomDelay <TimeSpan>]
   [-AtStartup]
   [<CommonParameters>]
New-JobTrigger
   [-RandomDelay <TimeSpan>]
   [-User <String>]
   [-AtLogOn]
   [<CommonParameters>]

Description

New-JobTrigger cmdlet은 일회성 또는 되풀이 일정 또는 이벤트가 발생할 때 예약된 작업을 시작하는 작업 트리거를 만듭니다.

New-JobTrigger 반환할 ScheduledJobTrigger 개체를 사용하여 새 작업 또는 기존 예약된 작업에 대한 작업 트리거를 설정할 수 있습니다. Get-JobTrigger cmdlet을 사용하여 기존 예약된 작업의 작업 트리거를 얻거나 해시 테이블 값을 사용하여 작업 트리거를 표시하여 작업 트리거를 만들 수도 있습니다.

작업 트리거를 만들 때 New-ScheduledJobOption cmdlet에서 지정한 옵션의 기본값을 검토합니다. 작업 스케줄러해당 옵션과 동일한 유효하고 기본값이 있는 이러한 옵션은 예약된 작업의 예약 및 타이밍에 영향을 미칩니다.

New-JobTrigger Windows PowerShell에 포함된 PSScheduledJob 모듈의 작업 예약 cmdlet 컬렉션 중 하나입니다.

예약된 작업에 대한 자세한 내용은 PSScheduledJob 모듈의 정보 항목을 참조하세요. PSScheduledJob 모듈을 가져온 다음 Get-Help about_Scheduled* 입력하거나 about_Scheduled_Jobs 확인합니다.

이 cmdlet은 Windows PowerShell 3.0에서 도입되었습니다.

예제

예제 1: 일정 한 번

PS C:\> New-JobTrigger -Once -At "1/20/2012 3:00 AM"

이 명령은 New-JobTrigger cmdlet을 사용하여 예약된 작업을 한 번만 시작하는 작업 트리거를 만듭니다. At 매개 변수의 값은 Windows PowerShell이 DateTime 개체로 변환하는 문자열입니다. At 매개 변수 값에는 시간뿐만 아니라 명시적 날짜가 포함됩니다. 날짜를 생략하면 트리거는 현재 날짜와 오전 3:00 시간으로 만들어지며 이는 과거의 시간을 나타낼 가능성이 높습니다.

예제 2: 일별 일정

PS C:\> New-JobTrigger -Daily -At "4:15 AM" -DaysInterval 3
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
0          Daily           9/21/2012 4:15:00 AM                           True

이 명령은 오전 4시 15분에 3일마다 예약된 작업을 시작하는 작업 트리거를 만듭니다.

At 매개 변수의 값에는 날짜가 포함되지 않으므로 현재 날짜는 DateTime 개체의 날짜 값으로 사용됩니다. 날짜 및 시간이 과거인 경우 예약된 작업은 다음에 발생할 때 시작됩니다. 이 작업은 At 매개 변수 값에서 3일 후입니다.

예제 3: 매주 일정

PS C:\> New-JobTrigger -Weekly -DaysOfWeek Monday, Wednesday, Friday -At "23:00" -WeeksInterval 4
Id Frequency Time                  DaysOfWeek                  Enabled
-- --------- ----                  ----------                  -------
0  Weekly    9/21/2012 11:00:00 PM {Monday, Wednesday, Friday} True

이 명령은 월요일, 수요일 및 금요일 2300시간(오후 11시)에 4주마다 예약된 작업을 시작하는 작업 트리거를 만듭니다.

-DaysOfWeek 1, 5같은 DaysOfWeek 매개 변수 값을 정수로 입력할 수도 있습니다.

예제 4: 로그온 일정

PS C:\> New-JobTrigger -AtLogOn -User Domain01\Admin01

이 명령은 도메인 관리자가 컴퓨터에 로그온할 때마다 예약된 작업을 시작하는 작업 트리거를 만듭니다.

예제 5: 임의 지연 사용

PS C:\> New-JobTrigger -Daily -At 1:00 -RandomDelay 00:20:00

이 명령은 매일 아침 1:00에 예약된 작업을 시작하는 작업 트리거를 만듭니다. 이 명령은 RandomDelay 매개 변수를 사용하여 최대 지연 시간을 20분으로 설정합니다. 결과적으로 작업은 매일 오전 1:00~오전 1:20 사이에 실행되며 간격은 의사 임의로 다릅니다.

샘플링, 부하 분산 및 기타 관리 작업에 임의 지연을 사용할 수 있습니다. 지연 값을 설정할 때 New-ScheduledJobOption cmdlet의 유효 및 기본값을 검토하고 옵션 설정으로 지연을 조정합니다.

예제 6: 새 예약된 작업에 대한 작업 트리거 만들기

The first command uses the **New-JobTrigger** cmdlet to create a job trigger that starts a job every Monday, Wednesday, and Friday at 12:01 AM. The command saves the job trigger in the $T variable.
PS C:\> $T = New-JobTrigger -Weekly -DaysOfWeek 1,3,5 -At 12:01AM


The second command uses the Register-ScheduledJob cmdlet to create a scheduled job that starts a job every Monday, Wednesday, and Friday at 12:01 AM. The value of the *Trigger* parameter is the trigger that is stored in the $T variable.
PS C:\> Register-ScheduledJob -Name Test-HelpFiles -FilePath C:\Scripts\Test-HelpFiles.ps1 -Trigger $T

이러한 명령은 작업 트리거를 사용하여 예약된 새 작업을 만듭니다.

예제 7: 예약된 작업에 작업 트리거 추가

PS C:\> Add-JobTrigger -Name SynchronizeApps -Trigger (New-JobTrigger -Daily -At 3:10AM)

이 예제에서는 기존 예약된 작업에 작업 트리거를 추가하는 방법을 보여줍니다. 예약된 모든 작업에 여러 작업 트리거를 추가할 수 있습니다.

이 명령은 Add-JobTrigger cmdlet을 사용하여 SynchronizeApps 예약된 작업에 작업 트리거를 추가합니다. 트리거 매개 변수의 값은 매일 오전 3시 10분에 작업을 실행하는 New-JobTrigger 명령입니다.

명령이 완료되면 SynchronizeApps는 작업 트리거에 지정된 시간에 실행되는 예약된 작업입니다.

예제 8: 반복 작업 트리거 만들기

PS C:\> New-JobTrigger -Once -At "09/12/2013 1:00:00" -RepetitionInterval (New-TimeSpan -Hours 1) -RepetitionDuration (New-Timespan -Hours 48)

이 명령은 2013년 9월 12일 오전 1:00부터 48시간 동안 60분마다 작업을 실행하는 작업 트리거를 만듭니다.

예제 9: 반복 작업 트리거 중지

PS C:\> Get-JobTrigger -Name SecurityCheck | Set-JobTrigger -RepetitionInterval 0:00 -RepetitionDuration 0:00

이 명령은 작업 트리거가 만료될 때까지 60분마다 실행되도록 트리거되는 SecurityCheck 작업을 강제로 중지합니다.

작업이 반복되지 않도록 이 명령은 Get-JobTrigger 사용하여 SecurityCheck 작업의 작업 트리거와 Set-JobTrigger cmdlet을 가져와 작업 트리거의 반복 간격 및 반복 기간을 0으로 변경합니다.

예제 10: 시간당 작업 트리거 만들기

PS C:\> New-JobTrigger -Once -At "9/21/2012 0am" -RepetitionInterval (New-TimeSpan -Hour 12) -RepetitionDuration ([TimeSpan]::MaxValue)

다음 명령은 무기한 동안 12시간마다 한 번씩 예약된 작업을 실행하는 작업 트리거를 만듭니다. 일정은 내일(2012년 9월 21일) 자정(오전 0:00)에 시작됩니다.

매개 변수

-At

지정된 날짜 및 시간에 작업을 시작합니다. Get-Date cmdlet이 반환하는 것과 같은 DateTime 개체 또는 날짜 및 시간으로 변환할 수 있는 문자열(예: "2012년 4월 19일 15:00", "12/31" 또는 "오전 3시")을 입력합니다. 연도와 같은 날짜 요소를 지정하지 않으면 트리거의 날짜에 현재 날짜의 해당 요소가 있습니다.

Once 매개 변수를 사용하는 경우 At 매개 변수의 값을 이후 날짜 및 시간으로 설정합니다. DateTime 개체의 기본 날짜는 현재 날짜이므로 명시적 날짜가 없는 현재 시간 이전 시간을 지정하면 작업 트리거가 과거 시간 동안 만들어집니다.

DateTime 개체 및 DateTime 개체로 변환되는 문자열은 제어판의 지역 및 언어에서 로컬 컴퓨터에 대해 선택한 날짜 및 시간 형식과 호환되도록 자동으로 조정됩니다.

형식:DateTime
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-AtLogOn

지정된 사용자가 컴퓨터에 로그온하면 예약된 작업을 시작합니다. 사용자를 지정하려면 User 매개 변수를 사용합니다.

형식:SwitchParameter
Position:0
Default value:False
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-AtStartup

Windows가 시작될 때 예약된 작업을 시작합니다.

형식:SwitchParameter
Position:0
Default value:False
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Daily

되풀이되는 일별 작업 일정을 지정합니다. Daily 매개 변수 집합의 다른 매개 변수를 사용하여 일정 세부 정보를 지정합니다.

형식:SwitchParameter
Position:0
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-DaysInterval

일별 일정에 따라 발생 사이의 일 수를 지정합니다. 예를 들어 값 3은 1일, 4일, 7일 등에 예약된 작업을 시작합니다. 기본값은 1입니다.

형식:Int32
Position:Named
Default value:1
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-DaysOfWeek

매주 예약된 작업이 실행되는 요일을 지정합니다. 일 이름(예: "Monday" 또는 정수 0-6)을 입력합니다. 여기서 0은 일요일을 나타냅니다. 이 매개 변수는 Weekly 매개 변수 집합에 필요합니다.

일 이름은 작업 트리거에서 정수 값으로 변환됩니다. 명령에서 일 이름을 따옴표로 묶으면 각 일 이름을 "Monday", "tuesday"와 같은 별도의 따옴표로 묶습니다. 여러 일 이름을 작은따옴표 쌍으로 묶으면 해당 정수 값의 합계가 계산됩니다. 예를 들어 "Monday, Tuesday"(1, 2)의 값은 "Wednesday"(3)입니다.

형식:DayOfWeek[]
허용되는 값:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Once

되풀이되지 않는(한 번) 또는 사용자 지정 반복 일정을 지정합니다. 반복 일정을 만들려면 RepetitionDurationRepetitionInterval 매개 변수와 함께 Once 매개 변수를 사용합니다.

형식:SwitchParameter
Position:0
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-RandomDelay

예약된 시작 시간에 시작되는 임의 지연을 사용하도록 설정하고 최대 지연 값을 설정합니다. 지연의 길이는 각 시작에 대해 의사 임의로 설정되며 지연 시간부터 이 매개 변수 값으로 지정된 시간까지 다양합니다. 기본값인 0(00:00:00)은 임의 지연을 사용하지 않도록 설정합니다.

New-TimeSpan cmdlet에서 반환된 것과 같은 시간 간격 개체를 입력하거나 <시간>값인<분>:<초> 형식을 입력합니다. 이 형식은 자동으로 TimeSpan 개체로 변환됩니다.

형식:TimeSpan
Position:Named
Default value:00:00:00
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-RepeatIndefinitely

Windows PowerShell 4.0부터 사용할 수 있는 이 매개 변수는 예약된 작업을 무기한으로 반복 실행하기 위해 RepetitionDuration 매개 변수에 TimeSpan.MaxValue 값을 지정할 필요가 없습니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-RepetitionDuration

지정된 시간이 만료될 때까지 작업을 반복합니다. 반복 빈도는 RepetitionInterval 매개 변수의 값에 따라 결정됩니다. 예를 들어 RepetitionInterval 값이 5분이고 RepetitionDuration 값이 2시간인 경우 작업은 2시간 동안 5분마다 트리거됩니다.

New-TimeSpan cmdlet이 반환하는 시간 범위 개체 또는 "1:05:30"과 같이 시간 범위 개체로 변환할 수 있는 문자열을 입력합니다.

작업을 무기한 실행하려면 RepeatIndefinitely 매개 변수를 대신 추가합니다.

작업 트리거 반복 기간이 만료되기 전에 작업을 중지하려면 Set-JobTrigger cmdlet을 사용하여 RepetitionDuration 값을 0으로 설정합니다.

이 매개 변수는 Once, AtRepetitionInterval 매개 변수가 명령에 사용되는 경우에만 유효합니다.

형식:TimeSpan
Position:Named
Default value:0
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-RepetitionInterval

지정된 시간 간격으로 작업을 반복합니다. 예를 들어 이 매개 변수의 값이 2시간이면 작업이 2시간마다 트리거됩니다. 기본값인 0은 작업을 반복하지 않습니다.

New-TimeSpan cmdlet이 반환하는 시간 범위 개체 또는 "1:05:30"과 같이 시간 범위 개체로 변환할 수 있는 문자열을 입력합니다.

이 매개 변수는 Once, AtRepetitionDuration 매개 변수가 명령에 사용되는 경우에만 유효합니다.

형식:TimeSpan
Position:Named
Default value:0
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-User

예약된 작업의 시작 트리거하는 사용자를 지정합니다. <UserName> 또는 <Domain\Username> 형식으로 사용자의 이름을 입력하거나 모든 사용자를 나타내는 별표(*)를 입력합니다. 기본값은 모든 사용자입니다.

형식:String
Position:Named
Default value:All users
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Weekly

되풀이 주간 작업 일정을 지정합니다. Weekly 매개 변수 집합의 다른 매개 변수를 사용하여 일정 세부 정보를 지정합니다.

형식:SwitchParameter
Position:0
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-WeeksInterval

주별 작업 일정에서 발생 사이의 주 수를 지정합니다. 예를 들어 값이 3이면 1주, 4주, 7주 등에 예약된 작업이 시작됩니다. 기본값은 1입니다.

형식:Int32
Position:Named
Default value:1
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

None

이 cmdlet에 입력을 파이프할 수 없습니다.

출력

ScheduledJobTrigger

참고

  • 작업 트리거는 디스크에 저장되지 않습니다. 그러나 예약된 작업은 디스크에 저장되며 Get-JobTrigger 사용하여 예약된 작업의 작업 트리거를 가져올 수 있습니다.

  • New-JobTrigger 과거 날짜에 대한 일회성 트리거와 같이 예약된 작업을 실행하지 않는 작업 트리거를 만드는 것을 방지하지는 않습니다.

  • Register-ScheduledJob cmdlet은 New-JobTrigger 반환된 개체 또는 Get-JobTrigger cmdlet 또는 트리거 값이 있는 해시 테이블과 같은 ScheduledJobTrigger 개체를 허용합니다.

    해시 테이블을 제출하려면 다음 키를 사용합니다.

    @{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am"(또는 유효한 시간 문자열) DaysOfWeek="Monday", "Wednesday"(또는 일 이름의 조합) Interval=2(또는 유효한 빈도 간격) RandomDelay="30minutes"(또는 유효한 시간 범위 문자열) User="Domain1\User01(또는 유효한 사용자, AtLogon 빈도 값에만 사용) }