Udostępnij za pośrednictwem


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-JobTriggerSet-JobTriggerpolecenia 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-ScheduledJobobiektu .

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

ScheduledJobDefinition

Możesz przekazać zaplanowane zadanie do tego polecenia cmdlet.

Dane wyjściowe

None

Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.

ScheduledJobDefinition

Jeśli używasz parametru PassThru , to polecenie cmdlet zwraca zaplanowane zadanie, które zostało zmienione.