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
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.
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
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With