使用.net cmdlet

时间:2015-10-19 10:42:11

标签: .net powershell c#-4.0 cmdlets

我想隐藏自定义后面的Group-Object cmdlet,以便用户无法了解cmdlet返回的对象类型。所以当我这样做时:

$(Get-A;Get-B) | Group Result

其中'Result'是Get-AGet-B输出到管道的对象类型,是我想要组合在一起的对象。

我在.NET中使用PowerShell cmdlet来创建自定义cmdlet。

这个电话可以看起来像这样吗? :

$(Get-A;Get-B) | Get-Combine

其中Get-Combine和Group完全一样吗?

2 个答案:

答案 0 :(得分:0)

我认为你可以使用代理功能来做到这一点。

您可以找到由Shay LevyDon Jones撰写的有关这些功能的文章。

答案 1 :(得分:0)

作为JPBlanc mentions,您可以通过扩展现有cmdlet的功能来使用代理功能。但是我觉得你要找的东西比较简单。如果要替换cmdlet的功能,我能想到的最简单的方法就是使用相同的名称。

TechNet文章about_Command_Preferences介绍了其工作原理。

  

如果未指定路径,Windows PowerShell将使用以下命令            运行命令时的优先顺序:

     
  1. 别名   
  2. 功能   
  3. Cmdlet   
  4. 原生Windows命令   

因此,您只需要使用相同的名称创建自己的函数,就像它出现在cmdlet之前的列表中一样,然后完成它。

PS C:\Users\mcameron> function Get-ChildItem{"uh uh uh… I thought of that one, too, Better try again"}

PS C:\Users\mcameron> gci
uh uh uh… I thought of that one, too, Better try again