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), 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 -Modules { <Module-Name> | <Hashtable> }
#Requires -PSEdition <PSEdition-Name>
#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 6.0
-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 ( AzureRM.Netcore
versi 0.12.0
atau lebih besar) diinstal.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; ModuleVersion="0.12.0" }
Mengharuskan (AzureRM.Netcore
hanya versi 0.12.0
) yang diinstal.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12.0" }
Mengharuskan AzureRM.Netcore
(versi 0.12.0
atau kurang) diinstal.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; MaximumVersion="0.12.0" }
Mengharuskan semua versi AzureRM.Netcore
dan PowerShellGet
diinstal.
#Requires -Modules AzureRM.Netcore, PowerShellGet
Saat menggunakan kunci RequiredVersion
, pastikan string versi Anda sama persis dengan string versi yang Anda butuhkan.
Get-Module AzureRM.Netcore -ListAvailable
Directory: /home/azureuser/.local/share/powershell/Modules
ModuleType Version Name PSEdition ExportedCommands
---------- ------- ---- --------- ----------------
Script 0.12.0 AzureRM.Netcore Core
Contoh berikut gagal karena 0,12 tidak sama persis dengan 0.12.0.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12" }
-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
-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 AzureRM.Netcore
#Requires -Version 6.0
Param
(
[parameter(Mandatory=$true)]
[String[]]
$Path
)
...