다음을 통해 공유


Set-JobTrigger

예약된 작업의 작업 트리거를 변경합니다.

구문

Default (기본값)

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

Description

Set-JobTrigger cmdlet은 예약된 작업의 작업 트리거 속성을 변경합니다. 이를 사용하여 작업이 시작되는 시간 또는 빈도를 변경하거나 시간 기반 일정에서 로그온 또는 시작에 의해 트리거되는 일정으로 변경할 수 있습니다.

작업 트리거는 예약된 작업을 시작하기 위한 되풀이 일정 또는 조건을 정의합니다. 작업 트리거는 디스크에 저장되지 않지만 디스크에 저장된 예약된 작업의 작업 트리거를 변경할 수 있습니다.

예약된 작업의 작업 트리거를 변경하려면 먼저 Get-JobTrigger cmdlet을 사용하여 예약된 작업의 작업 트리거를 가져옵니다. 그런 다음, 트리거를 Set-JobTrigger 파이프하거나 변수에 트리거를 저장하고 Set-JobTrigger cmdlet의 InputObject 매개 변수를 사용하여 트리거를 식별합니다. set-JobTrigger 나머지 매개 변수를 사용하여 작업 트리거를 변경합니다.

매일 또는 매주 트리거에서 AtLogon 트리거로 작업 트리거를 변경하는 등 작업 트리거의 유형을 변경하면 원래 트리거 속성이 삭제됩니다. 그러나 트리거의 값을 변경하지만 해당 형식은 변경하지 않는 경우(예: 주간 트리거의 일 변경) 지정한 속성만 변경됩니다. 원래 작업 트리거의 다른 모든 속성은 유지됩니다.

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

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

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

예제

예제 1: 작업 트리거의 일 변경

PS C:\> Get-JobTrigger -Name "DeployPackage"
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Saturday}   True

The second command uses the Get-JobTrigger cmdlet to get the job trigger of the DeployPackage scheduled job. A pipeline operator (|) sends the trigger to the **Set-JobTrigger** cmdlet, which changes the job trigger so that it starts the DeployPackage job on Wednesdays and Sundays. The command uses the *Passthru* parameter to return the trigger after the change.
PS C:\> Get-JobTrigger -Name "DeployPackage" | Set-JobTrigger -DaysOfWeek "Wednesday", "Sunday" -Passthru
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Sunday}     True

이 예제에서는 주간 작업 트리거의 일을 변경하는 방법을 보여줍니다.

첫 번째 명령은 Get-JobTrigger cmdlet을 사용하여 DeployPackage 예약 작업의 작업 트리거를 가져옵니다. 출력은 트리거가 수요일과 토요일 자정에 작업을 시작한다는 것을 보여줍니다.

이 명령은 필수가 아닙니다. 단지 트리거 변경의 결과를 보여 주기 위해 포함되었습니다.

예제 2: 작업 트리거 유형 변경

PS C:\> Get-JobTrigger -Name "Inventory"
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          AtStartup                                                      True

The second command uses the **Get-JobTrigger** cmdlet to get the *AtStartup* job trigger of the Inventory job. The command uses the *TriggerID* parameter to identify the job trigger. A pipeline operator (|) sends the job trigger to the **Set-JobTrigger** cmdlet, which changes it to a weekly job trigger that runs every four weeks on Monday at midnight. The command uses the *Passthru* parameter to return the trigger after the change.
PS C:\> Get-JobTrigger -Name "Inventory" -TriggerID 2 | Set-JobTrigger -Weekly -WeeksInterval 4 -DaysOfWeek Monday -At "12:00 AM"
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          Weekly          10/31/2011 12:00:00 AM {Monday}                True

이 예제에서는 작업을 시작하는 작업 트리거의 유형을 변경하는 방법을 보여 줍니다. 이 예제의 명령은 AtStartup 작업 트리거를 주간 트리거로 바꿉니다.

첫 번째 명령은 Get-JobTrigger cmdlet을 사용하여 인벤토리 예약 작업의 작업 트리거를 가져옵니다. 출력은 작업에 매일 트리거와 AtStartup 트리거가 있는 두 개의 트리거가 있음을 보여 줍니다.

