Ramai orang suka menggunakan PowerShell kerana ia membolehkan mereka melakukan perkara yang tidak boleh dilakukan dengan GUI Windows. Walaupun begitu, tidak dapat dinafikan bahawa sesetengah cmdlet PowerShell boleh menjadi agak membosankan atau rumit. Tetapi bagaimana jika ada cara untuk dapat mengedit cmdlet ini dan menjadikannya "berkelakuan" seperti yang anda mahukan? Percaya atau tidak, ada cara mudah untuk melakukannya. Anda boleh menukar tingkah laku cmdlet dengan mengubah suai nilai parameter lalai PowerShell. Artikel ini akan menunjukkan kepada anda cara menggunakan parameter lalai PowerShell untuk menukar tingkah laku arahan cmdlet.
Amaran
Sebelum anda memulakan, terdapat beberapa perkara yang perlu anda ingat. Walaupun menukar parameter lalai PowerShell dan tingkah laku cmdelt adalah mudah, ia boleh membawa kepada masalah. Jika anda menjalankan skrip dan skrip itu menganggap cmdlet yang diubah suai akan berkelakuan dengan cara tertentu, anda mungkin mendapat hasil yang tidak dapat diramalkan. Oleh itu, anda harus memastikan untuk menukar parameter lalai PowerShell dengan berhati-hati.
Semakan pantas
Terdapat dua konsep PowerShell yang anda perlu biasakan untuk berfungsi dengan parameter lalai. Konsep pertama adalah berubah-ubah. Dalam PowerShell, nama pembolehubah sentiasa bermula dengan tanda dolar dan anda boleh menulis kandungan pembolehubah dengan menaip nama pembolehubah.
Konsep kedua yang mungkin anda kenali ialah jadual hash. Jadual cincang pada asasnya ialah senarai yang terdiri daripada pasangan kunci/nilai. Sebagai contoh, katakan anda ingin membuat jadual cincang yang mengandungi nama negeri AS dan singkatannya. Di bawah ialah kod:
$StateList = @{}
$StateList.add('Florida','FL')
$StateList.add('South Carolina','SC')
$StateList.add('Georgia','GA')
$StateList
Baris pertama kod mencipta jadual cincang kosong yang dipanggil $StateList . Tiga baris seterusnya menambah entri pada jadual. Setiap entri terdiri daripada kunci (nama negeri) dan nilai (singkatan negeri). Baris terakhir menyenaraikan kandungan jadual. Anda boleh melihat kod dalam tindakan dalam imej di bawah.
Ini hanyalah contoh yang sangat mudah dan terdapat banyak cara lain untuk menggunakan jadual cincang.
Bekerja dengan parameter lalai PowerShell
PowerShell mempunyai pembolehubah terbina dalam yang digunakan untuk menyimpan parameter lalai yang digunakan dengan cmdletnya. Pembolehubah ini dipanggil $PSDefaultParameterValues . Seperti yang mungkin anda perhatikan dari pengenalan awal dan nama pembolehubah, ini bukan pembolehubah biasa tetapi jadual cincang. Walau bagaimanapun, jika anda memasukkan nama pembolehubah ke dalam PowerShell, anda akan melihat dengan cepat bahawa jadual itu kosong, seperti yang ditunjukkan di bawah.

