Skriva en cmdlet

Den här artikeln visar hur du skriver en cmdlet. Send-GreetingCmdleten tar ett enda användarnamn som indata och skriver sedan en hälsning till användaren. Även om cmdleten inte fungerar så mycket visar det här exemplet de större avsnitten i en cmdlet.

Steg för att skriva en cmdlet

  1. Om du vill deklarera klassen som en cmdlet använder du attributet Cmdlet. Attributet Cmdlet anger verbet och substantivet för cmdlet-namnet.

    Mer information om attributet Cmdlet finns i CmdletAttribute-deklarationen.

  2. Ange namnet på klassen.

  3. Ange att cmdleten härleds från någon av följande klasser:

  4. Om du vill definiera parametrarna för cmdleten använder du attributet Parameter. I det här fallet anges bara en obligatorisk parameter.

    Mer information om attributet Parameter finns i ParameterAttribute-deklaration.

  5. Åsidosätt den indatabearbetningsmetod som bearbetar indata. I det här fallet åsidosätts metoden System.Management.Automation.Cmdlet.ProcessRecord.

  6. Om du vill skriva hälsningen använder du metoden System.Management.Automation.Cmdlet.WriteObject. Hälsningen visas i följande format:

    Hello <UserName>!
    

Exempel

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

Se även

System.Management.Automation.Cmdlet

System.Management.Automation.PSCmdlet

System.Management.Automation.Cmdlet.ProcessRecord

System.Management.Automation.Cmdlet.WriteObject

Deklaration av CmdletAttribute

Deklaration av ParameterAttribute

Skriva en Windows PowerShell-cmdlet