How to convert .cs file to a PowerShell cmdlet?

做~自己de王妃 提交于 2019-12-03 13:21:15

问题


Can anyone help me to convert a C# .NET program to PowerShell cmdlet? I am very new to this area. Please help me to get out of this checkpoint!

Regards,

Arun


回答1:


Add a reference to System.Management.Automation, create a class that inherits from Cmdlet and override the ProcessRecord method:

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

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

Add an installer:

[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."; } }
}

Install your commandlet assembly:

Installutil /i myassembly.dll

And add:

Add-PsSnapin MyCommandlets



回答2:


There's an add-on for Reflector to do that. Here's a good article with the example: http://msmvps.com/blogs/paulomorgado/archive/2009/09/18/powershell-for-the-net-developer.aspx*

.NET Reflector has an array of add-ons on CodePlex, and one of these is the PowerShell add-on that allows you to disassemble code directly into PowerShell.

In this example, I am opening the method ChangeAccountPassword from the SPUtility library in SharePoint:

I can now change targets from C# to PowerShell.

When you need to convert helper methods from C# to PowerShell or if you’re new to PowerShell syntax, this tool is really helpful!

[*] The link is dead as of 10/12/2015.




回答3:


First of all, you should convert your .cs file into a DLL using PowerShell template. Then by using pssnapin and getproc you can convert it into a DLL.



来源:https://stackoverflow.com/questions/343182/how-to-convert-cs-file-to-a-powershell-cmdlet

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!