about_Requires

Kısa açıklama

Betiğin gerekli öğeler olmadan çalışmasını önler.

Uzun açıklama

deyimi, #Requires PowerShell sürümü, modüller (ve sürüm) ya da ek bileşenler (ve sürüm) ve sürüm önkoşulları karşılanamadıkça betiğin çalışıyor olmasına engel olur. Önkoşullar karşı olmazsa PowerShell betiği çalıştırmaz.

Syntax

#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

Söz dizimi hakkında daha fazla bilgi için bkz. ScriptRequirements.

Kullanım kuralları

Bir betik birden fazla deyim #Requires içerebilir. deyimleri #Requires bir betikte herhangi bir satırda görünebilir.

Bir #Requires işlevin içine deyimi yerleştirmek, kapsamını SıNıRLAMAZ. Tüm #Requires deyimler her zaman genel olarak uygulanır ve betiğin yürütülmeden önce karşıları olması gerekir.

Uyarı

Bir deyim #Requires bir betikte herhangi bir satırda görünse de, bir betikte bulunduğu konum, uygulama sırasını etkilemez. Betik yürütmeden #Requires önce deyiminin genel durumu karşı gerekir.

Örnek:

Get-Module AzureRM.Netcore | Remove-Module
#Requires -Modules AzureRM.Netcore

Gerekli modül deyiminden önce kaldırıldığı için yukarıdaki kodun çalışmaması gerektiğini #Requires düşünebilirsiniz. Ancak #Requires betiğin yürütülmeden önce durumu karşılastırmasi gerekirdi. Ardından betiğin ilk satırı gerekli durumu geçersiz hale verdi.

Parametreler

-Assembly <Assembly path> | <.NET assembly specification>

Önemli

Söz -Assembly dizimi kullanım dışıdır. İşlev işlevi yoktur. Söz dizimi PowerShell 5.1'e eklendi ancak destekleyen kod hiçbir zaman uygulanmadı. Geriye dönük uyumluluk için söz dizimi hala kabul edilir.

Derleme DLL dosyasının veya .NET derleme adının yolunu belirtir. Assembly parametresi PowerShell 5.0'da tanıtıldı. .NET derlemeleri hakkında daha fazla bilgi için bkz. Derleme adları.

Örneğin:

#Requires -Assembly path\to\foo.dll
#Requires -Assembly "System.Management.Automation, Version=3.0.0.0,
  Culture=neutral, PublicKeyToken=31bf3856ad364e35"

-Version <N> [. <n> ]

Betiğin gerektirdiği en düşük PowerShell sürümünü belirtir. Ana sürüm numarasını ve isteğe bağlı ikincil sürüm numarasını girin.

Örneğin:

#Requires -Version 6.0

-PSSnapin <PSSnapin-Name> [-Version <N> [. <n> ]]

Betiğin gerektirdiği bir PowerShell ek bileşenini belirtir. Ek bileşen adını ve isteğe bağlı sürüm numarasını girin.

Örneğin:

#Requires -PSSnapin DiskSnapin -Version 1.2

-Modules <Module-Name> | <Hashtable>

Betiğin gerektirdiği PowerShell modüllerini belirtir. Modül adını ve isteğe bağlı sürüm numarasını girin.

Gerekli modüller geçerli oturumda yoksa PowerShell bunları içeri aktarıyor. Modüller içe aktarılamazsa PowerShell sonlandırıcı bir hata verir.

Her modül için modül adını ( <String> ) veya karma tabloyu yazın. Değer, dizeler ve karma tabloların birleşimi olabilir. Karma tabloda aşağıdaki anahtarlar yer alır.

  • ModuleName - Gerekli Modül adını belirtir.
  • GUID - İsteğe bağlı Modülün GUID'lerini belirtir.
  • Aşağıdaki üç anahtardan birini belirtmek de gereklidir. Bu anahtarlar birlikte kullanılamaz.
    • ModuleVersion - Modülün kabul edilebilir en düşük sürümünü belirtir.
    • RequiredVersion - Modülün tam, gerekli sürümünü belirtir.
    • MaximumVersion - Modülün kabul edilebilir en yüksek sürümünü belirtir.

Not

RequiredVersion5.0 Windows PowerShell eklendi. MaximumVersion5.1 Windows PowerShell eklendi.

Örneğin:

(sürüm AzureRM.Netcore veya 0.12.0 daha büyük) yüklü olması gerekir.

#Requires -Modules @{ ModuleName="AzureRM.Netcore"; ModuleVersion="0.12.0" }

(Yalnızca AzureRM.Netcore sürüm 0.12.0 ) yüklü olması gerekir.

#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12.0" }

(sürüm AzureRM.Netcore veya 0.12.0 daha küçük) yüklü gerektirir.

#Requires -Modules @{ ModuleName="AzureRM.Netcore"; MaximumVersion="0.12.0" }

ve'nin herhangi bir AzureRM.Netcore PowerShellGet sürümünün yüklü olması gerekir.

#Requires -Modules AzureRM.Netcore, PowerShellGet

Anahtarı kullanırken RequiredVersion sürüm dizenizin tam olarak gerekli sürüm dizesiyle eş olduğundan emin olun.

Get-Module AzureRM.Netcore -ListAvailable
    Directory: /home/azureuser/.local/share/powershell/Modules

ModuleType Version Name            PSEdition ExportedCommands
---------- ------- ----            --------- ----------------
Script     0.12.0  AzureRM.Netcore Core

Aşağıdaki örnek, 0.12 0.12.0 ile tam olarak eşleşmez.

#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12" }

-PSEdition <PSEdition-Name>

Betiğin gerektirdiği bir PowerShell sürümünü belirtir. Geçerli değerler, PowerShell için Core ve Windows PowerShell.

Örneğin:

#Requires -PSEdition Core

-ShellId

Betiğin gerektirdiği kabuğu belirtir. Kabuk kimliğini girin. ShellId parametresini kullanıyorsanız PSSnapin parametresini de dahil etmek gerekir. Otomatik değişkeni sorgularsanız geçerli ShellId değerini $ShellId bulabilirsiniz.

Örneğin:

#Requires -ShellId MyLocalShell -PSSnapin Microsoft.PowerShell.Core

Not

Bu parametre, kullanım dışı olan mini kabuklarda kullanılmak üzere tasarlanmıştır.

-RunAsAdministrator

Bu switch parametresi deyiminize ekleniyorsa, betiği çalıştırarak üzerinde çalışmanız gereken PowerShell oturumunun yükseltilmiş kullanıcı haklarıyla başlat #Requires gerektiğini belirtir. RunAsAdministrator parametresi, işletim sistemi olmayan bir Windows yoksayılır. RunAsAdministrator parametresi PowerShell 4.0'da tanıtıldı.

Örneğin:

#Requires -RunAsAdministrator

Örnekler

Aşağıdaki betikte iki #Requires deyim vardır. Her iki deyimde belirtilen gereksinimler karşılamıyorsa betik çalıştırilmez. Her #Requires deyimin bir satırda ilk öğe olması gerekir:

#Requires -Modules AzureRM.Netcore
#Requires -Version 6.0
Param
(
    [parameter(Mandatory=$true)]
    [String[]]
    $Path
)
...

Ayrıca bkz.

about_Automatic_Variables

about_Language_Keywords