Jadi apa yang boleh kita lakukan dengan pembolehubah $PSDefaultParameterValues ini . Seperti yang dinyatakan di atas, anda boleh mengawal kelakuan cmdlet PowerShell. Satu-satunya perkara ialah anda tidak boleh mengatasi keupayaan sedia ada arahan cmdlet. Jadi mari kita lihat contoh.
Contoh ini, mungkin bukan sesuatu yang anda mahu gunakan dalam kehidupan sebenar, tetapi ia akan menunjukkan kepada anda betapa mudahnya untuk menukar tingkah laku cmdlet secara radikal. Jika anda memasukkan cmdlet Get-TimeZone dalam PowerShell, anda akan melihat nama zon waktu PC anda sedang dikonfigurasikan untuk digunakan. Anda boleh melihat contoh ini dalam imej di bawah.
![Cara menggunakan parameter lalai PowerShell untuk menukar tingkah laku arahan Cara menggunakan parameter lalai PowerShell untuk menukar tingkah laku arahan]()
Sekarang kita menukar cmdlet ini supaya ia tidak memaparkan zon waktu sistem dikonfigurasikan untuk digunakan, tetapi sebaliknya zon waktu yang tersedia. Untuk melakukan ini, kami memerlukan sintaks cmdlet menggunakan cmdlet Get-Help diikuti dengan cmdlet Get-TimeZone . Anda boleh melihat sintaks cmdlet di bawah.
![Cara menggunakan parameter lalai PowerShell untuk menukar tingkah laku arahan Cara menggunakan parameter lalai PowerShell untuk menukar tingkah laku arahan]()
Sintaks ini termasuk parameter yang dipanggil ListAvailable . Masukkan arahan di bawah:
$PSDefaultParameterValues.Add("Get-TimeZone:ListAvailable",$True)
Bahagian pertama arahan ini hanya memberitahu PowerShell bahawa anda ingin menambah nilai pada jadual cincang, sama seperti yang kami lakukan dengan contoh singkatan negeri AS dalam bahagian sebelumnya. Jadual cincang ini mengandungi pasangan kunci/nilai. Dalam kes ini kuncinya ialah nama cmdlet (Get-TimeZone) diikuti dengan koma dan nama parameter yang anda ingin tetapkan. Dalam kes ini, nama parameter ialah ListAvailable. Bahagian kedua cmdlet ini ialah nilai yang anda ingin tetapkan kepada parameter. Inilah $True . Parameter ListAvailable biasanya tidak memerlukan nilai, jadi menyatakan $True ialah cara anda memberitahu PowerShell untuk menggunakan parameter ini tanpa memberikan nilai kepadanya.
Jika anda melihat imej di bawah, anda akan melihat apa yang berlaku apabila anda menjalankan cmdlet Get-TimeZone.
![Cara menggunakan parameter lalai PowerShell untuk menukar tingkah laku arahan Cara menggunakan parameter lalai PowerShell untuk menukar tingkah laku arahan]()
Perkara yang perlu diingat
Perkara yang paling penting untuk difahami ialah menambah nilai baharu untuk parameter lalai PowerShell adalah untuk menukar tingkah laku lalai cmdlet, bukan mengalih keluar keupayaan cmdlet. Walaupun anda menukar cmdlet Get-TimeZone untuk menunjukkan zon waktu yang tersedia dan bukannya menunjukkan zon waktu semasa. Anda masih boleh memaparkan maklumat zon waktu semasa jika anda melihat lebih banyak lagi.
Perkara lain yang perlu anda ketahui ialah parameter lalai tersuai boleh dialih keluar. Untuk mengalih keluar satu item, gunakan arahan $PSDefaultParameterValues.Remove , diikuti dengan nama item yang ingin anda alih keluar. Sebagai contoh:
$PSDefaultParameterValues.Remove("Get-TimeZone:ListAvailable")
Sebaliknya, anda boleh memadamkan keseluruhan kandungan jadual cincang menggunakan arahan ini:
$PSDefaultParameterValues.Clear();
Anda boleh melihat contoh kedua-dua teknik di bawah:
![Cara menggunakan parameter lalai PowerShell untuk menukar tingkah laku arahan Cara menggunakan parameter lalai PowerShell untuk menukar tingkah laku arahan]()
Anda boleh memadamkan keseluruhan jadual cincang atau memadamkan satu entri.
Menukar kelakuan lalai arahan cmdlet adalah sesuatu yang anda jarang lakukan, tetapi apabila anda memerlukannya, anda sudah tahu cara mengubahnya.
Semoga berjaya!
Lihat lagi: