Set-JobTrigger
Zmienia wyzwalacz zadania zaplanowanego.
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. Umożliwia zmianę 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 zadania. Następnie należy przekazać wyzwalacz do Set-JobTrigger
wyzwalacza lub zapisać go w zmiennej i użyć parametru Set-JobTrigger
InputObject polecenia cmdlet, aby zidentyfikować wyzwalacz.
Użyj pozostałych parametrów, 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 wyzwalacza oryginalnego zadania są zachowywane.
Set-JobTrigger
jest jedną z kolekcji poleceń cmdlet planowania zadań w module PSScheduledJob, który znajduje się w programie Windows PowerShell.
Aby uzyskać więcej informacji na temat zaplanowanych zadań, zobacz temat Informacje 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 programie 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 , aby uzyskać wyzwalacz zadania zaplanowanego DeployPackage
zadania. Dane wyjściowe pokazują, że wyzwalacz uruchamia zadanie o północy w środy i soboty.
Drugie polecenie używa Get-JobTrigger
polecenia cmdlet , aby uzyskać wyzwalacz zadania zaplanowanego DeployPackage
zadania. 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 , aby zwrócić wyzwalacz 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, który uruchamia 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 , aby uzyskać wyzwalacz zadania zaplanowanego Inventory
zadania. Dane wyjściowe pokazują, że zadanie ma dwa wyzwalacze codziennego wyzwalacza 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, które zmienia go na cotygodniowy wyzwalacz zadania uruchamiany co cztery tygodnie w poniedziałek o północy. Polecenie używa parametru PassThru , aby zwrócić wyzwalacz 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 do Set-JobTrigger
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ł powtórzeń wyzwalacza jednokrotnego 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-JobTrigger
TriggerId polecenia cmdlet, aby zidentyfikować wyzwalacz 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, pokazują, że wyzwalacz Raz zadanie ma identyfikator 3
.
Drugie polecenie używa parametru Get-JobTrigger
TriggerID polecenia cmdlet, aby pobrać wyzwalacz Raz zaplanowanego SecurityCheck
zadania. Polecenie potokuje wyzwalacz do Format-List
polecenia cmdlet, które wyświetla wszystkie właściwości wyzwalacza Zadanie jednokrotne . Dane wyjściowe pokazują, że wyzwalacz uruchamia zadanie co godzinę (PowtarzanieInterval wynosi 1 godzinę) dla jednego dnia (PowtórzenieDuration to 1 dzień).
Trzecie polecenie zmienia interwał powtórzeń 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 wynosi 1 godzinę, 30 minut) przez jeden dzień (powtarzanie jest 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 PM
lub 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 używania parametru Raz 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.
Typ: | DateTime |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-AtLogOn
Uruchamia zaplanowane zadanie, gdy określeni użytkownicy logują się na komputerze. Aby określić użytkownika, użyj parametru Użytkownik .
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-AtStartup
Uruchamia zaplanowane zadanie po uruchomieniu systemu Windows.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Daily
Określa cykliczny harmonogram codziennych zadań. Użyj innych parametrów w ustawieniu parametru Daily , aby określić szczegóły harmonogramu.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-DaysInterval
Określa liczbę dni między wystąpieniami zgodnie z harmonogramem dziennym. Na przykład wartość uruchamia 3
zaplanowane zadanie w dniach 1
, 4
7
itd. Domyślna wartość to 1
.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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łowie w poleceniu należy umieścić nazwę każdego dnia w oddzielnych cudzysłowach, takich jak "Monday", "Tuesday"
. Jeśli ujęta jest wiele nazw dni w jednej parze cudzysłowów, zostaną zsumowane odpowiadające im wartości całkowite. Na przykład "Monday, Tuesday"
(1 + 2
) powoduje zwrócenie wartości Wednesday
(3
).
Typ: | DayOfWeek[] |
Dopuszczalne wartości: | Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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-JobTrigger
obiektu .
Jeśli określisz wiele wyzwalaczy zadań, Set-JobTrigger
wprowadza te same zmiany we wszystkich wyzwalaczach zadań.
Typ: | ScheduledJobTrigger[] |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Once
Określa harmonogram niecykliczny (jednorazowy).
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-PassThru
Zwraca wyzwalacze zadania, które uległy zmianie. Domyślnie to polecenie cmdlet nie generuje żadnych danych wyjściowych.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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 pseudolosowo dla każdego początku i różni się od braku 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 czasu, taki jak jeden zwrócony przez New-TimeSpan
polecenie cmdlet, lub wprowadź wartość w <hours>:<minutes>:<seconds>
formacie, który jest automatycznie konwertowany na obiekt przedziału czasu.
Typ: | TimeSpan |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-RepeatIndefinitely
Ten parametr, dostępny począwszy od programu Windows PowerShell 4.0, eliminuje konieczność określenia wartości TimeSpan.MaxValue parametru RepetitionDuration do wielokrotnego uruchamiania zaplanowanego zadania przez nieokreślony okres.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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ść PowtórzenieDuration 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, taki jak 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 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 PowtórzeniaInterval i PowtórzeniaDuration . Aby zmienić czas trwania powtórzeń lub interwały powtórzeń innych typów wyzwalaczy zadania, polecenie musi zawierać parametry Raz, At, PowtarzanieInterval i PowtórzenieDuration .
Typ: | TimeSpan |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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 , 0
nie 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, taki jak 1:05:30
.
Aby zmienić czas trwania powtórzenia lub interwał powtórzeń wyzwalacza zadania raz , polecenie musi zawierać parametry PowtórzeniaInterval i PowtórzeniaDuration . Aby zmienić czas trwania powtórzeń lub interwały powtórzeń innych typów wyzwalaczy zadania, polecenie musi zawierać parametry Raz, At, PowtarzanieInterval i PowtórzenieDuration .
Typ: | TimeSpan |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-User
Określa użytkowników, którzy wyzwalają początek 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.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Weekly
Określa cykliczny cotygodniowy harmonogram zadań. Użyj innych parametrów w zestawie parametrów Weekly , aby określić szczegóły harmonogramu.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-WeeksInterval
Określa liczbę tygodni między wystąpieniami w cotygodniowym harmonogramie zadań. Na przykład wartość uruchamia 3
zaplanowane zadanie w tygodniach 1
, 4
7
itd. Domyślna wartość to 1
.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
Możesz przekazać wyzwalacz zadania do tego polecenia cmdlet.
Dane wyjściowe
None
Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Gdy używasz parametru PassThru , to polecenie cmdlet zwraca wyzwalacze zadania, które uległy zmianie.
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.
Linki powiązane
- Add-JobTrigger
- Disable-JobTrigger
- Disable-ScheduledJob
- Enable-JobTrigger
- Enable-ScheduledJob
- Get-JobTrigger
- Get-ScheduledJob
- Get-ScheduledJobOption
- New-JobTrigger
- New-ScheduledJobOption
- Register-ScheduledJob
- Remove-JobTrigger
- Set-JobTrigger
- Set-ScheduledJob
- Set-ScheduledJobOption
- Unregister-ScheduledJob