Powershell: Vaba kettaruumi hoiatus

From ICO wiki
Revision as of 16:12, 23 May 2012 by Kkapten (talk | contribs)
Jump to navigationJump to search

<#

.SYNOPSIS

Skript annab PopUp hoiatuse, kui arvuti kõvaketastel on vaba ruum otsakorral.

.DESCRIPTION

Skript küsib kasutajalt arvuti nime/ip ja kontrollib remote või local arvuti kõvakettaid. 
Kontrollitakse skriptis etteantud vaba ruumi mõõte põhjal (protsentides), mis siis annab teada, 
kas mõni kõvaketas on juba selle mõõte põhjal täis või mitte. Kui vaba ruumi on vähem kui lubatud,
siis näidatakse kasutajale hoiatust PopUp (Warning) kujul.

.Example

 C:\PS>.\diskspace-remote.ps1

.NOTES

 Autor: Kristo Kapten
 Versioon: 1.0
 Muutmise kuup2ev 23.05.2012

.LINK

https://wiki.itcollege.ee/index.php/

  1. >


  1. Funktsioon, mis tekitab PopUP akna

function WarningPopup([string]$message) { $oShell = New-Object -comobject WScript.Shell $ret = $oShell.popup($message,0,”Warning”,0 + 48) }


  1. m66de = mõõde, millal hoiatus (Warning) antakse (%)
  2. arvuti = arvuti nimi või ip (punkt (.) tähendab lokaalset masinat)


$m66de = 15

  1. Küsime kasutajalt:

Write-Host "Sisesta arvuti nimi (local = .): " $arvuti = Read-Host

  1. Kirjutab kasutajale konsooli, mida skript teeb

Write-Host “Otsin kettaid, millel on vähem kui $m66de % vaba ruumi.”


  1. Kirjutab remote arvutis olevad kettad muutujasse


$drives = Get-WMIObject Win32_Volume -ComputerName $arvuti | Select-Object DriveLetter,Capacity,FreeSpace,DriveType


  1. Foreach tsükkel, mis kontrollib kõik kõvakettad läbi
  2. DriveType -eq 3 tähendab kõvaketta (Fixed) tüüpi.


foreach($drive in $drives) { if ($drive.DriveType -eq 3)

   {


  1. Arvutab palju on igal kettal vaba ruumi


$vabaruum = [Math]::Round(([Int64]$drive.FreeSpace / [Int64]$drive.Capacity) * 100,2)


  1. Võrdleb iga ketta vaba ruumi ette antud mõõtega


if ($vabaruum -lt $m66de) {


  1. Kutsub PopUP funktsiooni ketastele, millel on ruumi vähem


WarningPopup (“Kettal " + ($drive.DriveLetter) + " - on alles vaid $vabaruum % vaba ruumi!”) }

   }

} Write-Host “Skript lõpetas oma töö.”