Bagikan melalui


Merancang Penyedia Windows PowerShell Anda

Anda harus menerapkan penyedia Windows PowerShell jika produk atau konfigurasi Anda mengekspos sekumpulan data yang disimpan, seperti database yang ingin dinavigasi atau dijelajahi pengguna. Selain itu, jika produk Anda menyediakan kontainer, meskipun bukan kontainer multitingkat, masuk akal untuk menerapkan penyedia Windows PowerShell. Misalnya, Anda mungkin ingin menerapkan penyedia kontainer Windows PowerShell jika cmdlet kata kerja Salin, Pindahkan, Ganti Nama, Baru, atau Hapus masuk akal sebagai operasi pada data produk atau konfigurasi Anda.

Jalur Windows PowerShell Mengidentifikasi Penyedia Anda

Runtime Windows PowerShell menggunakan jalur Windows PowerShell untuk mengakses penyedia Windows PowerShell yang sesuai. Ketika cmdlet menentukan salah satu jalur ini, runtime mengetahui penyedia mana yang akan digunakan untuk mengakses penyimpanan data terkait. Jalur ini mencakup jalur yang memenuhi syarat drive, jalur yang memenuhi syarat penyedia, jalur langsung penyedia, dan jalur penyedia-internal. Setiap penyedia Windows PowerShell harus mendukung satu atau beberapa jalur ini.

Untuk informasi selengkapnya tentang jalur Windows PowerShell, lihat Cara Kerja Windows PowerShell.

Menentukan Jalur Drive-Qualified

Untuk mengizinkan pengguna mengakses data yang terletak di drive fisik, penyedia Windows PowerShell Anda harus mendukung jalur yang memenuhi syarat drive. Jalur ini dimulai dengan nama drive diikuti dengan titik dua (:), misalnya, mydrive:\abc\bar.

Menentukan Jalur Provider-Qualified

Untuk mengizinkan runtime Windows PowerShell menginisialisasi dan tidak menginisialisasi penyedia, penyedia Windows PowerShell Anda harus mendukung jalur yang memenuhi syarat penyedia. Misalnya, FileSystem::\\uncshare\abc\bar adalah jalur yang memenuhi syarat penyedia untuk penyedia FileSystem yang dilengkapi oleh Windows PowerShell.

Menentukan Jalur Provider-Direct

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.

Menentukan Jalur Provider-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 adalah \\uncshare\abc\bar.

Mengubah Data Tersimpan

Saat menimpa metode yang memodifikasi penyimpanan data yang mendasar, selalu panggil metode System.Management.Automation.Provider.CmdletProvider.WriteItemObject* dengan versi item yang paling up-to-date yang diubah oleh metode tersebut. Infrastruktur penyedia menentukan apakah objek item perlu diteruskan ke alur, seperti ketika pengguna menentukan parameter -PassThru. Jika mengambil item -tanggal yang paling up-toadalah operasi yang mahal (bijaksana performa,) Anda dapat menguji properti Context.PassThru untuk menentukan apakah Anda benar-benar perlu menulis item yang dihasilkan.

Pilih Kelas Dasar untuk Penyedia Anda

Windows PowerShell menyediakan sejumlah kelas dasar yang dapat Anda gunakan untuk mengimplementasikan penyedia Windows PowerShell Anda sendiri. Saat merancang penyedia, pilih kelas dasar, yang dijelaskan di bagian ini, yang paling sesuai dengan kebutuhan Anda.

Setiap kelas dasar penyedia Windows PowerShell menyediakan satu set cmdlet. Bagian ini menjelaskan cmdlet, tetapi tidak menjelaskan parameternya.

Dengan menggunakan status sesi, runtime Windows PowerShell membuat beberapa cmdlet lokasi tersedia untuk penyedia Windows PowerShell tertentu, seperti cmdlet Get-Location, Set-Location, Pop-Location, dan Push-Location. Anda dapat menggunakan cmdlet Get-Help untuk mendapatkan informasi tentang cmdlet lokasi ini.

Kelas Dasar CmdletProvider

Kelas System.Management.Automation.Provider.CmdletProvider menentukan penyedia Windows PowerShell dasar. Kelas ini mendukung deklarasi penyedia dan menyediakan sejumlah properti dan metode yang tersedia untuk semua penyedia Windows PowerShell. Kelas dipanggil oleh cmdlet Get-PSProvider untuk mencantumkan semua penyedia yang tersedia untuk sesi. Implementasi cmdlet ini dilengkapi dengan keadaan sesi.

Nota

Penyedia Windows PowerShell tersedia untuk semua cakupan bahasa Windows PowerShell.

Kelas Dasar DriveCmdletProvider

Kelas System.Management.Automation.Provider.DriveCmdletProvider menentukan penyedia drive Windows PowerShell yang mendukung operasi untuk menambahkan drive baru, menghapus drive yang ada, dan menginisialisasi drive default. Misalnya, penyedia FileSystem yang disediakan oleh Windows PowerShell menginisialisasi drive untuk semua volume yang dipasang, seperti hard drive dan drive perangkat CD/DVD.

