Windows 8 Disk İmajlarını (ISO) Powershell ile Yönetmek

Windows 8 ile gelen yeniliklerden bir tanesi de ISO uzantılı image dosyalarını ek bir uygulamaya (daemon tools vs.) gerek kalmadan Windows içerisine mount edebilmeniz yani sürücü gibi kullanabilmeniz. Genellikle işletim sistemi kurulum ve güncelleştirme dosyaları gibi yüksek boyutlu dosyalar ISO uzantısıyla download edilirler. Bu dosyaları extract (ayıkla) ederek kurulum yapabilirsiniz ancak bu hem zaman hem de disk alanı kaybı anlamına gelir. Windows 8 içerisinde ISO dosyasının üzerine sağ tıklayarak Mount demeniz yeterli. Sonrasında C,D,E gibi yeni bir sürücüye daha sahip olabilirsiniz. Bu özelliği zaten Windows 8 ile kullanmaya başladık. Ancak bu özelliği Powershell içerisinden nasıl kullanabiliriz buna bir bakalım!

Öncelikle Disk imajları için Windows 8 içerisinde 3 adet cmdlet bulunur. Bunlar Storage Modülünün altında yer alır.

Zaten Disk imajıyla yapılabilecekler de bunlar. İmajın detaylarını görmek (get-diskimage), mount etmek (mount-diskimage) ve dismount etmek (dismount-diskimage).

Şimdi bunları sırasıyla hızlıca örneklendirelim. Önce bilgisayarımda bulunan iso dosyalarının detaylarını görmek istiyorum. Ne yapmalıyım? Bakalım..

Get-diskimage –imagepath c:BakiOnur en_office_professional_plus_2013_x64_dvd_1123674.iso

Evet yukarıdaki komut bana iso dosyalarımdan seçtiğim bir tanesinin özelliklerini getirir. Ancak sizin de bildiğiniz gibi iso dosyaları çok uzun dosya isimlerine sahiptir ve bunu yazmak zaman alabilir. Bunun yerine bilgisayarımdaki iso dosyalarının her birinin ismini sistem otomatik alıp getirse? Bence hoş olur.

Dir –Recurse –Filter *.iso | Foreach{get-Diskİmage –ImagePath $_.fullname}

Bu sayede bilgisayarımdaki iso dosyalarının hepsini alarak tek tek (foreach) disk-Image cmdlet’i ile birlikte kullandım. Pipeline güzelliğini her komutla yeniden yaşamak paha biçilemez. J

Gördüğünüz gibi dosyanın uzun ismini yazmaktansa fullname değişkeni sayesainde bu işimi de gördüm. Böylece bana tüm iso dosyalarımın özellikleri geldi.

Şimdi istediğim iso dosyalarını Mount etmek zamanı.. Bunun için de Mount-DiskImage cmdlet’ini kullanıyorum.

Dir –Recurse –Filter *.iso | Foreach{Mount-Diskİmage –ImagePath $_.fullname}

Bu komutun ne kadar hızlı çalıştığını gördükten sonra bakalım başarılı olduk mu? Evet “Bilgisayarım”a girerek 2 ISO dosyası Mount edilerek oluşturulmuş 2 sürücü görüyorum (G ve H).

Bir kere de şimdi bakalım bu sürücülerin durumu neymiş..

Dir –Recurse –Filter *.iso | Foreach{get-Diskİmage –ImagePath $_.fullname} | Get-Volume

Ve sırada işim bittikten sonra bu imajları geri sökmek kaldı. Bunu da dismount ile yapmalıyım elbette.

Dir –Recurse –Filter *.iso | Foreach{Mount-Diskİmage –ImagePath $_.fullname}

Ben bu örnekte bilgisayarımda bulunan tüm iso dosyaları için bu işlemi yaptım. Sizler spesifik bir dosya için get, Mount ve Dismount cmdlet’lerini kullanacaksanız o zaman doğrudan işlem yapmak istediğiniz ISO dosyasının yolunu göstererek çalışınız.

Örnek:

Get-DiskImage –Imagepath “iso dosyasının yolu (dosya ismi ve uzantı dahil)”

Mount-DiskImage –ImagePath “iso dosyasının yolu (dosya ismi ve uzantı dahil)”

Dismount-DiskImage –ImagePath “iso dosyasının yolu (dosya ismi ve uzantı dahil)”

Umaırm işinize yarar..

Teşekkürler,

BakiOnur