Schreiben eines Cmdlets

In diesem Artikel erfahren Sie, wie Sie ein Cmdlet schreiben. Das Send-Greeting Cmdlet verwendet einen einzelnen Benutzernamen als Eingabe und schreibt dann eine Begrüßung an diesen Benutzer. Obwohl das Cmdlet nicht viel arbeitet, veranschaulicht dieses Beispiel die hauptabschnitte eines Cmdlets.

Schritte zum Schreiben eines Cmdlets

  1. Um die Klasse als Cmdlet zu deklarieren, verwenden Sie das Cmdlet-Attribut. Das Cmdlet-Attribut gibt das Verb und das Nomen für den Cmdlet-Namen an.

    Weitere Informationen zum Cmdlet-Attribut finden Sie unter CmdletAttribute-Deklaration.

  2. Geben Sie den Namen der Klasse an.

  3. Geben Sie an, dass das Cmdlet von einer der folgenden Klassen abgeleitet wird:

  4. Verwenden Sie das Parameter-Attribut, um die Parameter für das Cmdlet zu definieren. In diesem Fall wird nur ein erforderlicher Parameter angegeben.

    Weitere Informationen zum Parameter-Attribut finden Sie unter ParameterAttribute-Deklaration.

  5. Überschreiben Sie die Eingabeverarbeitungsmethode, die die Eingabe verarbeitet. In diesem Fall wird die System.Management.Automation.Cmdlet.ProcessRecord-Methode überschrieben.

  6. Verwenden Sie zum Schreiben der Begrüßung die Methode System.Management.Automation.Cmdlet.WriteObject. Die Begrüßung wird im folgenden Format angezeigt:

    Hello <UserName>!
    

Beispiel

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 + "!");
    }
  }
}

Weitere Informationen

System.Management.Automation.Cmdlet

System.Management.Automation.PSCmdlet

System.Management.Automation.Cmdlet.ProcessRecord

System.Management.Automation.Cmdlet.WriteObject

CmdletAttribute-Deklaration

ParameterAttribute-Deklaration

Schreiben eines Windows PowerShell-Cmdlets