Set-JobTrigger

Zmienia wyzwalacz zadania zaplanowanego zadania.

Składnia

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>]

Opis

Polecenie Set-JobTrigger cmdlet zmienia właściwości wyzwalaczy zadań zaplanowanych. Służy do zmieniania czasu lub częstotliwości uruchamiania zadań lub zmiany z harmonogramów opartych na czasie na harmonogramy wyzwalane przez logowanie lub uruchamianie.

Wyzwalacz zadania definiuje cykliczny harmonogram lub warunki uruchamiania zaplanowanego zadania. Mimo że wyzwalacze zadań nie są zapisywane na dysku, można zmienić wyzwalacze zadań zaplanowanych, które są zapisywane na dysku.

Aby zmienić wyzwalacz zadania zaplanowanego, rozpocznij od użycia Get-JobTrigger polecenia cmdlet w celu pobrania wyzwalacza zadania zaplanowanego. Następnie należy przekazać wyzwalacz do Set-JobTrigger wyzwalacza lub zapisać go w zmiennej i użyć parametru Set-JobTriggerInputObject polecenia cmdlet w celu zidentyfikowania wyzwalacza. Użyj pozostałych parametrów polecenia , Set-JobTrigger aby zmienić wyzwalacz zadania.

Po zmianie typu wyzwalacza zadania, takiego jak zmiana wyzwalacza zadania z wyzwalacza dziennego lub tygodniowego na wyzwalacz AtLogon , oryginalne właściwości wyzwalacza zostaną usunięte. Jeśli jednak zmienisz wartości wyzwalacza, ale nie jego typ, taki jak zmiana dni w wyzwalaczu tygodniowym, zostaną zmienione tylko określone właściwości. Wszystkie inne właściwości oryginalnego wyzwalacza zadania są zachowywane.

Set-JobTriggerjest jedną z kolekcji poleceń cmdlet planowania zadań w module PSScheduledJob, który znajduje się w Windows PowerShell.

Aby uzyskać więcej informacji na temat zaplanowanych zadań, zobacz Tematy o tematach w module PSScheduledJob. Zaimportuj moduł PSScheduledJob, a następnie wpisz: Get-Help about_Scheduled* lub zobacz about_Scheduled_Jobs.

To polecenie cmdlet zostało wprowadzone w Windows PowerShell 3.0.

Przykłady

Przykład 1. Zmiana dni w wyzwalaczu zadania

W tym przykładzie pokazano, jak zmienić dni w wyzwalaczu zadania tygodniowego.

Get-JobTrigger -Name "DeployPackage"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Saturday}   True

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

Pierwsze polecenie używa Get-JobTrigger polecenia cmdlet do pobrania wyzwalacza zadania zaplanowanego DeployPackage . Dane wyjściowe pokazują, że wyzwalacz uruchamia zadanie o północy w środy i soboty.

Drugie polecenie używa Get-JobTrigger polecenia cmdlet do pobrania wyzwalacza zadania zaplanowanego DeployPackage . Operator potoku (|) wysyła wyzwalacz do Set-JobTrigger polecenia cmdlet, które zmienia wyzwalacz zadania, tak aby uruchamiało DeployPackage zadanie w środy i niedziele. Polecenie używa parametru Passthru do zwrócenia wyzwalacza po zmianie.

To polecenie nie jest wymagane; jest uwzględniana tylko w celu pokazania efektu zmiany wyzwalacza.

Przykład 2. Zmiana typu wyzwalacza zadania

W tym przykładzie pokazano, jak zmienić typ wyzwalacza zadania uruchamiającego zadanie. Polecenia w tym przykładzie zastępują AtStartup wyzwalacz zadania wyzwalaczem tygodniowym.

Get-JobTrigger -Name "Inventory"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          AtStartup                                                      True

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

Pierwsze polecenie używa Get-JobTrigger polecenia cmdlet do pobrania wyzwalacza zadania zaplanowanego Inventory . Dane wyjściowe pokazują, że zadanie ma dwa wyzwalacze dzienne i wyzwalacz AtStartup .

