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, zacznij od użycia Get-ScheduledJob polecenia cmdlet w celu pobrania zaplanowanego zadania. Następnie należy przekazać zadanie zaplanowane do Set-ScheduledJob zmiennej lub zapisać je w zmiennej i użyć parametru InputObject w celu zidentyfikowania zadania. 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 , aby zmienić wyzwalacze i opcje zaplanowanego zadania, Add-JobTriggerpolecenia cmdlet , Set-JobTriggeri 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 co najmniej jeden wyzwalacz zadania, które uruchamiają zadanie. Parametr Trigger jest opcjonalny, więc można dodawać wyzwalacze podczas tworzenia zaplanowanego zadania, dodawać wyzwalacze zadania później, dodać 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-ScheduledJobjest 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 skryptu uruchamianego przez zadanie

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 , aby pobrać zaplanowane zadanie 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 do zwrócenia zaplanowanego zadania po zmianie.

To polecenie nie jest wymagane; Jest on uwzględniany 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 do usunięcia historii wykonywania i zapisania wyników.

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, co powoduje zmianę skryptu inicjowania na SetForRun.ps1.

Parametry

-ArgumentList

Określa wartości parametrów skryptu, który jest określony przez parametr FilePath lub dla polecenia określonego przez scriptBlock parametru.

Type:Object[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-ClearExecutionHistory

Usuwa bieżącą historię wykonywania i zapisane wyniki zaplanowanego zadania.

Historia wykonywania zadania i wyniki zadania są zapisywane wraz z zaplanowanym zadaniem 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 zapisywane przez harmonogram zadań w dziennikach zdarzeń Windows i nie zatrzymuje Windows PowerShell zapisywania wyników zadania. Aby zarządzać liczbą zapisanych wyników zadania, użyj parametru MaxResultCount .

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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.

Type:PSCredential
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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 .

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

Określa w pełni kwalifikowaną ścieżkę do skryptu 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 i jego stan to Niepowodzenie.

Type:ScriptBlock
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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żna również przekazać potok obiektu ScheduledJobDefinition do elementu Set-ScheduledJob.

Jeśli określisz wiele zaplanowanych zadań, Set-ScheduledJob wprowadza te same zmiany we wszystkich zadaniach.

Type:Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-MaxResultCount

Określa, ile wpisów wyników zadania jest utrzymywanych dla zaplanowanego zadania. Wartość domyślna to 32.

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ść, 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 $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp> katalogi na komputerze, na którym utworzono 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 .

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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.

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

Zwraca obiekt reprezentujący element, z którym pracujesz. Domyślnie to polecenie cmdlet nie generuje żadnego wyniku.

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

Uruchamia zaplanowane zadanie w procesie 32-bitowym.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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.

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

Uruchamia zadanie natychmiast po uruchomieniu Set-ScheduledJob polecenia cmdlet. Ten parametr eliminuje konieczność wyzwalania harmonogramu zadań w celu uruchomienia skryptu Windows PowerShell natychmiast po rejestracji i nie wymaga od użytkowników utworzenia wyzwalacza określającego datę i godzinę rozpoczęcia.

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

Ustawia opcje zaplanowanego zadania. Wprowadź obiekt ScheduledJobOptions , taki jak obiekt utworzony za pomocą polecenia cmdlet lub wartość tabeli skrótu New-ScheduledJobOption .

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śla, czy i kiedy zaplanowane zadanie jest uruchamiane. Przed zaplanowaniem zadania zapoznaj się z tymi opcjami. Aby uzyskać opis opcji zaplanowanego zadania, w tym wartości domyślne, zobacz 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}

Type:Microsoft.PowerShell.ScheduledJob.ScheduledJobOptions
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-ScriptBlock

Określa polecenia uruchamiane przez zaplanowane zadanie. Należy ująć polecenia w nawiasy klamrowe ({}), 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 .

Type:ScriptBlock
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Uwierzytelnianie

Określa mechanizm używany do uwierzytelniania poświadczeń użytkownika. Dopuszczalne wartości dla tego parametru to:

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Wartość domyślna 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).

Przestroga

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.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Wyzwalacz

Określa wyzwalacze zaplanowanego zadania. Wprowadź co najmniej jeden obiekt ScheduledJobTrigger , taki jak obiekty zwracane New-JobTrigger przez polecenie cmdlet lub tabela skrótów kluczy i wartości wyzwalacza zadania.

Wyzwalacz zadania uruchamia zaplanowane zadanie automatycznie przy jednorazowym lub cyklicznym harmonogramie 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 do późniejszego dodania wyzwalaczy 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)

}

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

Dane wejściowe

Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Zaplanowane zadania można przekazać potokowi do .Set-ScheduledJob

Dane wyjściowe

Brak lub Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Jeśli używasz parametru Passthru , zwraca zaplanowane zadanie, Set-ScheduledJob które zostało zmienione. W przeciwnym razie to polecenie cmdlet nie generuje żadnych danych wyjściowych.