about_Requires
Deskripsi singkat
Mencegah skrip berjalan tanpa elemen yang diperlukan.
Deskripsi panjang
Pernyataan ini #Requires
mencegah skrip berjalan kecuali versi PowerShell, modul (dan versi), atau snap-in (dan versi), dan prasyarat edisi terpenuhi. Jika prasyarat tidak terpenuhi, PowerShell tidak menjalankan skrip atau menyediakan fitur runtime lainnya, seperti penyelesaian tab.
Sintaks
#Requires -Version <N>[.<n>]
#Requires -PSSnapin <PSSnapin-Name> [-Version <N>[.<n>]]
#Requires -Modules { <Module-Name> | <Hashtable> }
#Requires -PSEdition <PSEdition-Name>
#Requires -ShellId <ShellId> -PSSnapin <PSSnapin-Name> [-Version <N>[.<n>]]
#Requires -RunAsAdministrator
Untuk informasi selengkapnya tentang sintaks, lihat ScriptRequirements.
Aturan untuk digunakan
Skrip dapat menyertakan lebih dari satu #Requires
pernyataan. Pernyataan #Requires
dapat muncul di baris mana pun dalam skrip.
Menempatkan #Requires
pernyataan di dalam fungsi tidak membatasi cakupannya. Semua #Requires
pernyataan selalu diterapkan secara global, dan harus dipenuhi, sebelum skrip dapat dijalankan.
Peringatan
Meskipun #Requires
pernyataan dapat muncul di baris mana pun dalam skrip, posisinya dalam skrip tidak memengaruhi urutan aplikasinya. Status global yang #Requires
disajikan pernyataan harus dipenuhi sebelum eksekusi skrip.
Contoh:
Get-Module AzureRM.Netcore | Remove-Module
#Requires -Modules AzureRM.Netcore
Anda mungkin berpikir bahwa kode di atas tidak boleh berjalan karena modul yang diperlukan dihapus sebelum #Requires
pernyataan. Namun, status #Requires
harus dipenuhi sebelum skrip bahkan dapat dijalankan. Kemudian baris pertama skrip membatalkan status yang diperlukan.
Parameter
-Jalur> Assembly <Assembly | <. Spesifikasi rakitan NET>
Penting
-Assembly
Sintaks tidak digunakan lagi. Ini tidak berfungsi. Sintaks ditambahkan di PowerShell 5.1 tetapi kode pendukung tidak pernah diimplementasikan. Sintaks masih diterima untuk kompatibilitas mundur.
Menentukan jalur ke file DLL rakitan atau nama rakitan .NET. Parameter Assembly diperkenalkan di PowerShell 5.0. Untuk informasi selengkapnya tentang rakitan .NET, lihat Nama rakitan.
Contohnya:
#Requires -Assembly path\to\foo.dll
#Requires -Assembly "System.Management.Automation, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
-Versi <N>[.<n>]
Menentukan versi minimum PowerShell yang diperlukan skrip. Masukkan nomor versi utama dan nomor versi minor opsional.
Contohnya:
#Requires -Version 5.1
-PSSnapin <PSSnapin-Name> [-Version <N>[.<n>]]
Menentukan snap-in PowerShell yang diperlukan skrip. Masukkan nama snap-in dan nomor versi opsional.
Contohnya:
#Requires -PSSnapin DiskSnapin -Version 1.2
-Module-Name <> | <Hashtable>
Menentukan modul PowerShell yang diperlukan skrip. Masukkan nama modul dan nomor versi opsional.
Jika modul yang diperlukan tidak berada dalam sesi saat ini, PowerShell mengimpornya. Jika modul tidak dapat diimpor, PowerShell akan menampilkan kesalahan yang mengakhiri.
Pernyataan #Requires
tidak memuat definisi kelas dan enumerasi dalam modul. using module
Gunakan pernyataan di awal skrip Anda untuk mengimpor modul, termasuk definisi kelas dan enumerasi. Untuk informasi selengkapnya, lihat about_Using.
Untuk setiap modul, ketik nama modul (<String>) atau hashtable. Nilainya bisa berupa kombinasi string dan hashtable. Hashtable memiliki kunci berikut.
ModuleName
- Diperlukan Menentukan nama modul.GUID
- Opsional Menentukan GUID modul.- Diperlukan juga untuk menentukan setidaknya salah satu dari tiga kunci di bawah ini.
ModuleVersion
- Menentukan versi minimum modul yang dapat diterima.MaximumVersion
- Menentukan versi maksimum modul yang dapat diterima.RequiredVersion
- Menentukan versi modul yang tepat dan diperlukan. Ini tidak dapat digunakan dengan kunci Versi lainnya.
Catatan
RequiredVersion
ditambahkan di Windows PowerShell 5.0.
MaximumVersion
ditambahkan di Windows PowerShell 5.1.
Contohnya:
Mengharuskan ( Hyper-V
versi 1.1
atau lebih besar) diinstal.
#Requires -Modules @{ ModuleName="Hyper-V"; ModuleVersion="1.1" }
Mengharuskan (Hyper-V
hanya versi 1.1
) yang diinstal.
#Requires -Modules @{ ModuleName="Hyper-V"; RequiredVersion="1.1" }
Mengharuskan Hyper-V
(versi 1.1
atau kurang) diinstal.
#Requires -Modules @{ ModuleName="Hyper-V"; MaximumVersion="1.1" }
Mengharuskan semua versi PSScheduledJob
dan PSWorkflow
, diinstal.
#Requires -Modules PSWorkflow, PSScheduledJob
Saat menggunakan kunci RequiredVersion
, pastikan string versi Anda sama persis dengan string versi yang ingin Anda perlukan.
Get-Module Hyper-V
ModuleType Version Name ExportedCommands
---------- ------- ---- ------------------
Binary 2.0.0.0 hyper-v {Add-VMAssignableDevice, ...}
Contoh berikut gagal karena 2.0.0 tidak sama persis dengan 2.0.0.0.
#Requires -Modules @{ ModuleName="Hyper-V"; RequiredVersion="2.0.0" }
-PSEdition <PSEdition-Name>
Menentukan edisi PowerShell yang diperlukan skrip. Nilai yang valid adalah Core untuk PowerShell dan Desktop untuk Windows PowerShell.
Contohnya:
#Requires -PSEdition Core
-ShellId
Menentukan shell yang diperlukan skrip. Masukkan ID shell. Jika Anda menggunakan parameter ShellId , Anda juga harus menyertakan parameter PSSnapin .
Anda dapat menemukan ShellId saat ini dengan mengkueri $ShellId
variabel otomatis.
Contoh:
#Requires -ShellId MyLocalShell -PSSnapin Microsoft.PowerShell.Core
Catatan
Parameter ini ditujukan untuk digunakan dalam shell mini, yang telah tidak digunakan lagi.
-RunAsAdministrator
Ketika parameter sakelar ini ditambahkan ke pernyataan Anda #Requires
, parameter menentukan bahwa sesi PowerShell tempat Anda menjalankan skrip harus dimulai dengan hak pengguna yang ditinggikan. Parameter RunAsAdministrator diabaikan pada sistem operasi non-Windows. Parameter RunAsAdministrator diperkenalkan di PowerShell 4.0.
Contohnya:
#Requires -RunAsAdministrator
Contoh
Skrip berikut memiliki dua #Requires
pernyataan. Jika persyaratan yang ditentukan dalam kedua pernyataan tidak terpenuhi, skrip tidak berjalan. Setiap #Requires
pernyataan harus menjadi item pertama pada baris:
#Requires -Modules PSWorkflow
#Requires -Version 3
Param
(
[parameter(Mandatory=$true)]
[String[]]
$Path
)
...
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk