Adam The Automator

har du brug for at oprette masser af planlagte opgaver eller automatisere oprettelse af planlagte opgaver? I så fald er du heldig. I denne artikel lærer du, hvordan du administrerer planlagte opgaver ved hjælp af .

planlagte opgaver, der udfører enkle handlinger, er hurtige at lave og komfortable nok til at gentage ved hjælp af Task Scheduler app interface (GUI). Men systemadministratorer eller udviklere skal muligvis implementere mere komplicerede opgaver med flere tidsplaner, udløsere eller argumenter.

heldigvis kan du bruge til at oprette og administrere planlagte opgaver. Det er muligt at administrere planlagte opgaver ved hjælp af modulet ScheduledTasks, der er indbygget i vinduer.

Indholdsfortegnelse

forudsætninger

da dette er en learning-by-doing type artikel, er der nogle forudsætninger, så du kan følge med. Nedenfor er kravene til at oprette planlagte opgaver ved hjælp af .

  • eksemplerne i denne artikel bruger vinduer 10. Server 2012 og nyere kan gøre det samme.
  • vinduer Strømshell 5.1 eller Strømshell 7.
  • det ville hjælpe, hvis du havde en script editor som Visual Studio Code, Notepad++ eller.

oprettelse af en ny planlagt opgave

en planlagt opgave kræver mindst to komponenter for at fungere; handling og trigger. Tilføjelse af en sikkerhedskontekst og et sæt relaterede indstillinger er valgfrit. For bedre forståelse henvises til den korte forklaring for hver planlagt opgavekomponent nedenfor:

  • handling – den handling, der udføres af den planlagte opgave. En handling er typisk at køre et program eller et script. En planlagt opgave kan have mere end en handling.
  • Trigger-styrer, når den planlagte opgave kører. Udløsere kan være tidsbaserede, ligesom at indstille en tidsplan for daglig eller timeløn gentagelse. Udløsere kan også være aktivitetsbaserede, som kører en opgave baseret på registrerede aktiviteter som computerstart, en bruger logger ind eller loggede begivenheder.
  • Principal-styrer den sikkerhedskontekst, der bruges til at køre den planlagte opgave. En hovedstol inkluderer blandt andet brugerkontoen og det krævede privilegium, der bruges af den planlagte opgave.
  • indstillinger-er et sæt af indstillinger og betingelser, der styrer, hvordan den planlagte opgave adfærd. Som et eksempel kan du tilpasse en opgave til at blive fjernet efter et fortløbende antal dage, hvor opgaven er ubrugt.

under en planlagt opgaveoprettelse er hovedstolen og indstillingerne ikke eksplicit påkrævet. Standardværdierne bruges i stedet.

oprettelse af en Opgavehandling

når du vil have en planlagt opgave til at gøre noget, skal du oprette en ny opgavehandling. I dette eksempel opretter du en opgave, der kalder Strømskallen.kør et script. Sørg for at have din script editor klar.

Bemærk, at scriptet nedenfor kun er et tilfældigt eksempel, og du er ikke forpligtet til at bruge det. Du kan bruge et hvilket som helst script, du ønsker. Brug af scriptet nedenfor skaber dog et let verificerbart resultat, der kan bekræfte, om den planlagte opgave fungerede.

eksempelscriptet nedenfor, når det udføres, får de ti seneste begivenheder fra applikationshændelsesloggen. Derefter eksportere begivenhederne til en ny c:\temp mappe. Kopier koden nedenfor, indsæt den i din script editor og gem med filnavnet Get-LatestAppLog.ps1 i enhver mappe, du ønsker.

koden nedenfor brugerNew-ScheduledTaskAction til at oprette et nyt objekt med planlagt opgave, der er gemt i variablen$taskAction. Denne handling vil kalde powershell.exe eksekverbar og videregive argumentet for at køre C:\scripts\Get-LatestAppLog.ps1.

Kopier kommandoen ovenfor og kør den i Kraftshell. Det resulterende objekt i $taskAction variablen skal se ud som skærmbilledet nedenfor.

oprettelse af en ny planlagt Opgavehandling

tilføjelse af en Trigger