이 명령은 필수가 아닙니다. 단지 트리거 변경의 결과를 보여 주기 위해 포함되었습니다.

예제 3: 원격 작업 트리거에서 사용자 변경

PS C:\> Invoke-Command -ComputerName "Server01" -ScriptBlock {Get-ScheduledJob | Get-JobTrigger | Where-Object {$_.User} | Set-JobTrigger -User "Domain01/Admin02"}

이 명령은 Server01 컴퓨터에서 예약된 작업의 모든 AtLogon 작업 트리거에서 사용자를 변경합니다.

이 명령은 Invoke-Command cmdlet을 사용하여 Server01 컴퓨터에서 명령을 실행합니다.

원격 명령은 컴퓨터에서 예약된 모든 작업을 가져오는 Get-ScheduledJob 명령으로 시작합니다. 예약된 작업은 예약된 작업의 작업 트리거를 가져오는 Get-JobTrigger cmdlet으로 파이프됩니다. 각 작업 트리거에는 예약된 작업이 포함된 JobDefinition 속성이 포함되어 있으므로 트리거는 변경되더라도 예약된 작업과 연결된 상태로 유지됩니다.

작업 트리거는 Where-Object cmdlet으로 파이프되며, 이 cmdlet은 User 속성이 있는 작업 트리거를 가져옵니다. 선택한 작업 트리거는 Set-JobTrigger cmdlet으로 파이프되어 사용자를 Domain01\Admin02로 변경합니다.

예제 4: 여러 작업 트리거 중 하나 변경

PS C:\> Get-JobTrigger -Name "SecurityCheck"
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           4/24/2013 3:00:00 AM                           True
2          Weekly          4/24/2013 4:00:00 PM   {Sunday}                True
3          Once            4/24/2013 4:00:00 PM                           True

The second command uses the **TriggerID** parameter of the **Get-JobTrigger** cmdlet to get the *Once* trigger of the SecurityCheck scheduled job. The command pipes the trigger to the Format-List cmdlet, which displays all of the properties of the *Once* job trigger.The output shows that the trigger starts the job once every hour (RepetitionInterval = 1 hour) for one day (RepetitionDuration = 1 day).
PS C:\> Get-JobTrigger -Name "SecurityCheck" -TriggerID 3 | Format-List -Property *
At                 : 4/24/2012 4:00:00 PM
DaysOfWeek         :
Interval           : 1
Frequency          : Once
RandomDelay        : 00:00:00
RepetitionInterval : 01:00:00
RepetitionDuration : 1.00:00:00
User               :
Id                 : 3
Enabled            : True
JobDefinition      : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

The third command changes the repetition interval of the job trigger from one hour to 90 minutes. The command does not return any output.
PS C:\> Get-JobTrigger -Name "SecurityCheck" -TriggerId 3 | Set-JobTrigger -RepetitionInterval (New-TimeSpan -Minutes 90)

The fourth command displays the effect of the change.The output shows that the trigger starts the job once every 90 minutes (RepetitionInterval = 1 hour, 30 minutes) for one day (RepetitionDuration = 1 day).
PS C:\> Get-JobTrigger -Name "SecurityCheck" -TriggerID 3 | Format-List -Property *
At                 : 4/24/2012 4:00:00 PM
DaysOfWeek         :
Interval           : 1
Frequency          : Once
RandomDelay        : 00:00:00
RepetitionInterval : 01:30:00
RepetitionDuration : 1.00:00:00
User               :
Id                 : 3
Enabled            : True
JobDefinition      : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

이 예제의 명령은 SecurityCheck 예약 작업의 한 번 작업 트리거의 반복 간격을 60분마다 90분마다 변경합니다. SecurityCheck 예약된 작업에는 세 개의 작업 트리거가 있으므로 명령은 Get-JobTrigger cmdlet의 TriggerId 매개 변수를 사용하여 변경되는 작업 트리거를 식별합니다.

첫 번째 명령은 Get-JobTrigger cmdlet을 사용하여 SecurityCheck 예약 작업의 모든 작업 트리거를 가져옵니다. 작업 트리거의 ID를 표시하는 출력은 Once 작업 트리거의 ID가 3임을 나타냅니다.

매개 변수

-At

