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.
Cmdlet'ler, başka bir parametrenin bağımsız değişkeninin belirli bir değer olması gibi özel koşullar altında kullanıcının kullanabileceği parametreleri tanımlayabilir. Bu parametreler çalışma zamanına eklenir ve yalnızca gerektiğinde eklendiğinden dinamik parametreler olarak adlandırılır. Örneğin, yalnızca belirli bir anahtar parametresi belirtildiğinde birkaç parametre ekleyen bir cmdlet tasarlayabilirsiniz.
Uyarı
Sağlayıcılar ve PowerShell işlevleri dinamik parametreler de tanımlayabilir.
PowerShell cmdlet'lerinde dinamik parametreler
PowerShell, çeşitli sağlayıcı cmdlet'lerinde dinamik parametreler kullanır. Örneğin, Yolu parametresi Sertifika sağlayıcı yolunu belirttiğinde Get-Item
ve Get-ChildItem
cmdlet'leri çalışma zamanında bir CodeSigningCert parametresi ekler.
Yolu parametresi farklı bir sağlayıcının yolunu belirtiyorsa CodeSigningCert parametresi kullanılamaz.
Aşağıdaki örneklerde, Get-Item
çalıştırıldığında CodeSigningCert parametresinin çalışma zamanına nasıl eklendiği gösterilmektedir.
Bu örnekte PowerShell çalışma zamanı parametresini eklemiştir ve cmdlet başarılıdır.
Get-Item -Path Cert:\CurrentUser -CodeSigningCert
Location : CurrentUser
StoreNames : {SmartCardRoot, UserDS, AuthRoot, CA...}
Bu örnekte bir FileSystem sürücüsü belirtilir ve bir hata döndürülür. Hata iletisi, CodeSigningCert parametresinin bulunamadığını gösterir.
Get-Item -Path C:\ -CodeSigningCert
Get-Item : A parameter cannot be found that matches parameter name 'CodeSigningCert'.
At line:1 char:37
+ Get-Item -Path C:\ -CodeSigningCert <<<<
--------
CategoryInfo : InvalidArgument: (:) [Get-Item], ParameterBindingException
FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.GetItemCommand
Dinamik parametreler için destek
Dinamik parametreleri desteklemek için aşağıdaki öğelerin cmdlet koduna eklenmesi gerekir.
Arayüz
System.Management.Automation.IDynamicParameters. Bu arabirim, dinamik parametreleri alan yöntemi sağlar.
Örneğin:
public class SendGreetingCommand : Cmdlet, IDynamicParameters
Yöntem
System.Management.Automation.IDynamicParameters.GetDynamicParameters. Bu yöntem, dinamik parametre tanımlarını içeren nesneyi alır.
Örneğin:
public object GetDynamicParameters()
{
if (employee)
{
context= new SendGreetingCommandDynamicParameters();
return context;
}
return null;
}
private SendGreetingCommandDynamicParameters context;
Sınıf
Eklenecek dinamik parametreleri tanımlayan bir sınıf. Bu sınıf, her parametre için bir Parametre özniteliği ve cmdlet'i tarafından gereken isteğe bağlı Diğer Ad ve Doğrulama özniteliklerini içermelidir.
Örneğin:
public class SendGreetingCommandDynamicParameters
{
[Parameter]
[ValidateSet ("Marketing", "Sales", "Development")]
public string Department
{
get { return department; }
set { department = value; }
}
private string department;
}
Dinamik parametreleri destekleyen bir cmdlet'in tam örneği için bkz. Dinamik Parametreler Bildirme.
Ayrıca bkz.
PowerShell