nu hvor du har oprettet en opgavehandling, er det næste trin er at definere, hvornår opgaven skal køre. Den cmdlet, der skal bruges til at oprette en trigger, er New-ScheduledTaskTrigger cmdlet. Kommandoen nedenfor opretter en trigger til at køre dagligt kl 3 om eftermiddagen. Kopier og kør koden i Kraftshell.

# Create a new trigger (Daily at 3 AM)$taskTrigger = New-ScheduledTaskTrigger -Daily -At 3PM$tasktrigger

det resulterende objekt i$tasktrigger variablen skal se det samme som billedet nedenfor.

oprettelse af en Trigger (dagligt klokken 3)

registrering af opgaven

indtil videre har du oprettet basiskravene for at oprette en ny planlagt opgave. Det næste trin er at oprette den planlagte opgave og registrere den i systemet.

koden nedenfor brugerRegister-ScheduledTask cmdlet til at registrere den planlagte opgave. Parameteren-Action er nødvendig for at videregive opgavehandlingsobjektet, der er gemt i variablen$taskAction. Parameteren-Trigger er nødvendig for at passere$taskTrigger variabelt indhold.

# Register the new PowerShell scheduled task# The name of your scheduled task.$taskName = "ExportAppLog"# Describe the scheduled task.$description = "Export the 10 newest events in the application log"# Register the scheduled taskRegister-ScheduledTask ` -TaskName $taskName ` -Action $taskAction ` -Trigger $taskTrigger ` -Description $description

Kopier koden ovenfor og kør den i Kraftshell. Som følge heraf registreres den nye planlagte opgave som vist nedenfor.

registrering af den nye planlagte opgave

kørsel af opgaven

når du har oprettet en planlagt opgave, skal du bekræfte, at den planlagte opgave er opgaven findes nu i systemet. Åbn Opgaveplanlæggeren, og find den planlagte opgave på listen. Du skal se den registrerede opgave på listen.

den nye planlagte opgave som vist i Task Scheduler-appen

Du kan også bekræfte, at den registrerede planlagte opgave eksisterer ved at køre kommandoen nedenfor.

Get-ScheduledTaskInfo -TaskName ExportAppLog

Du skal derefter se en lignende output, som skærmbilledet af resultatet nedenfor.

få de planlagte opgaveoplysninger.

og endelig skal din nye planlagte opgave arbejde for at afgøre, om det, du gjorde hidtil, var vellykket. For at teste den planlagte opgave kan du enten vente på den næste køreplan eller bruge kommandoen nedenfor til manuelt at udløse.

Start-ScheduledTask -TaskName ExportAppLog

Når du har kørt koden, skal du se et lignende resultat som det, der er vist nedenfor. Som du kan se, kørte koden oprettet en HML-fil, hvilket indikerer, at den planlagte opgave fungerede som forventet.

kører den planlagte opgave

opdatering af en eksisterende planlagt opgave

når du har oprettet en planlagt opgave, kan nogle aspekter af den muligvis opdateres på et tidspunkt. Måske vil du få det til at køre en time tidligere eller ændre placeringen af scriptfilen. Det er nogle af de ændringer i den planlagte opgave, der kan være påkrævet.

i de næste afsnit lærer du, hvordan du foretager ændringer i eksisterende registrerede planlagte opgaver ved hjælp af .

ændring af brugerkonto, sikkerhedsindstillinger og kompatibilitetsindstillinger

i det foregående afsnit kører den planlagte opgave under den samme brugerkontokontekst, der oprettede den. Hvad hvis opgaven skal køre ved hjælp af en anden brugerkonto, f.eks.

i dette eksempel ændrer du sikkerhedsindstillingerne for den planlagte opgave til nedenstående indstillinger.

  • du skal ændre brugerkontoen for at køre den planlagte opgave.
  • lad opgaven køre, om brugeren er logget ind eller ej.
  • Kør med de højeste niveauer af privilegier.
  • Indstil opgavens kompatibilitet til Vinduer 10.

den første linje i koden nedenfor opretter et hovedobjekt med den nye brugerkonto og indstiller opgaven til at køre med de højeste privilegier. Sørg for at ændre værdien af parameteren -UserID efter behov. Den anden linje konfigurerer opgavens kompatibilitet med vinduer 10.

