Skript, mis teeb sama mis WinToFLash

From ICO wiki
Revision as of 09:12, 15 May 2012 by Rlehiste (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Skript

<#
.SYNOPSIS
 Loob bootiva usb pulga kust on võimalik installida windowsi 7 ja 8
.DESCRIPTION
  Vajalik USB pulga suurus vähemalt 4 GB ja Windows 7 või 8 plaat või mounditud image
  Windows peab olema sama arhitektuuriga, mis etteantav windowsi plaat. Näiteks Windows 64-bit ja cd 64-bit
.Example
  C:\PS>.\windowsalmighty.ps1 
.NOTES
  Autor: Rauno Lehiste 
  Versioon: 0.1
  Muutmise kuup2ev 15.05.201
.LINK
  https://wiki.itcollege.ee/index.php/Skript,_mis_teeb_sama_mis_WinToFLash
.PROBLEMS
  Ei pruugi toimida kõikide USB 2.0 pulkadega.
  Kui UBS pulgal on juba eelnevalt NTFS ja bootable, ei suuda bootsect.exe oma tööd teha
#>
function otsi( $path ) {     
    $object = New-Object -comObject Shell.Application  
    $popup = new-object -comobject wscript.shell
    $folder = $object.BrowseForFolder(0, 'Kus asub Windows plaat', 0, 0 )
    if ($folder -ne $null) { 
        $asukoht = $folder.self.Path
         if ((test-path $asukoht\boot) -eq 'true'){
              $path = $path[0]+':'              
              $vastus = $popup.popup("Alustame USB pulga $path formateerimist. Kõik andmed kustutatkse! Jätkame?",0,"Format",4)
              if($vastus -eq 6){           
                  $format = (Get-WmiObject -Class Win32_Volume -Filter "DriveLetter='$path'" ). `
                  Format('NTFS',$true,4096,"Windows_Almighty",$false);
                  #kui error, peamine probleem EI ole admin.        
                  if ($format.ReturnValue -eq 3){
                      $popup.popup('Esines tõrge. Käivita powershell Run as Adminstrator, ehk aitab',0,"!!ERROR!!",0)
                  }
                 else{
                     $cp = $asukoht
                     if ($asukoht.EndsWith('\') -eq 'true'){
                        $asukoht = $asukoht+'boot\'
                     }             
                     Set-Location $asukoht
                     bootsect.exe /nt60 $path                     
                     Set-Location $path
                     $popup.popup("Andmeid hakatakse kopeerima. Nüüd läheb kaua aega.(kuni 15min.) Palun ära eemalda arvutist usbd või windowsi plaati",0,'Selge?',0)
                     copy $cp* $path -recurse -force
                     $popup.popup("Valmis. Meeldivat kasutamist!",0,'Valmis',0)
                }
            }
         }
         else{
            otsi ( $path )
         }
    }
} 

function check_usb(){
    $usb = (Get-WmiObject -Class win32_logicaldisk | where { $_.driveType -eq 2 } | where { $_.Size -gt 0 } | select -First 1 )
    $a = new-object -comobject wscript.shell     
    if (!$usb){
        $vastus = $a.popup("Ei leitud USB pulka",0,"!!ERROR!!",5)
        if($vastus -eq 4){
            check_usb
        }
        else{
           break
        }
    }
    else{
        $usb.DeviceID
    }    
}


$a = new-object -comobject wscript.shell 
$vastus = $a.popup("Antud skript loob bootiva usb mille pealt saab paigaldada Windows 7 ja 8. Olenevalt Teie etteantud Windowsi plaadist. Lisaks peab teie hetkel kasutatav operatsioonisüsteem olema Windows 7 ja sama arhitektuuriga mis Windowsi plaat. Katsetatud on ainult USB 2.0 pulik. Kas soovid jätkata?", ` 
                    0,"USB almighty v0.1",4) 
if ($vastus -eq 6) { 
        $check = check_usb
        otsi ($check)
    }