Как преобразовать файл .cs в командлет PowerShell? - PullRequest
7 голосов
/ 05 декабря 2008

Может ли кто-нибудь помочь мне преобразовать программу на C # .NET в командлет PowerShell? Я очень новичок в этой области. Пожалуйста, помогите мне выйти из этой контрольной точки!

С уважением,

Arun

Ответы [ 3 ]

13 голосов
/ 05 декабря 2008

Добавить ссылку на System.Management.Automation , создать класс, который наследуется от Командлет , и переопределить метод 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
2 голосов
/ 11 января 2012

Для этого есть дополнение для Reflector. Вот хорошая статья с примером: http://msmvps.com/blogs/paulomorgado/archive/2009/09/18/powershell-for-the-net-developer.aspx*

.NET Reflector имеет массив дополнений для CodePlex , и один из них дополнение PowerShell , которое позволяет напрямую разбирать код в PowerShell.

В этом примере я открываю метод ChangeAccountPassword из библиотека SPUtility в SharePoint:

image

Теперь я могу менять цели с C # на PowerShell.

image

Когда вам нужно преобразовать вспомогательные методы из C # в PowerShell или, если Вы новичок в синтаксисе PowerShell, этот инструмент действительно полезен!

[*] Ссылка неактивна по состоянию на 10.12.2015.

2 голосов
/ 12 декабря 2008

Прежде всего, вы должны конвертировать ваш файл .cs в DLL, используя шаблон PowerShell. Затем, используя pssnapin и getproc, вы можете преобразовать его в DLL.

...