PowerShell script minskar manuellt utförda repetitiva uppgifter. Om du ofta utför skript vid fördefinierade tidpunkter eller angivna tidsintervall kan du vara trött på att utföra skript upprepade gånger. Då kan du använda Windows aktivitetsschemaläggare för att automatisera exekveringen av skript åt dig. Det kommer att spara tid och ansträngning när du utför skript dagligen/veckavis. Låt oss se hur du schemalägger PowerShell-skript via Task Scheduler.

Det kan göras på två sätt.

1.Schemalägg PowerShell-skript med hjälp av Task Scheduler GUI

2.Schemalägga PowerShell-skript från Task Scheduler med hjälp av PowerShell

Metod 1: Schemalägga PowerShell-skript med hjälp av Task Scheduler

Öppna Task Scheduler (den finns i ”Administrationsverktyg” eller genom att trycka på ”Windows+R” för att öppna ”Kör” och sedan skriva ”Taskschd.msc”.)

För att köra ett skript från Task Scheduler följer du dessa steg.

1.Öppna Task Scheduler -> Task Scheduler Library -> Create Task

2.Under fliken General kan du ställa in schemaläggarens namn och en beskrivning av uppgiften, t.ex. för vilket syfte uppgiften har skapats.

Det finns säkerhetsalternativ som förklaras nedan.

  • Ange användaren på vars vägnar uppgiften ska köras.
  • Du kan ange att en uppgift ska köras . Det kan göras genom att välja en radioknapp med texten ”Kör oavsett om användaren är inloggad eller inte”. Om denna radioknapp väljs kommer uppgiften inte att köras interaktivt. Om du vill att en uppgift ska köras interaktivt markerar du radioknappen ”Kör endast när användaren är inloggad”.
  • När du markerar ”Kör oavsett om användaren är inloggad eller inte” kan du bli ombedd att ange autentiseringsuppgifter för kontot, oavsett om du markerar kryssrutan ”Spara inte lösenord” eller inte. Om kontot inte är inloggat under utförandet av uppgiften kommer sparade autentiseringsuppgifter att användas.
  • Om uppgiften kräver förhöjda privilegier väljer du alternativet ”Kör med högsta privilegier”.

3.Växla till fliken Trigger och klicka på knappen Ny. Här kan du ange villkor som utlöser en aktivitet.

  • Du kan ange när aktiviteten ska startas. Du kan till exempel låta den utföras enligt ett schema, vid start, vid inloggning eller när en viss händelse inträffar genom att välja rullgardinsmenyn ”Starta uppgiften”.

  • Du kan konfigurera om du vill köra uppgiften en gång, dagligen, veckovis eller månadsvis beroende på ditt scenario.
  • I ”Avancerade inställningar” kan du välja att fördröja uppgiften, upprepa uppgiften, stoppa uppgiften om den körs längre än den angivna tidsperioden och utgångsdatumet.
    • Fördröja uppgiften i upp till – Detta lägger till en slumpmässig fördröjning, så att uppgiften inte körs exakt vid den tid på dagen.
    • Upprepa uppgiften varje – Detta visar hur många gånger uppgiften ska köras efter det att en utlösare har aktiverats.
      • Repeat task every – Tidsintervall mellan varje uppgiftsupprepning
      • For a duration of- Hur länge en uppgift ska fortsätta att upprepas
  • Stop task if it runs longer than- Om uppgiften körs längre än den förväntade tiden eller aldrig avslutas, kommer uppgiften att stoppas automatiskt om den når den angivna tidsgränsen.
  • Expire – Efter den angivna tidsperioden kommer schemat inte att utlösas.

4.Öppna sedan nästa flik ”Åtgärder” och klicka på knappen ”Ny”.

  • I rullgardinsmenyn Åtgärd är ”Starta ett program” inställd som standard. Du kan ändra det vid behov.
  • Med hjälp av Bläddra väljer du program/scriptfältet. För att schemalägga ett skript måste vi välja powershell.exe.
    Du hittar powershell.exe i mappen system32\WindowsPowerShell\v1.0.

  • I ”Lägg till argument” är parametern -File standard, så det är bara att ange skriptets sökväg. Jag ska till exempel schemalägga ett skript som exporterar Office 365-användarnas MFA-statusrapport.

PowerShell

1
c:\GetMFAStatus.ps1

Om sökvägen innehåller blanksteg ska den omges av citationstecken.

5.När den har konfigurerats kan du ange villkor för att avgöra om aktiviteten ska köras. Uppgiften körs inte om något villkor som anges här inte är sant.

6.På fliken Inställningar kan du ange ytterligare avancerade inställningar för att styra utförandet av uppgiften.

Klicka slutligen på Ok för att skapa ett schemalagt skript.

