PowerShell script reducerer manuelt udførelse af gentagne opgaver. Hvis du ofte udfører scripts på foruddefinerede tidspunkter eller angivne tidsintervaller, er du måske træt af at udføre scripts gentagne gange. Så kan du bruge Windows’ Opgavestyring til at automatisere scriptudførelsen for dig. Det vil spare dig tid og kræfter ved at udføre scriptet dagligt/ugentligt. Lad os se, hvordan du planlægger PowerShell-script via Opgaveskemalægger.

Det kan gøres på to måder.

1.Planlæg PowerShell-script ved hjælp af Opgaveskemalægger GUI

2.2. Planlæg PowerShell-script fra Task Scheduler ved hjælp af PowerShell

Metode 1: Planlæg PowerShell-script ved hjælp af Task Scheduler

Åbn Task Scheduler (den kan findes i “Administrationsværktøjer” eller ved at trykke “Windows+R” for at åbne Kør, og skriv derefter “taskschd.msc”.)

For at køre et script fra Opgaveskemalæggeren skal du følge disse trin.

1.Åbn Opgaveskemalæggeren -> Bibliotek for opgaveskemalæggeren -> Opret opgave

2.Under fanen Generelt kan du indstille skemalæggerens navn og beskrivelse om opgaven, f.eks. til hvilket formål opgaven er oprettet.

De tilgængelige sikkerhedsindstillinger forklares nedenfor.

  • Angiv den bruger, på hvis vegne opgaven skal køres.
  • Du kan angive, at en opgave skal køre . Det kan gøres ved at vælge en radioknap med betegnelsen “Kør uanset om brugeren er logget på ikke”. Hvis denne radioknap er valgt, vil opgaven ikke køre interaktivt. Hvis du vil have en opgave til at køre interaktivt, skal du markere valgknappen “Kør kun, når brugeren er logget på”.
  • Når “Kør uanset om brugeren er logget på eller ej” er valgt, kan du blive bedt om at angive legitimationsoplysningerne for kontoen, uanset om du markerer afkrydsningsfeltet “Gem ikke adgangskode” eller ej. Hvis kontoen ikke er logget på under udførelsen af opgaven, vil gemte legitimationsoplysninger blive brugt.
  • Hvis opgaven kræver forhøjede rettigheder, skal du vælge indstillingen “Kør med højeste rettigheder”.

3.Skift til fanen Trigger, og klik på knappen Ny. Her kan du angive betingelser, der udløser en opgave.

  • Du kan angive, hvornår opgaven skal startes. Du kan f.eks. få den udført efter en tidsplan, ved opstart, ved logon eller når en bestemt hændelse indtræffer ved at vælge rullemenuen “Start opgaven”.

  • Du kan konfigurere, om du vil køre denne opgave én gang eller dagligt eller ugentligt eller månedligt alt efter dit scenarie.
  • I “Avancerede indstillinger” kan du vælge at forsinke opgaven, gentage opgaven, stoppe opgaven, hvis den kører længere end den angivne tidsperiode og udløbsdato.
    • Forlængelse af opgave i op til – Dette tilføjer en tilfældig forsinkelse, så opgaven ikke stat på det nøjagtige tidspunkt på dagen.
    • Gentag opgave hver – Det viser antallet af gange, en opgave skal køre efter en udløser er udløst.
      • Repeat task every – Tidsinterval mellem hver opgave gentagelse
      • For a duration of- Hvor længe en opgave skal fortsætte med at gentage
  • Stop task if it runs longer than- Hvis opgaven kører længere end den forventede tid eller aldrig afsluttes, vil opgaven automatisk stoppe, hvis den når den nævnte tidsgrænse.
  • Udgå – Efter den angivne tidsperiode vil tidsplanen ikke blive udløst.

4.Åbn derefter den næste fane “Handlinger” og klik på knappen “Ny”.

  • I rullemenuen Handling er “Start et program” indstillet som standard. Du kan ændre det, hvis det er nødvendigt.
  • Vælg program/script-feltet ved hjælp af Gennemse. For at planlægge et script skal vi vælge powershell.exe.
    Du kan finde powershell.exe i din system32\WindowsPowerShell\v1.0-mappe.

  • I “Tilføj argumenter” er parameteren -Fil standard, så du skal blot angive scriptets sti. Jeg vil f.eks. planlægge et script, der eksporterer Office 365-brugernes MFA-statusrapport for Office 365-brugere.

PowerShell

1
c:\GetMFAStatus.ps1

Hvis stien indeholder et tomrum, skal den omsluttes af anførselstegn.

5. Når den er konfigureret, kan du angive betingelser for at bestemme, om opgaven skal køres. Opgaven kører ikke, hvis en af de betingelser, der er angivet her, ikke er sand.

6.På fanen Indstillinger kan du angive yderligere avancerede indstillinger for at styre udførelsen af opgaven.

Sluttelig skal du klikke på Ok for at oprette et planlagt script.

Det planlagte script kører som forventet i henhold til din tidsplan uden problemer. Hvis du vil kontrollere scriptets udførelse, kan du klikke på Kør ved at højreklikke på opgavens navn.