endelig opdaterer den tredje linje ExportAppLog**planlagt opgave ved hjælp af de værdier, der er gemt ithe $taskPrincipalog$taskSettings variabler. Kopier koden nedenfor og kør den i Kraftshell.

# Set the task principal's user ID and run level.$taskPrincipal = New-ScheduledTaskPrincipal -UserId 'DEVPC\svcTask' -RunLevel Highest# Set the task compatibility value to Windows 10.$taskSettings = New-ScheduledTaskSettingsSet -Compatibility Win8# Update the task principal settingsSet-ScheduledTask -TaskName 'ExportAppLog' -Principal $taskPrincipal -Settings $taskSettings

du vil bemærke, at-Compatibility parameterværdien erWin8. Bliv ikke forvirret. Det lader til, at Microsoft ikke har opdateret den” nyeste ” valg version siden Vinduer 8. Ikke desto mindre angiver Win8 værdi vil resultere i Vinduer 10 kompatibilitet.

dernæst bruger kommandoen nedenforSet-ScheduledTaskcmdlet til at opdatere den eksisterendeExportAppLog **planlagt opgave. Sørg for at ændre adgangskodeværdien i parameteren -Password for at bruge brugerkontoens korrekte adgangskode.

# Update the task user account and passwordSet-ScheduledTask -TaskName 'ExportAppLog' -User $taskPrincipal.UserID -Password 'PASSWORD'

efter at have kørt ovenstående kommando, bliver den planlagte opgave opdateret. Hvis du kontrollerer den planlagte opgave, kan du bekræfte, at sikkerhedsindstillingerne er ændret.

sikkerhedsindstillingen, brugerkontoen og kompatibilitetsindstillingerne

ændring af udløseren

nogle gange skal udløserplanen være tilgængelig for alle ændret. Måske på grund af nogle operationelle justeringer eller ressourceoptimering. Under alle omstændigheder kan du også bruge til at erstatte eller tilføje udløsere til en planlagt opgave.

i øjeblikket er den planlagte opgave Eksportapplog udløses hver dag på 3 PM. Antag at du skal ændre udløserplanen til dagligt klokken 4:30 og 1:00. Du skal først oprette to nye opgaveudløserobjekter til de to tidsplaner.

$taskTrigger1 = New-ScheduledTaskTrigger -Daily -At 4:30PM$taskTrigger2 = New-ScheduledTaskTrigger -Daily -At 1:00AM

brug derefter kommandoen nedenfor for at opdatere den planlagte opgaves trigger. Du vil bemærke -Trigger parameteren accepterer de to opgaveudløserobjekter, nemlig $taskTrigger1 og $taskTrigger2.

da du opdaterer en planlagt opgave med en adgangskode, der er gemt til brugerkontoen, skal du angive -Userog -Password værdierne igen.

Set-ScheduledTask -TaskName 'ExportAppLog' -Trigger $taskTrigger1,$taskTrigger2 -User 'DEVPC\svcTask' -Password 'PASSWORD'

nedenfor er det forventede resultat efter at have kørt koden.

opdatering af den planlagte opgave med flere udløsere

og som du kan se nedenfor, er der nu to udløsere i Eksportapplog planlagt opgave.

den planlagte opgave med flere udløsere

sletning og gendannelse af en planlagt opgave

planlagte opgaver kan blive forældede over tid. På et tidspunkt skal du muligvis udføre husholdning til planlagte opgaver. I dette afsnit lærer du, hvordan du administrerer planlagt sletning af opgaver.

sikkerhedskopiering af en planlagt opgave

før du fortsætter med at slette planlagte opgaver, er det god praksis at lave en sikkerhedskopi først. Sikkerhedskopiering af planlagte opgaver giver dig et gendannelsespunkt for, hvornår tingene går galt.

der er ingen indbygget cmdlet til at lave en planlagt opgavebackup. Men alt i Kraftshell er et objekt, og det er muligt at eksportere objekter til fil. Når du skal sikkerhedskopiere et objekt til en fil, skal du bruge Import-Clixml cmdlet.

eksempelkoden nedenfor eksporterer den planlagte opgave med navnet Eksportapplog til en fil. Du kan ændre filnavn og placering efter dine præferencer.

