Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом примере показано, как написать оснастку Windows PowerShell, которая регистрирует определенные командлеты.
При использовании этого типа оснастки можно указать, какие командлеты, поставщики, типы или форматы регистрируются. Дополнительные сведения о создании оснастки, которая регистрирует все командлеты и поставщики в сборке, см. в записи оснастки Windows PowerShell.
Запись оснастки Windows PowerShell, которая регистрирует определенные командлеты.
Добавьте атрибут RunInstallerAttribute.
Создайте открытый класс, производный от класса System.Management.Automation.CustomPSSnapIn.
В этом примере имя класса — CustomPSSnapinTest.
Добавьте общедоступное свойство для имени оснастки (обязательно). При именовании оснастки Не используйте ни один из следующих символов:
#
,.
,,
,(
,)
,{
,}
,[
,]
,&
,-
,/
\
,$
,;
,:
,"
,'
,<
,>
,|
,?
,@
,`
,*
В этом примере имя оснастки — CustomPSSnapInTest.
Добавьте общедоступное свойство для поставщика оснастки (обязательно).
В этом примере поставщиком является "Майкрософт".
Добавьте общедоступное свойство для ресурса поставщика оснастки (необязательно).
В этом примере ресурс поставщика — CustomPSSnapInTest, Microsoft.
Добавьте общедоступное свойство для описания оснастки (обязательно).
В этом примере описано: "Это настраиваемая оснастка Windows PowerShell, которая включает
Test-HelloWorld
и командлетыTest-CustomSnapinTest
".Добавьте общедоступное свойство для ресурса описания оснастки (необязательно).
В этом примере ресурс поставщика:
CustomPSSnapInTest — это настраиваемая оснастка Windows PowerShell, которая включает Test-HelloWorld и командлеты Test-CustomSnapinTest".
Укажите командлеты, принадлежащие к пользовательской оснастке (необязательно), с помощью класса System.Management.Automation.Runspaces.КомандлетConfigurationEntry. Сведения, добавленные здесь, включают имя командлета, его тип .NET и имя файла справки командлета (формат имени файла справки командлета должен быть
name.dll-help.xml
).В этом примере добавляются командлеты Test-HelloWorld и TestCustomSnapinTest.
Укажите поставщиков, принадлежащих пользовательской оснастке (необязательно).
В этом примере не указываются поставщики.
Укажите типы, принадлежащие пользовательской оснастке (необязательно).
В этом примере не указываются типы.
Укажите форматы, принадлежащие пользовательской оснастке (необязательно).
В этом примере не указаны форматы.
Пример
В этом примере показано, как написать пользовательскую оснастку Windows PowerShell, которую можно использовать для регистрации Test-HelloWorld
и командлетов Test-CustomSnapinTest
. Помните, что в этом примере полная сборка может содержать другие командлеты и поставщики, которые не будут зарегистрированы этой оснасткой.
[RunInstaller(true)]
public class CustomPSSnapinTest : CustomPSSnapIn
{
/// <summary>
/// Creates an instance of CustomPSSnapInTest class.
/// </summary>
public CustomPSSnapinTest()
: base()
{
}
/// <summary>
/// Specify the name of the custom PowerShell snap-in.
/// </summary>
public override string Name
{
get
{
return "CustomPSSnapInTest";
}
}
/// <summary>
/// Specify the vendor for the custom PowerShell snap-in.
/// </summary>
public override string Vendor
{
get
{
return "Microsoft";
}
}
/// <summary>
/// Specify the localization resource information for the vendor.
/// Use the format: resourceBaseName,resourceName.
/// </summary>
public override string VendorResource
{
get
{
return "CustomPSSnapInTest,Microsoft";
}
}
/// <summary>
/// Specify a description of the custom PowerShell snap-in.
/// </summary>
public override string Description
{
get
{
return "This is a custom PowerShell snap-in that includes the Test-HelloWorld and Test-CustomSnapinTest cmdlets.";
}
}
/// <summary>
/// Specify the localization resource information for the description.
/// Use the format: resourceBaseName,Description.
/// </summary>
public override string DescriptionResource
{
get
{
return "CustomPSSnapInTest,This is a custom PowerShell snap-in that includes the Test-HelloWorld and Test-CustomSnapinTest cmdlets.";
}
}
/// <summary>
/// Specify the cmdlets that belong to this custom PowerShell snap-in.
/// </summary>
private Collection<CmdletConfigurationEntry> _cmdlets;
public override Collection<CmdletConfigurationEntry> Cmdlets
{
get
{
if (_cmdlets == null)
{
_cmdlets = new Collection<CmdletConfigurationEntry>();
_cmdlets.Add(new CmdletConfigurationEntry("test-customsnapintest", typeof(TestCustomSnapinTest), "TestCmdletHelp.dll-help.xml"));
_cmdlets.Add(new CmdletConfigurationEntry("test-helloworld", typeof(TestHelloWorld), "HelloWorldHelp.dll-help.xml"));
}
return _cmdlets;
}
}
/// <summary>
/// Specify the providers that belong to this custom PowerShell snap-in.
/// </summary>
private Collection<ProviderConfigurationEntry> _providers;
public override Collection<ProviderConfigurationEntry> Providers
{
get
{
if (_providers == null)
{
_providers = new Collection<ProviderConfigurationEntry>();
}
return _providers;
}
}
/// <summary>
/// Specify the types that belong to this custom PowerShell snap-in.
/// </summary>
private Collection<TypeConfigurationEntry> _types;
public override Collection<TypeConfigurationEntry> Types
{
get
{
if (_types == null)
{
_types = new Collection<TypeConfigurationEntry>();
}
return _types;
}
}
/// <summary>
/// Specify the formats that belong to this custom PowerShell snap-in.
/// </summary>
private Collection<FormatConfigurationEntry> _formats;
public override Collection<FormatConfigurationEntry> Formats
{
get
{
if (_formats == null)
{
_formats = new Collection<FormatConfigurationEntry>();
}
return _formats;
}
}
}
Дополнительные сведения о регистрации оснастки см. в разделе Регистрация командлетов, поставщиков и ведущих приложений в руководстве программиста Windows PowerShell.
См. также
PowerShell