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 cmdlet Set-JobTrigger 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 polecenia cmdlet Get-JobTrigger w celu pobrania wyzwalacza zadania zaplanowanego zadania. Następnie należy przekazać wyzwalacz do set-JobTrigger lub zapisać wyzwalacz w zmiennej i użyć parametru InputObject polecenia cmdlet Set-JobTrigger, 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 wyzwalacza, 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 jest zawarty 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
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
W tym przykładzie pokazano, jak zmienić dni w wyzwalaczu zadania tygodniowego.
Pierwsze polecenie używa polecenia cmdlet Get-JobTrigger w celu pobrania wyzwalacza zadania zaplanowanego zadania DeployPackage. Dane wyjściowe pokazują, że wyzwalacz uruchamia zadanie o północy w środy i soboty.
To polecenie nie jest wymagane; jest uwzględniana tylko w celu pokazania efektu zmiany wyzwalacza.
Przykład 2. Zmiana typu wyzwalacza zadania
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
W tym przykładzie pokazano, jak zmienić typ wyzwalacza zadania, który uruchamia zadanie. Polecenia w tym przykładzie zastępują wyzwalacz zadania AtStartup wyzwalaczem tygodniowym.
Pierwsze polecenie używa polecenia cmdlet Get-JobTrigger w celu pobrania wyzwalacza zadania zaplanowanego spisu. Dane wyjściowe pokazują, że zadanie ma dwa wyzwalacze dzienne i wyzwalacz AtStartup.
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
PS C:\> Invoke-Command -ComputerName "Server01" -ScriptBlock {Get-ScheduledJob | Get-JobTrigger | Where-Object {$_.User} | Set-JobTrigger -User "Domain01/Admin02"}
To polecenie zmienia użytkownika we wszystkich AtLogon wyzwalaczy zaplanowanych zadań na komputerze Server01.
Polecenie używa polecenia cmdlet Invoke-Command do uruchomienia polecenia na komputerze Server01.
Zdalne polecenie rozpoczyna się od polecenia Get-ScheduledJob, które pobiera wszystkie zaplanowane zadania na komputerze. Zaplanowane zadania są przesyłane potokami do polecenia cmdlet Get-JobTrigger, 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 polecenia cmdlet Where-Object, które pobiera wyzwalacze zadania, które mają właściwość User. Wybrane wyzwalacze zadania są przesyłane potokowo do polecenia cmdlet Set-JobTrigger, które zmienia użytkownika na Domain01\Admin02.
Przykład 4. Zmiana jednego z wielu wyzwalaczy zadań
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
Polecenia w tym przykładzie zmieniają interwał powtórzeń Po wyzwalacza zadania securityCheck zaplanowanego zadania z co 60 minut do co 90 minut. Zaplanowane zadanie SecurityCheck ma trzy wyzwalacze zadań, więc polecenia używają parametru TriggerId polecenia cmdlet Get-JobTrigger w celu zidentyfikowania wyzwalacza zadania, który jest zmieniany.
Pierwsze polecenie używa polecenia cmdlet Get-JobTrigger, aby pobrać wszystkie wyzwalacze zadania zaplanowanego zadania SecurityCheck. Dane wyjściowe, które wyświetla identyfikatory wyzwalaczy zadania, pokazują, że wyzwalacz Raz zadanie ma identyfikator 3.
Parametry
-At
Uruchamia zadanie o określonej dacie i godzinie. Wprowadź obiekt DateTime, taki jak obiekt, który zwraca polecenie cmdlet Get-Date, lub ciąg, który można przekonwertować na czas, taki jak "19 kwietnia 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 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 przez godzinę w przeszłości.
obiektów DateTime i ciągów, które są 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 Panelu 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 User.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
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ść: | False |
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 parametrze Daily ustawionym, aby określić szczegóły harmonogramu.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
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ść 3 uruchamia zaplanowane zadanie w dniach 1, 4, 7 itd. Wartość domyślna to 1.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | 1 |
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 poniedziałek, czwartek, 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 ująć nazwę każdego dnia w oddzielnych cudzysłowach, takich jak "poniedziałek", "wtorek". 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 "poniedziałek, wtorek" (1, 2) powoduje wyświetlenie wartości "Środa" (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 scheduledJobTrigger obiektów, takich jak Get-JobTrigger polecenia. Możesz również przekazać obiekt ScheduledJobTrigger do Set-JobTrigger.
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ść: | False |
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ść: | False |
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 polecenie cmdlet New-TimeSpan, lub wprowadź wartość w <godzinach>:<minuty>:<sekund> format, który jest automatycznie konwertowany na obiekt przedziału czasu.
Typ: | TimeSpan |
Position: | Named |
Domyślna wartość: | 00:00:00 |
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
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ść RepetitionDuration wynosi 2 godziny, zadanie jest wyzwalane co pięć minut przez dwie godziny.
Wprowadź obiekt przedziału czasu, na przykład taki, który polecenie cmdlet New-TimeSpan 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, zamiast tego dodaj parametr RepeatIndefinitely.
Aby zatrzymać zadanie przed wygaśnięciem czasu trwania powtórzenia zadania, ustaw wartość RepetitionDuration na zero (0).
Aby zmienić czas trwania powtórzeń lub interwał powtórzeń wyzwalacza zadania Raz, polecenie musi zawierać parametry RepetitionInterval i PowtórzenieDuration. Aby zmienić czas trwania powtórzeń lub interwały powtórzeń innych typów wyzwalaczy zadania, polecenie musi zawierać parametry Once, At, RepetitionInterval i PowtórzenieDuration parametrów.
Typ: | TimeSpan |
Position: | Named |
Domyślna wartość: | 0 |
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, na przykład taki, który polecenie cmdlet New-TimeSpan zwraca lub ciąg, który można przekonwertować na obiekt przedziału czasu, taki jak "1:05:30".
Aby zmienić czas trwania powtórzeń lub interwał powtórzeń wyzwalacza zadania Raz, polecenie musi zawierać parametry RepetitionInterval i PowtórzenieDuration. Aby zmienić czas trwania powtórzeń lub interwały powtórzeń innych typów wyzwalaczy zadania, polecenie musi zawierać parametry Once, At, RepetitionInterval i PowtórzenieDuration parametrów.
Typ: | TimeSpan |
Position: | Named |
Domyślna wartość: | 0 |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-User
Określa użytkowników, którzy wyzwalają AtLogon rozpoczęcie zaplanowanego zadania. Wprowadź nazwę użytkownika w formacie <UserName> lub <Domain\Username> lub wprowadź gwiazdkę (*) reprezentującą wszystkich użytkowników. Wartość domyślna to wszyscy użytkownicy.
Typ: | String |
Position: | Named |
Domyślna wartość: | All users |
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 parametrze Weekly ustawionym, aby określić szczegóły harmonogramu.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
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ść 3 uruchamia zaplanowane zadanie w tygodniach 1, 4, 7 itd. Wartość domyślna to 1.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | 1 |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
Możesz przekazać potok wielu wyzwalaczy zadań do Set-JobTrigger.
Dane wyjściowe
None or Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger
Jeśli używasz parametru Passthru, set-JobTrigger zwraca zmienione wyzwalacze zadania. W przeciwnym razie to polecenie cmdlet nie generuje żadnych danych wyjściowych.
Uwagi
- Wyzwalacze zadań mają właściwość JobDefintion, która kojarzy je z zaplanowanym zadaniem. Po zmianie wyzwalacza zadania zaplanowanego zadanie zostanie zmienione. Nie trzeba używać polecenia Set-ScheduledJob, aby zastosować zmieniony wyzwalacz do zaplanowanego zadania.
Linki powiązane
- about_Scheduled_Jobs
- 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