PowerShell: Skriptide käivitamine Task Scheduleriga
<#
.SYNOPSIS
Skript kirjutab .txt faili, kuhu salvestatakse ketaste nimed ja vaba ruum. Selle faili sisu kirjutatakse omakorda suurema faili algusse.
.DESCRIPTION
Parameetrid puuduvad
.Example
C:\PS> .\skript.ps1
.NOTES
Autor: Robert Pärn
Versioon: 0.1
Muutmise kuup2ev 22.04.2012
.LINK
https://wiki.itcollege.ee/index.php/PowerShell:_Skriptide_käivitamine_Task_Scheduleriga
#>
$location=Split-Path -parent $MyInvocation.MyCommand.Definition
Get-WmiObject win32_logicaldisk| select-object volumename, deviceid, {$_.freespace/1gb} |format-table -autosize|out-file $location\currentspace.txt
new-item $location\disklog -type directory -force|out-null
new-item $location\disklog\buffer.txt -type file|out-null
copy-item $location\disklog\freespace.txt $location\disklog\buffer.txt -ea 0
$aeg=get-date
echo $aeg|out-file $location\disklog\freespace.txt
get-content $location\currentspace.txt|out-file $location\disklog\freespace.txt -append
get-content $location\disklog\buffer.txt|out-file $location\disklog\freespace.txt -append
remove-item $location\disklog\buffer.txt
echo "Kõikide ketaste vaba ruum on kirjutatud faili $location\disklog\freespace.txt"
Task Scheduleriga skripti käivitamine
Kui ilmneb vajadus skripti regulaarselt käivitada, siis seda võimalust pakub meile Task Scheduler, mille kasutus on imelihtne. Selleks, et käivitada antud skript või mõni muu skript on esmalt vaja skriptile kävitusõigusi. Skript peab olema kas allkirjastatud vaikesätetega Windows 7 operatsioonisüsteemi jaoks või peab Excecution Policy olema unrestricted. Et muuta Excecution Policyt tuleb powershellis kirjutada käsk: Set-ExecutionPolicy unrestricted.
Järgmisena tuleks avada Task Scheduler ning valida Create Task.
Edasi tuleks anda tegevusele nimi, muud atribuudid võib seadistada nii, kuidas kasutaja paremaks peab. Samuti on tähtis anda tegevusele trigger ehk atribuut, mis määrab selle, kui tihti ja mis tingimustel tegevus käivitatakse. Selleks tuleb valida Trigger sakk. Nagu pildilt näha, siis minu tegevus seatud nii, et ta kävituks korra iga tunni jooksul lõpmatult.
Järgmisena tuleks seadistada selle, et mis tegevus käivitatakse, kui tingimused selleks täidetud. Selleks valida Action sakk. Sealt saab lisaks programmi/skripti kävitamisele valida veel e-kirja saatmist ja teate kuvamist dialoogkasti näol. Minu näites käivitatakse skript nimega skript.ps1. Tasub mainida, et lihtsalt oma skripti programminime kasti kirjutades kuvatakse see skript notepadis selle käivitamise asemel. Samuti ei pea Powershell'i täielikku asukohta teadma, piisab kui kirjutada lihtsalt powershell.exe. Start in kasti on võimalik märkida kus asukohas see skript käivitada tahetakse.
Edasi on võimalik märkida ka täiendavaid tingimusi a-la kas soovite käivitada tegevuse ainult siis, kui arvuti on ühendatud vooluvõrku jne. Üldiselt võib siin kohal vajutada OK ning lasta Task Scheduleril teie eest kogu töö ära teha.