我正在写一个c# cmdlet,我需要使用Get cmdlet。Nee
如何在不调用"string PowerShell命令“的情况下从代码中调用这个cmdlet?基本上,我尝试调用c# GetChildItem代码。
[Cmdlet(VerbsCommon.Get, "SampleCmdlet")]
public class GetSampleCmdlet : Cmdlet
{
[Parameter()]
public string Parameter1 { get; set; }
protected override void ProcessRecord()
{
//Call c# Get-ChildItem and do something with results
//Don't want to do somthing like:
//string stringCommand = "Get-ChildItem 'c:\\*.Txt'";
//InvokePowerShellCommand(stringCommand);
}
}我只需要FileSystemProvider,但它应该是直接调用GetChildItem cmdlet的一种方式。
发布于 2018-02-15 16:08:08
如果扩展PSCmdlet而不是Cmdlet,则可以通过InvokeProvider属性-从医生那里访问当前提供程序:
如果您的Cmdlet需要访问MSH (例如,会话状态中的变量、对主机的访问或关于当前提供程序的信息),那么您应该从PSCmdlet基类派生。
您可以通过以下方式调用Get-ChildItem提供程序cmdlet:
InvokeProvider.ChildItem.Get(@"C:\path\to\dir", false);https://stackoverflow.com/questions/48810171
复制相似问题