Bagikan melalui


Gambaran Umum Penyedia Windows PowerShell

Penyedia Windows PowerShell memungkinkan penyimpanan data apa pun diekspos seperti sistem file seolah-olah itu adalah drive yang dipasang. Misalnya, penyedia Registri bawaan memungkinkan Anda menavigasi registri seperti anda akan menavigasi drive c komputer Anda. Penyedia juga dapat mengambil alih cmdlet Item (misalnya, Get-Item, Set-Item, dll.) sehingga data di penyimpanan data Anda dapat diperlakukan seperti file dan direktori diperlakukan saat menavigasi sistem file. Untuk informasi selengkapnya tentang penyedia dan drive, dan penyedia bawaan di Windows PowerShell, lihat about_Providers.

Penyedia dan Drive

Penyedia menentukan logika yang digunakan untuk mengakses, menavigasi, dan mengedit penyimpanan data, sementara drive menentukan titik masuk tertentu ke penyimpanan data (atau sebagian penyimpanan data) yang merupakan jenis yang ditentukan oleh penyedia. Misalnya, penyedia Registri memungkinkan Anda mengakses sarang dan kunci dalam registri, dan drive HKLM dan HKCU menentukan sarang yang sesuai dalam registri. Drive HKLM dan HKCU keduanya menggunakan penyedia Registri.

Saat menulis penyedia, Anda dapat menentukan drive default-drive yang dibuat secara otomatis saat penyedia tersedia. Anda juga menentukan metode untuk membuat drive baru yang menggunakan penyedia tersebut.

Jenis Penyedia

Ada beberapa jenis penyedia, yang masing-masing menyediakan tingkat fungsionalitas yang berbeda. Penyedia diimplementasikan sebagai kelas yang berasal dari salah satu turunan kelas System.Management.Automation.SessionStateCateCategoryCmdletProvider. Untuk informasi tentang berbagai jenis penyedia, lihat jenis Penyedia .

cmdlet penyedia

Penyedia dapat menerapkan metode yang sesuai dengan cmdlet, membuat perilaku kustom untuk cmdlet tersebut saat digunakan dalam drive untuk penyedia tersebut. Tergantung pada jenis penyedia, set cmdlet yang berbeda tersedia. Untuk daftar lengkap cmdlet yang tersedia untuk kustomisasi di penyedia, lihat cmdlet Penyedia .

Jalur penyedia

Pengguna menavigasi drive penyedia seperti sistem file. Karena itu, mereka mengharapkan sintaks jalur sesuai dengan jalur yang digunakan dalam navigasi sistem file. Saat pengguna menjalankan cmdlet penyedia, mereka menentukan jalur ke item yang akan diakses. Jalur yang ditentukan dapat ditafsirkan dengan beberapa cara. Penyedia harus mendukung satu atau beberapa jenis jalur berikut.

Jalur yang memenuhi syarat drive

