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 multilevel, masuk akal untuk menerapkan penyedia Windows PowerShell. Misalnya, Anda mungkin ingin menerapkan penyedia kontainer Windows PowerShell jika kata kerja cmdlet 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. Saat 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 internal penyedia. 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 memungkinkan 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 membatalkan inisialisasi 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 disediakan oleh Windows PowerShell.

Menentukan Jalur Provider-Direct

Untuk mengizinkan akses jarak jauh ke penyedia Windows PowerShell Anda, itu harus mendukung jalur langsung penyedia untuk diteruskan 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) PowerShell non-Windows, penyedia Windows PowerShell Anda harus mendukung jalur internal penyedia. Jalur ini ditunjukkan setelah "::" di jalur yang memenuhi syarat penyedia. Misalnya, jalur internal penyedia untuk penyedia Windows PowerShell FileSystem adalah \\uncshare\abc\bar.

Mengubah Data Tersimpan

Saat mengganti metode yang memodifikasi penyimpanan data yang mendasarinya, selalu panggil metode System.Management.Automation.Provider.CmdletProvider.WriteItemObject* dengan versi item paling up-to-date yang diubah oleh metode tersebut. Infrastruktur penyedia menentukan apakah objek item perlu diteruskan ke alur, seperti saat pengguna menentukan parameter -PassThru. Jika mengambil item -date paling up-toadalah operasi yang mahal (dari segi 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 sekumpulan 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 Get-Locationcmdlet , Set-Location, Pop-Location, dan Push-Location cmdlet. Anda dapat menggunakan Get-Help cmdlet untuk mendapatkan informasi tentang cmdlet lokasi ini.

Kelas Dasar CmdletProvider

Kelas System.Management.Automation.Provider.CmdletProvider mendefinisikan 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 Get-PSProvider cmdlet untuk mencantumkan semua penyedia yang tersedia untuk sesi. Implementasi cmdlet ini disediakan oleh status sesi.

Nota

Penyedia Windows PowerShell tersedia untuk semua cakupan bahasa Windows PowerShell.

Kelas Dasar DriveCmdletProvider

Kelas System.Management.Automation.Provider.DriveCmdletProvider mendefinisikan 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, Get-PSDrive cmdlet (diekspos berdasarkan status sesi) adalah cmdlet terkait yang digunakan untuk mengambil drive yang tersedia.

Cmdlet Definition
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 mendefinisikan penyedia item Windows PowerShell yang melakukan operasi pada item individual penyimpanan data, dan tidak mengasumsikan kontainer atau kemampuan navigasi apa pun. Kelas ini berasal dari kelas dasar System.Management.Automation.Provider.DriveCmdletProvider . Tabel berikut mencantumkan cmdlet yang diekspos oleh kelas ini.

Cmdlet Definition
Clear-Item Menghapus konten item saat ini di lokasi yang ditentukan, dan menggantinya dengan nilai "clear" yang ditentukan oleh penyedia. Cmdlet ini tidak meneruskan objek output melalui alur kecuali parameternya 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 meneruskan objek output melalui alur kecuali parameternya PassThru ditentukan.
Resolve-Path Menyelesaikan karakter pengganti untuk jalur Windows PowerShell, dan mengalirkan informasi jalur.
Test-Path Menguji jalur yang ditentukan, dan mengembalikan true jika ada dan false sebaliknya. Cmdlet ini diimplementasikan untuk mendukung IsContainer parameter untuk metode System.Management.Automation.Provider.CmdletProvider.WriteItemObject*.

ContainerCmdletKelas Dasar Penyedia

Kelas System.Management.Automation.Provider.ContainerCmdletProvider mendefinisikan penyedia kontainer Windows PowerShell yang mengekspos kontainer, untuk item penyimpanan data, kepada pengguna. Ketahuilah bahwa penyedia kontainer Windows PowerShell hanya dapat digunakan jika 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 mendefinisikan cmdlet yang diterapkan oleh kelas ini.

Cmdlet Definition
Copy-Item Menyalin item dari satu lokasi ke lokasi lain. Cmdlet ini tidak meneruskan objek output melalui alur kecuali parameternya PassThru ditentukan.
Get-ChildItem Mengambil item turunan 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 meneruskan objek output melalui alur kecuali parameternya PassThru ditentukan.

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

Cmdlet Definition
Combine-Path Menggabungkan dua jalur menjadi satu jalur, menggunakan pembatas khusus penyedia antar jalur. Cmdlet ini mengalirkan string.
Move-Item Memindahkan item ke lokasi yang ditentukan. Cmdlet ini tidak meneruskan objek output melalui alur kecuali parameternya PassThru ditentukan.

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

Pilih Antarmuka Penyedia untuk Mendukung

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

IContentCmdletPenyedia

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

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

IPropertyCmdletProvider

Antarmuka System.Management.Automation.Provider.IPropertyCmdletProvider mendefinisikan penyedia Windows PowerShell properti 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 Definition
Clear-ItemProperty Mengatur properti item yang ditentukan ke nilai "clear". Cmdlet ini tidak meneruskan objek output melalui alur kecuali parameternya 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 meneruskan objek output melalui alur kecuali parameternya PassThru ditentukan.

IDynamicPropertyCmdletProvider

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

Cmdlet Definition
Copy-ItemProperty Menyalin properti dari item yang ditentukan ke item lain. Cmdlet ini tidak meneruskan objek output melalui alur kecuali parameternya PassThru ditentukan.
Move-ItemProperty Memindahkan properti dari item yang ditentukan ke item lain. Cmdlet ini tidak meneruskan objek output melalui alur kecuali parameternya 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 dari item yang ditentukan. Cmdlet ini tidak meneruskan objek output melalui alur kecuali parameternya PassThru ditentukan.

ISecurityDescriptorCmdletProvider

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

Cmdlet Definition
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 ditentukan 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