Aracılığıyla paylaş


Windows PowerShell Sağlayıcınızı Tasarlamak

Ürününüz veya yapılandırmanız bir veritabanı gibi bir veritabanı gibi bir veritabanını açığa çıkarıyorsa, Windows PowerShell sağlayıcısı uygulamalısınız. Ayrıca, ürününüz bir konteyner sağlıyorsa, çok seviyeli bir konteyner olmasa bile, Windows PowerShell sağlayıcısı uygulamak mantıklıdır. Örneğin, Copy, Move, Rename, New veya Remove komut fiili ürününüz veya yapılandırma verileriniz üzerinde mantıklıysa, Windows PowerShell konteyner sağlayıcısı uygulamak isteyebilirsiniz.

Windows PowerShell Yolları Sağlayıcınızı Belirleyin

Windows PowerShell çalışma zamanı, uygun Windows PowerShell sağlayıcısına erişmek için Windows PowerShell yollarını kullanır. Bir cmdlet bu yollardan birini belirlediğinde, çalışma zamanı ilgili veri deposuna hangi sağlayıcıyı kullanacağını bilir. Bu yollar arasında sürücü nitelikli yollar, sağlayıcı tarafından nitelikli yollar, sağlayıcıya doğrudan yollar ve sağlayıcı içi yollar yer alır. Her Windows PowerShell sağlayıcısı bu yollardan birini veya birkaçını desteklemelidir.

Windows PowerShell yolları hakkında daha fazla bilgi için bkz. Windows PowerShell Nasıl Çalışıyor.

Drive-Qualified Bir Yol Tanımlama

Kullanıcının fiziksel bir sürücüde bulunan verilere erişmesini sağlamak için, Windows PowerShell sağlayıcınız sürücü nitelikli bir yolu desteklemelidir. Bu yol, sürücü adıyla başlar ve ardından bir iki nokta (örneğin mydrive:\abc\bar) :) gelir.

Provider-Qualified Bir Yol Tanımlama

Windows PowerShell çalışma zamanının sağlayıcıyı başlatıp başlatmasını kaldırabilmesi için, Windows PowerShell sağlayıcınızın sağlayıcı nitelikli bir yolu desteklemesi gerekir. Örneğin, FileSystem::\\uncshare\abc\bar, Windows PowerShell tarafından sağlanan FileSystem sağlayıcısı için sağlayıcı nitelikli yoldur.

Provider-Direct Bir Yol Tanımlama

Windows PowerShell sağlayıcınıza uzaktan erişim sağlamak için, mevcut konum için doğrudan Windows PowerShell sağlayıcısına aktarılan sağlayıcı doğrudan bir yolu desteklemelidir. Örneğin, kayıt Windows PowerShell sağlayıcısı, \\server\regkeypath'ı sağlayıcıya doğrudan yol olarak kullanabilir.

Provider-Internal Bir Yol Tanımlama

Sağlayıcı cmdlet'in Windows dışı PowerShell uygulama arayüzleri (API'ler) kullanarak verilere erişmesini sağlamak için, Windows PowerShell sağlayıcınız sağlayıcı-iç yolu desteklemelidir. Bu yol, sağlayıcı nitelikli yolda "::" işaretinden sonra belirtilir. Örneğin, FileSystem Windows PowerShell sağlayıcısının sağlayıcı-iç yolu \\uncshare\abc\bar'dır.

Depolanmış Verilerin Değiştirilmesi

Alt veri deposunu değiştiren metotları geçersiz kılarken, her zaman System.Management.Automation.Provider.CmdletProvider.WriteItemObject* metodunu çağırın; bu yöntem tarafından değiştirilen öğenin en up-totarihli versiyonu vardır. Sağlayıcı altyapısı, kullanıcı -PassThru parametresini belirttiğinde öğe nesnesinin boru hattına geçirilmesi gerekip gerekmediğini belirler. En up-totarihli öğeyi almak performans açısından maliyetli bir işlemse, Context.PassThru özelliğini test ederek ortaya çıkan öğeyi gerçekten yazmanız gerekip gerekmediğini belirleyebilirsiniz.

Sağlayıcınız için Bir Temel Sınıf Seçin

