Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I provider possono definire parametri dinamici aggiunti a un cmdlet del provider quando l'utente specifica un determinato valore per uno dei parametri statici del cmdlet. Ad esempio, un provider può aggiungere parametri dinamici diversi in base al percorso specificato dall'utente quando chiamano i cmdlet del provider Get-Item o Set-Item.
Metodi dei parametri dinamici
I parametri dinamici vengono definiti implementando uno dei metodi dei parametri dinamici, ad esempio i metodi System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* e System.Management.Automation.Provider.SetItemDynamicParameters.SetItemDynamicParameters*. Questi metodi restituiscono un oggetto con proprietà pubbliche decorate con attributi simili a quelli dei cmdlet autonomi. Di seguito è riportato un esempio di implementazione del metodo System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* ricavato dal provider di certificati:
protected override object GetItemDynamicParameters(string path)
{
return new CertificateProviderDynamicParameters();
}
A differenza dei parametri statici dei cmdlet del provider, è possibile specificare le caratteristiche di questi parametri nello stesso modo in cui i parametri vengono definiti nei cmdlet autonomi. Di seguito è riportato un esempio di una classe di parametri dinamici ricavata dal provider di certificati:
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();
}
Parametri dinamici
Di seguito è riportato un elenco dei parametri statici che è possibile usare per aggiungere parametri dinamici.
Clear-Contentcmdlet: è possibile definire parametri dinamici attivati dal parametroPathdel cmdlet Clear-Clear implementando il metodo system.Management.Automation.Provider.IContentCmdletProvider.ClearContentDynamicParameters* .Clear-Itemcmdlet: è possibile definire parametri dinamici attivati dal parametroPathdel cmdletClear-Itemimplementando il metodo System.Management.Automation.Provider.ItemCmdletProvider.ClearItemDynamicParameters*.Clear-ItemPropertycmdlet: è possibile definire parametri dinamici attivati dal parametroPathdel cmdletClear-ItemPropertyimplementando il metodo System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters*.Copy-Itemcmdlet: è possibile definire parametri dinamici attivati dai parametriPath,DestinationeRecursedel cmdletCopy-Itemimplementando il metodo System.Management.Automation.Provider.ContainerCmdletProvider.CopyItemDynamicParameters*.Get-ChildItemcmdlet: è possibile definire parametri dinamici attivati dai parametriPatheRecursedel cmdletGet-ChildItemimplementando i metodi System.Management.Automation.Provider.ContainerCmdletProvider.GetChildItemsDynamicParameters* e System.Management.Automation.Provider.ContainerCmdletProvider.GetChildNamesDynamicParameters*.Get-Contentcmdlet: è possibile definire parametri dinamici attivati dal parametroPathdel cmdletGet-Contentimplementando il metodo System.Management.Automation.Provider.IContentCmdletProvider.GetContentReaderDynamicParameters*.Get-Itemcmdlet: è possibile definire parametri dinamici attivati dal parametroPathdel cmdletGet-Itemimplementando il metodo System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters*.Get-ItemPropertycmdlet: è possibile definire parametri dinamici attivati dai parametriPatheNamedel cmdletGet-ItemPropertyimplementando il metodo System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters*.Invoke-Itemcmdlet: è possibile definire parametri dinamici attivati dal parametroPathdel cmdletInvoke-Itemimplementando il metodo System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultActionDynamicParameters*.Move-Itemcmdlet: è possibile definire parametri dinamici attivati dai parametriPatheDestinationdel cmdletMove-Itemimplementando il metodo System.Management.Automation.Provider.NavigationCmdletProvider.MoveItemDynamicParameters*.New-Itemcmdlet: è possibile definire parametri dinamici attivati dai parametriPath,ItemTypeeValuedel cmdletNew-Itemimplementando il metodo System.Management.Automation.Provider.ContainerCmdletProvider.NewItemDynamicParameters*.New-ItemPropertycmdlet : è possibile definire parametri dinamici attivati dai parametriPath,Name,PropertyTypeeValuedel cmdletNew-ItemPropertyimplementando il metodo System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.NewPropertyDynamicParameters*.New-PSDrivecmdlet: è possibile definire parametri dinamici attivati dall'oggetto System.Management.Automation.PSDriveInfo restituito dal cmdletNew-PSDriveimplementando il metodo System.Management.Automation.Provider.DriveCmdletProvider.NewDriveDynamicParameters*.Remove-Itemcmdlet: è possibile definire parametri dinamici attivati dai parametriPatheRecursedel cmdletRemove-Itemimplementando il metodo System.Management.Automation.Provider.ContainerCmdletProvider.RemoveItemDynamicParameters*.Remove-ItemPropertycmdlet: è possibile definire parametri dinamici attivati dai parametriPatheNamedel cmdletRemove-ItemPropertyimplementando il metodo System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.RemovePropertyDynamicParameters*.Rename-Itemcmdlet: è possibile definire parametri dinamici attivati dai parametriPatheNewNamedel cmdletRename-Itemimplementando il metodo System.Management.Automation.Provider.ContainerCmdletProvider.RenameItemDynamicParameters*.Rename-ItemProperty: è possibile definire parametri dinamici attivati dai parametriPath,NameeNewNamedel cmdletRename-ItemPropertyimplementando il System.Management.Automation.Provider.IDynamicPropertyCmdletProvider.RenamePropertyDynamicParameters* .Set-Contentcmdlet: è possibile definire parametri dinamici attivati dal parametroPathdel cmdletSet-Contentimplementando il metodo System.Management.Automation.Provider.IContentCmdletProvider.GetContentWriterDynamicParameters*.Set-Itemcmdlet: è possibile definire parametri dinamici attivati dai parametriPatheValuedel cmdletSet-Itemimplementando il metodo System.Management.Automation.Provider.ItemCmdletProvider.SetItemDynamicParameters*.Set-ItemPropertycmdlet: è possibile definire parametri dinamici attivati dai parametriPatheValuedel cmdletSet-Itemimplementando il metodo System.Management.Automation.Provider.IPropertyCmdletProvider.SetPropertyDynamicParameters*.Test-Pathcmdlet: è possibile definire parametri dinamici attivati dal parametroPathdel cmdletTest-Pathimplementando il metodo System.Management.Automation.Provider.ItemCmdletProvider.InvokeDefaultActionDynamicParameters*.