Skriptimiskeeled: powershelli kodutööd 2011, kevad, päevaõpe

From ICO wiki
Jump to navigationJump to search


Kodutööd 2011, PowerShell

Siia tulevad siis kokkuvõtted..

Jaan Igamees

Lühike jutt, mida skript teeb... bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla.

PowerShell: Jaan Igamees, kavalskript

Kaido Loonurm

Arvutiinfo: Skript leiab arvuti seadeid ja konfiguratsiooni puudutava info (arvuti nimi, mälu hulk, protsessoritüüp jne) ning väljastab selle

PowerShell: Kaido Loonurm, PCinfo.ps1

Ivar Ambos

Ühendatud ketaste info

User:Iambos

Vadim Vinogradin

Ping skript

  1. Skript, mis kontrollib, saidi IP-aadressi töötamine.
  2. Kui töötab, siis kirjutab andmeid C:\ping.txt failisse, kui ei tööta, siis kirjutab andmeid C:\ping.txt failisse ja teavitab e-maili kaudu.

PowerShell: Vadim Vinogradin, Ping skript

Tarmo Trumm

Skript mis otsib üles kindla laiendiga failid, mis on x päeva vanad ja kustutab need.

PowerShell: Tarmo Trumm,Kustutame x-päeva vanad failid

Toomas Rohumets

Skript, mis muudab võrgukaardi MAC aadressi.

User:Trohumet

Sergei Gorjunov

Skript, mis loob uut kasutajat

User:Sgorjuno

Karet Rikko

Skript võtab kõikide kasutajate home folderite suuruse ning sorteerib suuruse järgi ning kirjutab kasutajanime ning kasutatud suuruse faili.

User:Krikko

Vladimir Kolesnik

Skript, mis kuvab kõike protsesse, mille mälu on üle 1MB ja vormistab sisend faili HTML kujul

PowerShell: Vladimir Kolesnik, maluCheck | Vkolesni 19:42, 23 May 2011 (EEST)

--

Skript, mis kontrollib kas ettemääratud protsess töötab või ei.

PowerShell: Vladimir Kolesnik, minuProtsess | Vkolesni 19:42, 23 May 2011 (EEST)

Lisaks saab leida siin: User:vkolesni

Ivar Krustok

skript, mis küsib emaili, eraldab sellest user ja domeeni. Uurib välja domeeni ip aadressi, kas kodukas on üleval ja mis aadressil ja prindib selle info arvutikasutaja folderisse txt faili koos kellajaga millal küsiti.

User:ikrustok

Ilja Peters

PowerShell: Ilja Peters, Kasutajate halduse skript

Skript mis haldab lokaalseid kasutajaid (lisab/kustutab/kuvab kasutajaid ning saab hallata gruppidesse kuuluvust)

Rene Pärnpuu

Otsib lokaalsest arvutist ülesse kõik installeeritud printerid ja shareb kõikidele kasutajatele antud arvutis.

PowerShell: Rene Pärnpuu, Printerid.ps1

Arvutite Andmed

tulemüürist tuleks lubada: windows management instrumentarium UAC kinni või administrator account sisse sisendiks on fail kuhu on kirjutatud arvutite nimed, millede eraldajaks on enter väljundiks on viisakal kujul tekstifail mille ta meilile saata suudab Kasutamine kujul skript.ps1 -in sisendfail -out väljudfail

$from = "kust@minuserver.ee"
$to = "kuhu@minuserver.ee"
$smtp = "smtp.minuserver.ee"
$smtp.EnableSsl = $True
param(
    $in,
    $out  
)
$file = $out
New-Item -ItemType file $file -Force