Det schemalagda skriptet kommer att köras som förväntat enligt schemat utan några problem. Om du vill kontrollera skriptets utförande kan du klicka på Kör genom att högerklicka på uppgiftsnamnet.

Automatisera PowerShell-skript från Uppgiftsschemaläggaren med parametrar

Om du vill schemalägga PowerShell-skriptet med parametrar använder du nedanstående format.          Â

.

PowerShell

1
Skriptväg -Param 1 Värde1 -Param2 ”Värde 2”

Till exempel, Jag ska automatisera ett av våra PowerShell-skript: Exportera Office 365-användare MFA-statusrapport

Under schemat kan du uttryckligen överföra autentiseringsuppgifter som parametrar enligt nedan:

PowerShell

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

Om parametervärdet har blanksteg ska värdena omges av citattecken.

Om du vill skicka en switch-parameter kan du använda syntaxen nedan.

PowerShell

1
 C:\GetMFAStatus.ps1 -EnabledOnly

Ovanstående skript exporterar MFA-status för Office 365-användare vars MFA-status är aktiverad. Här är -EnabledOnly en växelparameter.

För fler Office 365-relaterade PowerShell-skript kan du hänvisa till O365Reports.com-bloggen.

Metod 2: Schemalägga PowerShell-skript från Task Scheduler med hjälp av PowerShell

Istället för GUI kan du använda PowerShell-cmdlets för att skapa schemaläggningsuppgifter som automatiserar PowerShell-skript. Det innebär följande steg,

1.Definiera tid för schemaläggaren

2.Ange åtgärder som ska utföras under utförandet

3.Spara schemaläggaren

Definiera tid för schemaläggaren:

New-SchdeuledTaskTrigger skapar ett utlösningsobjekt för schemalagd uppgift. Med den här cmdlet kan du ange starttid för en uppgift eller starta en uppgift flera gånger dagligen eller veckovis.

PowerShell

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

Ovanstående cmd skapar en utlösare för schemalagd aktivitet som startar klockan 16.00 och körs en gång.

PowerShell

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

Ovanstående cmd skapar en utlösare för schemalagd aktivitet som startar varannan dag klockan 16.00

Inställ åtgärder som ska utföras under utförandet:

New-SchdeuledTaskAction representerar åtgärder som utförs när Aktivitetsschemaläggaren kör aktiviteten. En aktivitet kan ha en enda åtgärd eller högst 32 åtgärder. När du anger flera åtgärder utför Aktivitetsschemaläggaren en aktivitet sekventiellt.    Â

Detta kommando öppnar en PowerShell och ändrar katalogen till C:/Scripts och anropar sedan skriptet MFAStatus.ps1.

Spara Schemaläggare:

Register-ScheduledTask sparar den schemalagda aktiviteten på en lokal dator.

PowerShell

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

Ovanstående cmd sparar en schemalagd aktivitet med namnet ”Schedule MFA Status Report” i rotmappen. Den sparade uppgiften använder de förskapade åtgärds- och utlösningsvärdena som anges av variablerna $Action och $Time.

Användningsfall:

Med hjälp av Aktivitetsschemaläggaren kan du schemalägga ett PowerShell-skript så att det körs med jämna mellanrum. Så att du inte behöver köra ett skript manuellt varje dag/vecka/månad. Det finns fler skript tillgängliga på internet som är schemaläggarvänliga (referenser kan skickas som en parameter i stället för att sparas i skriptet). Jag har gett några exempel här.

  • Spåra Office 365-användarnas inloggningshistorik – Behåll granskningsloggen i mer än 90 dagar
  • Periodisk rapport om Office 365-användarnas MFA-status
  • Skemaläggning av Office 365-användarnas rapport om senaste inloggningstid
  • Skemaläggning av Office 365-användarnas rapport om brevlådor med behörighet
  • Skemaläggning av Office 365-användarnas licensrapport
  • Skemaläggning. PowerShell-skript för medlemskap i distributionsgrupp
  • Schemaläggning av PowerShell-skript för dynamiskt medlemskap i distributionsgrupp
  • Periodisk rapport om Office 365-användares senaste aktivitet
  • Schemaläggning av PowerShell-rapport om Office 365-användares inloggningshistorik
  • Exportera rapport om behörigheter för delad brevlåda periodiskt
  • Schemaläggning av ickeowner mailbox access report
  • Office 365 users’ password expiry report

I den här bloggen, har vi sett hur man automatiserar ett PowerShell-skript med hjälp av Task Scheduler.Vilket tillvägagångssätt föredrar du när det gäller schemaläggning – GUI eller PowerShell? Låt oss veta det i kommentarsfältet.

Också, om du behöver några förbättringar som att få en schemalagd rapport via e-post, eller något annat, så är vi helt lyhörda 🙒

.

Lämna ett svar

Din e-postadress kommer inte publiceras.