Как создать командлет?
Я написал свою программу на 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/) имеет открытый исходный код и реализует несколько командлетов. Хорошо для демонстрации, чтобы вы пошли.