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.
PowerShell, farklı senaryolar için farklı eylemler gerçekleştiren tek bir cmdlet yazmanız için parametre kümelerini kullanır. Parametre kümeleri, kullanıcıya farklı parametreleri ortaya çıkarmamızı sağlar. Ayrıca, kullanıcı tarafından belirtilen parametrelere göre farklı bilgiler dönmek için.
Parametre kümesi örnekleri
Örneğin, PowerShell cmdlet'i, kullanıcının List veya LogName parametresini belirtip belirt Get-EventLog alamama durumuna bağlı olarak farklı bilgiler döndürür. List parametresi belirtilirse, cmdlet günlük dosyalarıyla ilgili bilgileri döndürür, ancak içerdiği olay bilgilerini döndürür. LogName parametresi belirtilirse, cmdlet belirli bir olay günlüğünde olaylar hakkında bilgi döndürür. List ve LogName parametreleri iki ayrı parametre kümesi belirtir.
Benzersiz parametre
Her parametre kümesi, PowerShell çalışma zamanının uygun parametre kümesi için kullandığı benzersiz bir parametreye sahip olmalıdır. Mümkünse, benzersiz parametre zorunlu bir parametre olmalıdır. Bir parametre zorunlu olduğunda, kullanıcının parametresini belirtmesi gerekir ve PowerShell çalışma zamanı parametre kümesi tanımlamak için bu parametreyi kullanır. Cmdlet'iniz herhangi bir parametre belirtmeden çalıştıracak şekilde tasarlanmışsa benzersiz parametre zorunlu değildir.
Birden çok parametre kümesi
Aşağıdaki çizimde, sol sütunda üç geçerli parametre kümesi gösterilmiştir. A parametresi ilk parametre kümesine, B parametresi ikinci parametre kümesine ve C parametresi üçüncü parametre kümesine benzersizdir. Sağ sütunda parametre kümeleri benzersiz bir parametreye sahip değil.

Parametre kümesi gereksinimleri
Aşağıdaki gereksinimler tüm parametre kümeleri için geçerlidir.
Her parametre kümesi en az bir benzersiz parametreye sahip olmalıdır. Mümkünse, bu parametreyi zorunlu bir parametre olarak kullanın.
Birden çok konumsal parametre içeren bir parametre kümesi, her parametre için benzersiz konumlar tanımlamalı. İki konumsal parametre aynı konumu belirtemezseniz.
Bir kümede yalnızca bir parametre,
ValueFromPipelinedeğerine sahip anahtar sözcüğünü bildirebilirsiniz.trueBirden çok parametre anahtarValueFromPipelineByPropertyNamesözcüğünü değeriyletruetanımlayabilir.Bir parametre için parametre kümesi belirtilmezse, parametre tüm parametre kümelerini aittir.
Not
Bir cmdlet veya işlev için 32 parametre kümesi sınırı vardır.
Varsayılan parametre kümeleri
Birden çok parametre kümesi tanımlandığı zaman, varsayılan parametre kümesi belirtmek için DefaultParameterSetName Cmdlet özniteliğinin anahtar sözcüğünü kullanabilirsiniz. PowerShell, komutu tarafından sağlanan bilgilere göre kullanmak üzere parametre kümesi belirlenenene kadar varsayılan parametre kümesi kullanır. Cmdlet özniteliği hakkında daha fazla bilgi için bkz. Cmdlet Öznitelik Bildirimi.
Parametre kümelerini bildirim
Parametre kümesi oluşturmak için parametre kümesinde her parametre için Parameter özniteliğini ParameterSetName bildirerek anahtar sözcüğünü belirtmeniz gerekir. Birden çok parametre kümesine ait parametreler için, her parametre kümesi için bir Parametre özniteliği ekleyin. Bu öznitelik, parametreyi her parametre kümesi için farklı şekilde tanımlamaya olanak sağlar. Örneğin, bir parametreyi bir kümede zorunlu, isteğe bağlı olarak başka bir kümede tanımlayabilirsiniz. Ancak, her parametre kümesi tek bir benzersiz parametre içermeli. Daha fazla bilgi için bkz. Parametre Özniteliği Bildirimi.
Aşağıdaki örnekte UserName parametresi parametre kümesine özgü parametre, ComputerName parametresi ise parametre Test01 kümesine özgü Test02 parametredir. SharedParam parametresi her iki kümeye de aittir ve parametre kümesi için Test01 zorunludur ancak parametre kümesi için Test02 isteğe bağlıdır.
[Parameter(Position = 0, Mandatory = true, ParameterSetName = "Test01")]
public string UserName
{
get { return userName; }
set { userName = value; }
}
private string userName;
[Parameter(Position = 0, Mandatory = true, ParameterSetName = "Test02")]
public string ComputerName
{
get { return computerName; }
set { computerName = value; }
}
private string computerName;
[Parameter(Mandatory= true, ParameterSetName = "Test01")]
[Parameter(ParameterSetName = "Test02")]
public string SharedParam
{
get { return sharedParam; }
set { sharedParam = value; }
}
private string sharedParam;