about_Requires
Kısa açıklama
Bir betiğin gerekli öğeler olmadan çalışmasını engeller.
Uzun açıklama
deyimi #Requires
, PowerShell sürümü, modülleri (ve sürümü) veya ek bileşenleri (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.
Syntax
#Requires -Version <N>[.<n>]
#Requires -Modules { <Module-Name> | <Hashtable> }
#Requires -PSEdition <PSEdition-Name>
#Requires -RunAsAdministrator
Söz dizimi hakkında daha fazla bilgi için bkz . ScriptRequirements.
Kullanım kuralları
Betik birden #Requires
fazla deyim içerebilir. Deyimler #Requires
betikteki herhangi bir satırda görünebilir.
deyimini #Requires
bir işleve yerleştirmek, işlevinin kapsamını sınırlamaz. Betiğin yürütülebilmesi için tüm #Requires
deyimler her zaman genel olarak uygulanır ve karşılanması gerekir.
Uyarı
Bir deyimi betikteki #Requires
herhangi bir satırda görünebilse de, betikteki konumu uygulamanın sırasını etkilemez. Betik yürütmeden önce deyiminin #Requires
sunduğu genel durum karşılanmalıdır.
Örnek:
Get-Module AzureRM.Netcore | Remove-Module
#Requires -Modules AzureRM.Netcore
Yukarıdaki kodun çalıştırılmaması gerektiğini düşünebilirsiniz çünkü gerekli modül deyiminden #Requires
önce kaldırılmıştır. Ancak betiğin #Requires
yürütülebilmesi için durumun karşılanması gerekiyordu. Ardından betiğin ilk satırı gerekli durumu geçersiz kıldı.
Parametreler
-Derleme <Derleme yolu> | <. NET derleme belirtimi>
Önemli
Söz -Assembly
dizimi kullanım dışıdır. Hiçbir işleve hizmet eder. Söz dizimi PowerShell 5.1'e eklendi, ancak destekleyici kod hiçbir zaman uygulanmadı. Söz dizimi geriye dönük uyumluluk için 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ı.
Örnek:
#Requires -Assembly path\to\foo.dll
#Requires -Assembly "System.Management.Automation, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
-Sürüm <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.
Örnek:
#Requires -Version 6.0
-Modules <Modül Adı> | < 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 değilse PowerShell bunları içeri aktarır. Modüller içeri aktarılamıyorsa PowerShell sonlandırıcı bir hata oluşturur.
Her modül için modül adını (<Dize>) veya bir karma tablo yazın. Değer, dizelerin ve karma tabloların birleşimi olabilir. Karma tablo aşağıdaki anahtarlara sahiptir.
ModuleName
- Gerekli Modül adını belirtir.GUID
- Isteğe bağlı Modülün GUID değerini belirtir.- Ayrıca aşağıdaki üç anahtardan en az birini belirtmek gerekir .
ModuleVersion
- Modülün kabul edilebilir en düşük sürümünü belirtir.MaximumVersion
- Modülün kabul edilebilir en yüksek sürümünü belirtir.RequiredVersion
- Modülün tam, gerekli bir 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'de eklendi.
Örnek:
AzureRM.Netcore
(Sürüm 0.12.0
veya üzeri) yüklü olmasını gerekli kılar.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; ModuleVersion="0.12.0" }
Yüklü olmasını AzureRM.Netcore
(yalnızca sürüm 0.12.0
) gerekli kılar.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12.0" }
AzureRM.Netcore
(Sürüm 0.12.0
veya daha küçük) yüklü olmasını gerektirir.
#Requires -Modules @{ ModuleName="AzureRM.Netcore"; MaximumVersion="0.12.0" }
herhangi bir ve PowerShellGet
sürümünün AzureRM.Netcore
yüklü olmasını gerekli kılar.
#Requires -Modules AzureRM.Netcore, PowerShellGet
anahtarını kullanırken RequiredVersion
, sürüm dizenizin tam olarak ihtiyacınız olan sürüm dizesiyle 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
0.12, 0.12.0 ile tam olarak eşleşmediğinden aşağıdaki örnek başarısız olur.
#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 için Masaüstü'lerdir.
Örnek:
#Requires -PSEdition Core
-RunAsAdministrator
Bu switch parametresi deyiminize #Requires
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 tanıtıldı.
Örnek:
#Requires -RunAsAdministrator
Örnekler
Aşağıdaki betiğin iki #Requires
deyimi vardır. Her iki deyimde de belirtilen gereksinimler karşılanmazsa betik çalışmaz. Her #Requires
deyimin satırdaki ilk öğe olması gerekir:
#Requires -Modules AzureRM.Netcore
#Requires -Version 6.0
Param
(
[parameter(Mandatory=$true)]
[String[]]
$Path
)
...