Set-ScheduledJob

Zmienia zaplanowane zadania.

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 cmdlet Set-ScheduledJob 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 polecenia cmdlet Get-ScheduledJob w celu pobrania zaplanowanego zadania. Następnie przekaż zadanie zaplanowane do zadania Set-ScheduledJob lub zapisz zadanie w zmiennej i użyj parametru InputObject , aby zidentyfikować zadanie. Użyj pozostałych parametrów zadania Set-ScheduledJob , aby zmienić właściwości zadania lub wyczyścić historię wykonywania.

Chociaż można użyć polecenia Set-ScheduledJob , aby zmienić wyzwalacze i opcje zaplanowanego zadania, Add-JobTrigger, Set-JobTrigger i Set-ScheduledJobOption polecenia cmdlet zapewniają znacznie łatwiejsze sposoby wykonywania tych zadań. Aby utworzyć nowe zaplanowane zadanie, użyj polecenia cmdlet Register-ScheduledJob.

Parametr Trigger zadania Set-ScheduledJob dodaje co najmniej jeden wyzwalacz zadania, które uruchamiają zadanie. Parametr Trigger jest opcjonalny, więc można dodawać wyzwalacze podczas tworzenia zaplanowanego zadania, dodać wyzwalacze zadania później, dodać parametr RunNow , aby natychmiast uruchomić zadanie, użyć polecenia cmdlet Start-Job, aby natychmiast uruchomić zadanie w dowolnym momencie lub zapisać rozpiętego zaplanowanego zadania jako szablon dla innych zadań.

Set-ScheduledJob jest 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

PS C:\> Get-ScheduledJob -Name "Inventory"
Id         Name            Triggers        Command                                  Enabled
--         ----            --------        -------                                  -------
1          Inventory       {1}             C:\Scripts\Get-Inventory.ps1             True

The second command uses the Get-ScheduledJob cmdlet to get the Inventory scheduled job. A pipeline operator (|) sends the scheduled job to the **Set-ScheduledJob** cmdlet. The **Set-ScheduledJob** cmdlet uses the *Script* parameter to specify a new script, Get-FullInventory.ps1. The command uses the *Passthru* parameter to return the scheduled job after the change.
PS C:\> 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

W tym przykładzie pokazano, jak zmienić skrypt uruchamiany w zaplanowanym zadaniu.

Pierwsze polecenie używa polecenia cmdlet Get-ScheduledJob do pobrania zaplanowanego zadania spisu. Dane wyjściowe pokazują, że zadanie uruchamia skrypt Get-Inventory.ps1.

To polecenie nie jest wymagane; Jest on uwzględniany tylko w celu pokazania efektu zmiany skryptu.

Przykład 2. Usuwanie historii wykonywania zaplanowanego zadania

PS C:\> Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory

To polecenie usuwa bieżącą historię wykonywania i zapisuje wyniki zadania dla zaplanowanego zadania BackupArchive.

Polecenie używa polecenia cmdlet Get-ScheduledJob do pobrania zaplanowanego zadania BackupArchive. Operator potoku (|) wysyła zadanie do polecenia cmdlet Set-ScheduledJob , aby je zmienić. Polecenie cmdlet Set-ScheduledJob używa parametru ClearExecutionHistory do usunięcia historii wykonywania i zapisanych 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

PS C:\> Invoke-Command -Computer "Server01, Server02" -ScriptBlock {Get-ScheduledJob | Set-ScheduledJob -InitializationScript \\SrvA\Scripts\SetForRun.ps1}

To polecenie zmienia skrypt inicjowania we wszystkich zaplanowanych zadaniach na komputerach Server01 i Server02.

Polecenie używa polecenia cmdlet Invoke-Command do uruchomienia polecenia na komputerach Server01 i Server02.

Zdalne polecenie rozpoczyna się od polecenia Get-ScheduledJob, które pobiera wszystkie zaplanowane zadania na komputerze. Zaplanowane zadania są przesyłane potokowo do polecenia cmdlet Set-ScheduledJob , które zmienia skrypt 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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authentication

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

  • Domyślny
  • Podstawowa
  • Credssp
  • Szyfrowane
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Wartość domyślna to Domyślna. Aby uzyskać więcej informacji na temat wartości tego parametru, zobacz AuthenticationMechanism Enumeration (Wyliczenie AuthenticationMechanism ) w bibliotece MSDN.

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.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:Default
Required:False
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 katalogu $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs na komputerze, na którym utworzono zadanie. Aby wyświetlić historię wykonywania, użyj polecenia cmdlet Get-Job. Aby uzyskać wyniki zadania, użyj polecenia cmdlet Receive-Job.

Ten parametr nie ma wpływu na zdarzenia zapisywane przez harmonogram zadań w dziennikach zdarzeń systemu 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:False
Required:False
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:Current user
Required:False
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
Required:False
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
Required:False
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 polecenie Get-ScheduledJob. Możesz również przekazać potok obiektu ScheduledJobDefinition do zadania Set-ScheduledJob.

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

Type:ScheduledJobDefinition
Position:0
Default value:None
Required:True
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 katalogach $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp> na komputerze, na którym utworzono zadanie. Aby wyświetlić historię wykonywania, użyj polecenia cmdlet Get-Job. Aby uzyskać wyniki zadania, użyj polecenia cmdlet Receive-Job.

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:32
Required:False
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 zadania 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
Required:False
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:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAs32

Uruchamia zaplanowane zadanie w procesie 32-bitowym.

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

-RunNow

Uruchamia zadanie natychmiast po uruchomieniu polecenia cmdlet Set-ScheduledJob . Ten parametr eliminuje konieczność wyzwalania harmonogramu zadań w celu uruchomienia skryptu Windows PowerShell bezpośrednio 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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScheduledJobOption

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

Opcje zaplanowanego zadania można ustawić podczas rejestrowania zaplanowanego zadania lub użyć poleceń cmdlet Set-ScheduledJobOption lub Set-ScheduledJob , aby ustawić lub zmienić opcje.

Wiele opcji i ich wartości domyślnych określają, czy i kiedy zaplanowane zadanie jest uruchamiane. Przed zaplanowaniem zadania należy przejrzeć te opcje. 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:ScheduledJobOptions
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 polecenie Register-ScheduledJob musi używać parametrów ScriptBlock lub FilePath .

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

-Trigger

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

Wyzwalacz zadania uruchamia zaplanowane zadanie automatycznie zgodnie z harmonogramem jednorazowym lub cyklicznym lub w przypadku wystąpienia zdarzenia.

Wyzwalacze zadań są opcjonalne. Wyzwalacz można dodać podczas tworzenia zaplanowanego zadania, użyć poleceń cmdlet Add-JobTrigger lub Set-ScheduledJob , aby dodać wyzwalacze później lub użyć polecenia cmdlet Start-Job, aby natychmiast uruchomić zaplanowane zadanie. Można również tworzyć i obsługiwać zaplanowane zadanie, które nie ma wyzwalaczy zadań.

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:ScheduledJobTrigger[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Zaplanowane zadania można potokować do zadania Set-ScheduledJob.

Dane wyjściowe

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

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