Kelas ini berasal dari kelas dasar System.Management.Automation.Provider.CmdletProvider. Tabel berikut mencantumkan cmdlet yang diekspos oleh kelas ini. Selain yang tercantum, cmdlet Get-PSDrive (diekspos oleh status sesi) adalah cmdlet terkait yang digunakan untuk mengambil drive yang tersedia.

Cmdlet Definisi
New-PSDrive Membuat drive baru untuk sesi, dan mengalirkan informasi drive.
Remove-PSDrive Menghapus drive dari sesi.

Kelas Dasar ItemCmdletProvider

Kelas System.Management.Automation.Provider.ItemCmdletProvider menentukan penyedia item Windows PowerShell yang melakukan operasi pada item individual penyimpanan data, dan tidak mengasumsikan kemampuan kontainer atau navigasi apa pun. Kelas ini berasal dari System.Management.Automation.Provider.DriveCmdletProvider kelas dasar. Tabel berikut mencantumkan cmdlet yang diekspos oleh kelas ini.

Cmdlet Definisi
Clear-Item Menghapus konten item saat ini di lokasi yang ditentukan, dan menggantinya dengan nilai "jelas" yang ditentukan oleh penyedia. Cmdlet ini tidak melewati objek output melalui alur kecuali parameter PassThru ditentukan.
Get-Item Mengambil item dari lokasi yang ditentukan, dan mengalirkan objek yang dihasilkan.
Invoke-Item Memanggil tindakan default untuk item di jalur yang ditentukan.
Set-Item Mengatur item di lokasi yang ditentukan dengan nilai yang ditunjukkan. Cmdlet ini tidak melewati objek output melalui alur kecuali parameter PassThru ditentukan.
Resolve-Path Menyelesaikan kartubebas untuk jalur Windows PowerShell, dan mengalirkan informasi jalur.
Test-Path Pengujian untuk jalur yang ditentukan, dan mengembalikan true jika ada dan false sebaliknya. Cmdlet ini diimplementasikan untuk mendukung parameter IsContainer untuk metode System.Management.Automation.Provider.CmdletProvider.WriteItemObject*.

Kelas Dasar ContainerCmdletProvider

Kelas System.Management.Automation.Provider.ContainerCmdletProvider menentukan penyedia kontainer Windows PowerShell yang mengekspos kontainer, untuk item penyimpanan data, kepada pengguna. Ketahuilah bahwa penyedia kontainer Windows PowerShell hanya dapat digunakan ketika ada satu kontainer (tidak ada kontainer berlapis) dengan item di dalamnya. Jika ada kontainer berlapis, maka Anda harus menerapkan penyedia navigasi Windows PowerShell .

Kelas ini berasal dari kelas dasar System.Management.Automation.Provider.ItemCmdletProvider. Tabel berikut menentukan cmdlet yang diterapkan oleh kelas ini.

Cmdlet Definisi
Copy-Item Menyalin item dari satu lokasi ke lokasi lainnya. Cmdlet ini tidak melewati objek output melalui alur kecuali parameter PassThru ditentukan.
Get-ChildItem Mengambil item anak di lokasi yang ditentukan, dan mengalirkannya sebagai objek.
New-Item Membuat item baru di lokasi yang ditentukan, dan mengalirkan objek yang dihasilkan.
Remove-Item Menghapus item dari lokasi yang ditentukan.
Rename-Item Mengganti nama item di lokasi yang ditentukan. Cmdlet ini tidak melewati objek output melalui alur kecuali parameter PassThru ditentukan.

Kelas System.Management.Automation.Provider.NavigationCmdletProvider menentukan penyedia navigasi Windows PowerShell yang melakukan operasi untuk item yang menggunakan lebih dari satu kontainer. Kelas ini berasal dari System.Management.Automation.Provider.ContainerCmdletProvider kelas dasar. Tabel berikut mencantumkan cmdlet yang diekspos oleh kelas ini.

Cmdlet Definisi
Combine-Path Menggabungkan dua jalur ke dalam satu jalur, menggunakan pemisah khusus penyedia di antara jalur. Cmdlet ini mengalirkan string.
Move-Item Memindahkan item ke lokasi yang ditentukan. Cmdlet ini tidak melewati objek output melalui alur kecuali parameter PassThru ditentukan.

Cmdlet terkait adalah cmdlet Parse-Path dasar yang dilengkapi oleh Windows PowerShell. Cmdlet ini dapat digunakan untuk mengurai jalur Windows PowerShell untuk mendukung parameter Parent. Ini mengalirkan string jalur induk.

Pilih Antarmuka Penyedia untuk Didukung