지정된 날짜 및 시간에 작업을 시작합니다. Get-Date cmdlet이 반환하는 것과 같은 DateTime 개체 또는 "2012년 4월 19일 15:00", "2013년 12월 31일 오후 9:00" 또는 "오전 3시"와 같이 시간으로 변환할 수 있는 문자열을 입력합니다.

초와 같이 DateTime 개체의 요소를 지정하지 않으면 작업 트리거의 해당 요소는 변경되지 않습니다. 원래 작업 트리거에 DateTime 개체가 포함되지 않았고 요소를 생략하면 현재 날짜 및 시간의 해당 요소를 사용하여 작업 트리거가 만들어집니다.

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

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

매개 변수 속성

형식:DateTime
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-AtLogOn

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

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-AtStartup

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

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Daily

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

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-DaysInterval

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

매개 변수 속성

형식:Int32
Default value:1
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-DaysOfWeek

매주 예약된 작업이 실행되는 요일을 지정합니다. 요일 이름(예: 월요일, 목요일), 정수 0-6(0은 일요일을 나타냄) 또는 별표(*)를 입력하여 매일을 나타냅니다. 이 매개 변수는 Weekly 매개 변수 집합에 필요합니다.

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

매개 변수 속성

형식:

DayOfWeek[]

Default value:None
허용되는 값:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-InputObject

작업 트리거를 지정합니다. ScheduledJobTrigger 개체를 포함하는 변수를 입력하거나 Get-JobTrigger 명령과 같이 ScheduledJobTrigger 개체를 가져오는 명령이나 식을 입력합니다. ScheduledJobTrigger 개체를 Set-JobTrigger파이프할 수도 있습니다.

여러 작업 트리거를 지정하는 경우 set-JobTrigger 모든 작업 트리거를 동일하게 변경합니다.

매개 변수 속성

형식:

ScheduledJobTrigger[]

Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:0
필수:True
파이프라인의 값:True
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Once

되풀이되지 않는(한 번) 일정을 지정합니다.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-PassThru

변경된 작업 트리거를 반환합니다. 기본적으로 이 cmdlet은 출력을 생성하지 않습니다.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-RandomDelay

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

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

매개 변수 속성

형식:TimeSpan
Default value:00:00:00
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-RepeatIndefinitely

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

매개 변수 속성

형식:SwitchParameter
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-RepetitionDuration

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

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

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

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

Once 작업 트리거의 반복 기간 또는 반복 간격을 변경하려면 명령에 RepetitionIntervalRepetitionDuration 매개 변수가 모두 포함되어야 합니다. 다른 유형의 작업 트리거의 반복 기간 또는 반복 간격을 변경하려면 명령에 Once, At, RepetitionIntervalRepetitionDuration 매개 변수가 포함되어야 합니다.

매개 변수 속성

형식:TimeSpan
Default value:0
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-RepetitionInterval

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

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

Once 작업 트리거의 반복 기간 또는 반복 간격을 변경하려면 명령에 RepetitionIntervalRepetitionDuration 매개 변수가 모두 포함되어야 합니다. 다른 유형의 작업 트리거의 반복 기간 또는 반복 간격을 변경하려면 명령에 Once, At, RepetitionIntervalRepetitionDuration 매개 변수가 포함되어야 합니다.

매개 변수 속성

형식:TimeSpan
Default value:0
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-User

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

매개 변수 속성

형식:String
Default value:All users
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Weekly

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

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-WeeksInterval

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

매개 변수 속성

형식:Int32
Default value:1
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

CommonParameters

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.

입력

ScheduledJobTrigger

여러 작업 트리거를 Set-JobTrigger로 파이프할 수 있습니다.

출력

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

Passthru 매개 변수를 사용하는 경우 Set-JobTrigger 변경된 작업 트리거를 반환합니다. 그렇지 않으면 이 cmdlet은 출력을 생성하지 않습니다.

참고

  • 작업 트리거에는 예약된 작업과 연결하는 JobDefintion 속성이 있습니다. 예약된 작업의 작업 트리거를 변경하면 작업이 변경됩니다. Set-ScheduledJob 명령을 사용하여 변경된 트리거를 예약된 작업에 적용할 필요가 없습니다.