Windows Oppgaveplanlegging (eller Windows Task Scheduler) kan være et veldig nyttig verktøy for kjøring av PowerShell skript under oppstart, pålogging, hendelse, eller på et fastsatt tidspunkt.
Dette er en steg-for-steg veiledning for hvordan dette kan gjøres i Windows 10, men stegene i denne veiledningen gjør seg gjeldende for alle moderne versjoner av Windows Klient og Windows Server operativsystemer.
Windows Oppgaveplanlegging er innebygget i Windows som standard, så ingen ekstra programvareinstallasjon er nødvendig.
Slik gjøres det
- Start Windows Oppgaveplanlegging. Dette kan gjøres ved å søke, eller ved å kjøre (START+R) taskschd.msc.
- Høyreklikk på Oppgaveplanleggingsbibliotek (Task Scheduler Library) og deretter velg Opprett oppgave… (Create Task..). Et pop-up vindu med fanene Generelt (General), Utløsere (Triggers), Handlinger (Actions), Betingelser (Conditions) og Innstillinger (Settings) vil sprette opp.
I “Generelt” fanen
- I Generelt-fanen gi et navn til oppgaven i Navn (Name) feltet.
- Huk av Kjør enten brukeren er logget på eller ikke (Run whether user is logget on or not) under Sikkerhetsalternativer (Security options).
- Huk av Kjør med høyeste tilgangsrettigheter (Run with highest privileges).
I “Utløsere” fanen
I Utløser-fanen har du mange alternativer å velge i, men i denne veiledningen tar jeg utgangspungt i Etter en plan (On a schedule)
- Velg Ny… (New) og deretter velg Etter en plan under Begynn oppgaven: (Begin the task:)
- Her kan vi velge hva enn som er hensiktsmessig, men det er to viktige ting å merke seg. Det første er å huke av Aktivert (Enabled) i bunnen, den andre er å velge et tidspungt og dato i fremtiden under Start:. Dersom tidspunktet og datoen her er i fortid i det oppgaven lages vil den aldri kjøre, den vil heller aldri gjennta noen kjøring. Hver gang du rekonfigurerer oppgaven må Start: justeres til fremtid.
- Klikk OK
I “Handlinger” fanen
- I Handlinger-fanen velg Ny… (New) og fyll ut som følger:
Program/Skript: (Program/script:)
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Dette er en link til din powershell.exe fil, selv om du kjører en nyere versjon av PowerShell vil den være lokalisert i v1.0 mappen.
Legg til argumenter (valgfritt): (Add arguments (optional):)
-noprofile -executionpolicy bypass -file
"C:\powershell_script\test.ps1"
(Erstatt med sti til skript-fil)
-noprofile
parameteret starter PowerShell uten profiler-executionpolicy bypass
parameteret omgår alle restreksjoner pålagt av PowerShells “execution policy”, dette burde være trygt da du kjenner egen kode.-file
parameteret er for å åpne en fil. (din .ps1 skript-fil)
- Klikk OK. Du vil bli bedt om brukernavn og passord for brukeren som skal kjøre skriptet, denne brukeren skal ha administrative rettigheter.
Testing av oppgaven
En enkel måte å teste hvorvidt oppgaven kjører slik den skal er å lage et simpelt skript som eksporterer nåværende dato til en tekst-fil.
Get-Date >> "c:\powershell_script\testlogg.txt"