Windows PowerShell, kendi Windows PowerShell sağlayıcınızı uygulamak için kullanabileceğiniz bir dizi temel sınıf sağlar. Bir sağlayıcı tasarlarken, bu bölümde tanımlanan ve ihtiyaçlarınıza en uygun temel sınıfı seçin.

Her Windows PowerShell sağlayıcı temel sınıfı, bir cmdlet seti sunar. Bu bölüm cmdlet'leri tanımlar, ancak parametrelerini tanımlamaz.

Oturum durumu kullanılarak, Windows PowerShell çalışma zamanı, belirli Windows PowerShell sağlayıcılarına Get-LocationSet-LocationPop-Location, , ve Push-Location cmdlet'ler gibi birkaç konum cmdlet'i sunulur. Bu konum cmdlet'leri hakkında bilgi edinmek için cmdlet'i Get-Help kullanabilirsiniz.

CmdletProvider Temel Sınıf

System.Management.Automation.Provider.CmdletProvider sınıfı, temel bir Windows PowerShell sağlayıcısını tanımlar. Bu sınıf, sağlayıcı bildirmesini destekler ve tüm Windows PowerShell sağlayıcılarına sunulan birçok özellik ve yöntem sağlar. Sınıf, cmdlet tarafından bir oturum için mevcut tüm sağlayıcıları listelemek amacıyla çağrılır Get-PSProvider . Bu cmdlet'in uygulanması oturum durumu tarafından sağlanır.

Uyarı

Windows PowerShell sağlayıcıları tüm Windows PowerShell dil kapsamları için mevcuttur.

DriveCmdletProvider Base Class

System.Management.Automation.Provider.DriveCmdletProvider sınıfı, yeni sürücü ekleme, mevcut sürücüleri kaldırma ve varsayılan sürücüleri başlatma işlemlerini destekleyen bir Windows PowerShell sürücü sağlayıcısını tanımlar. Örneğin, Windows PowerShell tarafından sağlanan Dosya Sistemi sağlayıcısı, sabit diskler ve CD/DVD cihaz sürücüleri gibi monte edilen tüm hacimler için sürücüleri başlatır.

Bu sınıf, System.Management.Automation.Provider.CmdletProvider temel sınıfından türemiştir. Aşağıdaki tablo, bu sınıf tarafından ortaya çıkan cmdlet'leri listeler. Listelenenlere ek olarak, Get-PSDrive cmdlet (oturum durumuna göre açığa çıkan) mevcut sürücüleri almak için kullanılan ilgili bir cmdlet'tir.

Cmdlet Definition
New-PSDrive Oturum için yeni bir sürücü oluşturuyor ve sürücü bilgisini yayınlıyor.
Remove-PSDrive Oturumdan bir sürücü kaldırılır.

ItemCmdletProvider Base Class

System.Management.Automation.Provider.ItemCmdletProvider sınıfı, veri deposunun bireysel öğeleri üzerinde işlem yapan bir Windows PowerShell öğe sağlayıcısını tanımlar ve herhangi bir konteyner veya navigasyon yeteneği varsaymaz. Bu sınıf, System.Management.Automation.Provider.DriveCmdletProvider temel sınıfından türemiştir. Aşağıdaki tablo, bu sınıf tarafından ortaya çıkan cmdlet'leri listeler.

Cmdlet Definition
Clear-Item Belirtilen konumdaki mevcut içeriği temizler ve sağlayıcının belirttiği "temizle" değeriyle değiştirir. Bu cmdlet, çıkış nesnesini parametresi belirtilmedikçe PassThru pipeline'dan geçirmez.
Get-Item Belirtilen konumdan öğeleri alır ve ortaya çıkan nesneleri akışa gönderir.
Invoke-Item Belirlenen yolda öğe için varsayılan eylemi çağırır.
Set-Item Belirtilen konumda belirtilen değerle bir öğe ayar. Bu cmdlet, çıkış nesnesini parametresi belirtilmedikçe PassThru pipeline'dan geçirmez.
Resolve-Path Windows PowerShell yolu için joker kartları çözülür ve yol bilgisini akışa atar.
Test-Path Belirtilen yol için test eder ve varsa veya false başka bir şekilde dönertrue. Bu cmdlet, System.Management.Automation.Provider.CmdletProvider.WriteItemObject* yöntemi için parametreyi IsContainer desteklemek üzere uygulanmıştır.

