Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kısa açıklama
Bir betiğin gerekli öğeler olmadan çalışmasını engeller.
Uzun açıklama
#Requires deyimi, 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 -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 #Requires fazla deyim içerebilir. Deyimler #Requires betikteki herhangi bir satırda görüntülenebilir.
bir işlevin #Requires içine deyimi yerleştirmek, işlevinin kapsamını sınırlamaz. Tüm #Requires deyimler her zaman genel olarak uygulanır ve betiğin yürütülebilmesi için 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
Gerekli modül deyiminden önce kaldırıldığı için yukarıdaki kodun #Requires çalışmaması gerektiğini düşünebilirsiniz. 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 hale getirdi.
Parametreler
-Assembly <Assembly path> | <.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 yolunu veya .NET derleme adını belirtir. Assembly parametresi PowerShell 5.0'da kullanıma sunulmuştur. .NET derlemeleri hakkında daha fazla bilgi için bkz. Assembly names.
Ö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 <N>[.<n>]
Betiğin gerektirdiği en düşük PowerShell sürümünü belirtir. Bir ana sürüm numarası ve isteğe bağlı ikincil sürüm numarası girin.
Örneğin:
#Requires -Version 5.1
-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 <Modül Adı> | <Karma Tablo>
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.
deyimi #Requires modülde sınıf ve numaralandırma tanımlarını yüklemez.
using module Sınıfı ve numaralandırma tanımları dahil olmak üzere modülü içeri aktarmak için betiğinizin başındaki deyimini kullanın. Daha fazla bilgi için bkz . about_Using.
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- İsteğ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'e eklendi.
Örneğin:
Hyper-V (sürüm 1.1 veya üzeri) yüklü olmalıdır.
#Requires -Modules @{ ModuleName="Hyper-V"; ModuleVersion="1.1" }
Hyper-V (only sürüm 1.1) yüklenmesini gerektirir.
#Requires -Modules @{ ModuleName="Hyper-V"; RequiredVersion="1.1" }
Hyper-V (sürüm 1.1 veya daha küçük) yüklü olmasını gerektirir.
#Requires -Modules @{ ModuleName="Hyper-V"; MaximumVersion="1.1" }
ve PSScheduledJobsürümlerinin PSWorkflow yüklenmesini gerektirir.
#Requires -Modules PSWorkflow, PSScheduledJob
anahtarı kullanırken RequiredVersion , sürüm dizenizin istediğiniz sürüm dizesiyle tam olarak eşleştiğinden emin olun.
Get-Module Hyper-V
ModuleType Version Name ExportedCommands
---------- ------- ---- ------------------
Binary 2.0.0.0 hyper-v {Add-VMAssignableDevice, ...}
2.0.0, 2.0.0.0 ile tam olarak eşleşmediğinden aşağıdaki örnek başarısız olur.
#Requires -Modules @{ ModuleName="Hyper-V"; RequiredVersion="2.0.0" }
-PSEdition <PSEdition-Name>
Betiğin gerektirdiği bir PowerShell sürümünü belirtir. Geçerli değerler PowerShell için Core ve PowerShell için Desktop Windows.
Ö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 eklemeniz gerekir.
Otomatik değişkeni sorgulayarak geçerli ShellId değerini $ShellId bulabilirsiniz.
Örneğin:
#Requires -ShellId MyLocalShell -PSSnapin Microsoft.PowerShell.Core
Not
Bu parametre, kullanım dışı bırakılan mini kabuklarda kullanıma yöneliktir.
-RunAsAdministrator
Bu [switch] parametre 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 kullanıma sunulmuştur.
Örneğin:
#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 PSWorkflow
#Requires -Version 3
param
(
[Parameter(Mandatory=$true)]
[string[]]
$Path
)
...
Ayrıca bakınız
PowerShell