有人可以帮我将C#.NET程序转换为PowerShell cmdlet吗?我对这个领域很新。请帮我离开这个检查站!
此致
阿伦
答案 0 :(得分: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
答案 1 :(得分:2)
首先,您应该使用PowerShell模板将.cs文件转换为DLL。然后使用pssnapin
和getproc
,您可以将其转换为DLL。
答案 2 :(得分:2)
Reflector有一个附加组件可以做到这一点。 以下是一篇文章:http://msmvps.com/blogs/paulomorgado/archive/2009/09/18/powershell-for-the-net-developer.aspx *
.NET Reflector有an array of add-ons on CodePlex,其中一个 是the PowerShell add-on,允许您直接反汇编代码 进入PowerShell。
在此示例中,我将打开方法ChangeAccountPassword SharePoint中的SPUtility库:
我现在可以将目标从C#更改为PowerShell。
当您需要将帮助方法从C#转换为PowerShell或者如果 你是PowerShell语法的新手,这个工具真有帮助!
[*]截至2015年12月10日该链接已失效。