hakkında gerektirir
Kısa açıklama
Bir betiğin gerekli öğeler olmadan çalışmasını engeller.
Uzun açıklama
#Requires ifadesi, PowerShell sürümü, modülleri (ve sürümü) ve sürüm önkoşulları karşılanmadığı sürece bir betiğin çalışmasını engeller. Önkoşullar karşılanmazsa PowerShell betiği çalıştırmaz veya sekme tamamlama gibi diğer çalışma zamanı özelliklerini sağlamaz.
Sözdizimi
#Requires -Version <N>[.<n>]
#Requires -Modules { <Module-Name> | <Hashtable> }
#Requires -PSEdition <PSEdition-Name>
#Requires -RunAsAdministrator
Sözdizimi hakkında daha fazla bilgi için bkz.
Kullanım kuralları
Bir komut dosyası birden fazla #Requires ifadesi içerebilir. #Requires ifadeleri bir komut dosyasındaki herhangi bir satırda görünebilir.
Bir işlevin içine #Requires ifadesini yerleştirmek kapsamını sınırlamaz. Tüm #Requires ifadeleri her zaman genel olarak uygulanır ve betiğin yürütülebilmesi için karşılanması gerekir.
Uyarı
#Requires ifadesi bir komut dosyasındaki herhangi bir satırda görünse de, komut dosyasındaki konumu uygulamanın sırasını etkilemez. #Requires ifadesinin sunduğu genel durumun, komut dosyası çalıştırılmadan önce karşılanması gerekir.
Örnek :
Get-Module AzureRM.Netcore | Remove-Module
#Requires -Modules AzureRM.Netcore
Gerekli modül #Requires ifadesinden önce kaldırıldığı için yukarıdaki kodun çalışmaması gerektiğini düşünebilirsiniz. Ancak betiğin yürütülebilmesi için #Requires durumunun karşılanması gerekiyordu. Daha sonra betiğin ilk satırı gerekli durumu geçersiz kıldı.
Parametreler
-Assembly | <.NET derleme belirtimi>
Bu önemli
-Assembly sözdizimi kullanımdan kaldırıldı. Hiçbir işlevi yoktur. Sözdizimi PowerShell 5.1'e eklendi ancak destekleyici kod hiçbir zaman uygulanmadı. Sözdizimi geriye dönük uyumluluk açısından hâlâ kabul edilmektedir.
Derleme DLL dosyasının veya .NET derleme adının yolunu belirtir. Assembly parametresi PowerShell 5.0'da kullanılmaya başlandı. .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"
-Sürüm [.]
Betiğin gerektirdiği minimum PowerShell sürümünü belirtir. Ana sürüm numarasını ve isteğe bağlı alt sürüm numarasını girin.
Örneğin:
#Requires -Version 6.0
-Modüller |
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 değilse PowerShell bunları içe aktarır. Modüller içe aktarılamazsa PowerShell bir sonlandırma hatası atar.
#Requires ifadesi, modüldeki sınıf ve numaralandırma tanımlarını yüklemez. Sınıf ve numaralandırma tanımları da dahil olmak üzere modülü içe aktarmak için komut dosyanızın başındaki using module ifadesini kullanın. Daha fazla bilgi için bkz. about_Using.
Her modül için modül adını (
ModuleName- Gerekli Modül adını belirtir.GUID- İsteğe bağlı Modülün GUID'sini belirtir.Ayrıca aşağıdaki üç anahtardan en az birinin belirtilmesi de gereklidir.
ModuleVersion- Modülün kabul edilebilir minimum sürümünü belirtir.
MaksimumVersiyon- Modülün kabul edilebilir maksimum sürümünü belirtir.RequiredVersion- Modülün tam, gerekli sürümünü belirtir. Bu, diğer Sürüm anahtarlarıyla kullanılamaz.
Not
RequiredVersion, Windows PowerShell 5.0'a eklendi. MaximumVersion, Windows PowerShell 5.1'e eklendi.
Örneğin:
AzureRM.Netcore'un (sürüm 0.12.0 veya üzeri) kurulu olmasını gerektirir.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; ModuleVersion="0.12.0" }
AzureRM.Netcore'un (yalnızca 0.12.0 sürümü) kurulu olmasını gerektirir.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12.0" }
AzureRM.Netcore'un (sürüm 0.12.0 veya daha düşük) yüklü olmasını gerektirir.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; MaximumVersion="0.12.0" }
AzureRM.Netcore ve PowerShellGet'in herhangi bir sürümünün yüklü olmasını gerektirir.
#Requires -Modules AzureRM.Netcore, PowerShellGet
RequiredVersion anahtarını kullanırken sürüm dizenizin, ihtiyaç duyduğunuz sürüm dizesiyle tam olarak eşleştiğinden 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şmediğinden başarısız olur.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12" }
-PSEdition
Betiğin gerektirdiği bir PowerShell sürümünü belirtir. Geçerli değerler PowerShell için Çekirdek ve Windows PowerShell için Masaüstü'dür.
Örneğin:
#Requires -PSEdition Core
-RunAsAdministrator
Bu anahtar parametresi #Requires ifadenize eklendiğinde, betiği çalıştırdığınız PowerShell oturumunun yükseltilmiş kullanıcı haklarıyla başlatılması gerektiğini belirtir. RunAsAdministrator parametresi Windows olmayan bir işletim sisteminde yoksayılır. RunAsAdministrator parametresi PowerShell 4.0'da kullanılmaya başlandı.
Örneğin:
#Requires -RunAsAdministrator
Örnekler
Aşağıdaki komut dosyasında iki #Requires ifadesi vardır. Her iki ifadede de belirtilen gereksinimler karşılanmazsa komut dosyası çalışmaz. Her #Requires ifadesi satırdaki ilk öğe olmalıdır:
#Requires -Modules AzureRM.Netcore
#Requires -Version 6.0
Param
(
[parameter(Mandatory=$true)]
[String[]]
$Path
)
...
Ayrıca bakınız
- about_Automatic_Variables
- about_Language_Keywords