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