PowerShell: Skriptide käivitamine Task Scheduleriga: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Roparn (talk | contribs)
No edit summary
Roparn (talk | contribs)
No edit summary
 
(One intermediate revision 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
$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
Get-WmiObject win32_logicaldisk| select-object volumename, deviceid, {$_.freespace/1gb} |format-table -autosize|out-file $location\currentspace.txt
Line 10: Line 32:
remove-item $location\disklog\buffer.txt
remove-item $location\disklog\buffer.txt
echo "Kõikide ketaste vaba ruum on kirjutatud faili $location\disklog\freespace.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.