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'deki Deneysel Özellikler desteği, deneysel özelliklerin PowerShell veya PowerShell modüllerindeki mevcut kararlı özelliklerle birlikte var olması için bir mekanizma sağlar.
Deneysel bir özellik, tasarımın sonlandırılmamasıdır. Bu özellik, kullanıcıların test edip geri bildirim sağlaması için kullanılabilir. Deneysel bir özellik sonlandırıldıktan sonra tasarım değişiklikleri çığır açan değişikliklere dönüşür. Değişikliklerin bozulmasına izin verildiğinden deneysel özelliklerin üretimde kullanılması amaçlanmamıştır.
Deneysel özellikler varsayılan olarak devre dışı bırakılır ve sistemin kullanıcısı veya yöneticisi tarafından açıkça etkinleştirilmesi gerekir.
Etkin deneysel özellikler, tüm kullanıcılar için powershell.config.json$PSHOME dosyasında veya belirli bir kullanıcının kullanıcıya özgü yapılandırma dosyasında listelenir.
Not
Kullanıcı yapılandırma dosyasında etkinleştirilen deneysel özellikler, sistem yapılandırma dosyasında listelenen deneysel özelliklerden önceliklidir.
Experimental özniteliği
Bazı kodları deneysel olarak bildirmek için Experimental özniteliğini kullanın.
Deneysel özelliğin adını ve deneysel özellik etkinse gerçekleştirecek eylemi sağlayan Experimental özniteliğini bildirmek için aşağıdaki söz dizimini kullanın:
[Experimental(NameOfExperimentalFeature, ExperimentAction)]
Modüller için NameOfExperimentalFeature<modulename>.<experimentname>biçimini izlemelidir.
ExperimentAction parametresi belirtilmelidir ve yalnızca geçerli değerler şunlardır:
-
Show, özellik etkinleştirildiğinde bu deneysel özelliği gösterme anlamına gelir - Özellik etkinse,
Hidebu deneysel özelliği gizlemek anlamına gelir.
C dilinde yazılan modüllerde deneysel özellikleri bildirme#
Deneysel Özellik bayraklarını kullanmak isteyen modül yazarları, Experimental özniteliğini kullanarak bir cmdlet'i deneysel olarak bildirebilir.
[Experimental("MyWebCmdlets.PSWebCmdletV2", ExperimentAction.Show)]
[Cmdlet(Verbs.Invoke, "WebRequest")]
public class InvokeWebRequestCommandV2 : WebCmdletBaseV2 { ... }
PowerShell'de yazılan modüllerde deneysel özellikleri bildirme
PowerShell'de yazılan modül, deneysel cmdlet'leri bildirmek için Experimental özniteliğini de kullanabilir:
function Enable-SSHRemoting {
[Experimental("MyRemoting.PSSSHRemoting", "Show")]
[CmdletBinding()]
param()
...
}
Deneysel bir özellik hakkındaki meta veriler modül bildiriminde tutulur. Modüldeki deneysel özellikleri kullanıma açmak için modül bildiriminin PrivateData.PSData.ExperimentalFeatures özelliğini kullanın.
ExperimentalFeatures özelliği, özelliğin adını ve açıklamasını içeren bir karma tablo dizisidir.
Örneğin:
PrivateData = @{
PSData = @{
ExperimentalFeatures = @(
@{
Name = "PSWebCmdletV2"
Description = "Rewrite the web cmdlets for better performance"
},
@{
Name = "PSRestCmdletV2"
Description = "Rewrite the REST API cmdlets for better performance"
}
)
}
}
Birbirini dışlayan deneysel özellikler
Deneysel bir özelliğin mevcut bir özellik veya başka bir deneysel özellik ile yan yana var olamayacağı durumlar vardır.
Örneğin, mevcut bir cmdlet'i geçersiz kılan deneysel bir cmdlet'iniz olabilir. İki sürüm yan yana bir arada olamaz.
ExperimentAction.Hide ayarı, iki cmdlet'in yalnızca birinin aynı anda etkinleştirilmesine izin verir.
Bu örnekte yeni bir deneysel Invoke-WebRequest cmdlet'i oluşturacağız.
InvokeWebRequestCommand deneysel olmayan uygulamayı içerir.
InvokeWebRequestCommandV2 cmdlet'in deneysel sürümünü içerir.
ExperimentAction.Hide kullanımı, iki özelliğin yalnızca birinin aynı anda etkinleştirilmesine izin verir:
[Experimental("MyWebCmdlets.PSWebCmdletV2", ExperimentAction.Show)]
[Cmdlet(Verbs.Invoke, "WebRequest")]
public class InvokeWebRequestCommandV2 : WebCmdletBaseV2 { ... }
[Experimental("MyWebCmdlets.PSWebCmdletV2", ExperimentAction.Hide)]
[Cmdlet(Verbs.Invoke, "WebRequest")]
public class InvokeWebRequestCommand : WebCmdletBase { ... }
deneysel MyWebCmdlets.PSWebCmdletV2 özelliği etkinleştirildiğinde, mevcut InvokeWebRequestCommand uygulaması gizlenir ve InvokeWebRequestCommandV2Invoke-WebRequestuygulamasını sağlar.
Bu, kullanıcıların yeni cmdlet'i denemesine ve geri bildirim sağlamasına ve gerektiğinde deneysel olmayan sürüme geri dönmelerine olanak tanır.
Cmdlet'lerde deneysel parametreler
Experimental özniteliği tek tek parametrelere de uygulanabilir. Bu, tamamen yeni bir cmdlet yerine mevcut bir cmdlet için deneysel bir parametre kümesi oluşturmanıza olanak tanır.
C# dilinde bir örnek aşağıda verilmiştir:
[Experimental("MyModule.PSNewAddTypeCompilation", ExperimentAction.Show)]
[Parameter(ParameterSet = "NewCompilation")]
public CompilationParameters CompileParameters { ... }
[Experimental("MyModule.PSNewAddTypeCompilation", ExperimentAction.Hide)]
[Parameter()]
public CodeDom CodeDom { ... }
PowerShell betiğinde farklı bir örnek aşağıda verilmiştir:
param(
[Experimental("MyModule.PSNewFeature", "Show")]
[string] $NewName,
[Experimental("MyModule.PSNewFeature", "Hide")]
[string] $OldName
)
Deneysel bir özelliğin etkinleştirilip etkinleştirilmediğini denetleme
Kodunuzda, uygun eylemi gerçekleştirmeden önce deneysel özelliğinizin etkinleştirilip etkinleştirilmediğini denetlemeniz gerekir. Deneysel bir özelliğin etkinleştirilip etkinleştirilmediğini, IsEnabled() sınıfındaki statik System.Management.Automation.ExperimentalFeature yöntemini kullanarak belirleyebilirsiniz.
C# dilinde bir örnek aşağıda verilmiştir:
if (ExperimentalFeature.IsEnabled("MyModule.MyExperimentalFeature"))
{
// code specific to the experimental feature
}
PowerShell betiğinde bir örnek aşağıda verilmiştir:
if ([ExperimentalFeature]::IsEnabled("MyModule.MyExperimentalFeature"))
{
# code specific to the experimental feature
}
Ayrıca bakınız
- Deneysel Özelliği Devre Dışı Bırak
- Enable-ExperimentalFeature
- Deneysel Özelliği Al
- Deneysel Özellikleri Kullanma
PowerShell