Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этой статье показано, как написать командлет. Send-GreetingКомандлет принимает одно имя пользователя в качестве входных данных, а затем записывает приветствие этому пользователю. Хотя командлет не выполняет много операций, в этом примере демонстрируются основные разделы командлета.
Действия по написанию командлета
Чтобы объявить класс в качестве командлета, используйте атрибут командлета . Атрибут командлета задает глагол и существительное для имени командлета.
Дополнительные сведения об атрибуте командлета см. в описании объявления CmdletAttribute.
Укажите имя класса.
Укажите, что командлет является производным от любого из следующих классов:
Чтобы определить параметры для командлета, используйте атрибут Parameter . В этом случае указывается только один обязательный параметр.
Дополнительные сведения об атрибуте Parameter см. в разделе объявление параметераттрибуте.
Переопределите метод обработки ввода, обрабатывающий входные данные. В этом случае метод System. Management. Automation. командлет. ProcessRecord переопределен.
Чтобы написать приветствие, используйте метод 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