PSDrive Nedir? Bir önceki bölümde PSProvider üzerine anlatım yapmıştım. Bu bölümde PSDrive ile devam edeceğim.
PSDrive herhangi bir data store’a olan bağlantıyı ifade eder.
Her PSDrive bir datastore’a bağlanmak için tek bir PSProvider kullanır.
PSDrive bağlantı kurmak için kullanılan tüm PSProviderların özelliklerine sahiptir.
Powershell mimarisinde drive’lar isimler ile tanımlanır. Örneğin HKCU ismi ile HKEY_CUREENT_USER registry bölümüne bağlanılır. Yada C harfi kullanılarak C drive’ına baplanılır.
Yeni bir connection oluşturmak için New-PSDrive komutu kullanılır. Oluşturulan yeni drive’ın kök lokasyonu için eşsiz bir isim kullanılır. Drive’a bağlantı yapılmasında yine PSProvider kullanılır. PSProvider’ın özelliklerine bağlı olarak alternatif credential ve diğer opsiyonlar belirlenebilir.
Windows powershell aynı drive ile herzaman yeni session kurar.
Get-PSDrive komutu kullanılarak powershell üzerindeki drive’lar listelenebilir.
Resim-1
Dikkat edilecek nokta, drive isimleri : (iki nokta üst üste) içermezler. Değişken yada alias içerirler. Fakat drive yolu(path) referans olarak gösterildiğinde : kullanılması gerekir. Örneğin C Drive’ı için C:
Dosya Sistemi Yönetimi
Resim-2
Administrator’lar dosya sistemlerini yönetirken çoğunlukla Dir, Move, Ren, RmDir, Del, Copy, MkDir, Cd gibi yaygın komutlardan faydalanırlar. Yaygın olarak kullanılan bu kısa komutlar, Windows Powershell’de belli komutlara ait alias’lardır. Yani orjinal komuttan aynı şekilde kopyalanmamışlardır.
Örneğin komut satırı üzerinde dir komutu ile belli bir dizindeki dosyalar listelenirken, dir /s ile dizinde bulunan alt klasörler ve onlara ait dosyalar da listelenir.
Resim-3
Aynı komut powershell üzerinde çalıştırıldığında aşağıdaki gibi hata verecektir.
Resim-4
Bunun nedeni powershell’deki komutun komut satırındaki komuttan türetilmemiş olmasıdır.
Powershell’de dir Get-ChildItem komutunun alias’ı dir komutudur. Anzak bu uzun yıllardan bu yana gelen alışkanlığı kelime olarak devam ettirmek içindir.
Eğer dir /s gibi dizin ve alt dizinler listelenmek istenirse powershell üzerinde Get-childItem –Recurse komutu kullanılmalıdır. Yada alias kullanılırsa komut aşağıdaki şekilde yazılmalıdır.
Dir -Recurse
Resim-5
Powershell üzerinde / yada \ ifadeleri dizin ayıracı olarak kullanılır. Bu sebeple dir /s komutu çalıştırıldığında root dizinde s isimli klasör dizini listelenmek üzere aranır. O şekilde bir klasör olduğunda komut aşağıdaki gibi hatasız çalışacaktır.
Resim-6
Item, Childıtem ve ItemProperty komutları kullanılırken path belirtilmesi gerekir. Bu komutun hangi item yada itemlar üzerinde çalışacağını belirler.
Bu komutların çoğu path için 2 adet parametreye sahiptir.
- -Path : Bu parametre ile * gibi asteriks ve ? gibi wildcard karakterler kullanılabilir. Örneğin *.txt yazıldığında bu txt uzantılı tüm dosyalar anlamına gelir.
- -LiteralPath: Bu parametre ile * yada ? –path parametresinde olduğu gibi kullanılmaz. *.abc yazıldığında ismi * olan abc uzantılı dosya aranır. Filesystem’de * yada ? isminde dosya oluşturulamayacağı komut bu şekilde çalıştırıldığında hata alınır. Bu parametre daha çok * yada ? gibi sembollerin isim olarak kullanılmasına izin veren registry gibi drive’larda kullanışlıdır.
PSDrive itemları ve bu itemlara ait parametreleri içerir.
Item’lar ile ilgili çalıştırılabilecek komutlar aşağıdaki gibidir. Itemlar dosyalar,klasörler,registry anahtarları,sertifikalar yada değişkenler olabilir.
Resim-7
ItemProperty’leri ile çalıştırılabilecek komutlar aşağıdaki gibidir. Itemproperty’lerine örnek olarak registry ayarları verilebilir.
Resim-8
Farklı PSDrive’lardaki item’lar farklı davranışlar gösterirler. Örneğin Filesystem drive’ı için dosyalar birer item’dır ve dosyaların içeriğine Get-Content ve Set-Content komutları ile erişilebilir. HKCU drive’ı için ise registry anahtarları birer item’dır ve bu item’lara ait property’lere Get-ItemProperty ve Set-ItemProperty komutları ile erişilebilir.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
TAGs : PSDrive Nedir, powershell, powershell ornek komutlar, powershell nedir, powershell psdrive, powershell psdrive kullanimi, powershell psdrive nedir,