Set-ScheduledJob
Zmiany zaplanowanych zadań.
Składnia
Set-ScheduledJob
[-Name <String>]
[-ScriptBlock <ScriptBlock>]
[-Trigger <ScheduledJobTrigger[]>]
[-InitializationScript <ScriptBlock>]
[-RunAs32]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-ScheduledJobOption <ScheduledJobOptions>]
[-InputObject] <ScheduledJobDefinition>
[-MaxResultCount <Int32>]
[-PassThru]
[-ArgumentList <Object[]>]
[-RunNow]
[-RunEvery <TimeSpan>]
[<CommonParameters>]
Set-ScheduledJob
[-Name <String>]
[-FilePath <String>]
[-Trigger <ScheduledJobTrigger[]>]
[-InitializationScript <ScriptBlock>]
[-RunAs32]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-ScheduledJobOption <ScheduledJobOptions>]
[-InputObject] <ScheduledJobDefinition>
[-MaxResultCount <Int32>]
[-PassThru]
[-ArgumentList <Object[]>]
[-RunNow]
[-RunEvery <TimeSpan>]
[<CommonParameters>]
Set-ScheduledJob
[-InputObject] <ScheduledJobDefinition>
[-ClearExecutionHistory]
[-PassThru]
[<CommonParameters>]
Opis
Polecenie Set-ScheduledJob
cmdlet zmienia właściwości zaplanowanych zadań, takich jak polecenia uruchamiane przez zadania lub poświadczenia wymagane do uruchomienia zadania. Można go również użyć do wyczyszczenia historii wykonywania zaplanowanego zadania.
Aby użyć tego polecenia cmdlet, rozpocznij od użycia Get-ScheduledJob
polecenia cmdlet w celu pobrania zaplanowanego zadania. Następnie należy przekazać potok zaplanowanego zadania do Set-ScheduledJob
zmiennej lub zapisać je w zmiennej i użyć parametru InputObject , aby zidentyfikować zadanie. Użyj pozostałych parametrów, Set-ScheduledJob
aby zmienić właściwości zadania lub wyczyścić historię wykonywania.
Chociaż można użyć Set-ScheduledJob
polecenia cmdlet do zmiany wyzwalaczy i opcji zaplanowanego zadania, Add-JobTrigger
Set-JobTrigger
polecenia cmdlet , i Set-ScheduledJobOption
zapewniają znacznie łatwiejsze sposoby wykonywania tych zadań. Aby utworzyć nowe zaplanowane zadanie, użyj Register-ScheduledJob
polecenia cmdlet .
Parametr Set-ScheduledJob
Trigger polecenia dodaje jeden lub więcej wyzwalaczy zadania, które uruchamiają zadanie.
Parametr Wyzwalacz jest opcjonalny, więc można dodawać wyzwalacze podczas tworzenia zaplanowanego zadania, dodawać wyzwalacze zadania później, dodawać parametr RunNow, aby natychmiast uruchomić zadanie, użyć Start-Job
polecenia cmdlet , aby natychmiast uruchomić zadanie w dowolnym momencie lub zapisać nierozpoznane zaplanowane zadanie jako szablon dla innych zadań.
Set-ScheduledJob
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 skryptu uruchamianego zadania
W tym przykładzie pokazano, jak zmienić skrypt uruchamiany w zaplanowanym zadaniu.
Get-ScheduledJob -Name "Inventory"
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
1 Inventory {1} C:\Scripts\Get-Inventory.ps1 True
Get-ScheduledJob -Name "Inventory" | Set-ScheduledJob -FilePath "C:\Scripts\Get-FullInventory.ps1" -PassThru
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
1 Inventory {1} C:\Scripts\Get-FullInventory.ps1 True
Pierwsze polecenie używa Get-ScheduledJob
polecenia cmdlet do pobrania zaplanowanego zadania spisu. Dane wyjściowe pokazują, że zadanie uruchamia skrypt Get-Inventory.ps1.
Drugie polecenie używa Get-ScheduledJob
polecenia cmdlet do pobrania zaplanowanego zadania spisu. Operator potoku (|
) wysyła zaplanowane zadanie do Set-ScheduledJob
polecenia cmdlet. Polecenie Set-ScheduledJob
cmdlet używa parametru Script , aby określić nowy skrypt Get-FullInventory.ps1
. Polecenie używa parametru PassThru , aby zwrócić zaplanowane zadanie po zmianie.
To polecenie nie jest wymagane; jest uwzględniana tylko w celu pokazania efektu zmiany skryptu.
Przykład 2. Usuwanie historii wykonywania zaplanowanego zadania
W tym przykładzie usunięto bieżącą historię wykonywania i zapisano wyniki zadania dla zaplanowanego zadania.
Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory
Polecenie używa Get-ScheduledJob
polecenia cmdlet do pobrania zaplanowanego zadania BackupArchive. Operator potoku (|
) wysyła zadanie do Set-ScheduledJob
polecenia cmdlet w celu jego zmiany. Polecenie Set-ScheduledJob
cmdlet używa parametru ClearExecutionHistory , aby usunąć historię wykonywania i zapisać wyniki.
Aby uzyskać więcej informacji na temat historii wykonywania i zapisanych wyników zaplanowanych zadań, zobacz about_Scheduled_Jobs.
Przykład 3. Zmiana zaplanowanych zadań na komputerze zdalnym
To polecenie zmienia skrypt inicjowania we wszystkich zaplanowanych zadaniach na komputerach zdalnych.
Invoke-Command -Computer "Server01, Server02" -ScriptBlock {Get-ScheduledJob |
Set-ScheduledJob -InitializationScript \\SrvA\Scripts\SetForRun.ps1}
Polecenie używa Invoke-Command
polecenia cmdlet do uruchomienia polecenia na komputerach Server01 i Server02.
Zdalne polecenie rozpoczyna się od Get-ScheduledJob
polecenia, które pobiera wszystkie zaplanowane zadania na komputerze. Zaplanowane zadania są przesyłane potokami do Set-ScheduledJob
polecenia cmdlet, które zmienia skrypt inicjowania na SetForRun.ps1
.
Parametry
-ArgumentList
Określa wartości parametrów skryptu określonego przez parametr FilePath lub dla polecenia określonego przez parametr ScriptBlock .
Typ: | Object[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Authentication
Określa mechanizm używany do uwierzytelniania poświadczeń użytkownika. Dopuszczalne wartości tego parametru to:
Default
Basic
Credssp
Digest
Kerberos
Negotiate
NegotiateWithImplicitCredential
Domyślna wartość to Default
. Aby uzyskać więcej informacji na temat wartości tego parametru, zobacz AuthenticationMechanism Enumeration in the PowerShell SDK (Wyliczenie AuthenticationMechanism w zestawie SDK programu PowerShell).
Uwaga
Uwierzytelnianie dostawcy obsługi zabezpieczeń poświadczeń (CredSSP), w którym poświadczenia użytkownika są przekazywane do komputera zdalnego do uwierzytelnienia, jest przeznaczone dla poleceń wymagających uwierzytelniania w więcej niż jednym zasobie, takich jak uzyskiwanie dostępu do zdalnego udziału sieciowego. Ten mechanizm zwiększa ryzyko bezpieczeństwa operacji zdalnej. W przypadku naruszenia zabezpieczeń komputera zdalnego poświadczenia przekazywane do niego mogą służyć do kontrolowania sesji sieciowej.
Typ: | AuthenticationMechanism |
Dopuszczalne wartości: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ClearExecutionHistory
Usuwa bieżącą historię wykonywania i zapisane wyniki zaplanowanego zadania.
Historia wykonywania zadania i wyniki zadania są zapisywane przy użyciu zaplanowanego zadania w $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
katalogu na komputerze, na którym zostało utworzone zadanie. Aby wyświetlić historię wykonywania, użyj Get-Job
polecenia cmdlet . Aby uzyskać wyniki zadania, użyj Receive-Job
polecenia cmdlet .
Ten parametr nie ma wpływu na zdarzenia, które harmonogram zadań zapisuje w dziennikach zdarzeń systemu Windows i nie uniemożliwia programowi Windows PowerShell zapisywania wyników zadania. Aby zarządzać liczbą zapisanych wyników zadania, użyj parametru MaxResultCount .
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Credential
Określa konto użytkownika, które ma uprawnienia do uruchamiania zaplanowanego zadania. Wartość domyślna to użytkownik bieżący.
Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01, lub wprowadź obiekt PSCredential , taki jak jeden z Get-Credential
polecenia cmdlet. Jeśli wprowadzisz tylko nazwę użytkownika, zostanie wyświetlony monit o podanie hasła.
Typ: | PSCredential |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-FilePath
Określa skrypt uruchamiany przez zaplanowane zadanie. Wprowadź ścieżkę do pliku ps1 na komputerze lokalnym. Aby określić wartości domyślne parametrów skryptu, użyj parametru ArgumentList . Każde zaplanowane zadanie musi mieć wartość ScriptBlock lub FilePath .
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-InitializationScript
Określa w pełni kwalifikowaną ścieżkę do skryptu programu Windows PowerShell (.ps1
). Skrypt inicjowania jest uruchamiany w sesji utworzonej dla zadania w tle przed poleceniami określonymi przez parametr ScriptBlock lub skryptem określonym przez parametr FilePath . Skrypt inicjowania służy do konfigurowania sesji, takiej jak dodawanie plików, funkcji lub aliasów, tworzenie katalogów lub sprawdzanie wymagań wstępnych.
Aby określić skrypt, który uruchamia podstawowe polecenia zadania, użyj parametru FilePath .
Jeśli skrypt inicjowania generuje błąd, w tym błąd niepowodujący zakończenia, bieżące wystąpienie zaplanowanego zadania nie zostanie uruchomione, a jego stan to Niepowodzenie.
Typ: | ScriptBlock |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-InputObject
Określa zaplanowane zadanie do zmiany. Wprowadź zmienną zawierającą obiekty ScheduledJobDefinition lub wpisz polecenie lub wyrażenie, które pobiera obiekty ScheduledJobDefinition, takie jak Get-ScheduledJob
polecenie. Możesz również przekazać obiekt ScheduledJobDefinition do Set-ScheduledJob
obiektu .
Jeśli określisz wiele zaplanowanych zadań, Set-ScheduledJob
wprowadza te same zmiany we wszystkich zadaniach.
Typ: | ScheduledJobDefinition |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-MaxResultCount
Określa liczbę wpisów wyników zadania dla zaplanowanego zadania. Wartość domyślna to 32.
Program Windows PowerShell zapisuje historię wykonywania i wyniki każdego wyzwalanego wystąpienia zaplanowanego zadania na dysku. Wartość tego parametru określa liczbę wyników wystąpienia zadania, które są zapisywane dla tego zaplanowanego zadania. Gdy liczba wyników wystąpienia zadania przekracza tę wartość, program Windows PowerShell usuwa wyniki najstarszego wystąpienia zadania, aby zapewnić miejsce na wyniki najnowszego wystąpienia zadania.
Historia wykonywania zadania i wyniki zadania są zapisywane w pliku $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp>
katalogi na komputerze, na którym jest tworzone zadanie. Aby wyświetlić historię wykonywania, użyj Get-Job
polecenia cmdlet . Aby uzyskać wyniki zadania, użyj Receive-Job
polecenia cmdlet .
Parametr MaxResultCount ustawia wartość właściwości ExecutionHistoryLength zaplanowanego zadania.
Aby usunąć bieżącą historię wykonywania i wyniki zadania, użyj parametru ClearExecutionHistory .
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Name
Określa nową nazwę zaplanowanego zadania i wystąpień zaplanowanego zadania. Nazwa musi być unikatowa na komputerze lokalnym.
Aby zidentyfikować zaplanowane zadanie do zmiany, użyj parametru InputObject lub potoku zaplanowanego zadania z Get-ScheduledJob
do Set-ScheduledJob
.
Ten parametr nie zmienia nazw wystąpień zadań na dysku. Ma to wpływ tylko na wystąpienia zadań, które są uruchamiane po zakończeniu tego polecenia.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-PassThru
Zwraca obiekt reprezentujący element, z którym pracujesz. 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 |
-RunAs32
Uruchamia zaplanowane zadanie w procesie 32-bitowym.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-RunEvery
Służy do określania częstotliwości uruchamiania zadania. Na przykład użyj tej opcji, aby uruchomić zadanie co 15 minut.
Typ: | TimeSpan |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-RunNow
Uruchamia zadanie natychmiast po uruchomieniu Set-ScheduledJob
polecenia cmdlet. Ten parametr eliminuje konieczność wyzwalania harmonogramu zadań w celu uruchomienia skryptu programu Windows PowerShell natychmiast po rejestracji i nie wymaga od użytkowników utworzenia wyzwalacza określającego datę i godzinę rozpoczęcia.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ScheduledJobOption
Ustawia opcje zaplanowanego zadania. Wprowadź obiekt ScheduledJobOptions, taki jak obiekt utworzony za pomocą New-ScheduledJobOption
polecenia cmdlet lub wartość tabeli skrótu.
Opcje zaplanowanego zadania można ustawić podczas rejestrowania zaplanowanego zadania lub ustawiania lub zmieniania opcji za pomocą Set-ScheduledJobOption
poleceń cmdlet lub Set-ScheduledJob
.
Wiele opcji i ich wartości domyślnych określają, czy i kiedy zaplanowane zadanie jest uruchamiane. Przed zaplanowaniem zadania zapoznaj się z tymi opcjami. Opis opcji zaplanowanego zadania, w tym wartości domyślnych, można znaleźć w temacie New-ScheduledJobOption
.
Aby przesłać tabelę skrótów, użyj następujących kluczy. W poniższej tabeli skrótów klucze są wyświetlane z ich wartościami domyślnymi.
@{# Power SettingsStartIfOnBattery=$False;StopIfGoingOnBattery=$True; WakeToRun=$False; # Idle SettingsStartIfNotIdle=$False; IdleDuration="00:10:00"; IdleTimeout="01:00:00"; StopIfGoingOffIdle=$True; RestartOnIdleResume=$False;# Security settingsShowInTaskScheduler=$TrueRunElevated=$False;# MiscRunWithoutNetwork=$False;DoNotAllowDemandStart=$False;MultipleInstancePolicy=IgnoreNew# Can be IgnoreNew, Parallel, Queue, StopExisting}
Typ: | ScheduledJobOptions |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ScriptBlock
Określa polecenia uruchamiane przez zaplanowane zadanie. Dołącz polecenia w nawiasach klamrowych ({}
), aby utworzyć blok skryptu. Aby określić wartości domyślne parametrów polecenia, użyj parametru ArgumentList .
Każde Register-ScheduledJob
polecenie musi używać parametrów ScriptBlock lub FilePath .
Typ: | ScriptBlock |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Trigger
Określa wyzwalacze zaplanowanego zadania. Wprowadź co najmniej jeden obiekt ScheduledJobTrigger , taki jak obiekty New-JobTrigger
zwracane przez polecenie cmdlet lub tabela skrótów kluczy i wartości wyzwalacza zadania.
Wyzwalacz zadania uruchamia zaplanowane zadanie automatycznie w ramach jednorazowego lub cyklicznego zaplanowanego lub w przypadku wystąpienia zdarzenia.
Wyzwalacze zadań są opcjonalne. Wyzwalacz można dodać podczas tworzenia zaplanowanego zadania, użyć Add-JobTrigger
poleceń cmdlet lub Set-ScheduledJob
, aby dodać wyzwalacze później, lub użyć Start-Job
polecenia cmdlet , aby natychmiast uruchomić zaplanowane zadanie. Można również utworzyć i obsługiwać zaplanowane zadanie, które nie ma wyzwalaczy zadania.
Aby przesłać tabelę skrótów, użyj następujących kluczy.
@{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am"
(lub dowolny prawidłowy ciąg czasu); DaysOfWeek="Monday", "Wednesday"
(lub dowolna kombinacja nazw dni); Interval=2
(lub dowolny prawidłowy interwał częstotliwości); RandomDelay="30minutes"
(lub dowolny prawidłowy ciąg przedziału czasu); User="Domain1\User01"
(lub dowolny prawidłowy użytkownik; używany tylko z wartością częstotliwości AtLogon)
}
Typ: | ScheduledJobTrigger[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
Możesz przekazać zaplanowane zadanie do tego polecenia cmdlet.
Dane wyjściowe
None
Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Jeśli używasz parametru PassThru , to polecenie cmdlet zwraca zaplanowane zadanie, które zostało zmienione.
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