Get-Content $in | ForEach-Object {
    $computerSystem = ""
    $computer = $_
    $computerSystem = get-wmiobject win32_computersystem -computer $computer
    $bios = get-wmiobject win32_bios -computer $computer
    $operatingsystem = get-wmiobject win32_operatingsystem -computer $computer
    $processor = get-wmiobject win32_processor -computer $computer
    if(-not $computerSystem) {
        Add-Content $file "Computer: $computer"
        Add-Content $file "Error!"
    }
    else {
        $user = $computerSystem.username
        $manufacturer = $computerSystem.manufacturer
        $model = $computerSystem.model
        $serviceTag = $bios.serialnumber
        $os = $operatingsystem.caption
        $servicePack = $operatingsystem.servicepackmajorversion
        $coreCount = @($processor)[0].numberofcores
        $procName = @($processor)[0].name
        $ram = [int]$operatingsystem.totalvisiblememorysize / 1024
        $disk = gwmi -computer $computer -class win32_logicaldisk -Credential $creds -Filter "DriveType = '3'" | select DeviceID,Size
        Add-Content $file "Computer: $computer"
        Add-Content $file "Manufacturer: $manufacturer"
        Add-Content $file "OS: $os"
        Add-Content $file "ServicePack: $servicePack"
        Add-Content $file "CoreCount: $coreCount"
        Add-Content $file "Processor Name: $procName"
        Add-Content $file "Ram: $ram"
        $i = 0
        if($disk -is [system.array]){
            while ($i -ne ($disk.length)) {
                $id = @($disk)[$i].deviceid
                $size = (@($disk)[$i].size / 1GB)
                Add-Content $file "$id $size GB"
                $i++
            }
        }
        else {
            $id = $disk.deviceid
            $size = ($disk.size / 1GB)
            Add-Content $file "$id $size GB"
        }
        }
        Add-Content $file "##############################################"
}
$smtpserver = smtp.neti.ee #Siia kirjuta oma SMTP serveri aadress
$message = new-object Net.Mail.MailMessage
$att = new-object Net.Mail.Attachment($file)
$smtp = new-object Net.Mail.SmtpClient($smtpserver)
$message.From = $from #Saatja meiliaadress
$message.To.Add($to) #Saaja meiliaadress
$message.Subject = Computer Information ( $(date) ) #E-maili pealkiri
$message.Body = $failinimi on lisatud manustesse. #E-Maili sisu ( tekst )
$message.Attachments.Add($att)
$smtp.Send($message)
 
$att.Dispose()
$message.Dispose()

Rene Sepp

Skript, mis disableb/enableb wireless adapterit.

User:rsepp

Automatiseeritud portide avamine ja sulgemine - Katrin Kukk

tulemüürist tuleks lubada: windows management instrumentarium

UAC kinni või administrator account sisse

sisendiks on failid:

1) arvutite nimed

2) portide numbrid


skript töötab kujul: skript.ps1 -pcs <sisendfail> -ports <sisendfail> -action <open|close>

param(
    $pcs,
    $action,
    $ports
)
#käime läbi masinate listi
Get-Content $pcs | ForEach-Object {
    $computer = $_
    #iga masina kohta käime läbi portide nimekirja
    Get-Content $ports | ForEach-Object {
        $port = $_
        #teeme pordid lahti
        if(action == "open") {
            Invoke-Command {netsh advfirewall firewall add rule name=Open Port $port dir=in action=allow protocol=TCP localport=$port} -ComputerName $computer
        #või paneme need kinni
        } elseif(action == "close") {
            Invoke-Command {netsh advfirewall firewall add rule name=Open Port $port dir=in action=block protocol=TCP localport=$port} -ComputerName $computer
        #või suuname kasutajat õigesti käituma
        } else {
            Write-Host "Porte kas avatakse (open) või suletakse (close)"
        }
        
    }
}

Rain Kõrgmaa

Skript kontrollib windowsi versiooni, kustutab temporary kaustast kõik (võimalikud) failid ning väljastab kasutaja kausta Logi faili. Skript eeldab, et masinasse on installeeritud Powershell 2.0.


$ver = (Get-WmiObject Win32_OperatingSystem).Version
Echo "Sinu masina versioon on:" $ver.tostring()
$count = -1
$Time = Get-Date

if($ver.tostring().Contains("5.")) {
            $Dir = Get-Childitem $Env:temp -recurse
            $Dir | Remove-Item -force -ErrorAction silentlycontinue 
            foreach ($_ in $Dir ){
            $count = $count +1
            $a = $Time.ToShortDateString()+" "+$Time.ToShortTimeString()+ "Kustutasin " +$_ +" faili"
        $a >> logi.txt}}

ElseIf($ver.tostring().Contains("6.")) {
            $Dir = Get-Childitem $Env:temp -recurse
            $Dir | Remove-Item -force -ErrorAction silentlycontinue
            foreach ($_ in $Dir ){
            $count = $count +1
            $a = $Time.ToShortDateString()+" "+$Time.ToShortTimeString()+ " Kustutasin " +$_ + " faili"
		$a >> logi.txt}}           

Else{
    echo "Ei leidnud sobivat windowsi versiooni"}