Automatiser PowerShell-script fra Opgavestyringsplanlæggeren med parametre

Hvis du vil planlægge PowerShell-scriptet med parametre, skal du bruge nedenstående format.         Â

PowerShell

1
Skriptsti -Param 1 Værdi1 -Param2 “Værdi 2”

For eksempel, Jeg har tænkt mig at automatisere et af vores PowerShell-scripts: Eksporter Office 365 Brugere MFA-statusrapport

Under tidsplanen kan du eksplicit videregive legitimationsoplysningerne som parametre som vist nedenfor:

PowerShell

1
C:\GetMFAStatus.ps1 -UserName “XXX XX” -Password ****

Hvis parameterværdien har mellemrum, skal værdierne omsluttes af anførselstegn.

Hvis du ønsker at videregive en switch-parameter, kan du bruge nedenstående syntaks.

PowerShell

1
>Â C:\GetMFAStatus.ps1 -EnabledOnly

Ovenstående script eksporterer Office 365-brugere MFA-status, hvis MFA-status er aktiveret. Her er -EnabledOnly en switch-parameter.

For flere Office 365-relaterede PowerShell-scripts kan du henvise til O365Reports.com blog.

Metode 2: Planlæg PowerShell-script fra opgaveskemalægger ved hjælp af PowerShell

I stedet for GUI kan du bruge PowerShell cmdlets til at oprette planlægningsopgaver, der automatiserer PowerShell-scriptet. Det indebærer følgende trin,

1.Definer tid for scheduler

2.Indstil handlinger, der skal udføres under udførelsen

3.Gem scheduler

Definer tid for scheduler:

New-SchdeuledTaskTrigger opretter et udløserobjekt for en planlagt opgave. Ved hjælp af denne cmdlet kan du angive starttidspunktet for en opgave eller starte en opgave flere gange på daglig eller ugentlig basis.

PowerShell

1
$Time=New-ScheduledTaskTrigger -At 4.00PM -Once

Ovenstående cmd opretter en planlagt opgavetrigger, der starter kl. 16.00 og køres én gang.

PowerShell

1
  $Time=New-ScheduledTaskTrigger -At 4.00PM -Daily -DaysInterval 2

Overstående cmd opretter en planlagt opgavetrigger, der starter hver 2. dag kl. 16.00

Sæt handlinger, der skal udføres under udførelsen:

Ny-SchdeuledTaskAction repræsenterer handlinger, der udføres, når Task Scheduler kører opgaven. En opgave kan have en enkelt handling eller højst 32 handlinger. Når du angiver flere handlinger, udfører Opgaveskemalæggeren en opgave sekventielt.    Â

Denne kommando åbner en PowerShell og ændrer mappen til C:/Scripts og kalder derefter scriptet MFAStatus.ps1.

Save Scheduler:

Register-ScheduledTask gemmer den planlagte opgave på en lokal computer.

PowerShell

1
Registrer-ScheduledTask -TaskName “Schedule MFA Status Report” -Trigger $Time -Action $Action -RunLevel Highest

Overstående cmd gemmer en planlagt opgave med navnet “Schedule MFA Status Report” i rodmappen. Den gemte opgave bruger de på forhånd oprettede handlings- og udløserværdier, der er angivet ved variablerne $Action og $Time.

Anvendelsestilfælde:

Med Task Scheduler kan du planlægge et PowerShell-script til at køre med jævne mellemrum. Så du ikke behøver at køre et script manuelt på daglig/ugentlig/månedlig basis. Der er flere scripts tilgængelige på internettet, som er scheduler-venlige (Credentials kan overføres som en parameter i stedet for at gemme inde i scriptet). Jeg har givet nogle eksempler her.

  • Spore Office 365-brugernes login-historik – Opbevar auditlog i mere end 90 dage
  • Periodisk rapport om Office 365-brugernes MFA-status
  • Skemalægning af Office 365-brugernes rapport om sidste logontidspunkt
  • Skemalægning af Office 365-postkassetilladelsesrapport
  • Skemalægning af Office 365-brugernes licensrapport
  • Skemalægning af Office 365-brugernes licensrapport
  • Skemalægning af Office 365-brugernes licensrapport
  • Skemalægning af PowerShell-script for distributionsgruppemedlemskab
  • Skema Dynamisk distributionsgruppemedlemskab PowerShell-script
  • Periodisk rapport om Office 365-brugernes sidste aktivitetsrapport
  • Skema PowerShell-rapport om Office 365-brugernes logonhistorik
  • Periodisk rapport om tilladelse til delt postkasse
  • Skema om ikkeejerpostkasse adgangsrapport
  • Office 365 brugernes rapport om udløbsdato for adgangskoden

I denne blog, har vi set, hvordan man automatiserer et PowerShell-script ved hjælp af Task Scheduler.Hvad er din foretrukne tilgang, når det drejer sig om planlægning – GUI eller PowerShell? Lad os vide det i kommentarfeltet.

Og hvis du har brug for forbedringer som f.eks. at få en planlagt rapport via e-mail eller noget andet, er vi lutter ører 🙒

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.