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
Mencegah skrip berjalan tanpa elemen yang diperlukan.
Deskripsi panjang
Pernyataan #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.
Sintaksis
#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 pernyataan #Requires. Pernyataan #Requires dapat muncul di baris mana pun dalam skrip.
Menempatkan pernyataan #Requires di dalam fungsi tidak membatasi cakupannya. Semua pernyataan #Requires selalu diterapkan secara global, dan harus dipenuhi, sebelum skrip dapat dijalankan.
Peringatan
Meskipun pernyataan #Requires dapat muncul di baris mana pun dalam skrip, posisinya dalam skrip tidak memengaruhi urutan aplikasinya. Status global yang disajikan pernyataan #Requires 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 pernyataan #Requires. 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
Sintaks -Assembly 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 Assembly .
Misalnya:
#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.
Misalnya:
#Requires -Version 6.0
-Modul <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. Gunakan pernyataan using module 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. - Ini juga Diperlukan 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.
-
Nota
RequiredVersion ditambahkan di Windows PowerShell 5.0.
MaximumVersion ditambahkan di Windows PowerShell 5.1.
Misalnya:
Mengharuskan AzureRM.Netcore (versi 0.12.0 atau lebih tinggi) diinstal.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; ModuleVersion="0.12.0" }
Mengharuskan AzureRM.Netcore ( ) 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 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.
Misalnya:
#Requires -PSEdition Core
-RunAsAdministrator
Saat parameter sakelar ini ditambahkan ke pernyataan #Requires Anda, parameter ini 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.
Misalnya:
#Requires -RunAsAdministrator
Contoh
Skrip berikut memiliki dua pernyataan #Requires. Jika persyaratan yang ditentukan dalam kedua pernyataan tidak terpenuhi, skrip tidak berjalan. Setiap pernyataan #Requires harus menjadi item pertama pada baris:
#Requires -Modules AzureRM.Netcore
#Requires -Version 6.0
param
(
[Parameter(Mandatory=$true)]
[string[]]
$Path
)
...