Parametry dynamiczne poleceń cmdlet dostawców
Dostawcy mogą definiować parametry dynamiczne dodawane do polecenia cmdlet dostawcy, gdy użytkownik określa określoną wartość dla jednego ze statycznych parametrów polecenia cmdlet. Na przykład dostawca może dodać różne parametry dynamiczne na podstawie ścieżki, którą użytkownik określa podczas wywoływania poleceń cmdlet Get-Item
lub Set-Item
dostawcy.
Metody parametrów dynamicznych
Parametry dynamiczne są definiowane przez zaimplementowanie jednej z metod parametrów dynamicznych, takich jak System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* i System.Management.Automation.Provider.SetItemDynamicParameters.SetItemDynamicParameters* metod. Te metody zwracają obiekt, który ma właściwości publiczne, które są ozdobione atrybutami podobnymi do autonomicznych poleceń cmdlet. Oto przykład implementacji System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* metody pobranej od dostawcy certyfikatu:
protected override object GetItemDynamicParameters(string path)
{
return new CertificateProviderDynamicParameters();
}
W przeciwieństwie do statycznych parametrów poleceń cmdlet dostawcy można określić cechy tych parametrów w taki sam sposób, jak parametry są definiowane w autonomicznych poleceniach cmdlet. Oto przykład dynamicznej klasy parametrów pobranej od dostawcy certyfikatów:
internal sealed class CertificateProviderDynamicParameters
{
/// <summary>
/// Dynamic parameter the controls whether we only return
/// code signing certs.
/// </summary>
[Parameter()]
public SwitchParameter CodeSigningCert
{
get
{
{
return codeSigningCert;
}
}
set
{
{
codeSigningCert = value;
}
}
}
private SwitchParameter codeSigningCert = new SwitchParameter();
}
Parametry dynamiczne
Oto lista parametrów statycznych, których można użyć do dodawania parametrów dynamicznych.
Clear-Content
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametrPath
polecenia cmdlet Clear-Clear przez zaimplementowanie metody System.Management.Automation.Provider.IContentCmdletProvider.ClearContentDynamicParameters*.Clear-Item
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametrPath
polecenia cmdletClear-Item
przez zaimplementowanie metody System.Management.Automation.Provider.ItemCmdletProvider.ClearItemDynamicParameters*.Clear-ItemProperty
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametrPath
polecenia cmdletClear-ItemProperty
przez zaimplementowanie metody System.Management.Automation.Automation.IPropertyCmdletProvider.ClearPropertyDynamicParameters*.Copy-Item
polecenia cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametryPath
,Destination
iRecurse
polecenia cmdletCopy-Item
, implementując metodę System.Management.Automation.Provider.ContainerCmdletProvider.CopyItemDynamicParameters*.Get-ChildItem
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametryPath
iRecurse
polecenia cmdletGet-ChildItem
przez zaimplementowanie System.Management.Automation.Automation.Provider.ContainerCmdletProvider.GetChildItemsDynamicParameters* i System.Management.Provider.ContainerCmdletProvider.GetChildNamesDynamicParameters* metod.Get-Content
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametrPath
polecenia cmdletGet-Content
przez zaimplementowanie metody System.Management.Automation.Provider.IContentCmdletProvider.GetContentReaderDynamicParameters*.Get-Item
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametrPath
polecenia cmdletGet-Item
przez zaimplementowanie metody System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters*.Get-ItemProperty
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametryPath
iName
polecenia cmdletGet-ItemProperty
przez zaimplementowanie metody System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters*.Invoke-Item
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametrPath
polecenia cmdletInvoke-Item
przez zaimplementowanie metody System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultActionDynamicParameters*.Move-Item
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametryPath
iDestination
polecenia cmdletMove-Item
przez zaimplementowanie metody System.Management.Automation.Provider.NavigationCmdletProvider.MoveItemDynamicParameters*.New-Item
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametryPath
,ItemType
iValue
polecenia cmdletNew-Item
, implementując metodę System.Management.Automation.Provider.ContainerCmdletProvider.NewItemDynamicParameters*.New-ItemProperty
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przezPath
,Name
,PropertyType
iValue
parametrów polecenia cmdletNew-ItemProperty
, implementując metodę System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.NewPropertyDynamicParameters*.New-PSDrive
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez obiekt System.Management.Automation.PSDriveInfo zwracany przez polecenie cmdletNew-PSDrive
przez zaimplementowanie metody System.Management.Automation.Provider.DriveCmdletProvider.NewDriveDynamicParameters*.Remove-Item
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametryPath
iRecurse
polecenia cmdletRemove-Item
przez zaimplementowanie metody System.Management.Automation.Provider.ContainerCmdletProvider.RemoveItemDynamicParameters*.Remove-ItemProperty
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametryPath
iName
polecenia cmdletRemove-ItemProperty
przez zaimplementowanie metody System.Management.Automation.Automation.Provider.IDynamicPropertyCmdletProvider.RemovePropertyDynamicParameters*.Rename-Item
polecenia cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametryPath
iNewName
polecenia cmdletRename-Item
, implementując metodę System.Management.Automation.Provider.ContainerCmdletProvider.RenameItemDynamicParameters*.Rename-ItemProperty
— można zdefiniować parametry dynamiczne wyzwalane przez parametryPath
,Name
iNewName
polecenia cmdletRename-ItemProperty
przez zaimplementowanie System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.RenamePropertyDynamicParameters* metody.Set-Content
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametrPath
polecenia cmdletSet-Content
przez zaimplementowanie metody System.Management.Automation.Provider.IContentCmdletProvider.GetContentWriterDynamicParameters*.Set-Item
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametryPath
iValue
polecenia cmdletSet-Item
przez zaimplementowanie metody System.Management.Automation.Provider.ItemCmdletProvider.SetItemDynamicParameters*.Set-ItemProperty
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametryPath
iValue
polecenia cmdletSet-Item
przez zaimplementowanie metody System.Management.Automation.Provider.IPropertyCmdletProvider.SetPropertyDynamicParameters*.Test-Path
polecenie cmdlet — można zdefiniować parametry dynamiczne wyzwalane przez parametrPath
polecenia cmdletTest-Path
przez zaimplementowanie metody System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultActionDynamicParameters*.
Zobacz też
pisanie dostawcy programu Windows PowerShell