Drugie polecenie używa Get-JobTrigger polecenia cmdlet do pobrania wyzwalacza Inventory zadania AtStartup zadania. Polecenie używa parametru TriggerID do identyfikowania wyzwalacza zadania. Operator potoku (|) wysyła wyzwalacz zadania do Set-JobTrigger polecenia cmdlet, co powoduje zmianę wyzwalacza zadania tygodniowego, który jest uruchamiany co cztery tygodnie w poniedziałek o północy. Polecenie używa parametru Passthru do zwrócenia wyzwalacza po zmianie.

To polecenie nie jest wymagane; jest uwzględniana tylko w celu pokazania efektu zmiany wyzwalacza.

Przykład 3. Zmiana użytkownika w wyzwalaczu zadania zdalnego

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

To polecenie zmienia użytkownika we wszystkich wyzwalaczach zadania AtLogon zaplanowanych zadań na komputerze Server01.

Polecenie używa Invoke-Command polecenia cmdlet do uruchomienia polecenia na komputerze Server01.

Zdalne polecenie rozpoczyna się od Get-ScheduledJob polecenia, które pobiera wszystkie zaplanowane zadania na komputerze. Zaplanowane zadania są przesyłane potokami do Get-JobTrigger polecenia cmdlet, które pobiera wyzwalacze zadań zaplanowanych. Każdy wyzwalacz zadania zawiera właściwość JobDefinition zawierającą zaplanowane zadanie, więc wyzwalacz pozostaje skojarzony z zaplanowanym zadaniem nawet wtedy, gdy zostanie zmieniony.

Wyzwalacze zadania są przesyłane potokiem do Where-Object polecenia cmdlet, które pobiera wyzwalacze zadania, które mają właściwość User . Wybrane wyzwalacze zadania są przesyłane potokiem Set-JobTrigger do polecenia cmdlet, które zmienia użytkownika na Domain01\Admin02.

Przykład 4. Zmiana jednego z wielu wyzwalaczy zadań

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

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

Get-JobTrigger -Name "SecurityCheck" -TriggerId 3 | Set-JobTrigger -RepetitionInterval (New-TimeSpan -Minutes 90)
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

Polecenia w tym przykładzie zmieniają interwał powtarzania wyzwalacza Raz zadanie zaplanowanego SecurityCheck zadania z co 60 minut do co 90 minut. Zaplanowane SecurityCheck zadanie ma trzy wyzwalacze zadania, więc polecenia używają parametru Get-JobTriggerTriggerId polecenia cmdlet do identyfikowania wyzwalacza zadania, który jest zmieniany.

Pierwsze polecenie używa Get-JobTrigger polecenia cmdlet , aby pobrać wszystkie wyzwalacze zadania zaplanowanego SecurityCheck . Dane wyjściowe, które wyświetlają identyfikatory wyzwalaczy zadania, ujawniają, że wyzwalacz Po zadaniu ma identyfikator3.

Drugie polecenie używa parametru Get-JobTriggerTriggerID polecenia cmdlet, aby uzyskać wyzwalacz Raz zaplanowanego SecurityCheck zadania. Polecenie potokuje wyzwalacz do Format-List polecenia cmdlet, które wyświetla wszystkie właściwości wyzwalacza Po zadaniu. Dane wyjściowe pokazują, że wyzwalacz uruchamia zadanie raz na godzinę (Wartość PowtórzenieInterval wynosi 1 godzinę) przez jeden dzień (PowtarzanieDuration to 1 dzień).

Trzecie polecenie zmienia interwał powtarzania wyzwalacza zadania z jednej godziny na 90 minut. Polecenie nie zwraca żadnych danych wyjściowych.

Czwarte polecenie wyświetla efekt zmiany. Dane wyjściowe pokazują, że wyzwalacz uruchamia zadanie raz na 90 minut (PowtarzanieInterval to 1 godzina, 30 minut) przez jeden dzień (PowtarzanieDuration to 1 dzień).

Parametry

-At

Uruchamia zadanie o określonej dacie i godzinie. Wprowadź obiekt DateTime , taki jak obiekt zwracany przez Get-Date polecenie cmdlet lub ciąg, który można przekonwertować na czas, taki jak April 19, 2012 15:00, 12/31/2013 9:00 PMlub 3am.

