Написание командлета

В этой статье показано, как написать командлет. Send-GreetingКомандлет принимает одно имя пользователя в качестве входных данных, а затем записывает приветствие этому пользователю. Хотя командлет не выполняет много операций, в этом примере демонстрируются основные разделы командлета.

Действия по написанию командлета

  1. Чтобы объявить класс в качестве командлета, используйте атрибут командлета . Атрибут командлета задает глагол и существительное для имени командлета.

    Дополнительные сведения об атрибуте командлета см. в описании объявления CmdletAttribute.

  2. Укажите имя класса.

  3. Укажите, что командлет является производным от любого из следующих классов:

  4. Чтобы определить параметры для командлета, используйте атрибут Parameter . В этом случае указывается только один обязательный параметр.

    Дополнительные сведения об атрибуте Parameter см. в разделе объявление параметераттрибуте.

  5. Переопределите метод обработки ввода, обрабатывающий входные данные. В этом случае метод System. Management. Automation. командлет. ProcessRecord переопределен.

  6. Чтобы написать приветствие, используйте метод System. Management. Automation. командлет. WriteObject. Приветствие отображается в следующем формате:

    Hello <UserName>!
    

Пример

using System.Management.Automation;  // Windows PowerShell assembly.

namespace SendGreeting
{
  // Declare the class as a cmdlet and specify the
  // appropriate verb and noun for the cmdlet name.
  [Cmdlet(VerbsCommunications.Send, "Greeting")]
  public class SendGreetingCommand : Cmdlet
  {
    // Declare the parameters for the cmdlet.
    [Parameter(Mandatory=true)]
    public string Name
    {
      get { return name; }
      set { name = value; }
    }
    private string name;

    // Override the ProcessRecord method to process
    // the supplied user name and write out a
    // greeting to the user by calling the WriteObject
    // method.
    protected override void ProcessRecord()
    {
      WriteObject("Hello " + name + "!");
    }
  }
}

См. также раздел

System. Management. Automation. командлет

System. Management. Automation. PSCmdlet

System. Management. Automation. командлет. ProcessRecord

System. Management. Automation. командлет. WriteObject

Объявление CmdletAttribute

Объявление Параметераттрибуте

Запись командлета Windows PowerShell