Selain berasal dari salah satu kelas dasar Windows PowerShell, penyedia Windows PowerShell Anda dapat mendukung fungsionalitas lain dengan berasal dari satu atau beberapa antarmuka penyedia berikut. Bagian ini mendefinisikan antarmuka tersebut dan cmdlet yang didukung oleh masing-masing. Ini tidak menjelaskan parameter untuk cmdlet yang didukung antarmuka. Informasi parameter cmdlet tersedia secara online menggunakan cmdlet Get-Command dan Get-Help.

IContentCmdletProvider

Antarmuka System.Management.Automation.Provider.IContentCmdletProvider menentukan penyedia konten yang melakukan operasi pada konten item data. Tabel berikut mencantumkan cmdlet yang diekspos oleh antarmuka ini.

Cmdlet Definisi
Add-Content Menambahkan panjang nilai yang ditunjukkan ke konten item yang ditentukan. Cmdlet ini tidak melewati objek output melalui alur kecuali parameter PassThru ditentukan.
Clear-Content Mengatur konten item yang ditentukan ke nilai "hapus". Cmdlet ini tidak melewati objek output melalui alur kecuali parameter PassThru ditentukan.
Get-Content Mengambil konten item yang ditentukan dan mengalirkan objek yang dihasilkan.
Set-Content Menggantikan isi yang ada untuk item yang ditentukan. Cmdlet ini tidak melewati objek output melalui alur kecuali parameter PassThru ditentukan.

IPropertyCmdletProvider

Antarmuka System.Management.Automation.Provider.IPropertyCmdletProvider menentukan properti penyedia Windows PowerShell yang melakukan operasi pada properti item di penyimpanan data. Tabel berikut mencantumkan cmdlet yang diekspos oleh antarmuka ini.

Nota

Parameter Path pada cmdlet ini menunjukkan jalur ke item alih-alih mengidentifikasi properti.

Cmdlet Definisi
Clear-ItemProperty Mengatur properti item yang ditentukan ke nilai "hapus". Cmdlet ini tidak melewati objek output melalui alur kecuali parameter PassThru ditentukan.
Get-ItemProperty Mengambil properti dari item yang ditentukan dan mengalirkan objek yang dihasilkan.
Set-ItemProperty Mengatur properti item yang ditentukan dengan nilai yang ditunjukkan. Cmdlet ini tidak melewati objek output melalui alur kecuali parameter PassThru ditentukan.

IDynamicPropertyCmdletProvider

Antarmuka System.Management.Automation.Provider.IDynamicPropertyCmdletProvider, berasal dari antarmuka System.Management.Automation.Provider.IPropertyCmdletProvider, menentukan penyedia yang menentukan parameter dinamis untuk cmdlet yang didukung. Jenis penyedia ini menangani operasi yang propertinya dapat ditentukan pada waktu proses, misalnya, operasi properti baru. Operasi tersebut tidak dimungkinkan pada item yang memiliki properti yang ditentukan secara statis. Tabel berikut mencantumkan cmdlet yang diekspos oleh antarmuka ini.

Cmdlet Definisi
Copy-ItemProperty Menyalin properti dari item yang ditentukan ke item lain. Cmdlet ini tidak melewati objek output melalui alur kecuali parameter PassThru ditentukan.
Move-ItemProperty Memindahkan properti dari item yang ditentukan ke item lain. Cmdlet ini tidak melewati objek output melalui alur kecuali parameter PassThru ditentukan.
New-ItemProperty Membuat properti pada item yang ditentukan dan mengalirkan objek yang dihasilkan.
Remove-ItemProperty Menghapus properti untuk item yang ditentukan.
Rename-ItemProperty Mengganti nama properti item yang ditentukan. Cmdlet ini tidak melewati objek output melalui alur kecuali parameter PassThru ditentukan.

ISecurityDescriptorCmdletProvider

Antarmuka System.Management.Automation.Provider.ISecurityDescriptorCmdletProvider menambahkan fungsionalitas deskriptor keamanan ke penyedia. Antarmuka ini memungkinkan pengguna untuk mendapatkan dan mengatur informasi pendeskripsi keamanan untuk item di penyimpanan data. Tabel berikut mencantumkan cmdlet yang diekspos oleh antarmuka ini.

Cmdlet Definisi
Get-Acl Mengambil informasi yang terkandung dalam daftar kontrol akses (ACL), yang merupakan bagian dari deskriptor keamanan yang digunakan untuk menjaga sumber daya sistem operasi, misalnya, file atau objek.
Set-Acl Mengatur informasi untuk ACL. Ini dalam bentuk instans System.Security.AccessControl.ObjectSecurity pada item yang ditunjuk untuk jalur yang ditentukan. Cmdlet ini dapat mengatur informasi tentang file, kunci, dan subkunci dalam registri, atau item penyedia lainnya, jika penyedia Windows PowerShell mendukung pengaturan informasi keamanan.

Lihat Juga

Membuat Penyedia Windows PowerShell

Cara Kerja Windows PowerShell

Windows PowerShell SDK