Téměř každý správce systému musí řešit naplánované úlohy. Jsou neuvěřitelně užitečné, protože umožňují něco provést na základě různých spouštěčů, ale jejich správná konfigurace vyžaduje mnoho ručního úsilí.
Výhodou naplánovaných úloh je, že je můžete vytvořit s hlubokou úrovní propracovanosti pomocí možností spouštěčů a různých kontextů zabezpečení. Tam, kde vládne složitost, však mohou vznikat chyby v konfiguraci. Při vývoji těchto automatizačních skriptů můžete pomocí prostředí PowerShell vytvořit naplánovanou úlohu, která vám tento proces usnadní. Použití prostředí PowerShell pomáhá standardizovat práci spojenou se správou a nastavením složitých naplánovaných úloh, což má další výhodu v tom, že se vyhnete obvyklým chybám, které vznikají při ručním zadávání.
Vytvoření akce naplánované úlohy
Naplánovaná úloha má minimálně akci, spouštěč a skupinu souvisejících nastavení. Jakmile úlohu vytvoříte, musíte ji také zaregistrovat v systému. Pro vytvoření jedné naplánované úlohy je třeba provést každou akci zvlášť.
Pro vytvoření akce použijte rutinu New-ScheduledTaskAction, která určuje příkaz ke spuštění. Vytvořme akci, která dostane malou meta a vyvolá skript prostředí PowerShell.
Následující příkaz uvádí příklad vyvolání mechanismu prostředí PowerShell a předání skriptu s použitím všech příslušných přepínačů příkazového řádku, aby se skript spustil neinteraktivně. Soubor skriptu se nachází na počítači, na kterém bude naplánovaná úloha spuštěna.
$Action = New-ScheduledTaskAction -Execute 'pwsh.exe' -Argument '-NonInteractive -NoLogo -NoProfile -File "C:\MyScript.ps1"'
Vytvoření spouštěče
Dále potřebujete spouštěč. K dispozici máte několik hodnot, ale tato úloha bude používat konkrétní čas — 3:00 — pro jednorázové spuštění tohoto skriptu. Úplný seznam možností najdete na stránce nápovědy rutiny New-ScheduledTaskTrigger.
$Trigger = New-ScheduledTaskTrigger -Once -At 3am
Vytvořit nastavení
Následujte vytvoření naplánované úlohy pomocí příkazu New-ScheduledTask. Tento příkaz vyžaduje hodnotu parametru Settings, i když nepoužíváte žádné speciální. Proto spustíte příkaz New-ScheduledTaskSettingsSet, abyste vytvořili objekt, který sem předáte.
$Settings = New-ScheduledTaskSettingsSet
Vytvořte naplánovanou úlohu
Po přiřazení všech objektů jako proměnných předejte každou z těchto proměnných příkazu New-ScheduledTask, abyste vytvořili objekt naplánované úlohy.
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings
Zaregistrujte naplánovanou úlohu
V tomto okamžiku jste vytvořili objekt naplánované úlohy v paměti. Chcete-li přidat naplánovanou úlohu do počítače, musíte ji zaregistrovat pomocí rutiny Register-ScheduledTask.
Následující příklad registruje naplánovanou úlohu, která má být spuštěna pod určitým uživatelským jménem. Chcete-li spustit úlohu pod kontextem určitého uživatele, musíte zadat heslo. Je užitečné podívat se do dokumentace k příkazu Register-ScheduledTask, abyste viděli všechny možnosti, které lze s touto rutinou použít.
Register-ScheduledTask -TaskName 'My PowerShell Script' -InputObject $Task -User 'username' -Password 'passhere'
Pokud jste postupovali správně, měli byste nově vytvořenou naplánovanou úlohu vidět v Plánovači úloh.
Po zaregistrování naplánované úlohy a jejím zobrazení v Plánovači úloh můžete nyní spustit rutinu Get-ScheduledTask a zobrazit úlohu
.