Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert .cs file to a PowerShell cmdlet?

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

like image 769
Arun Avatar asked Dec 05 '08 08:12

Arun


People also ask

Can C# be used in PowerShell?

From PowerShell, you use C# to expand what you can do in PowerShell. You can create cmdlts and providers to enable others to access application data. Or you can just create objects that can be used within a PowerShell script.


3 Answers

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
like image 141
Cristian Libardo Avatar answered Oct 16 '22 18:10

Cristian Libardo


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:

image

I can now change targets from C# to PowerShell.

image

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.

like image 38
Nikita R. Avatar answered Oct 16 '22 17:10

Nikita R.


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.

like image 22
user45618 Avatar answered Oct 16 '22 17:10

user45618