Jeśli nie określisz elementu obiektu DateTime , takiego jak sekundy, ten element wyzwalacza zadania nie zostanie zmieniony. Jeśli oryginalny wyzwalacz zadania nie zawiera obiektu DateTime i pominięto element, wyzwalacz zadania zostanie utworzony z odpowiednim elementem z bieżącej daty i godziny.

W przypadku korzystania z parametru Once ustaw wartość parametru At na określoną datę i godzinę. Ponieważ domyślna data w obiekcie DateTime jest bieżącą datą, ustawienie godziny przed bieżącą godziną bez jawnej daty powoduje wyzwolenie zadania dla godziny w przeszłości.

Obiekty DateTime i ciągi konwertowane na obiekty DateTime są automatycznie dostosowywane tak, aby były zgodne z formatami daty i godziny wybranymi dla komputera lokalnego w regionie i języku w Panel sterowania.

Type:DateTime
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-AtLogOn

Uruchamia zaplanowane zadanie, gdy określeni użytkownicy logują się na komputerze. Aby określić użytkownika, użyj parametru Użytkownik .

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-AtStartup

Uruchamia zaplanowane zadanie po uruchomieniu systemu Windows.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Daily

Określa cykliczny harmonogram codziennych zadań. Użyj innych parametrów w ustawieniu parametru Daily , aby określić szczegóły harmonogramu.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-DaysInterval

Określa liczbę dni między wystąpieniami zgodnie z harmonogramem dziennym. Na przykład wartość 3 uruchamia zaplanowane zadanie w dniach 1, 47 itd. Wartość domyślna to 1.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-DaysOfWeek

Określa dni tygodnia, w których jest uruchamiane cotygodniowe zaplanowane zadanie. Wprowadź nazwy dni, takie jak Monday, Thursday, liczba całkowita 0-6, gdzie 0 reprezentuje niedzielę lub gwiazdkę (*) do reprezentowania każdego dnia. Ten parametr jest wymagany w zestawie parametrów Weekly .

Nazwy dni są konwertowane na ich wartości całkowite w wyzwalaczu zadania. Po ujęciu nazw dni w cudzysłów w poleceniu należy ująć nazwę każdego dnia w osobne cudzysłowy, takie jak "Monday", "Tuesday". W przypadku ujęć wiele dni nazw w parze z pojedynczym znakiem cudzysłowu, odpowiednie wartości całkowite są sumowane. Na przykład "Monday, Tuesday" (1 + 2) powoduje wartość Wednesday (3).

Type:DayOfWeek[]
Accepted values:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Określa wyzwalacze zadania. Wprowadź zmienną zawierającą obiekty ScheduledJobTrigger lub wpisz polecenie lub wyrażenie, które pobiera obiekty ScheduledJobTrigger , takie jak Get-JobTrigger polecenie. Możesz również przekazać potok obiektu ScheduledJobTrigger do Set-JobTriggerobiektu .

Jeśli określisz wiele wyzwalaczy zadań, Set-JobTrigger wprowadza te same zmiany we wszystkich wyzwalaczach zadań.

Type:Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Once

Określa harmonogram niecykliczny (jednorazowy).

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Zwraca wyzwalacze zadania, które uległy zmianie. Domyślnie to polecenie cmdlet nie generuje żadnego wyniku.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-RandomDelay

Włącza losowe opóźnienie rozpoczynające się w zaplanowanym czasie rozpoczęcia i ustawia maksymalną wartość opóźnienia. Długość opóźnienia jest ustawiana pseudo-losowo dla każdego początku i różni się od opóźnienia do czasu określonego przez wartość tego parametru. Wartość domyślna, zero (00:00:00), wyłącza losowe opóźnienie.

Wprowadź obiekt przedziału New-TimeSpan czasu, taki jak jeden zwrócony przez polecenie cmdlet, lub wprowadź wartość w <hours>:<minutes>:<seconds> formacie, który jest automatycznie konwertowany na obiekt przedziału czasu.

