今日免费次数已满, 请开通会员/明日再来

7

有人能帮我把一个C# .NET程序转换成PowerShell cmdlet吗?我在这个领域非常新手,请帮助我走出这个难关!

谢谢,

Arun


可能是将C#代码转换为PowerShell脚本的方法?的重复问题。 - Michael Freidgeim
3个回答

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

请注意:在安装了Windows SDK的参考程序集之后,可以引用System.Management.Automation。 - Don Jones
很好的提示。这也是非常好的答案,正是我在寻找的。 - Anonymous Type

2
有一个Reflector的插件可以做到这一点。 这是一篇很好的文章,其中包含示例:http://msmvps.com/blogs/paulomorgado/archive/2009/09/18/powershell-for-the-net-developer.aspx*
.NET Reflector 在 CodePlex 上有一系列的附加组件,其中之一是PowerShell 附加组件,它允许你将代码直接反编译到 PowerShell 中。
在这个例子中,我正在打开 SharePoint 的 SPUtility 库中的 ChangeAccountPassword 方法: image 现在我可以从 C# 切换到 PowerShell。 image 当你需要将 C# 的帮助方法转换为 PowerShell,或者如果你对 PowerShell 语法还不熟悉,这个工具非常有用![*]该链接已于2015年10月12日失效。

2
链接已失效。这里有一篇总结性文章:https://blog.lekman.com/2011/10/converting-c-to-powershell.html - Zacharious
1
@Zachafer 谢谢你,我把你提供的链接里的文章复制到了回答里,以防那个链接也失效了。 - Nikita R.

2

首先,您应该使用PowerShell模板将.cs文件转换为DLL。然后,通过使用pssnapingetproc,您可以将其转换为DLL。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接