Register-ScheduledJob
Vytvoří naplánovanou úlohu.
Syntax
Register-ScheduledJob
[-ScriptBlock] <ScriptBlock>
[-Name] <String>
[-Trigger <ScheduledJobTrigger[]>]
[-InitializationScript <ScriptBlock>]
[-RunAs32]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-ScheduledJobOption <ScheduledJobOptions>]
[-ArgumentList <Object[]>]
[-MaxResultCount <Int32>]
[-RunNow]
[-RunEvery <TimeSpan>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Register-ScheduledJob
[-FilePath] <String>
[-Name] <String>
[-Trigger <ScheduledJobTrigger[]>]
[-InitializationScript <ScriptBlock>]
[-RunAs32]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-ScheduledJobOption <ScheduledJobOptions>]
[-ArgumentList <Object[]>]
[-MaxResultCount <Int32>]
[-RunNow]
[-RunEvery <TimeSpan>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Rutina Register-ScheduledJob vytvoří naplánované úlohy v místním počítači.
Naplánovaná úloha je úloha Windows PowerShell na pozadí, která se dá spustit automaticky podle jednorázového nebo opakovaného plánu. Naplánované úlohy jsou uložené na disku a zaregistrované v Plánovači úloh, takže je můžete spravovat v Plánovači úloh nebo pomocí rutin naplánované úlohy v Windows PowerShell.
Při spuštění naplánované úlohy se vytvoří instance naplánované úlohy. Instance naplánované úlohy jsou stejné jako Windows PowerShell úlohy na pozadí, s tím rozdílem, že výsledky se ukládají na disk. K spuštění, zobrazení a získání výsledků instancí úloh použijte rutiny Úlohy, jako jsou Start-Job, Get-Job a Receive-Job.
Pomocí úlohy Register-ScheduledJob vytvořte novou naplánovanou úlohu. Chcete-li určit příkazy, které naplánovaná úloha běží, použijte parametr ScriptBlock ; chcete-li zadat skript, který úloha spustí, použijte parametr FilePath .
Windows PowerShell naplánované úlohy používají stejné triggery úloh a možnosti úlohy, které plánovač úloh používá pro naplánované úkoly.
Parametr triggeruúlohy Register-ScheduledJob přidá jednu nebo více aktivačních událostí úlohy, které spustí úlohu. Parametr Trigger je volitelný, takže můžete přidat triggery při vytváření naplánované úlohy, přidat triggery úloh později, přidat parametr RunNow pro okamžité spuštění úlohy, použít Start-Job rutinu ke spuštění úlohy okamžitě nebo uložit neplánovanou naplánovanou úlohu jako šablonu pro jiné úlohy.
Parametr Možnosti umožňuje přizpůsobit nastavení možností pro naplánovanou úlohu. Parametr Options je také volitelný, takže můžete nastavit možnosti úlohy při vytváření naplánované úlohy nebo je kdykoli změnit. Vzhledem k tomu, že nastavení možností úlohy může zabránit spuštění naplánované úlohy, zkontrolujte možnosti úlohy a pečlivě je nastavte.
Register-ScheduledJob je jednou z kolekcí rutin plánování úloh v modulu PSScheduledJob, který je součástí Windows PowerShell.
Další informace o naplánovaných úlohách naleznete v tématu Témata v modulu PSScheduledJob.
Naimportujte modul PSScheduledJob a zadejte: Get-Help about_Scheduled*
nebo se podívejte na about_Scheduled_Jobs.
Tato rutina byla zavedena v Windows PowerShell 3.0.
Příklady
Příklad 1: Vytvoření naplánované úlohy
PS C:\> Register-ScheduledJob -Name "Archive-Scripts" -ScriptBlock { dir $home\*.ps1 -Recurse | Copy-Item -Destination "\\Server\Share\PSScriptArchive" }
Tento příkaz vytvoří Archive-Scripts naplánovanou úlohu. Hodnota parametru ScriptBlock obsahuje příkaz, který rekurzivně prohledá $home adresář pro .ps1 soubory a zkopíruje je do adresáře ve sdílené složce.
Vzhledem k tomu, že naplánovaná úloha neobsahuje aktivační událost, není spuštěna automaticky. Triggery úlohy můžete přidat později, pomocí rutiny Start-Job spustit úlohu na vyžádání nebo použít naplánovanou úlohu jako šablonu pro jiné naplánované úlohy.
Příklad 2: Vytvoření naplánované úlohy s triggery a vlastními možnostmi
The first command uses the New-ScheduledJobOption cmdlet to create a job option object, which it saves in the $O parameter. The options start the scheduled job even if the computer is not idle, wake the computer to run the job, if necessary, and allows multiple instances of the job to run in a series.
PS C:\> $O = New-ScheduledJobOption -WakeToRun -StartIfNotIdle -MultipleInstancesPolicy Queue
The second command uses the New-JobTrigger cmdlet to create job trigger that starts a job every other Monday at 9:00 PM.
PS C:\> $T = New-JobTrigger -Weekly -At "9:00 PM" -DaysOfWeek Monday -WeeksInterval 2
This command creates the UpdateVersion scheduled job, which runs the UpdateVersion.ps1 script every Monday at 9:00 p.m. The command uses the *FilePath* parameter to specify the script that the job runs. It uses the *Trigger* parameter to specify the job triggers in the $T variable and the *ScheduledJobOption* parameter to specify the option object in the $O variable.
PS C:\> Register-ScheduledJob -Name "UpdateVersion" -FilePath "\\Srv01\Scripts\UpdateVersion.ps1" -Trigger $T -ScheduledJobOption $O
Tento příklad ukazuje, jak vytvořit naplánovanou úlohu, která má trigger úlohy a možnosti vlastní úlohy.
Příklad 3: Určení možností triggeru a úlohy pomocí tabulek hash
PS C:\> Register-ScheduledJob -FilePath "\\Srv01\Scripts\Update-Version.ps1" -Trigger @{Frequency=Weekly; At="9:00PM"; DaysOfWeek="Monday"; Interval=2} -ScheduledJobOption @{WakeToRun; StartIfNotIdle; MultipleInstancesPolicy="Queue"}
Tento příkaz má stejný účinek jako příkaz v příkladu 2. Vytvoří naplánovanou úlohu, ale pomocí tabulek hash určí hodnoty parametrů Trigger a ScheduledJobOption .
Příklad 4: Vytvoření naplánovaných úloh na vzdálených počítačích
PS C:\> Invoke-Command -ComputerName (Get-Content Servers.txt) -ScriptBlock {Register-ScheduledJob -Name "Get-EnergyData" -FilePath "\\Srv01\Scripts\Get-EnergyData.ps1" -ScheduledJobOption $O -Trigger $T } -Credential $Cred
Tento příkaz vytvoří naplánovanou úlohu EnergyData na více vzdálených počítačích. Naplánovaná úloha spustí skript, který shromažďuje nezpracovaná data a ukládá je do spuštěného protokolu. Naplánované úlohy se vytvářejí na vzdáleném počítači, běží na vzdáleném počítači a ukládají výsledky do vzdáleného počítače.
Příkaz používá rutinu Invoke-Command ke spuštění příkazu Register-ScheduledJob na počítačích v souboru Servers.txt. Příkaz Invoke-Command používá parametr Credential k zadání přihlašovacích údajů uživatele, který má oprávnění k vytváření naplánovaných úloh v počítačích v souboru Servers.txt.
Příkaz Register-ScheduledJob vytvoří na vzdáleném počítači naplánovanou úlohu, která spouští skript EnergyData.ps1 v naplánovaném zadaném triggeru úlohy v proměnné $T. Skript se nachází na souborovém serveru, který je k dispozici pro všechny zúčastněné počítače.
Příklad 5: Vytvoření naplánované úlohy, která spouští skript na vzdálených počítačích
PS C:\> Register-ScheduledJob -Name "CollectEnergyData" -Trigger $T -MaxResultCount 99 -ScriptBlock { Invoke-Command -AsJob -ComputerName (Servers.txt) -FilePath "\\Srv01\Scripts\Get-EnergyData.ps1" -Credential $Admin -Authentication CredSSP }
Tento příkaz používá rutinu Register-ScheduledJob k vytvoření naplánované úlohy CollectEnergyData v místním počítači. Příkaz pomocí parametru Trigger určuje plán úlohy a parametr MaxResultCount ke zvýšení počtu uložených výsledků na 99.
Úloha CollectEnergyData používá rutinu Invoke-Command ke spuštění skriptu EnergyData.ps1 jako pozadí na počítačích uvedených v souboru Servers.txt. Příkaz Invoke-Command používá parametr AsJob k vytvoření objektu úlohy na pozadí v místním počítači, i když Energydata.ps1 skript běží na vzdálených počítačích. Příkaz používá parametr Credential k určení uživatelského účtu, který má oprávnění ke spouštění skriptů na vzdálených počítačích a parametr ověřování s hodnotou CredSSP pro povolení delegovaných přihlašovacích údajů.
Parametry
-ArgumentList
Určuje hodnoty parametrů skriptu určeného parametrem FilePath nebo příkazem určeným parametrem ScriptBlock .
Type: | Object[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Authentication
Určuje mechanismus, který se používá k ověření přihlašovacích údajů uživatele. Tento parametr přijímá tyto hodnoty:
- Výchozí
- Basic
- Credssp
- Digest
- Kerberos
- Negotiate
- NegotiateWithImplicitCredential
Výchozí hodnota je Výchozí. Další informace o hodnotách tohoto parametru naleznete v tématu AuthenticationMechanism – výčet v knihovně MSDN.
Upozornění: Ověřování zprostředkovatele služby Credential Security Service Provider (CredSSP), ve kterém jsou přihlašovací údaje uživatele předány vzdálenému počítači, který se má ověřit, je určený pro příkazy, které vyžadují ověření u více než jednoho prostředku, jako je například přístup ke vzdálené síťové sdílené složce. Tento mechanismus zvyšuje riziko zabezpečení vzdálené operace. Pokud dojde k ohrožení zabezpečení vzdáleného počítače, dají se přihlašovací údaje předávané do něj použít k řízení síťové relace.
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 |
-Confirm
Před spuštěním rutiny zobrazí výzvu k potvrzení.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Určuje uživatelský účet, který má oprávnění ke spuštění naplánované úlohy. Ve výchozím nastavení je to aktuální uživatel.
Zadejte uživatelské jméno, například User01 nebo Domain01\User01, nebo zadejte objekt PSCredential , například z rutiny Get-Credential. Pokud zadáte jenom uživatelské jméno, zobrazí se výzva k zadání hesla.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Určuje skript, který se spouští naplánovaná úloha. Zadejte cestu k souboru .ps1 v místním počítači. Pokud chcete zadat výchozí hodnoty parametrů skriptu, použijte parametr ArgumentList . Každý příkaz Register-ScheduledJob musí používat parametry ScriptBlock nebo FilePath .
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InitializationScript
Určuje plně kvalifikovanou cestu ke skriptu Windows PowerShell (.ps1). Inicializační skript se spustí v relaci, která se vytvoří pro úlohu na pozadí před příkazy, které jsou určené parametrem ScriptBlock nebo skriptem určeným parametrem FilePath . Skript inicializace můžete použít ke konfiguraci relace, jako je přidání souborů, funkcí nebo aliasů, vytváření adresářů nebo kontrola požadavků.
Pokud chcete zadat skript, který spouští příkazy primární úlohy, použijte parametr FilePath .
Pokud inicializační skript vygeneruje chybu (i neukončující chybu), aktuální instance naplánované úlohy se nespustí a její stav se nezdaří.
Type: | ScriptBlock |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaxResultCount
Určuje, kolik položek výsledků úlohy se udržuje pro naplánovanou úlohu. Výchozí hodnota je 32.
Windows PowerShell uloží historii spuštění a výsledky každé aktivované instance naplánované úlohy na disku. Hodnota tohoto parametru určuje počet výsledků instance úlohy, které jsou uloženy pro tuto naplánovanou úlohu. Pokud počet výsledků instance úlohy překročí tuto hodnotu, Windows PowerShell odstraní výsledky nejstarší instance úlohy, aby se uvolnilo místo pro výsledky nejnovější instance úlohy.
Historie spuštění úlohy a výsledky úlohy se ukládají do $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp> directories v počítači, na kterém je úloha vytvořena. Pokud chcete zobrazit historii spuštění, použijte rutinu Get-Job. Pokud chcete získat výsledky úlohy, použijte rutinu Receive-Job.
Parametr MaxResultCount nastaví hodnotu ExecutionHistoryLength vlastnosti naplánované úlohy.
Pokud chcete odstranit aktuální historii spouštění a výsledky úlohy, použijte parametr ClearExecutionHistory rutiny Set-ScheduledJob.
Type: | Int32 |
Position: | Named |
Default value: | 32 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Určuje název naplánované úlohy. Název se používá také pro všechny spuštěné instance naplánované úlohy. Název musí být v počítači jedinečný. Tento parametr je povinný.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunAs32
Spustí naplánovanou úlohu v 32bitovém procesu.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunEvery
Slouží k určení, jak často se má úloha spouštět. Tuto možnost můžete například použít ke spuštění úlohy každých 15 minut.
Type: | TimeSpan |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunNow
Spustí úlohu okamžitě, jakmile se spustí rutina Register-ScheduledJob . Tento parametr eliminuje nutnost aktivovat plánovač úloh, aby spustil skript Windows PowerShell ihned po registraci a nevyžaduje, aby uživatelé vytvořili trigger, který určuje počáteční datum a čas.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ScheduledJobOption
Nastaví možnosti pro naplánovanou úlohu. Zadejte objekt ScheduledJobOptions , například objekt, který vytvoříte pomocí rutiny New-ScheduledJobOption nebo hodnoty hash tabulky.
Možnosti naplánované úlohy můžete nastavit při registraci úlohy plánu nebo pomocí rutin Set-ScheduledJobOption nebo Set-ScheduledJob změnit možnosti.
Řada možností a jejich výchozích hodnot určuje, jestli a kdy se naplánovaná úloha spustí. Před plánováním úlohy nezapomeňte tyto možnosti zkontrolovat. Popis možností naplánované úlohy, včetně výchozích hodnot, najdete v tématu New-ScheduledJobOption.
Pokud chcete odeslat tabulku hash, použijte následující klíče. V následující tabulce hash se klíče zobrazují s jejich výchozími hodnotami.
@{StartIfOnBattery=$False; StopIfGoingOnBattery=$True; WakeToRun=$False; StartIfNotIdle=$False; IdleDuration="00:10:00"; IdleTimeout="01:00:00"; StopIfGoingOffIdle=$True; RestartOnIdleResume=$False; ShowInTaskScheduler=$True; RunElevated=$False; RunWithoutNetwork=$False; DoNotAllowDemandStart=$False; MultipleInstancePolicy=IgnoreNew}
Type: | ScheduledJobOptions |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ScriptBlock
Určuje příkazy, které naplánovaná úloha běží. Uzavřete příkazy do závorek ( { } ) k vytvoření bloku skriptu. Pokud chcete zadat výchozí hodnoty parametrů příkazu, použijte parametr ArgumentList .
Každý příkaz Register-ScheduledJob musí používat parametry ScriptBlock nebo FilePath .
Type: | ScriptBlock |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Trigger
Určuje triggery pro naplánovanou úlohu. Zadejte jeden nebo více objektů ScheduledJobTrigger , například objekty, které rutina New-JobTrigger vrátí, nebo tabulku hash klíčů a hodnot aktivačních událostí úlohy.
Trigger úlohy spustí úlohu plánu. Trigger může zadat jednorázovou nebo opakovanou naplánovanou událost nebo událost, například když se uživatel přihlásí nebo spustí Windows.
Parametr triggeru je volitelný. Aktivační událost můžete přidat při vytváření naplánované úlohy, pomocí rutin Add-JobTrigger, Set-JobTrigger nebo Set-ScheduledJob přidat nebo změnit aktivační události úlohy později nebo pomocí rutiny Start-Job spustit naplánovanou úlohu okamžitě. Můžete také vytvořit a udržovat naplánovanou úlohu bez triggeru, který se používá jako šablona.
Pokud chcete odeslat tabulku hash, použijte následující klíče:
@{Frequency="Once"
(nebo denně, týdně, AtStartup, AtLogon); At="3am"
(nebo jakýkoli platný časový řetězec); DaysOfWeek="Monday", "Wednesday"
(nebo libovolná kombinace jmen dnů); Interval=2
(nebo jakýkoli platný interval četnosti); RandomDelay="30minutes"
(nebo jakýkoli platný řetězec časového rozsahu); User="Domain1\User01"
(nebo jakýkoli platný uživatel; používá se pouze s hodnotou frekvence AtLogon) }
Type: | ScheduledJobTrigger[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Zobrazuje, co by se stalo při spuštění rutiny. Rutina není spuštěna.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Vstupy
None
Vstup do této rutiny nelze převést.
Výstupy
Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition
Poznámky
Každá naplánovaná úloha se uloží do podadresáře $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs v místním počítači. Podadresář má název pro naplánovanou úlohu a obsahuje soubor XML pro naplánovanou úlohu a záznamy historie spuštění. Další informace o naplánovaných úlohách na disku najdete v tématu about_Scheduled_Jobs_Advanced.
Naplánované úlohy, které vytvoříte v Windows PowerShell se zobrazí v Plánovači úloh ve složce Knihovna plánovače úloh\Microsoft\Windows\PowerShell\ScheduledJobs. Plánovač úloh můžete použít k zobrazení a úpravě naplánované úlohy.
Pomocí plánovače úloh, nástroje příkazového řádku SchTasks.exe a rutin plánovače úloh můžete spravovat naplánované úlohy, které vytvoříte pomocí rutin naplánované úlohy. Rutiny naplánované úlohy ale nemůžete použít ke správě úloh, které vytvoříte v Plánovači úloh.
Pokud příkaz naplánované úlohy selže, Windows PowerShell vrátí chybovou zprávu. Pokud však úloha selže, když se plánovač úloh pokusí spustit, tato chyba není k dispozici pro Windows PowerShell.
Pokud se naplánovaná úloha nespustí, pomocí následujících metod vyhledejte důvod.
- Ověřte, že je trigger úlohy správně nastavený. -- Ověřte, že jsou splněny podmínky nastavené v možnostech úlohy.
- Ověřte, že uživatelský účet, pod kterým se úloha spouští, má oprávnění ke spuštění příkazů nebo skriptů v úloze.
- Kontrola chyb v historii plánovače úloh
- Zkontrolujte chyby v protokolu událostí Plánovače úloh.
Další informace najdete v tématu about_Scheduled_Jobs_Troubleshooting.
Související odkazy
- 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