ContainerCmdletProvider Base Class

System.Management.Automation.Provider.ContainerCmdletProvider sınıfı, kullanıcı için veri depolama öğeleri için bir konteyner açan bir Windows PowerShell konteyner sağlayıcısını tanımlar. Windows PowerShell konteyner sağlayıcısının yalnızca içinde öğeler bulunan tek bir konteyner (iç içe konteyner yoksa) kullanılabileceğini unutmayın. İç içi konteynerler varsa, Windows PowerShell navigasyon sağlayıcısı uygulamalısınız.

Bu sınıf, System.Management.Automation.Provider.ItemCmdletProvider temel sınıfından türemiştir. Aşağıdaki tablo, bu sınıf tarafından uygulanan cmdlet'leri tanımlar.

Cmdlet Definition
Copy-Item Öğeleri bir konumdan diğerine kopyalar. Bu cmdlet, çıkış nesnesini parametresi belirtilmedikçe PassThru pipeline'dan geçirmez.
Get-ChildItem Belirlenen konumda alt öğeleri alır ve nesne olarak akışa atar.
New-Item Belirtilen konumda yeni öğeler oluşturur ve ortaya çıkan nesneyi akışa gönderir.
Remove-Item Belirtilen konumdan eşyaları kaldırır.
Rename-Item Bir öğenin adını belirtilen konumda yeniden adlandırır. Bu cmdlet, çıkış nesnesini parametresi belirtilmedikçe PassThru pipeline'dan geçirmez.

System.Management.Automation.Provider.NavigationCmdletProvider sınıfı, birden fazla konteyner kullanan öğeler için işlemler gerçekleştiren bir Windows PowerShell navigasyon sağlayıcısını tanımlar. Bu sınıf, System.Management.Automation.Provider.ContainerCmdletProvider temel sınıfından türemiştir. Aşağıdaki tablo, bu sınıf tarafından maruz kalan cmdlet'leri listeler.

Cmdlet Definition
Combine-Path İki yolu tek bir yolda birleştirir ve yollar arasında sağlayıcıya özgü bir sınırlayıcı kullanır. Bu cmdlet stringleri akıştırır.
Move-Item Öğeleri belirtilen konuma taşır. Bu cmdlet, çıkış nesnesini parametresi belirtilmedikçe PassThru pipeline'dan geçirmez.

İlgili bir cmdlet, Windows PowerShell tarafından sağlanan temel Parse-Path cmdlet'tir. Bu cmdlet, parametreyi Parent desteklemek için Windows PowerShell yolunu ayrıştırmak için kullanılabilir. Ana yol dizisini akıyor.

Destek Sağlayıcı Arayüzlerini Seçin

Windows PowerShell temel sınıflarından birinden türetmenin yanı sıra, Windows PowerShell sağlayıcınız aşağıdaki sağlayıcı arayüzlerinden bir veya birkaçından türeterek diğer işlevleri de destekleyebilir. Bu bölüm, bu arayüzleri ve her birinin desteklediği cmdlet'leri tanımlar. Arayüz destekli cmdlet'lerin parametrelerini tanımlamaz. Cmdlet parametre bilgisi ve Get-Help cmdlets kullanılarak Get-Command çevrimiçi olarak erişilebilir.

IContentCmdletProvider

System.Management.Automation.Provider.IContentCmdletProvider arayüzü, bir veri öğesinin içeriği üzerinde işlem yapan bir içerik sağlayıcısını tanımlar. Aşağıdaki tablo, bu arayüz tarafından ortaya çıkan cmdlet'leri listeler.

Cmdlet Definition
Add-Content Belirtilen değer uzunluklarını belirtilen öğenin içeriğine ekler. Bu cmdlet, çıkış nesnesini parametresi belirtilmedikçe PassThru pipeline'dan geçirmez.
Clear-Content Belirtilen öğenin içeriğini "temizle" değerine ayar. Bu cmdlet, çıkış nesnesini parametresi belirtilmedikçe PassThru pipeline'dan geçirmez.
Get-Content Belirtilen öğelerin içeriğini alır ve ortaya çıkan nesneleri akışa atar.
Set-Content Belirtilen öğeler için mevcut içeriğin yerini alır. Bu cmdlet, çıkış nesnesini parametresi belirtilmedikçe PassThru pipeline'dan geçirmez.

