공급자는 사용자가 cmdlet의 정적 매개 변수 중 하나에 대해 특정 값을 지정할 때 공급자 cmdlet에 추가되는 동적 매개 변수를 정의할 수 있습니다. 예를 들어 공급자는 사용자가 Get-Item 또는 Set-Item 공급자 cmdlet을 호출할 때 지정하는 경로에 따라 다른 동적 매개 변수를 추가할 수 있습니다.
동적 매개 변수 메서드
동적 매개 변수는 System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* 및 System.Management.Automation.Provider.SetItemDynamicParameters.SetItemDynamicParameters* 메서드와 같은 동적 매개 변수 메서드 중 하나를 구현하여 정의됩니다. 이러한 메서드는 독립 실행형 cmdlet과 유사한 특성으로 데코레이팅된 공용 속성이 있는 개체를 반환합니다. 다음은 인증서 공급자에서 가져온 System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* 메서드 구현의 예입니다.
protected override object GetItemDynamicParameters(string path)
{
return new CertificateProviderDynamicParameters();
}
공급자 cmdlet의 정적 매개 변수와 달리, 독립 실행형 cmdlet에서 매개 변수를 정의하는 것과 동일한 방식으로 이러한 매개 변수의 특성을 지정할 수 있습니다. 인증서 공급자에서 가져온 동적 매개 변수 클래스의 예는 다음과 같습니다.
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();
}
동적 매개 변수
다음은 동적 매개 변수를 추가하는 데 사용할 수 있는 정적 매개 변수 목록입니다.
Clear-Contentcmdlet - System.Management.Automation.Provider.IContentCmdletProvider.ClearContentDynamicParameters* 메서드를 구현하여 Clear-Clear cmdlet의Path매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Clear-Itemcmdlet - System.Management.Automation.Provider.ItemCmdletProvider.ClearItemDynamicParameters* 메서드를 구현하여Clear-Itemcmdlet의Path매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Clear-ItemPropertycmdlet - System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* 메서드를 구현하여Clear-ItemPropertycmdlet의Path매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Copy-Itemcmdlet - System.Management.Automation.Provider.ContainerCmdletProvider.CopyItemDynamicParameters* 메서드를 구현하여Copy-Itemcmdlet의Path,Destination및Recurse매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Get-ChildItemcmdlet - System.Management.Automation.Provider.ContainerCmdletProvider를 구현하여Get-ChildItemcmdlet의Path및Recurse매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다. .GetChildItemsDynamicParameters* 및 System.Management.Automation.Provider.ContainerCmdletProvider.GetChildNamesDynamicParameters* 메서드.Get-Contentcmdlet - System.Management.Automation.Provider.IContentCmdletProvider.GetContentReaderDynamicParameters* 메서드를 구현하여Get-Contentcmdlet의Path매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Get-Itemcmdlet - System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* 메서드를 구현하여Get-Itemcmdlet의Path매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Get-ItemPropertycmdlet - System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* 메서드를 구현하여Get-ItemPropertycmdlet의Path및Name매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Invoke-Itemcmdlet - System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultActionDynamicParameters* 메서드를 구현하여Invoke-Itemcmdlet의Path매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Move-Itemcmdlet - System.Management.Automation.Provider.NavigationCmdletProvider.MoveItemDynamicParameters* 메서드를 구현하여Move-Itemcmdlet의Path및Destination매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.New-Itemcmdlet - System.Management.Automation.Provider.ContainerCmdletProvider.NewItemDynamicParameters* 메서드를 구현하여Path,ItemType및New-Itemcmdlet의Value매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.New-ItemPropertycmdlet - System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.NewPropertyDynamicParameters* 메서드를 구현하여New-ItemPropertycmdlet의Path,Name,PropertyType및Value매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.New-PSDrivecmdlet - System.Management.Automation.Provider.DriveCmdletProvider.NewDriveDynamicParameters* 메서드를 구현하여New-PSDrivecmdlet에서 반환된 System.Management.Automation.PSDriveInfo 개체에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Remove-Itemcmdlet - System.Management.Automation.Provider.ContainerCmdletProvider.RemoveItemDynamicParameters* 메서드를 구현하여Remove-Itemcmdlet의Path및Recurse매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Remove-ItemPropertycmdlet - System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.RemovePropertyDynamicParameters* 메서드를 구현하여Remove-ItemPropertycmdlet의Path및Name매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Rename-Itemcmdlet - System.Management.Automation.Provider.ContainerCmdletProvider.RenameItemDynamicParameters* 메서드를 구현하여Rename-Itemcmdlet의Path및NewName매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Rename-ItemProperty- System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.RenamePropertyDynamicParameters* 메서드를 구현하여Rename-ItemPropertycmdlet의Path,Name및NewName매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Set-Contentcmdlet - System.Management.Automation.Provider.IContentCmdletProvider.GetContentWriterDynamicParameters* 메서드를 구현하여Set-Contentcmdlet의Path매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Set-Itemcmdlet - System.Management.Automation.Provider.ItemCmdletProvider.SetItemDynamicParameters* 메서드를 구현하여Set-Itemcmdlet의Path및Value매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Set-ItemPropertycmdlet - System.Management.Automation.Provider.IPropertyCmdletProvider.SetPropertyDynamicParameters* 메서드를 구현하여Set-Itemcmdlet의Path및Value매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.Test-Pathcmdlet - System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultActionDynamicParameters* 메서드를 구현하여Test-Pathcmdlet의Path매개 변수에 의해 트리거되는 동적 매개 변수를 정의할 수 있습니다.
또한 참조하십시오
PowerShell