Come scrivere un cmdlet
Questo articolo illustra come scrivere un cmdlet. Il Send-Greeting
cmdlet accetta un singolo nome utente come input e quindi scrive un messaggio di saluto a tale utente. Anche se il cmdlet non esegue molte operazioni, in questo esempio vengono illustrate le sezioni principali di un cmdlet.
Passaggi per scrivere un cmdlet
Per dichiarare la classe come cmdlet, usare l'attributo Cmdlet . L'attributo Cmdlet specifica il verbo e il sostantivo per il nome del cmdlet.
Per altre informazioni sull'attributo Cmdlet, vedere Dichiarazione CmdletAttribute.
Specificare il nome della classe.
Specificare che il cmdlet deriva da una delle classi seguenti:
Per definire i parametri per il cmdlet, usare l'attributo Parameter. In questo caso, viene specificato un solo parametro obbligatorio.
Per altre informazioni sull'attributo Parameter, vedere Dichiarazione ParameterAttribute.
Eseguire l'override del metodo di elaborazione dell'input che elabora l'input. In questo caso, viene eseguito l'override del metodo System.Management.Automation.Cmdlet.ProcessRecord.
Per scrivere il messaggio di saluto, usare il metodo System.Management.Automation.Cmdlet.WriteObject. Il messaggio di saluto viene visualizzato nel formato seguente:
Hello <UserName>!
Esempio
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 + "!");
}
}
}
Vedere anche
System.Management.Automation.Cmdlet
System.Management.Automation.PSCmdlet
System.Management.Automation.Cmdlet.ProcessRecord
System.Management.Automation.Cmdlet.WriteObject