2008-12-05 44 views
6

任何人都可以帮助我将C#.NET程序转换为PowerShell cmdlet吗?我对这个领域非常陌生。请帮助我摆脱这个检查点!如何将.cs文件转换为PowerShell cmdlet?

问候,

阿伦

+0

[将C#代码转换为PowerShell脚本的方法?]的可能的副本(http://stackoverflow.com/questions/2143460/methods-to-convert-c-sharp-code-to-a-powershell-script ) – 2016-04-11 22:36:23

回答

13

的参考添加到System.Management.Automation,创建从Cmdlet的继承的类,并重写ProcessRecord方法:

[Cmdlet(VerbsCommon.Get, "Double")] 
public class GetDouble : Cmdlet 
{ 
    [Parameter] 
    public int SomeInput { get; set; } 

    protected override void ProcessRecord() 
    { 
     WriteObject(SomeInput * 2); 
    } 
} 

添加安装人:

[RunInstaller(true)] 
public class MySnapin : PSSnapIn 
{ 
    public override string Name { get { return "MyCommandlets"; } } 
    public override string Vendor { get { return "MyCompany"; } } 
    public override string Description { get { return "Does unnecessary aritmetic."; } } 
} 

安装您的命令行开关总成:

Installutil /i myassembly.dll 

并添加:

所有的
Add-PsSnapin MyCommandlets 
+0

仅供参考:System.Management.Automation可以在从Windows SDK安装参考程序集后引用。 – 2008-12-05 15:55:51

+0

伟大的提示。也是很好的答案,这正是我所期待的。 – 2010-08-05 23:01:00

2

首先,你应该转换.cs文件到使用PowerShell模板的DLL。然后通过使用pssnapingetproc您可以将其转换为DLL。

2

有一个反射器来做到这一点的附加组件。 下面是用例的好文章:http://msmvps.com/blogs/paulomorgado/archive/2009/09/18/powershell-for-the-net-developer.aspx *

.NET反射器具有an array of add-ons on CodePlex,而这些 之一是the PowerShell add-on,使您可以拆卸代码直接 到PowerShell中。

在这个例子中,我从 的SPUtility图书馆开放的方法ChangeAccountPassword在SharePoint:

image

我现在可以改变从C#的目标,以PowerShell的。

image

当你需要的辅助方法转换从C#到PowerShell的,或者如果 你是新来的PowerShell语法,这个工具是非常有帮助!

[*]该链接截至2015年12月12日已死亡。