Type:TimeSpan
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-RepeatIndefinitely

Ten parametr, dostępny od Windows PowerShell 4.0, eliminuje konieczność określenia wartości TimeSpan.MaxValue dla parametru RepetitionDuration do wielokrotnego uruchamiania zaplanowanego zadania przez nieokreślony okres.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-RepetitionDuration

Powtarza zadanie do momentu wygaśnięcia określonego czasu. Częstotliwość powtórzeń jest określana przez wartość parametru RepetitionInterval . Jeśli na przykład wartość RepetitionInterval wynosi 5 minut, a wartość PowtarzanieDuration wynosi 2 godziny, zadanie jest wyzwalane co pięć minut przez dwie godziny.

Wprowadź obiekt przedziału czasu, taki jak obiekt, który New-TimeSpan polecenie cmdlet zwraca lub ciąg, który można przekonwertować na obiekt przedziału czasu, na przykład 1:05:30.

Aby uruchomić zadanie na czas nieokreślony, dodaj zamiast tego parametr RepeatIndefinitely .

Aby zatrzymać zadanie przed wygaśnięciem czasu trwania powtórzenia wyzwalacza zadania, ustaw wartość PowtórzeniaDuration na zero (0).

Aby zmienić czas trwania powtórzenia lub interwał powtórzeń wyzwalacza zadania raz , polecenie musi zawierać parametry PowtarzanieInterval i PowtarzanieDuration . Aby zmienić czas trwania powtórzenia lub interwały powtórzeń innych typów wyzwalaczy zadania, polecenie musi zawierać parametry Raz, At, PowtarzanieInterwal i PowtórzenieDuration .

Type:TimeSpan
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-RepetitionInterval

Powtarza zadanie w określonym interwale czasu. Jeśli na przykład wartość tego parametru wynosi 2 godziny, zadanie jest wyzwalane co dwie godziny. Wartość domyślna , 0nie powtarza zadania.

Wprowadź obiekt przedziału czasu, taki jak obiekt, który New-TimeSpan polecenie cmdlet zwraca lub ciąg, który można przekonwertować na obiekt przedziału czasu, na przykład 1:05:30.

Aby zmienić czas trwania powtórzenia lub interwał powtórzeń wyzwalacza zadania raz , polecenie musi zawierać parametry PowtarzanieInterval i PowtarzanieDuration . Aby zmienić czas trwania powtórzenia lub interwały powtórzeń innych typów wyzwalaczy zadania, polecenie musi zawierać parametry Raz, At, PowtarzanieInterwal i PowtórzenieDuration .

Type:TimeSpan
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-User

Określa użytkowników, którzy wyzwalają rozpoczęcie zaplanowanego zadania AtLogon . Wprowadź nazwę użytkownika w <UserName> formacie lub <Domain>\<Username> wprowadź gwiazdkę (*), aby reprezentować wszystkich użytkowników. Wartość domyślna to wszyscy użytkownicy.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Weekly

Określa cykliczny tygodniowy harmonogram zadań. Użyj innych parametrów w zestawie parametrów Co tydzień , aby określić szczegóły harmonogramu.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-WeeksInterval

Określa liczbę tygodni między wystąpieniami w cotygodniowym harmonogramie zadań. Na przykład wartość 3 rozpoczyna zaplanowane zadanie w tygodniach 1, 4itd 7 . Wartość domyślna to 1.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

Możesz przekazać potok wielu wyzwalaczy zadań do elementu Set-JobTrigger.

Dane wyjściowe

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

Gdy używasz parametru Passthru , zwraca wyzwalacze zadania, Set-JobTrigger które zostały zmienione. W przeciwnym razie to polecenie cmdlet nie generuje żadnych danych wyjściowych.

Uwagi

  • Wyzwalacze zadań mają właściwość JobDefinition , która kojarzy je z zaplanowanym zadaniem. Po zmianie wyzwalacza zadania zaplanowanego zadanie zostanie zmienione. Nie trzeba używać Set-ScheduledJob polecenia , aby zastosować zmieniony wyzwalacz do zaplanowanego zadania.