Как создать командлет?

Я написал свою программу на C# .net. Я хочу преобразовать его в командлет PowerShell. Мне было поручено использовать программы pssnapin и getproc. Может кто-нибудь, пожалуйста, помогите мне..

С уважением Арун

6 ответов

Чтобы создать командлет PowerShell, я бы порекомендовал вам прочитать статью Bart De Smet (B#) по разработке и отладке командлетов Easy Windows PowerShell. Это отличный шаг для создания и отладки командлетов (делает то, что говорится на банке!)

Также я обнаружил, что профессиональное программирование Windows PowerShell, ISBN 978-0470173930, (ISBN-10) 0470173939 очень хорошо подходит для создания командлетов и поставщиков.

Итак, вот класс PSCmdlet [от medata], от которого вы можете наследовать.

namespace System.Management.Automation
{
    public abstract class PSCmdlet : Cmdlet
    {
        protected PSCmdlet();

        public PSHost Host { get; }
        public CommandInvocationIntrinsics InvokeCommand { get; }
        public ProviderIntrinsics InvokeProvider { get; }
        public InvocationInfo MyInvocation { get; }
        public string ParameterSetName { get; }
        public SessionState SessionState { get; }

        public PathInfo CurrentProviderLocation(string providerId);
        public Collection<string> GetResolvedProviderPathFromPSPath(string path, out ProviderInfo provider);
        public string GetUnresolvedProviderPathFromPSPath(string path);
        public object GetVariableValue(string name);
        public object GetVariableValue(string name, object defaultValue);
    }
}

Для загрузки ваших командлетов необходимо дополнительно подписать их, поскольку Powershell не выполняет не подписанный код.

Установите шаблон Windows PowerShell, тем самым вы получите программу pssnapin, с помощью которой вы сможете конвертировать ваш.cs-файл в dll. Затем найдите программу getproc в msdn. Я точно не помню, но будет метод, который будет выполняться в первую очередь. Вы вызываете свой файл DLL в этом методе. Я не помню код, но это процедура, которую нужно сделать.

Взгляните на эту статью " Создание командлетов PowerShell в VB 2005". Он использует VB 2005, но процесс такой же для C#.

Полное раскрытие, я написал статью, но вы мне не платите, глядя на нее.:)

Проверьте также http://blogs.msdn.com/daiken/. В частности, все месяцы с февраля 2007 года по июнь 2007 года. Вы найдете ссылку на шаблон Visual Studio (для 2005 года, также работает в Express) и несколько примеров / лабораторных работ.

Проект PowerTime ( http://code.google.com/p/powertime/) имеет открытый исходный код и реализует несколько командлетов. Хорошо для демонстрации, чтобы вы пошли.

Другие вопросы по тегам