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 -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.Netcorehanya 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
)
...

Lihat juga