IPropertyCmdletProvider

System.Management.Automation.Provider.IPropertyCmdletProvider arayüzü, veri deposundaki öğelerin özellikleri üzerinde işlem yapan bir Windows PowerShell sağlayıcısı tanımlar. Aşağıdaki tablo, bu arayüz tarafından ortaya çıkan cmdlet'leri listeler.

Uyarı

Bu cmdlet'lerdeki parametre, Path bir özelliği tanımlamak yerine bir öğeye giden yolu gösterir.

Cmdlet Definition
Clear-ItemProperty Belirtilen öğelerin özelliklerini "temizle" değerine ayarlar. Bu cmdlet, çıkış nesnesini parametresi belirtilmedikçe PassThru pipeline'dan geçirmez.
Get-ItemProperty Belirlenen öğelerden özellikleri alır ve ortaya çıkan nesneleri akışa atar.
Set-ItemProperty Belirtilen öğelerin özelliklerini belirtilen değerlerle ayarlar. Bu cmdlet, çıkış nesnesini parametresi belirtilmedikçe PassThru pipeline'dan geçirmez.

IDynamicPropertyCmdletProvider

System.Management.Automation.Provider.IDynamicPropertyCmdletProvider arayüzü, System.Management.Automation.Provider.IPropertyCmdletProvider'dan türetilmiştir ve desteklenen cmdlet'leri için dinamik parametreler belirleyen bir sağlayıcı tanımlar. Bu tür sağlayıcı, özelliklerin çalışma zamanında tanımlanabildiği işlemleri yönetir; örneğin yeni bir özellik işlemi. Bu tür işlemler, statik olarak tanımlanmış özelliklere sahip öğeler üzerinde mümkün değildir. Aşağıdaki tablo, bu arayüz tarafından ortaya çıkan cmdlet'leri listeler.

Cmdlet Definition
Copy-ItemProperty Bir özelliği belirtilen öğeden başka bir öğeye kopyalar. Bu cmdlet, çıkış nesnesini parametresi belirtilmedikçe PassThru pipeline'dan geçirmez.
Move-ItemProperty Bir özelliği belirtilen öğeden başka bir öğeye taşır. Bu cmdlet, çıkış nesnesini parametresi belirtilmedikçe PassThru pipeline'dan geçirmez.
New-ItemProperty Belirlenen öğeler üzerinde bir özellik oluşturur ve ortaya çıkan nesneleri akışa atar.
Remove-ItemProperty Belirtilen öğeler için bir özelliği kaldırır.
Rename-ItemProperty Belirtilen öğelerin bir özelliğini yeniden adlandırır. Bu cmdlet, çıkış nesnesini parametresi belirtilmedikçe PassThru pipeline'dan geçirmez.

ISecurityDescriptorCmdletProvider

System.Management.Automation.Provider.ISecurityDescriptorCmdletProvider arayüzü, bir sağlayıcıya güvenlik tanımlayıcı işlevselliği ekler. Bu arayüz, kullanıcının veri deposunda bir öğe için güvenlik tanımlayıcı bilgilerini alıp ayarlamasını sağlar. Aşağıdaki tablo, bu arayüz tarafından ortaya çıkan cmdlet'leri listeler.

Cmdlet Definition
Get-Acl Bir dosya veya nesne gibi işletim sistemi kaynaklarını korumak için kullanılan bir güvenlik tanımlayıcısının parçası olan erişim kontrol listesindeki (ACL) bilgileri alır.
Set-Acl ACL için bilgileri ayarlar. Bu, belirlenen yol için belirlenen öğe(ler)de System.Security.AccessControl.ObjectSecurity örneği biçimindedir. Bu cmdlet, Windows PowerShell sağlayıcısı güvenlik bilgisi ayarını destekliyorsa kayıt defterindeki dosyalar, anahtarlar ve alt anahtarlar hakkında bilgi ayarlayabilir; ya da diğer herhangi bir sağlayıcı öğesi.

Ayrıca Bkz.

Windows PowerShell Sağlayıcılarının Oluşturulması

Windows PowerShell Nasıl Çalışır

Windows PowerShell SDK