Поделиться через


Написание оснастки Windows PowerShell

В этом примере показано, как написать оснастку Windows PowerShell, которая может использоваться для регистрации всех командлетов и поставщиков Windows PowerShell в сборке.

При использовании этого типа оснастки вы не выбираете, какие командлеты и поставщики необходимо зарегистрировать. Чтобы написать оснастку, которая позволяет выбрать зарегистрированные элементы, см. записи пользовательской оснастки Windows PowerShell.

Написание оснастки Windows PowerShell

  1. Добавьте атрибут RunInstallerAttribute.

  2. Создайте открытый класс, производный от класса System.Management.Automation.PSSnapIn.

    В этом примере имя класса — GetProcPSSnapIn01.

  3. Добавьте общедоступное свойство для имени оснастки (обязательно). При именовании оснастки Не используйте ни один из следующих символов: #, ., ,, (, ), {, }, [, ], &, -, /\, $, ;, :, ", ', <, >, |, ?, @, `, *

    В этом примере имя оснастки — GetProcPSSnapIn01.

  4. Добавьте общедоступное свойство для поставщика оснастки (обязательно).

    В этом примере поставщиком является "Майкрософт".

  5. Добавьте общедоступное свойство для ресурса поставщика оснастки (необязательно).

    В этом примере ресурс поставщика — GetProcPSSnapIn01,Microsoft.

  6. Добавьте общедоступное свойство для описания оснастки (обязательно).

    В этом примере описано: "Это оснастка Windows PowerShell, которая регистрирует командлет Get-Proc".

  7. Добавьте общедоступное свойство для ресурса описания оснастки (необязательно).

    В этом примере ресурс поставщика — GetProcPSSnapIn01, это оснастка Windows PowerShell, которая регистрирует командлет Get-Proc.

Пример

В этом примере показано, как написать оснастку Windows PowerShell, которую можно использовать для регистрации командлета Get-Proc в оболочке Windows PowerShell. Помните, что в этом примере полная сборка будет содержать только класс оснастки GetProcPSSnapIn01 и класс командлета Get-Proc.

[RunInstaller(true)]
public class GetProcPSSnapIn01 : PSSnapIn
{
  /// <summary>
  /// Create an instance of the GetProcPSSnapIn01 class.
  /// </summary>
  public GetProcPSSnapIn01()
         : base()
  {
  }

  /// <summary>
  /// Specify the name of the PowerShell snap-in.
  /// </summary>
  public override string Name
  {
    get
    {
      return "GetProcPSSnapIn01";
    }
  }

  /// <summary>
  /// Specify the vendor for the PowerShell snap-in.
  /// </summary>
  public override string Vendor
  {
    get
    {
      return "Microsoft";
    }
  }

  /// <summary>
  /// Specify the localization resource information for the vendor.
  /// Use the format: resourceBaseName,VendorName.
  /// </summary>
  public override string VendorResource
  {
    get
    {
      return "GetProcPSSnapIn01,Microsoft";
    }
  }

  /// <summary>
  /// Specify a description of the PowerShell snap-in.
  /// </summary>
  public override string Description
  {
    get
    {
      return "This is a PowerShell snap-in that includes the Get-Proc cmdlet.";
    }
  }

  /// <summary>
  /// Specify the localization resource information for the description.
  /// Use the format: resourceBaseName,Description.
  /// </summary>
  public override string DescriptionResource
  {
    get
    {
      return "GetProcPSSnapIn01,This is a PowerShell snap-in that includes the Get-Proc cmdlet.";
    }
  }
}

См. также

Регистрация командлетов, поставщиков и ведущих приложений

пакет SDK оболочки Windows PowerShell