Jak napisać polecenie cmdlet

W tym artykule pokazano, jak napisać polecenie cmdlet. Polecenie cmdlet przyjmuje jako dane wejściowe pojedynczą nazwę użytkownika, a następnie zapisuje dla Send-Greeting tego użytkownika powitanie. Mimo że polecenie cmdlet nie robi wiele pracy, w tym przykładzie pokazano główne sekcje polecenia cmdlet.

Procedura pisania polecenia cmdlet

  1. Aby zadeklarować klasę jako polecenie cmdlet, użyj atrybutu polecenia cmdlet . Atrybut polecenia cmdlet określa czasownik i rzeczownik nazwy polecenia cmdlet.

    Aby uzyskać więcej informacji na temat atrybutu polecenia cmdlet, zobacz Deklarację atrybutu CmdletAttribute.

  2. Określ nazwę klasy.

  3. Określ, że polecenie cmdlet pochodzi z jednej z następujących klas:

  4. Aby zdefiniować parametry dla polecenia cmdlet, użyj atrybutu Parameter. W tym przypadku określono tylko jeden wymagany parametr.

    Aby uzyskać więcej informacji na temat atrybutu Parameter, zobacz ParameterAttribute Declaration.

  5. Zastąp metodę przetwarzania danych wejściowych, która przetwarza dane wejściowe. W tym przypadku metoda System.Management.Automation.Cmdlet.ProcessRecord jest zastępowana.

  6. Aby napisać powitanie, użyj metody System.Management.Automation.Cmdlet.WriteObject. Powitanie jest wyświetlane w następującym formacie:

    Hello <UserName>!
    

Przykład

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

Zobacz także

System.Management.Automation.Cmdlet

System.Management.Automation.PSCmdlet

System.Management.Automation.Cmdlet.ProcessRecord

System.Management.Automation.Cmdlet.WriteObject

Deklaracja CmdletAttribute

ParameterAttribute, deklaracja

Pisanie polecenia cmdlet programu Windows PowerShell