Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Deskripsi singkat
Menjelaskan atribut yang membuat fungsi berfungsi seperti cmdlet yang dikompilasi.
Deskripsi panjang
Atribut CmdletBinding adalah atribut fungsi yang membuatnya beroperasi seperti cmdlet yang dikompilasi yang ditulis dalam C#. Ini menyediakan akses ke fitur cmdlet.
Saat Anda menggunakan CmdletBinding atribut , PowerShell secara otomatis menambahkan Parameter Umum. Anda tidak dapat membuat parameter apa pun yang menggunakan nama yang sama dengan Parameter Umum. Untuk informasi selengkapnya, lihat about_CommonParameters.
PowerShell mengikat parameter fungsi yang memiliki CmdletBinding atribut dengan cara yang sama seperti mengikat parameter cmdlet yang dikompilasi. Variabel $PSCmdlet otomatis tersedia untuk fungsi dengan CmdletBinding atribut , tetapi $args variabel tidak tersedia.
Dalam fungsi yang memiliki CmdletBinding atribut , parameter yang tidak diketahui dan argumen posisi yang tidak memiliki parameter posisi yang cocok menyebabkan pengikatan parameter gagal.
Catatan
Cmdlet yang dikompilasi menggunakan atribut yang diperlukan Cmdlet , yang mirip CmdletBinding dengan atribut yang dijelaskan dalam topik ini.
Syntax
Contoh berikut menunjukkan format fungsi yang menentukan semua argumen CmdletBinding opsional atribut. Deskripsi singkat dari setiap argumen mengikuti contoh ini.
{
[CmdletBinding(ConfirmImpact=<String>,
DefaultParameterSetName=<String>,
HelpUri=<URI>,
SupportsPaging=<Boolean>,
SupportsShouldProcess=<Boolean>,
PositionalBinding=<Boolean>)]
param ($Parameter1)
begin {}
process {}
end {}
}
Jenis argumen boolean dari atribut CmdletBinding default ke False saat dihilangkan dari atribut CmdletBinding . Atur nilai argumen ke $true atau cukup cantumkan argumen menurut nama. Misalnya, atribut CmdletBinding berikut setara.
{
[CmdletBinding(SupportsPaging=$true)]
param ($Parameter1)
begin {}
process {}
end {}
}
# Boolean arguments can be defined using this shorthand syntax
{
[CmdletBinding(SupportsPaging)]
param ($Parameter1)
begin {}
process {}
end {}
}
ConfirmImpact
Argumen ConfirmImpact menentukan kapan tindakan fungsi harus dikonfirmasi oleh panggilan ke metode ShouldProcess . Panggilan ke metode ShouldProcess menampilkan perintah konfirmasi hanya ketika argumen ConfirmImpact sama dengan atau lebih besar dari $ConfirmPreference nilai variabel preferensi. (Nilai default argumen adalah Sedang.) Tentukan argumen ini hanya ketika argumen SupportsShouldProcess juga ditentukan.
Untuk informasi selengkapnya tentang permintaan konfirmasi, lihat Meminta Konfirmasi.
DefaultParameterSetName
Argumen DefaultParameterSetName menentukan nama kumpulan parameter yang akan coba digunakan PowerShell saat tidak dapat menentukan parameter mana yang diatur untuk digunakan. Anda dapat menghindari masalah ini dengan membuat parameter unik dari setiap parameter menetapkan parameter wajib.
HelpUri
Argumen HelpUri menentukan alamat internet dari versi online topik bantuan yang menjelaskan fungsi. Nilai argumen HelpUri harus dimulai dengan "http" atau "https".
Nilai argumen HelpUri digunakan untuk nilai properti HelpUri dari objek CommandInfo yang Get-Command kembalikan untuk fungsi tersebut.
Namun, ketika file bantuan diinstal di komputer dan nilai tautan pertama di bagian RelatedLinks file bantuan adalah URI, atau nilai kata kunci .LINK pertama dalam bantuan berbasis komentar adalah URI, URI dalam file bantuan digunakan sebagai nilai HelpUri properti fungsi.
Cmdlet Get-Help menggunakan nilai properti HelpUri untuk menemukan versi online topik bantuan fungsi saat parameter OnlineGet-Help ditentukan dalam perintah.
SupportsPaging
Argumen SupportsPaging menambahkan parameter First, Skip, dan IncludeTotalCount ke fungsi . Parameter ini memungkinkan pengguna untuk memilih output dari kumpulan hasil yang sangat besar. Argumen ini dirancang untuk cmdlet dan fungsi yang mengembalikan data dari penyimpanan data besar yang mendukung pemilihan data, seperti database SQL.
Argumen ini diperkenalkan di Windows PowerShell 3.0.
- Pertama: Hanya mendapatkan objek 'n' pertama.
- Lewati: Mengabaikan objek 'n' pertama lalu mendapatkan objek yang tersisa.
- IncludeTotalCount: Melaporkan jumlah objek dalam himpunan data (bilangan bulat) diikuti oleh objek. Jika cmdlet tidak dapat menentukan jumlah total, cmdlet mengembalikan "Jumlah total tidak diketahui".
PowerShell menyertakan NewTotalCount, metode pembantu yang mendapatkan nilai jumlah total untuk dikembalikan dan menyertakan perkiraan akurasi nilai jumlah total.
Contoh fungsi berikut menunjukkan cara menambahkan dukungan untuk parameter halaman ke fungsi tingkat lanjut.
function Get-Numbers {
[CmdletBinding(SupportsPaging)]
param()
$FirstNumber = [Math]::Min($PSCmdlet.PagingParameters.Skip, 100)
$LastNumber = [Math]::Min($PSCmdlet.PagingParameters.First +
$FirstNumber - 1, 100)
if ($PSCmdlet.PagingParameters.IncludeTotalCount) {
$TotalCountAccuracy = 1.0
$TotalCount = $PSCmdlet.PagingParameters.NewTotalCount(100,
$TotalCountAccuracy)
Write-Output $TotalCount
}
$FirstNumber .. $LastNumber | Write-Output
}
MendukungShouldProcess
Argumen SupportsShouldProcess menambahkan parameter Konfirmasi dan WhatIf ke fungsi . Parameter Konfirmasi meminta pengguna sebelum menjalankan perintah pada setiap objek dalam alur. Parameter WhatIf mencantumkan perubahan yang akan dilakukan perintah, alih-alih menjalankan perintah.
PositionalBinding
Argumen PositionalBinding menentukan apakah parameter dalam fungsi berposisi secara default. Nilai defaultnya adalah $true. Anda dapat menggunakan argumen PositionalBinding dengan nilai $false untuk menonaktifkan pengikatan posisi.
Argumen PositionalBinding diperkenalkan di Windows PowerShell 3.0.
Ketika parameter berposisi, nama parameter bersifat opsional. PowerShell mengaitkan nilai parameter yang tidak disebutkan namanya dengan parameter fungsi sesuai dengan urutan atau posisi nilai parameter yang tidak disebutkan namanya dalam perintah fungsi.
Ketika parameter tidak berposisi (mereka "bernama"), nama parameter (atau singkatan atau alias nama) diperlukan dalam perintah.
Ketika PositionalBinding adalah $true, parameter fungsi berposisi secara default. PowerShell menetapkan nomor posisi ke parameter dalam urutan di mana mereka dideklarasikan dalam fungsi.
Ketika PositionalBinding adalah $false, parameter fungsi tidak berposisi secara default.
Kecuali argumen Posisi atribut Parameter dideklarasikan pada parameter, nama parameter (atau alias atau singkatan) harus disertakan saat parameter digunakan dalam fungsi.
Argumen Posisi atribut Parameter lebih diutamakan daripada nilai default PositionalBinding. Anda dapat menggunakan argumen Posisi untuk menentukan nilai posisi untuk parameter. Untuk informasi selengkapnya tentang argumen Posisi , lihat about_Functions_Advanced_Parameters.
Catatan
Argumen SupportsTransactions tidak didukung dalam fungsi tingkat lanjut.
Kata Kunci
about_Functions_CmdletBinding_Attribute