Næsten alle systemadministratorer har at gøre med planlagte opgaver. De er utroligt nyttige til at gøre noget baseret på forskellige udløsere, men de kræver en stor manuel indsats at konfigurere korrekt.
Fordelen ved planlagte opgaver er, at du kan bygge en med en dyb grad af sofistikering med udløserindstillinger og forskellige sikkerhedskontekster. Men hvor kompleksiteten er fremherskende, kan der opstå konfigurationsfejl. Når du udvikler disse automatiseringsskripter, kan du oprette en planlagt opgave med PowerShell for at lette processen. Ved at bruge PowerShell kan du standardisere det arbejde med administration og opsætning, der er forbundet med indviklede planlagte opgaver, hvilket har den ekstra fordel, at du undgår de sædvanlige fejl, der stammer fra manuel indtastning.
Byg en planlagt opgavehandling
En planlagt opgave har som minimum en handling, en udløser og en gruppe af tilknyttede indstillinger. Når du har oprettet opgaven, skal du også registrere den på systemet. Du skal udføre hver handling separat for at oprette en enkelt planlagt opgave.
For at oprette handlingen skal du bruge cmdletten New-ScheduledTaskAction, som angiver den kommando, der skal køres. Lad os oprette en handling, der får lidt meta og påkalder et PowerShell-script.
Kommandoen nedenfor giver et eksempel på at påkalde PowerShell-motoren og sende et script til den ved hjælp af alle de relevante kommandolinjeskifter for at få scriptet til at køre noninteraktivt. Scriptfilen ligger på den maskine, som den planlagte opgave skal køres på.
$Action = New-ScheduledTaskAction -Execute 'pwsh.exe' -Argument '-NonInteractive -NoLogo -NoProfile -File "C:\MyScript.ps1"'
Opret en udløser
Næst har du brug for en udløser. Du har flere værdier til rådighed, men denne opgave vil bruge et bestemt tidspunkt — kl. 3 om morgenen — til at udføre dette script én gang. Du kan finde en komplet liste over muligheder på hjælpesiden New-ScheduledTaskTrigger cmdlet.
$Trigger = New-ScheduledTaskTrigger -Once -At 3am
Opret indstillinger
Næst skal du oprette den planlagte opgave ved hjælp af kommandoen New-ScheduledTask. Denne kommando kræver en værdi for parameteren Settings (Indstillinger), selv om du ikke bruger nogen speciel. Derfor kører du New-ScheduledTaskSettingsSet for at oprette et objekt, der skal overføres her.
$Settings = New-ScheduledTaskSettingsSet
Opret den planlagte opgave
Når du har tildelt alle objekter som variabler, skal du overføre hver af disse variabler til kommandoen New-ScheduledTask for at oprette et objekt for en planlagt opgave.
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings
Registrér den planlagte opgave
På dette tidspunkt har du oprettet et objekt for en planlagt opgave i hukommelsen. Hvis du vil tilføje den planlagte opgave på computeren, skal du registrere den planlagte opgave ved hjælp af cmdletten Register-ScheduledTask.
Eksemplet nedenfor registrerer en planlagt opgave, der skal køres under et bestemt brugernavn. Hvis du vil køre opgaven under en bestemt brugerkontekst, skal du angive adgangskoden. Det er nyttigt at se i dokumentationen for kommandoen Register-ScheduledTask for at se alle de muligheder, der skal bruges med denne cmdlet.
Register-ScheduledTask -TaskName 'My PowerShell Script' -InputObject $Task -User 'username' -Password 'passhere'
Hvis du har fulgt alle trinene korrekt, bør du kunne se din nyligt oprettede planlagte opgave i Opgavestyringsprogrammet.
Når den planlagte opgave er registreret og vises i Opgaveplanlæggeren, kan du nu køre cmdletten Get-ScheduledTask for at se opgaven.