How to convert .cs file to a PowerShell cmdlet?

后端 未结 3 1104
离开以前
离开以前 2021-02-06 09:21

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

相关标签:
3条回答
  • 2021-02-06 09:23

    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.

    0 讨论(0)
  • 2021-02-06 09:38

    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
    
    0 讨论(0)
  • 2021-02-06 09:41

    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.

    0 讨论(0)
提交回复
热议问题