billedet nedenfor viser den forventede output-fil.

sikkerhedskopiering af en planlagt opgave

sletning af en planlagt opgave

Når du har sikret en sikkerhedskopi af den planlagte opgave, du kan nu fjerne den planlagte opgave. Koden nedenfor sletter den planlagte opgave med navnet Eksportapplog. Kopier koden nedenfor og kør i Kraftshell.

# Unregister the scheduled taskUnregister-ScheduledTask -TaskName 'ExportAppLog' -Confirm:$false

selvom det ikke er nødvendigt, er det altid godt at bekræfte resultatet af den planlagte opgavesletning. Brug kommandoen nedenfor til at kontrollere, at den planlagte opgave ikke længere eksisterer.

Get-ScheduledTask -TaskName 'ExportAppLog'

Hvis den planlagte opgave ikke længere eksisterer, skal du få et output som det, der vises nedenfor.

kontrol af, om den planlagte opgave ikke længere eksisterer

bemærk, at den planlagte opgavebackup ikke indeholder adgangskoder.

Gendannelse af en planlagt opgave

så du har slettet den planlagte opgave, og så viser det sig, at du ikke skulle! Hvad nu? Denne form for situation får dig til at sætte pris på begrebet sikkerhedskopier endnu mere.

Du kan genskabe den planlagte opgave ved hjælp af sikkerhedskopifilen. Og her er hvordan du kan gøre gendannelsen.først skal du importere sikkerhedskopien til din session. Koden nedenfor importerer filen c:\temp\ExportAppLog.- LML. Som følge heraf vil variablen $stBackup holde de importerede data.

# Import the Schedule Task backup$stBackup = Import-Clixml -Path c:\temp\ExportAppLog.xml

brug derefter koden nedenfor til at nulstille task principal ‘ sLogOnTypeværdi tilInteractive. Nulstilling af LogonType-værdien er afgørende for at sikre en vellykket planlagt opgavegendannelse.

# Reset the logon type to "Run only when the user is logged on."$stBackup.Principal.LogonType = 'Interactive'

det næste trin er at oprette et nyt planlagt Opgaveobjekt. Koden nedenfor opretter en ny planlagt opgave. Variablen$restoreTask gemmer det resulterende planlagte opgaveobjekt.

du vil bemærke, at de værdier, der overføres til parametrene, er dem, der importeres fra backup. De importerede værdier er i variablen $restoreTask. Parametrene er ActionTriggerSettings og Principal.

efter oprettelse af det planlagte opgaveobjekt er det tid til at registrere den planlagte opgave. Brug koden nedenfor til at registrere den gendannede planlagte opgave.

i dette eksempel er opgavenavnet ‘Eksportapplog_restored.’ParameterenInputObject accepterer det planlagte opgaveobjekt i variablen$restoreTask. Sørg for at bruge de korrekte user og password værdier.

koden er nu færdig. Kopier og kør koden for at gendanne den slettede planlagte opgave. Skærmbilledet nedenfor viser det forventede output efter at have kørt koden.

Gendannelse af en slettet planlagt opgave fra en backup

nu er den planlagte opgave registreret i systemet. Skærmbilledet nedenfor viser den gendannede planlagte opgave.

find den gendannede planlagte opgave

oversigt

funktionen planlagte opgaver i vinduer er et fremragende værktøj til opsætning af opgaver eller job. Du kan oprette de mest basale til mere komplekse opgaver. Indstillinger og indstillinger er fleksible.

med modulet planlagte opgaver er det muligt at konfigurere planlagte opgaver ved hjælp af kommandoer. Dette modul giver mulighed for og midler til at oprette og implementere planlagte opgaver programmatisk på de lokale og eksterne computere.

Microsoft har ikke opdateret modulet ScheduledTasks, og nogle avancerede indstillinger er endnu ikke let eksponeret som cmdlets. Et eksempel er at skabe en trigger til ” on arbejdsstation unlock.”Men du kan opnå disse avancerede indstillinger ved at bruge den eksisterende task scheduler CIM klasse.

ikke desto mindre er modulet til planlagte opgaver stadig et fremragende og dygtigt værktøj, som du kan føje til dit arsenal.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.