Jalur yang memenuhi syarat drive adalah kombinasi dari nama item, kontainer dan subkontainer tempat item berada, dan drive Windows PowerShell tempat item diakses. (Drive ditentukan oleh penyedia yang digunakan untuk mengakses penyimpanan data. Jalur ini dimulai dengan nama drive diikuti dengan titik dua (:). Misalnya: Get-ChildItem C:

Jalur yang memenuhi syarat penyedia

Untuk mengizinkan mesin Windows PowerShell menginisialisasi dan tidak menginisialisasi penyedia Anda, penyedia harus mendukung jalur yang memenuhi syarat penyedia. Misalnya, pengguna dapat menginisialisasi dan tidak menginisialisasi penyedia FileSystem karena menentukan jalur yang memenuhi syarat penyedia berikut: FileSystem::\\uncshare\abc\bar.

Jalur langsung penyedia

Untuk mengizinkan akses jarak jauh ke penyedia Windows PowerShell Anda, penyedia harus mendukung jalur langsung penyedia untuk meneruskan langsung ke penyedia Windows PowerShell untuk lokasi saat ini. Misalnya, penyedia Windows PowerShell registri dapat menggunakan \\server\regkeypath sebagai jalur langsung penyedia.

Jalur penyedia-internal

Untuk mengizinkan cmdlet penyedia mengakses data menggunakan antarmuka pemrograman aplikasi (API) Non-Windows PowerShell, penyedia Windows PowerShell Anda harus mendukung jalur penyedia-internal. Jalur ini ditunjukkan setelah "::" di jalur yang memenuhi syarat penyedia. Misalnya, jalur penyedia-internal untuk penyedia FileSystem Windows PowerShell \\uncshare\abc\bar.

Mengesampingkan parameter cmdlet

Perilaku beberapa cmdlet khusus penyedia dapat ditimpa oleh penyedia. Untuk daftar parameter yang dapat ditimpa, dan cara menggantinya di kelas penyedia Anda, lihat parameter cmdlet Penyedia

Parameter dinamis

Penyedia dapat menentukan parameter dinamis yang ditambahkan ke cmdlet penyedia ketika pengguna menentukan nilai tertentu untuk salah satu parameter statis cmdlet. Penyedia melakukan ini dengan menerapkan satu atau beberapa metode parameter dinamis. Untuk daftar parameter cmdlet yang dapat digunakan untuk menambahkan parameter dinamis, dan metode yang digunakan untuk mengimplementasikannya, lihat parameter dinamis cmdlet Penyedia .

Kemampuan penyedia

Enumerasi System.Management.Automation.Provider.ProviderCapabilities menentukan sejumlah kemampuan yang dapat didukung penyedia. Ini termasuk kemampuan untuk menggunakan kartubebas, item filter, dan transaksi dukungan. Untuk menentukan kemampuan penyedia, tambahkan daftar nilai System.Management.Automation.Provider.ProviderCapabilities enumerasi, dikombinasikan dengan operasi OR logis, sebagai properti System.Management.Automation.Provider.CmdletProviderAttribute.ProviderCapabilities* * properti (parameter kedua atribut) dari System.Management.Automation.Provider.CmdletProviderAttribute untuk kelas penyedia Anda. Misalnya, atribut berikut menentukan bahwa penyedia mendukung System.Management.Automation.Provider.ProviderCapabilitiesShouldProcess dan System.Management.Automation.Provider.ProviderCapabilitiesKemampuan Transaksi.

[CmdletProvider(RegistryProvider.ProviderName, ProviderCapabilities.ShouldProcess | ProviderCapabilities.Transactions)]

Bantuan cmdlet penyedia

Saat menulis penyedia, Anda dapat menerapkan Bantuan Anda sendiri untuk cmdlet penyedia yang Anda dukung. Ini termasuk satu topik bantuan untuk setiap cmdlet penyedia atau beberapa versi topik bantuan untuk kasus di mana cmdlet penyedia bertindak secara berbeda berdasarkan penggunaan parameter dinamis. Untuk mendukung bantuan khusus cmdlet penyedia, penyedia Anda harus menerapkan antarmuka System.Management.Automation.Provider.ICmdletProviderSupportsHelp.

Mesin Windows PowerShell memanggil metode System.Management.Automation.Provider.ICmdletProviderSupportsHelp.GetHelpMaml* untuk menampilkan topik Bantuan untuk cmdlet penyedia Anda. Mesin menyediakan nama cmdlet yang ditentukan pengguna saat menjalankan cmdlet Get-Help dan jalur pengguna saat ini. Jalur saat ini diperlukan jika penyedia Anda menerapkan versi yang berbeda dari cmdlet penyedia yang sama untuk drive yang berbeda. Metode harus mengembalikan string yang berisi XML untuk Bantuan cmdlet.

Konten untuk file Bantuan ditulis menggunakan PSMAML XML. Ini adalah skema XML yang sama yang digunakan untuk menulis konten Bantuan untuk cmdlet mandiri. Tambahkan konten untuk Bantuan cmdlet kustom Anda ke file Bantuan untuk penyedia Anda di bawah elemen CmdletHelpPaths. Contoh berikut menunjukkan elemen command untuk cmdlet penyedia tunggal, dan menunjukkan cara Anda menentukan nama cmdlet penyedia yang disediakan oleh penyedia Anda. Mendukung

<CmdletHelpPaths>
  <command:command>
    <command:details>
      <command:name>ProviderCmdletName</command:name>
      <command:verb>Verb</command:verb>
      <command:noun>Noun</command:noun>
    <command:details>
  </command:command>
<CmdletHelpPath>

Lihat Juga

Fungsionalitas Penyedia Windows PowerShell

Cmdlet Penyedia

Menulis Penyedia Windows PowerShell