PowerShell: Skriptide käivitamine Task Scheduleriga: Difference between revisions
Created page with 'lolz' |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<Source lang="powershell"> | |||
<# | |||
.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" | |||
</source> | |||
=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 Policy'''t tuleb ''powershell'''is kirjutada käsk: ''Set-ExecutionPolicy unrestricted''. | |||
Järgmisena tuleks avada ''Task Scheduler'' ning valida ''Create Task''. | |||
[[File:Createtask.PNG]] | |||
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. | |||
[[File:Trigger.png]] | |||
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 ''notepad''is 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. | |||
[[File:Action.PNG]] | |||
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 Scheduler''il teie eest kogu töö ära teha. |
Latest revision as of 21:50, 22 April 2012
<#
.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.